Merge from trunk
This commit is contained in:
commit
36a305a723
687 changed files with 43983 additions and 20726 deletions
81
ChangeLog
81
ChangeLog
|
@ -1,5 +1,86 @@
|
|||
2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.ac: Check that OSX is 10.4 or newer.
|
||||
|
||||
2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Improve sys_siglist detection.
|
||||
* configure.ac (sys_siglist): Look for its decl in <signal.h>.
|
||||
Otherwise, it's not found in either Fedora 17 or Solaris 11.
|
||||
|
||||
2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
2012-10-02 pselect: reject invalid file descriptors
|
||||
2012-10-02 ptsname: reject invalid file descriptors
|
||||
2012-10-02 manywarnings: cater to more gcc infelicities
|
||||
2012-09-30 sockets, sys_stat: restore AC_C_INLINE
|
||||
* lib/pselect.c, lib/stdlib.in.h, m4/manywarnings.m4, m4/pselect.m4:
|
||||
* m4/stdlib_h.m4, m4/sys_stat_h.m4: Update from gnulib.
|
||||
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
|
||||
|
||||
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
2012-09-28 extern-inline: provide a -Wundef safe config.h
|
||||
|
||||
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Check more robustly for timer_settime.
|
||||
This should fix an OS X build problem reported by Ivan Andrus in
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
|
||||
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
|
||||
does threads its own way.
|
||||
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
|
||||
|
||||
2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (bootstrap): Set MAKEFILE_NAME when building Makefile,
|
||||
to avoid problems with recursion when using GNU make.
|
||||
|
||||
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (bootstrap): Simplify build procedure.
|
||||
Suggested by Wolfgang Jenker in
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00456.html>.
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
2012-09-22 sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
|
||||
|
||||
2012-09-19 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* doc/emacs/misc.texi (DocView Slicing): Document new slice from
|
||||
BoundingBox feature.
|
||||
|
||||
2012-09-18 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.ac (HAVE_GTK): Mention if we use GTK2 or GTK3.
|
||||
|
||||
2012-09-17 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* Makefile.in (bootstrap): Revert last change. Run config.status
|
||||
after config.status --recheck, run configure from $(srcdir).
|
||||
(config.status): Run configure from $(srcdir).
|
||||
|
||||
2012-09-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in: Fix build error on FreeBSD.
|
||||
($(MAKEFILE_NAME)): Pass MAKE='$(MAKE)' to config.status's env.
|
||||
Suggested by Wolfgang Jenker in
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00430.html>.
|
||||
(MAKE_CONFIG_STATUS): Remove. Remaining use expanded.
|
||||
This undoes part of the 2012-09-10 patch.
|
||||
(bootstrap): Run ./configure, rather than trying to run config.status
|
||||
if it exists. That builds src/epaths.h more reliably.
|
||||
Run autogen/copy_autogen if autogen.sh fails,
|
||||
to create 'configure'; problem reported by Andreas Schwab in
|
||||
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00438.html>.
|
||||
* autogen.sh: Exit with status 1 when failing due to missing tools,
|
||||
reverting the 2012-09-10 change to this file.
|
||||
* autogen/copy_autogen: Fail if one of the subsidiary actions fail.
|
||||
Use 'cp -f' for the build-aux files, since the destinations are
|
||||
typically read-only.
|
||||
|
||||
Remove no-longer-needed Solaris 2.4 vfork bug workaround.
|
||||
* configure.ac (ac_cv_func_vfork_works): Default to 'no' on
|
||||
Solaris 2.4, so that AC_FUNC_VFORK doesn't think vfork works.
|
||||
|
|
22
Makefile.in
22
Makefile.in
|
@ -355,22 +355,24 @@ blessmail: Makefile src FRC
|
|||
# config.status overrides MAKEFILE_NAME with a bogus name when creating
|
||||
# src/epaths.h, so that 'make epaths-force' does not recursively invoke
|
||||
# config.status and overwrite config.status while executing it (Bug#11214).
|
||||
#
|
||||
# 'make bootstrap' overrides MAKEFILE_NAME to a nonexistent file but
|
||||
# then attempts to build that file. This forces 'Makefile', 'lib/Makefile',
|
||||
# etc. to be built without running into similar recursion problems.
|
||||
MAKEFILE_NAME = Makefile
|
||||
$(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
|
||||
$(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
|
||||
./config.status
|
||||
MAKE='$(MAKE)' ./config.status
|
||||
|
||||
# Don't erase these files if make is interrupted while refreshing them.
|
||||
.PRECIOUS: Makefile config.status
|
||||
|
||||
MAKE_CONFIG_STATUS = \
|
||||
config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
|
||||
if [ -x ./config.status ]; then \
|
||||
./config.status --recheck; \
|
||||
else \
|
||||
./configure $(CONFIGURE_FLAGS); \
|
||||
$(srcdir)/configure $(CONFIGURE_FLAGS); \
|
||||
fi
|
||||
config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
|
||||
$(MAKE_CONFIG_STATUS)
|
||||
|
||||
AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
|
||||
|
||||
|
@ -891,13 +893,13 @@ dvi:
|
|||
.PHONY: bootstrap
|
||||
|
||||
# Bootstrapping does the following:
|
||||
# * Remove files to start from a clean slate.
|
||||
# * Run autogen.sh, but don't worry about exit status 101 (missing tools).
|
||||
# * Build Makefile, to build the build procedure itself.
|
||||
# * Remove files to start from a bootstrap-clean slate.
|
||||
# * Run autogen.sh, falling back on copy_autogen if autogen.sh fails.
|
||||
# * Rebuild Makefile, to update the build procedure itself.
|
||||
# * Do the actual build.
|
||||
bootstrap: bootstrap-clean FRC
|
||||
cd $(srcdir) && { ./autogen.sh || test $$? -eq 101; }
|
||||
$(MAKE_CONFIG_STATUS)
|
||||
cd $(srcdir) && { ./autogen.sh || autogen/copy_autogen; }
|
||||
$(MAKE) $(MFLAGS) MAKEFILE_NAME=force-Makefile force-Makefile
|
||||
$(MAKE) $(MFLAGS) info all
|
||||
|
||||
.PHONY: check-declare
|
||||
|
|
|
@ -1,3 +1,48 @@
|
|||
2012-10-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (cusver-new-version): Set default.
|
||||
(cusver-check): Improve interactive argument reading.
|
||||
|
||||
2012-10-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (cusver-new-version): New variable.
|
||||
(cusver-scan): Check if containing group has a :version.
|
||||
(cusver-check): Add VERSION argument.
|
||||
|
||||
2012-10-01 David Engster <deng@randomsample.de>
|
||||
|
||||
* grammars/bovine-grammar.el:
|
||||
* grammars/wisent-grammar.el: Move to lisp directory.
|
||||
|
||||
2012-10-01 David Engster <deng@randomsample.de>
|
||||
|
||||
* grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote):
|
||||
Remove.
|
||||
(bovine-grammar-expand-form): Test for emacs-major-version.
|
||||
|
||||
* grammars/c.by: Add EXPLICIT to keyword tokens.
|
||||
|
||||
* grammars/f90.by: Add %provide token.
|
||||
|
||||
* grammar/grammar.wy (semantic-grammar-lexer): Remove, since it
|
||||
was copied to grammar.el. New %provide token to generate prefix
|
||||
which conforms with Emacs conventions. Remove lexer definition,
|
||||
which is now in grammar.el.
|
||||
|
||||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (set-version): Set msdos.c's Vwindow_system_version.
|
||||
|
||||
2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Check more robustly for timer_settime.
|
||||
* merge-gnulib (GNULIB_MODULES): Add timer-time.
|
||||
|
||||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* unidata/BidiMirroring.txt:
|
||||
* unidata/UnicodeData.txt: Update to Unicode 6.2.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* admin.el (add-log-time-format): Declare.
|
||||
|
|
|
@ -129,8 +129,12 @@ Root must be the root of an Emacs source tree."
|
|||
(rx (and "\"ProductVersion\"" (0+ space) ?,
|
||||
(0+ space) ?\" (submatch (1+ (in "0-9, ")))
|
||||
"\\0\"")))
|
||||
;; Major version only.
|
||||
(when (string-match "\\([0-9]\\{2,\\}\\)" version)
|
||||
(setq version (match-string 1 version))
|
||||
(set-version-in-file root "src/msdos.c" version
|
||||
(rx (and "Vwindow_system_version" (1+ not-newline)
|
||||
?\( (submatch (1+ (in "0-9"))) ?\))))
|
||||
(set-version-in-file root "etc/refcards/ru-refcard.tex" version
|
||||
"\\\\newcommand{\\\\versionemacs}\\[0\\]\
|
||||
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
|
||||
|
@ -438,8 +442,12 @@ If optional OLD is non-nil, also include defvars."
|
|||
))
|
||||
"{}" "+"))
|
||||
|
||||
;; TODO if a defgroup with a version tag, apply to all customs in that
|
||||
;; group (eg for new files).
|
||||
(defvar cusver-new-version (format "%s.%s" emacs-major-version
|
||||
(1+ emacs-minor-version))
|
||||
"Version number that new defcustoms should have.")
|
||||
|
||||
;; TODO do something about renamed variables with aliases to the old name?
|
||||
;; Scan old cus-start.el to find variables moved from C to lisp?
|
||||
(defun cusver-scan (file &optional old)
|
||||
"Scan FILE for `defcustom' calls.
|
||||
Return a list with elements of the form (VAR . VER),
|
||||
|
@ -448,8 +456,8 @@ a :version tag having value VER (may be nil).
|
|||
If optional argument OLD is non-nil, also scan for defvars."
|
||||
(let ((m (format "Scanning %s..." file))
|
||||
(re (format "^[ \t]*\\((def%s\\)[ \t\n]"
|
||||
(if old "\\(?:custom\\|var\\)" "custom")))
|
||||
alist var ver form)
|
||||
(if old "\\(custom\\|var\\)" "\\(custom\\|group\\)")))
|
||||
alist var ver form glist grp)
|
||||
(message "%s" m)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
|
@ -457,11 +465,23 @@ If optional argument OLD is non-nil, also scan for defvars."
|
|||
(while (re-search-forward re nil t)
|
||||
(goto-char (match-beginning 1))
|
||||
(if (and (setq form (ignore-errors (read (current-buffer))))
|
||||
(setq var (car-safe (cdr-safe form)))
|
||||
(setq var (car-safe (cdr-safe form)))
|
||||
;; Exclude macros, eg (defcustom ,varname ...).
|
||||
(symbolp var))
|
||||
(setq ver (car (cdr-safe (memq :version form)))
|
||||
alist (cons (cons var ver) alist))
|
||||
(progn
|
||||
(setq ver (car (cdr-safe (memq :version form))))
|
||||
(if (equal "group" (match-string 2))
|
||||
;; Group :version could be old.
|
||||
(if (equal ver cusver-new-version)
|
||||
(setq glist (cons (cons var ver) glist)))
|
||||
;; If it specifies a group and the whole group has a
|
||||
;; version. use that.
|
||||
(unless ver
|
||||
(setq grp (car (cdr-safe (memq :group form))))
|
||||
(and grp
|
||||
(setq grp (car (cdr-safe grp))) ; (quote foo) -> foo
|
||||
(setq ver (assq grp glist))))
|
||||
(setq alist (cons (cons var ver) alist))))
|
||||
(if form (message "Malformed defcustom: `%s'" form)))))
|
||||
(message "%sdone" m)
|
||||
alist))
|
||||
|
@ -486,7 +506,7 @@ If optional argument OLD is non-nil, also scan for defvars."
|
|||
;; TODO handle renamed things with aliases to the old names.
|
||||
;; What to do about new files? Does everything in there need a :version,
|
||||
;; or eg just the defgroup?
|
||||
(defun cusver-check (newdir olddir)
|
||||
(defun cusver-check (newdir olddir version)
|
||||
"Check that defcustoms have :version tags where needed.
|
||||
NEWDIR is the current lisp/ directory, OLDDIR is that from the previous
|
||||
release. A defcustom that is only in NEWDIR should have a :version
|
||||
|
@ -495,11 +515,16 @@ just converting a defvar to a defcustom does not require a :version bump.
|
|||
|
||||
Note that a :version tag should also be added if the value of a defcustom
|
||||
changes (in a non-trivial way). This function does not check for that."
|
||||
(interactive "DNew Lisp directory: \nDOld Lisp directory: ")
|
||||
(interactive (list (read-directory-name "New Lisp directory: ")
|
||||
(read-directory-name "Old Lisp directory: ")
|
||||
(number-to-string
|
||||
(read-number "New version number: "
|
||||
(string-to-number cusver-new-version)))))
|
||||
(or (file-directory-p (setq newdir (expand-file-name newdir)))
|
||||
(error "Directory `%s' not found" newdir))
|
||||
(or (file-directory-p (setq olddir (expand-file-name olddir)))
|
||||
(error "Directory `%s' not found" olddir))
|
||||
(setq cusver-new-version version)
|
||||
(let* ((newfiles (progn (message "Finding new files with defcustoms...")
|
||||
(cusver-find-files newdir)))
|
||||
(oldfiles (progn (message "Finding old files with defcustoms...")
|
||||
|
|
|
@ -3,8 +3,8 @@ generate the parser data in the lisp/semantic/bovine/ and
|
|||
lisp/semantic/wisent/ directories. You can run the parser generators
|
||||
with
|
||||
|
||||
emacs -batch -Q -l bovine-grammar.el -f bovine-make-parsers
|
||||
emacs -batch -Q -l wisent-grammar.el -f wisent-make-parsers
|
||||
emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers
|
||||
emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers
|
||||
|
||||
Currently, the parser files in lisp/ are not generated directly from
|
||||
these grammar files when making Emacs. This state of affairs, and the
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
;;; c.by -- LL grammar for C/C++ language specification
|
||||
|
||||
;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
|
@ -39,6 +38,13 @@
|
|||
;; > * Can't parse signature element: "RmcBucStatus* rftBucStatus"
|
||||
|
||||
%package semantic-c-by
|
||||
%provide semantic/bovine/c-by
|
||||
|
||||
%{
|
||||
(declare-function semantic-c-reconstitute-token "semantic/bovine/c")
|
||||
(declare-function semantic-c-reconstitute-template "semantic/bovine/c")
|
||||
(declare-function semantic-expand-c-tag "semantic/bovine/c")
|
||||
}
|
||||
|
||||
%languagemode c-mode c++-mode
|
||||
%start declaration
|
||||
|
@ -98,6 +104,8 @@
|
|||
%put VIRTUAL summary "Method Modifier: virtual <type> <name>(...) ..."
|
||||
%token MUTABLE "mutable"
|
||||
%put MUTABLE summary "Member Declaration Modifier: mutable <type> <name> ..."
|
||||
%token EXPLICIT "explicit"
|
||||
%put EXPLICIT summary "Forbids implicit type conversion: explicit <constructor>"
|
||||
|
||||
%token STRUCT "struct"
|
||||
%put STRUCT summary "Structure Type Declaration: struct [name] { ... };"
|
||||
|
@ -370,6 +378,9 @@ namespacesubparts
|
|||
;; PUBLIC or PRIVATE bits. Ignore them for now.
|
||||
| template
|
||||
| using
|
||||
;; Includes inside namespaces
|
||||
| spp-include
|
||||
(TAG $1 'include :inside-ns t)
|
||||
| ;;EMPTY
|
||||
;
|
||||
|
||||
|
@ -1098,6 +1109,8 @@ functionname
|
|||
function-pointer
|
||||
: LPAREN STAR symbol RPAREN
|
||||
( (concat "*" $3) )
|
||||
| LPAREN symbol RPAREN
|
||||
( $2 )
|
||||
;
|
||||
|
||||
fun-or-proto-end
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package semantic-grammar-wy
|
||||
%provide semantic/grammar-wy
|
||||
|
||||
%{
|
||||
(defvar semantic-grammar-lex-c-char-re)
|
||||
|
||||
|
@ -32,8 +35,6 @@
|
|||
(defvar semantic-grammar-wy--rindx nil)
|
||||
}
|
||||
|
||||
%package semantic-grammar-wy
|
||||
|
||||
%languagemode wy-mode
|
||||
|
||||
;; Main
|
||||
|
@ -52,6 +53,7 @@
|
|||
%keyword LEFT "%left"
|
||||
%keyword NONASSOC "%nonassoc"
|
||||
%keyword PACKAGE "%package"
|
||||
%keyword PROVIDE "%provide"
|
||||
%keyword PREC "%prec"
|
||||
%keyword PUT "%put"
|
||||
%keyword QUOTEMODE "%quotemode"
|
||||
|
@ -134,6 +136,7 @@ decl:
|
|||
| no_default_prec_decl
|
||||
| languagemode_decl
|
||||
| package_decl
|
||||
| provide_decl
|
||||
| precedence_decl
|
||||
| put_decl
|
||||
| quotemode_decl
|
||||
|
@ -165,6 +168,11 @@ package_decl:
|
|||
`(PACKAGE-TAG ',$2 nil)
|
||||
;
|
||||
|
||||
provide_decl:
|
||||
PROVIDE SYMBOL
|
||||
`(TAG ',$2 'provide)
|
||||
;
|
||||
|
||||
precedence_decl:
|
||||
associativity token_type_opt items
|
||||
`(TAG ',$1 'assoc :type ',$2 :value ',$3)
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package wisent-java-tags-wy
|
||||
%provide semantic/wisent/javat-wy
|
||||
|
||||
%languagemode java-mode
|
||||
|
||||
|
@ -444,7 +445,7 @@ class_member_declaration
|
|||
;;; Type Declaration token
|
||||
;; ("NAME" type "TYPE" ( PART-LIST ) ( PARENTS ) EXTRA-SPEC "DOCSTRING")
|
||||
interface_declaration
|
||||
: modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body
|
||||
: modifiers_opt INTERFACE qualified_name extends_interfaces_opt interface_body
|
||||
(TYPE-TAG $3 $2 $5 (if $4 (cons nil $4)) :typemodifiers $1)
|
||||
;
|
||||
|
||||
|
@ -547,7 +548,7 @@ formal_parameters
|
|||
;;; Variable token
|
||||
;; ("NAME" variable "TYPE" DEFAULT-VALUE EXTRA-SPEC "DOCSTRING")
|
||||
formal_parameter
|
||||
: formal_parameter_modifier_opt type variable_declarator_id
|
||||
: formal_parameter_modifier_opt type opt_variable_declarator_id
|
||||
(VARIABLE-TAG $3 $2 nil :typemodifiers $1)
|
||||
;
|
||||
|
||||
|
@ -582,6 +583,13 @@ variable_declarator
|
|||
(cons $1 $region)
|
||||
;
|
||||
|
||||
opt_variable_declarator_id
|
||||
: ;; EMPTY
|
||||
(identity "")
|
||||
| variable_declarator_id
|
||||
(identity $1)
|
||||
;
|
||||
|
||||
variable_declarator_id
|
||||
: IDENTIFIER dims_opt
|
||||
(concat $1 $2)
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
;; DAMAGE.
|
||||
|
||||
%package wisent-javascript-jv-wy
|
||||
%provide semantic/wisent/js-wy
|
||||
;; JAVE I prefere ecmascript-mode
|
||||
%languagemode ecmascript-mode javascript-mode
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package semantic-make-by
|
||||
%provide semantic/bovine/make-by
|
||||
|
||||
%languagemode makefile-mode
|
||||
%start Makefile
|
||||
|
|
|
@ -88,6 +88,12 @@
|
|||
;; --------
|
||||
|
||||
%package wisent-python-wy
|
||||
%provide semantic/wisent/python-wy
|
||||
|
||||
%{
|
||||
(declare-function wisent-python-reconstitute-function-tag "semantic/wisent/python")
|
||||
(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python")
|
||||
}
|
||||
|
||||
%languagemode python-mode
|
||||
|
||||
|
@ -173,6 +179,7 @@
|
|||
%token <punctuation> COMMA ","
|
||||
%token <punctuation> ASSIGN "="
|
||||
%token <punctuation> BACKQUOTE "`"
|
||||
%token <punctuation> AT "@"
|
||||
|
||||
|
||||
;; -----------------
|
||||
|
@ -307,6 +314,10 @@
|
|||
%put WHILE summary
|
||||
"Start a 'while' loop"
|
||||
|
||||
%keyword WITH "with"
|
||||
%put WITH summary
|
||||
"Start statement with an associated context object"
|
||||
|
||||
%keyword YIELD "yield"
|
||||
%put YIELD summary
|
||||
"Create a generator function"
|
||||
|
@ -545,8 +556,10 @@ import_stmt
|
|||
|
||||
;; dotted_as_name (',' dotted_as_name)*
|
||||
dotted_as_name_list
|
||||
: dotted_as_name
|
||||
| dotted_as_name_list COMMA dotted_as_name
|
||||
: dotted_as_name_list COMMA dotted_as_name
|
||||
(cons $3 $1)
|
||||
| dotted_as_name
|
||||
(list $1)
|
||||
;
|
||||
|
||||
;; ('*' | import_as_name (',' import_as_name)*)
|
||||
|
@ -649,6 +662,7 @@ compound_stmt
|
|||
| while_stmt
|
||||
| for_stmt
|
||||
| try_stmt
|
||||
| with_stmt
|
||||
| funcdef
|
||||
| class_declaration
|
||||
;
|
||||
|
@ -755,14 +769,47 @@ zero_one_or_two_test
|
|||
()
|
||||
;
|
||||
|
||||
;;;============================================================================
|
||||
;;@@ with_stmt
|
||||
;;;============================================================================
|
||||
|
||||
;; with_stmt: 'with' test [ with_var ] ':' suite
|
||||
with_stmt
|
||||
: WITH test COLON suite
|
||||
(CODE-TAG $1 nil)
|
||||
| WITH test with_var COLON suite
|
||||
(CODE-TAG $1 nil) ;; TODO capture variable
|
||||
;
|
||||
|
||||
with_var
|
||||
: AS expr
|
||||
() ;; TODO capture
|
||||
;
|
||||
|
||||
;;;============================================================================
|
||||
;;;@@ funcdef
|
||||
;;;============================================================================
|
||||
|
||||
;; funcdef: 'def' NAME parameters ':' suite
|
||||
decorator
|
||||
: AT dotted_name varargslist_opt NEWLINE
|
||||
(FUNCTION-TAG $2 "decorator" $3)
|
||||
;
|
||||
|
||||
decorators
|
||||
: decorator
|
||||
(list $1)
|
||||
| decorator decorators
|
||||
(cons $1 $2)
|
||||
;
|
||||
|
||||
;; funcdef: [decorators] 'def' NAME parameters ':' suite
|
||||
funcdef
|
||||
: DEF NAME function_parameter_list COLON suite
|
||||
(FUNCTION-TAG $2 nil $3)
|
||||
(wisent-python-reconstitute-function-tag
|
||||
(FUNCTION-TAG $2 nil $3) $5)
|
||||
| decorators DEF NAME function_parameter_list COLON suite
|
||||
(wisent-python-reconstitute-function-tag
|
||||
(FUNCTION-TAG $3 nil $4 :decorators $1) $6)
|
||||
;
|
||||
|
||||
function_parameter_list
|
||||
|
@ -798,10 +845,11 @@ function_parameter
|
|||
;; classdef: 'class' NAME ['(' testlist ')'] ':' suite
|
||||
class_declaration
|
||||
: CLASS NAME paren_class_list_opt COLON suite
|
||||
(TYPE-TAG $2 $1 ;; Name "class"
|
||||
$5 ;; Members
|
||||
(cons $3 nil) ;; (SUPERCLASSES . INTERFACES)
|
||||
)
|
||||
(wisent-python-reconstitute-class-tag
|
||||
(TYPE-TAG $2 $1 ;; Name "class"
|
||||
$5 ;; Members
|
||||
(cons $3 nil) ;; (SUPERCLASSES . INTERFACES)
|
||||
))
|
||||
;
|
||||
|
||||
;; ['(' testlist ')']
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
%package semantic-scm-by
|
||||
%provide semantic/bovine/scm-by
|
||||
|
||||
%languagemode scheme-mode
|
||||
%start scheme
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
;; Semantic Recoder templates are based on Google Templates
|
||||
;; and are at the bottom of the Semantic Recoder API.
|
||||
|
||||
%package srecode-template-wy
|
||||
%provide srecode/srt-wy
|
||||
|
||||
%languagemode srecode-mode
|
||||
|
||||
%start template_file
|
||||
|
@ -46,6 +49,15 @@
|
|||
%put TEMPLATE summary "template <name>\\n <template definition>"
|
||||
%keyword SECTIONDICTIONARY "sectiondictionary"
|
||||
%put SECTIONDICTIONARY summary "sectiondictionary <name>\\n <dictionary entries>"
|
||||
|
||||
%keyword SECTION "section"
|
||||
%put SECTION summary
|
||||
"section <name>\\n <dictionary entries>\\n end"
|
||||
|
||||
%keyword END "end"
|
||||
%put END summary
|
||||
"section ... end"
|
||||
|
||||
%keyword PROMPT "prompt"
|
||||
%keyword DEFAULT "default"
|
||||
%keyword DEFAULTMACRO "defaultmacro"
|
||||
|
@ -62,7 +74,7 @@
|
|||
%token <separator> TEMPLATE_BLOCK "^----"
|
||||
|
||||
;;; Bland default types
|
||||
%type <property> ":\\(\\w\\|\\s_\\)*"
|
||||
%type <property> syntax ":\\(\\w\\|\\s_\\)*"
|
||||
%token <property> property
|
||||
|
||||
%type <symbol>
|
||||
|
@ -134,7 +146,7 @@ insertable-string
|
|||
template
|
||||
: TEMPLATE templatename opt-dynamic-arguments newline
|
||||
opt-string
|
||||
opt-section-dictionaries
|
||||
section-dictionary-list
|
||||
TEMPLATE_BLOCK newline
|
||||
opt-bind
|
||||
(FUNCTION-TAG $2 nil $3 :documentation $5 :code $7
|
||||
|
@ -165,29 +177,52 @@ opt-string
|
|||
| ()
|
||||
;
|
||||
|
||||
opt-section-dictionaries
|
||||
: () ;; EMPTY
|
||||
| section-dictionary-list
|
||||
;
|
||||
|
||||
section-dictionary-list
|
||||
: one-section-dictionary
|
||||
(list $1)
|
||||
| section-dictionary-list one-section-dictionary
|
||||
: ;; empty
|
||||
()
|
||||
| section-dictionary-list flat-section-dictionary
|
||||
(append $1 (list $2))
|
||||
| section-dictionary-list section-dictionary
|
||||
(append $1 (list $2))
|
||||
;
|
||||
|
||||
one-section-dictionary
|
||||
flat-section-dictionary
|
||||
: SECTIONDICTIONARY string newline
|
||||
variable-list
|
||||
flat-dictionary-entry-list
|
||||
(cons (read $2) $4)
|
||||
;
|
||||
|
||||
variable-list
|
||||
flat-dictionary-entry-list
|
||||
: ;; empty
|
||||
()
|
||||
| flat-dictionary-entry-list flat-dictionary-entry
|
||||
(append $1 $2)
|
||||
;
|
||||
|
||||
flat-dictionary-entry
|
||||
: variable
|
||||
(EXPANDTAG $1)
|
||||
| variable-list variable
|
||||
(append $1 (EXPANDTAG $2))
|
||||
;
|
||||
|
||||
section-dictionary
|
||||
: SECTION string newline
|
||||
dictionary-entry-list
|
||||
END newline
|
||||
(cons (read $2) $4)
|
||||
;
|
||||
|
||||
dictionary-entry-list
|
||||
: ;; empty
|
||||
()
|
||||
| dictionary-entry-list dictionary-entry
|
||||
(append $1 $2)
|
||||
;
|
||||
|
||||
dictionary-entry
|
||||
: variable
|
||||
(EXPANDTAG $1)
|
||||
| section-dictionary
|
||||
(list $1)
|
||||
;
|
||||
|
||||
opt-bind
|
||||
|
@ -232,4 +267,4 @@ It ignores whitespace, newlines and comments."
|
|||
semantic-lex-default-action
|
||||
)
|
||||
|
||||
;;; wisent-dot.wy ends here
|
||||
;;; srecode-template.wy ends here
|
||||
|
|
|
@ -34,7 +34,7 @@ GNULIB_MODULES='
|
|||
manywarnings mktime pselect pthread_sigmask readlink
|
||||
socklen stat-time stdalign stdarg stdbool stdio
|
||||
strftime strtoimax strtoumax symlink sys_stat
|
||||
sys_time time timespec-add timespec-sub utimens
|
||||
sys_time time timer-time timespec-add timespec-sub utimens
|
||||
warnings
|
||||
'
|
||||
|
||||
|
|
|
@ -610,7 +610,7 @@ An /etc/aliases entry redirects it to the real emacs-bug-tracker address.
|
|||
All discarded messages are stored in /var/lib/mailman/spam.
|
||||
If a non-spam message accidentally gets discarded, just do:
|
||||
|
||||
cat /var/lib/mailman/spam/not-really-spam.msg | /usr/lib/debbugs/receive
|
||||
/usr/lib/debbugs/receive < /var/lib/mailman/spam/not-really-spam.msg
|
||||
chown Debian-debbugs:Debian-debbugs /var/lib/debbugs/spool/incoming/*
|
||||
... check it works ...
|
||||
mv /var/lib/mailman/spam/not-really-spam.msg /var/lib/mailman/not-spam/
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
# BidiMirroring-6.1.0.txt
|
||||
# Date: 2011-12-20, 19:31:00 GMT [KW, LI]
|
||||
# BidiMirroring-6.2.0.txt
|
||||
# Date: 2012-05-15, 24:19:00 GMT [KW, LI]
|
||||
#
|
||||
# Bidi_Mirroring_Glyph Property
|
||||
#
|
||||
# This file is an informative contributory data file in the
|
||||
# Unicode Character Database.
|
||||
#
|
||||
# Copyright (c) 1991-2011 Unicode, Inc.
|
||||
# Copyright (c) 1991-2012 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# This data file lists characters that have the Bidi_Mirrored=Yes property
|
||||
# value, for which there is another Unicode character that typically has a glyph
|
||||
# that is the mirror image of the original character's glyph.
|
||||
#
|
||||
# The repertoire covered by the file is Unicode 6.1.0.
|
||||
# The repertoire covered by the file is Unicode 6.2.0.
|
||||
#
|
||||
# The file contains a list of lines with mappings from one code point
|
||||
# to another one for character-based mirroring.
|
||||
|
@ -30,16 +30,8 @@
|
|||
# characters exist with mirrored glyphs, are
|
||||
# listed as comments at the end of the file.
|
||||
#
|
||||
# Note: (2011-12-19) There is an inconsistency between the
|
||||
# following statement about the default value
|
||||
# of the Bidi_Mirroring_Glyph property and the
|
||||
# value of the @missing line for Bidi_Mirroring_Glyph in
|
||||
# PropertyValueAliases.txt. This inconsistency was discovered too
|
||||
# late in the release process to be resolved by
|
||||
# the UTC. The inconsistency will be resolved in a future revision.
|
||||
#
|
||||
# Formally, the default value of the Bidi_Mirroring_Glyph property
|
||||
# for each code point is the code point itself, unless a mapping to
|
||||
# for each code point is <none>, unless a mapping to
|
||||
# some other character is specified in this data file. When a code
|
||||
# point has the default value for the Bidi_Mirroring_Glyph property,
|
||||
# that means that no other character exists whose glyph is suitable
|
||||
|
@ -50,12 +42,13 @@
|
|||
#
|
||||
# This file was originally created by Markus Scherer.
|
||||
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
|
||||
# and for Unicode 6.1 by Ken Whistler and Laurentiu Iancu.
|
||||
# and for Unicode 6.1 and 6.2 by Ken Whistler and Laurentiu Iancu.
|
||||
#
|
||||
# ############################################################
|
||||
#
|
||||
# Property: Bidi_Mirroring_Glyph
|
||||
#
|
||||
# @missing: 0000..10FFFF; <none>
|
||||
|
||||
0028; 0029 # LEFT PARENTHESIS
|
||||
0029; 0028 # RIGHT PARENTHESIS
|
||||
|
|
|
@ -7190,6 +7190,7 @@
|
|||
20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;;
|
||||
20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
|
||||
20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
|
||||
20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
|
||||
|
@ -18703,8 +18704,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
|
|||
1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
|
||||
12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
|
||||
12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
|
||||
12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
|
||||
12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
|
||||
12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;216000;N;;;;;
|
||||
12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;432000;N;;;;;
|
||||
12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
|
||||
12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
|
||||
12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
|
||||
|
@ -18739,8 +18740,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
|
|||
12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
|
||||
12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
|
||||
12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
|
||||
12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;;
|
||||
12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;;
|
||||
12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
|
||||
12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
|
||||
1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
|
||||
|
|
|
@ -201,7 +201,7 @@ This is not recommended - see the comments in \`copy_autogen'.
|
|||
Please report any problems with this script to bug-gnu-emacs@gnu.org .
|
||||
EOF
|
||||
|
||||
exit 101 # Exit status 101 means tools were missing.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Your system has the required tools, running autoreconf..."
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
|
@ -95,11 +95,11 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
|
|||
$(top_srcdir)/m4/sys_socket_h.m4 \
|
||||
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
|
||||
$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
|
||||
$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
|
||||
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/utimbuf.m4 \
|
||||
$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \
|
||||
$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_t.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/timer_time.m4 $(top_srcdir)/m4/timespec.m4 \
|
||||
$(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
|
||||
$(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
|
||||
$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/warnings.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
|
@ -566,6 +566,7 @@ LIB_MATH = @LIB_MATH@
|
|||
LIB_PTHREAD = @LIB_PTHREAD@
|
||||
LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@
|
||||
LIB_STANDARD = @LIB_STANDARD@
|
||||
LIB_TIMER_TIME = @LIB_TIMER_TIME@
|
||||
LN_S = @LN_S@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
|
@ -682,6 +683,7 @@ REPLACE_PREAD = @REPLACE_PREAD@
|
|||
REPLACE_PRINTF = @REPLACE_PRINTF@
|
||||
REPLACE_PSELECT = @REPLACE_PSELECT@
|
||||
REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
|
||||
REPLACE_PTSNAME = @REPLACE_PTSNAME@
|
||||
REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
|
||||
REPLACE_PUTENV = @REPLACE_PUTENV@
|
||||
REPLACE_PWRITE = @REPLACE_PWRITE@
|
||||
|
@ -1632,6 +1634,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
|
|||
-e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
|
||||
-e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
|
||||
-e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
|
||||
-e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
|
||||
-e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
|
||||
-e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
|
||||
-e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
|
||||
|
|
1
autogen/aclocal.m4
vendored
1
autogen/aclocal.m4
vendored
|
@ -1043,6 +1043,7 @@ m4_include([m4/sys_stat_h.m4])
|
|||
m4_include([m4/sys_time_h.m4])
|
||||
m4_include([m4/time_h.m4])
|
||||
m4_include([m4/time_r.m4])
|
||||
m4_include([m4/timer_time.m4])
|
||||
m4_include([m4/timespec.m4])
|
||||
m4_include([m4/tm_gmtoff.m4])
|
||||
m4_include([m4/unistd_h.m4])
|
||||
|
|
|
@ -958,6 +958,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
/* Define to 1 if you have the tiff library (-ltiff). */
|
||||
#undef HAVE_TIFF
|
||||
|
||||
/* Define to 1 if you have the `timer_settime' function. */
|
||||
#undef HAVE_TIMER_SETTIME
|
||||
|
||||
/* Define if struct tm has the tm_gmtoff member. */
|
||||
#undef HAVE_TM_GMTOFF
|
||||
|
||||
|
@ -1519,7 +1522,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
|
||||
_GL_INLINE_HEADER_END contains useful stuff to put
|
||||
in the same include file, after uses of _GL_INLINE. */
|
||||
#if __GNUC__ ? __GNUC_STDC_INLINE__ : 199901L <= __STDC_VERSION__
|
||||
#if (__GNUC__ \
|
||||
? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
|
||||
: 199901L <= __STDC_VERSION__)
|
||||
# define _GL_INLINE inline
|
||||
# define _GL_EXTERN_INLINE extern inline
|
||||
#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
|
||||
|
@ -1536,7 +1541,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#endif
|
||||
|
||||
#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
|
||||
# if __GNUC_STDC_INLINE__
|
||||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA
|
||||
# else
|
||||
# define _GL_INLINE_HEADER_CONST_PRAGMA \
|
||||
|
|
305
autogen/configure
vendored
305
autogen/configure
vendored
|
@ -631,6 +631,7 @@ WINDOWS_64_BIT_OFF_T
|
|||
HAVE_UNISTD_H
|
||||
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
|
||||
NEXT_UNISTD_H
|
||||
LIB_TIMER_TIME
|
||||
PTHREAD_H_DEFINES_STRUCT_TIMESPEC
|
||||
SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
|
||||
TIME_H_DEFINES_STRUCT_TIMESPEC
|
||||
|
@ -908,6 +909,7 @@ REPLACE_REALLOC
|
|||
REPLACE_RANDOM_R
|
||||
REPLACE_PUTENV
|
||||
REPLACE_PTSNAME_R
|
||||
REPLACE_PTSNAME
|
||||
REPLACE_MKSTEMP
|
||||
REPLACE_MBTOWC
|
||||
REPLACE_MALLOC
|
||||
|
@ -5723,6 +5725,9 @@ else
|
|||
test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
|
||||
fi
|
||||
|
||||
# Avoid gnulib's threadlib module, as we do threads our own way.
|
||||
|
||||
|
||||
# Initialize gnulib right after choosing the compiler.
|
||||
|
||||
ac_ext=c
|
||||
|
@ -7006,6 +7011,7 @@ esac
|
|||
# Code from module sys_time:
|
||||
# Code from module time:
|
||||
# Code from module time_r:
|
||||
# Code from module timer-time:
|
||||
# Code from module timespec:
|
||||
# Code from module timespec-add:
|
||||
# Code from module timespec-sub:
|
||||
|
@ -7290,8 +7296,41 @@ fi
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
|
||||
$as_echo "$gl_cv_cc_nomfi_needed" >&6; }
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
|
||||
$as_echo_n "checking whether -Wuninitialized is supported... " >&6; }
|
||||
if test "${gl_cv_cc_uninitialized_supported+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
gl_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -Wuninitialized"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
gl_cv_cc_uninitialized_supported=yes
|
||||
else
|
||||
gl_cv_cc_uninitialized_supported=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
CFLAGS="$gl_save_CFLAGS"
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
|
||||
$as_echo "$gl_cv_cc_uninitialized_supported" >&6; }
|
||||
|
||||
fi
|
||||
|
||||
# List all gcc warning categories.
|
||||
gl_manywarn_set=
|
||||
for gl_manywarn_item in \
|
||||
-W \
|
||||
|
@ -7410,11 +7449,15 @@ $as_echo "$gl_cv_cc_nomfi_needed" >&6; }
|
|||
gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
|
||||
done
|
||||
|
||||
# Disable the missing-field-initializers warning if needed
|
||||
# Disable specific options as needed.
|
||||
if test "$gl_cv_cc_nomfi_needed" = yes; then
|
||||
gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
|
||||
fi
|
||||
|
||||
if test "$gl_cv_cc_uninitialized_supported" = no; then
|
||||
gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
|
||||
fi
|
||||
|
||||
ws=$gl_manywarn_set
|
||||
|
||||
|
||||
|
@ -8771,7 +8814,9 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
|
|||
|
||||
fi
|
||||
|
||||
ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default"
|
||||
ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include <signal.h>
|
||||
|
||||
"
|
||||
if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then :
|
||||
ac_have_decl=1
|
||||
else
|
||||
|
@ -8784,7 +8829,9 @@ _ACEOF
|
|||
|
||||
if test $ac_cv_have_decl_sys_siglist != yes; then
|
||||
# For Tru64, at least:
|
||||
ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$ac_includes_default"
|
||||
ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "#include <signal.h>
|
||||
|
||||
"
|
||||
if test "x$ac_cv_have_decl___sys_siglist" = x""yes; then :
|
||||
ac_have_decl=1
|
||||
else
|
||||
|
@ -9467,6 +9514,32 @@ else
|
|||
fi
|
||||
|
||||
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <AppKit/AppKit.h>
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
|
||||
; /* OK */
|
||||
#else
|
||||
#error "OSX 10.4 or newer required"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
ns_osx_have_104=yes
|
||||
else
|
||||
ns_osx_have_104=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <Foundation/NSObjCRuntime.h>
|
||||
|
@ -9484,6 +9557,9 @@ else
|
|||
ns_have_nsinteger=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
if test $ns_osx_have_104 = no; then
|
||||
as_fn_error "\`OSX 10.4 or newer is required'" "$LINENO" 5;
|
||||
fi
|
||||
if test $ns_have_nsinteger = yes; then
|
||||
|
||||
$as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h
|
||||
|
@ -10567,6 +10643,7 @@ $as_echo "#define HAVE_GTK3 1" >>confdefs.h
|
|||
|
||||
GTK_OBJ=emacsgtkfixed.o
|
||||
term_header=gtkutil.h
|
||||
USE_GTK_TOOLKIT="GTK3"
|
||||
else
|
||||
check_gtk2=yes
|
||||
gtk3_pkg_errors="$GTK_PKG_ERRORS "
|
||||
|
@ -10634,6 +10711,7 @@ $as_echo "no" >&6; }
|
|||
then
|
||||
as_fn_error "$gtk3_pkg_errors$GTK_PKG_ERRORS" "$LINENO" 5
|
||||
fi
|
||||
test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
|
||||
fi
|
||||
|
||||
if test x"$pkg_check_gtk" = xyes; then
|
||||
|
@ -16835,6 +16913,7 @@ _ACEOF
|
|||
REPLACE_MALLOC=0;
|
||||
REPLACE_MBTOWC=0;
|
||||
REPLACE_MKSTEMP=0;
|
||||
REPLACE_PTSNAME=0;
|
||||
REPLACE_PTSNAME_R=0;
|
||||
REPLACE_PUTENV=0;
|
||||
REPLACE_RANDOM_R=0;
|
||||
|
@ -19227,6 +19306,7 @@ done
|
|||
|
||||
|
||||
|
||||
|
||||
ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
|
||||
#include <signal.h>
|
||||
/* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
|
||||
|
@ -21617,6 +21697,69 @@ rm -f core conftest.err conftest.$ac_objext \
|
|||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sig_pselect" >&5
|
||||
$as_echo "$gl_cv_sig_pselect" >&6; }
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pselect detects invalid fds" >&5
|
||||
$as_echo_n "checking whether pselect detects invalid fds... " >&6; }
|
||||
if test "${gl_cv_func_pselect_detects_ebadf+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
|
||||
if test "$cross_compiling" = yes; then :
|
||||
|
||||
case "$host_os" in
|
||||
# Guess yes on glibc systems.
|
||||
*-gnu*) gl_cv_func_pselect_detects_ebadf="guessing yes" ;;
|
||||
# If we don't know, assume the worst.
|
||||
*) gl_cv_func_pselect_detects_ebadf="guessing no" ;;
|
||||
esac
|
||||
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#if HAVE_SYS_SELECT_H
|
||||
# include <sys/select.h>
|
||||
#endif
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
fd_set set;
|
||||
dup2(0, 16);
|
||||
FD_ZERO(&set);
|
||||
FD_SET(16, &set);
|
||||
close(16);
|
||||
struct timespec timeout;
|
||||
timeout.tv_sec = 0;
|
||||
timeout.tv_nsec = 5000;
|
||||
return pselect (17, &set, NULL, NULL, &timeout, NULL) != -1 || errno != EBADF;
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_run "$LINENO"; then :
|
||||
gl_cv_func_pselect_detects_ebadf=yes
|
||||
else
|
||||
gl_cv_func_pselect_detects_ebadf=no
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pselect_detects_ebadf" >&5
|
||||
$as_echo "$gl_cv_func_pselect_detects_ebadf" >&6; }
|
||||
case $gl_cv_func_pselect_detects_ebadf in
|
||||
*yes) ;;
|
||||
*) REPLACE_PSELECT=1 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test $ac_cv_func_pselect = no || test $gl_cv_sig_pselect = no; then
|
||||
|
@ -21653,11 +21796,61 @@ $as_echo "$gl_cv_sig_pselect" >&6; }
|
|||
LIB_PTHREAD_SIGMASK=
|
||||
|
||||
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
:
|
||||
|
||||
|
||||
if test "$gl_threads_api" = posix; then
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
:
|
||||
else
|
||||
if test -n "$LIBMULTITHREAD"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5
|
||||
$as_echo_n "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; }
|
||||
if test "${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
gl_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBMULTITHREAD"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes
|
||||
else
|
||||
gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS="$gl_save_LIBS"
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5
|
||||
$as_echo "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; }
|
||||
if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then
|
||||
LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD"
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
fi
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
REPLACE_PTHREAD_SIGMASK=1
|
||||
if test $ac_cv_func_pthread_sigmask = yes; then
|
||||
REPLACE_PTHREAD_SIGMASK=1
|
||||
else
|
||||
HAVE_PTHREAD_SIGMASK=0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
@ -23576,6 +23769,102 @@ $as_echo "$gl_cv_time_r_posix" >&6; }
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LIB_TIMER_TIME=
|
||||
|
||||
gl_saved_libs=$LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing timer_settime" >&5
|
||||
$as_echo_n "checking for library containing timer_settime... " >&6; }
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_func_search_save_LIBS=$LIBS
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char timer_settime ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return timer_settime ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
for ac_lib in '' rt posix4; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
ac_res=-l$ac_lib
|
||||
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
||||
fi
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_search_timer_settime=$ac_res
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test "${ac_cv_search_timer_settime+set}" = set; then :
|
||||
|
||||
else
|
||||
ac_cv_search_timer_settime=no
|
||||
fi
|
||||
rm conftest.$ac_ext
|
||||
LIBS=$ac_func_search_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_timer_settime" >&5
|
||||
$as_echo "$ac_cv_search_timer_settime" >&6; }
|
||||
ac_res=$ac_cv_search_timer_settime
|
||||
if test "$ac_res" != no; then :
|
||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
||||
test "$ac_cv_search_timer_settime" = "none required" ||
|
||||
LIB_TIMER_TIME=$ac_cv_search_timer_settime
|
||||
fi
|
||||
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || (__GLIBC__ > 2)) \
|
||||
&& !defined __UCLIBC__
|
||||
Thread emulation available
|
||||
#endif
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "Thread" >/dev/null 2>&1; then :
|
||||
LIB_TIMER_TIME="$LIB_TIMER_TIME $LIBMULTITHREAD"
|
||||
fi
|
||||
rm -f conftest*
|
||||
|
||||
for ac_func in timer_settime
|
||||
do :
|
||||
ac_fn_c_check_func "$LINENO" "timer_settime" "ac_cv_func_timer_settime"
|
||||
if test "x$ac_cv_func_timer_settime" = x""yes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_TIMER_SETTIME 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
LIBS=$gl_saved_libs
|
||||
|
||||
:
|
||||
|
||||
|
||||
|
@ -24293,7 +24582,7 @@ fi
|
|||
#### It makes printing result more understandable as using GTK sets
|
||||
#### toolkit_scroll_bars to yes by default.
|
||||
if test "${HAVE_GTK}" = "yes"; then
|
||||
USE_X_TOOLKIT=GTK
|
||||
USE_X_TOOLKIT="$USE_GTK_TOOLKIT"
|
||||
fi
|
||||
|
||||
echo "
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
## regenerate configure and will fail if you do not have the required
|
||||
## tools. You will have to run this script again.
|
||||
|
||||
test -d autogen && cd autogen
|
||||
test ! -d autogen || cd autogen || exit
|
||||
|
||||
if test ! -e config.in; then
|
||||
echo "Cannot find autogen/ directory."
|
||||
|
@ -16,11 +16,12 @@ if test ! -e config.in; then
|
|||
fi
|
||||
|
||||
## Order implied by top-level Makefile's rules, for time-stamps.
|
||||
cp compile config.guess config.sub depcomp install-sh missing ../build-aux
|
||||
cp aclocal.m4 ../
|
||||
cp configure ../
|
||||
touch ../src/stamp-h.in
|
||||
cp config.in ../src/
|
||||
cp Makefile.in ../lib/
|
||||
cp -f compile config.guess config.sub depcomp install-sh missing \
|
||||
../build-aux &&
|
||||
cp aclocal.m4 ../ &&
|
||||
cp configure ../ &&
|
||||
touch ../src/stamp-h.in &&
|
||||
cp config.in ../src/ &&
|
||||
cp Makefile.in ../lib/ &&
|
||||
|
||||
echo "You can now run configure"
|
||||
|
|
30
configure.ac
30
configure.ac
|
@ -572,7 +572,11 @@ else
|
|||
test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
|
||||
fi
|
||||
|
||||
# Avoid gnulib's threadlib module, as we do threads our own way.
|
||||
AC_DEFUN([gl_THREADLIB])
|
||||
|
||||
# Initialize gnulib right after choosing the compiler.
|
||||
dnl Amongst other things, this sets AR and ARFLAGS.
|
||||
gl_EARLY
|
||||
|
||||
# It's helpful to have C macros available to GDB, so prefer -g3 to -g
|
||||
|
@ -1281,10 +1285,12 @@ dnl On Solaris 8 there's a compilation warning for term.h because
|
|||
dnl it doesn't define `bool'.
|
||||
AC_CHECK_HEADERS(term.h, , , -)
|
||||
AC_HEADER_TIME
|
||||
AC_CHECK_DECLS([sys_siglist])
|
||||
AC_CHECK_DECLS([sys_siglist], [], [], [[#include <signal.h>
|
||||
]])
|
||||
if test $ac_cv_have_decl_sys_siglist != yes; then
|
||||
# For Tru64, at least:
|
||||
AC_CHECK_DECLS([__sys_siglist])
|
||||
AC_CHECK_DECLS([__sys_siglist], [], [], [[#include <signal.h>
|
||||
]])
|
||||
if test $ac_cv_have_decl___sys_siglist = yes; then
|
||||
AC_DEFINE(sys_siglist, __sys_siglist,
|
||||
[Define to any substitute for sys_siglist.])
|
||||
|
@ -1505,10 +1511,26 @@ fail;
|
|||
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
|
||||
[AC_MSG_ERROR([`--with-ns' was specified, but the include
|
||||
files are missing or cannot be compiled.])])
|
||||
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
|
||||
[
|
||||
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
|
||||
; /* OK */
|
||||
#else
|
||||
#error "OSX 10.4 or newer required"
|
||||
#endif
|
||||
#endif
|
||||
])],
|
||||
ns_osx_have_104=yes,
|
||||
ns_osx_have_104=no)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
|
||||
[NSInteger i;])],
|
||||
ns_have_nsinteger=yes,
|
||||
ns_have_nsinteger=no)
|
||||
if test $ns_osx_have_104 = no; then
|
||||
AC_MSG_ERROR([`OSX 10.4 or newer is required']);
|
||||
fi
|
||||
if test $ns_have_nsinteger = yes; then
|
||||
AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
|
||||
fi
|
||||
|
@ -1943,6 +1965,7 @@ if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOO
|
|||
AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
|
||||
GTK_OBJ=emacsgtkfixed.o
|
||||
term_header=gtkutil.h
|
||||
USE_GTK_TOOLKIT="GTK3"
|
||||
else
|
||||
check_gtk2=yes
|
||||
gtk3_pkg_errors="$GTK_PKG_ERRORS "
|
||||
|
@ -1961,6 +1984,7 @@ if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
|
|||
then
|
||||
AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
|
||||
fi
|
||||
test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
|
||||
fi
|
||||
|
||||
if test x"$pkg_check_gtk" = xyes; then
|
||||
|
@ -4468,7 +4492,7 @@ End:
|
|||
#### It makes printing result more understandable as using GTK sets
|
||||
#### toolkit_scroll_bars to yes by default.
|
||||
if test "${HAVE_GTK}" = "yes"; then
|
||||
USE_X_TOOLKIT=GTK
|
||||
USE_X_TOOLKIT="$USE_GTK_TOOLKIT"
|
||||
fi
|
||||
|
||||
echo "
|
||||
|
|
|
@ -1,3 +1,68 @@
|
|||
2012-10-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar.texi (Writing Calendar Files): Tweak week descriptions.
|
||||
Mention cal-tex-cursor-week2-summary.
|
||||
|
||||
2012-10-06 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* mini.texi (Passwords): Fix typo.
|
||||
|
||||
2012-10-02 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* maintaining.texi (VC Directory Commands):
|
||||
Remove duplicate `q' entry. (Bug#12553)
|
||||
|
||||
2012-09-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* killing.texi (Rectangles): Document copy-rectangle-as-kill.
|
||||
|
||||
* search.texi (Special Isearch): Document the lax space search
|
||||
feature and M-s SPC.
|
||||
(Regexp Search): Move main search-whitespace-regexp description to
|
||||
Special Isearch.
|
||||
(Replace): Document replace-lax-whitespace.
|
||||
|
||||
* basic.texi (Position Info): Document C-u M-=.
|
||||
(Moving Point): Document move-to-column.
|
||||
|
||||
* display.texi (Useless Whitespace): Add delete-trailing-lines.
|
||||
|
||||
* misc.texi (emacsclient Options): Document the effect of
|
||||
initial-buffer-choice on client frames. Document server-auth-dir.
|
||||
Do not document server-host, which is bad security practice.
|
||||
|
||||
* building.texi (Lisp Libraries): Docstring lookups can trigger
|
||||
autoloading. Document help-enable-auto-load.
|
||||
|
||||
* mini.texi (Yes or No Prompts): New node.
|
||||
|
||||
* ack.texi (Acknowledgments): Remove obsolete packages.
|
||||
|
||||
2012-09-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cal-xtra.texi (Advanced Calendar/Diary Usage):
|
||||
Rename the section to be more general.
|
||||
* emacs.texi: Update menu.
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffers.texi (Misc Buffer): Replace toggle-read-only with
|
||||
read-only-mode.
|
||||
|
||||
* files.texi (Visiting): Likewise.
|
||||
|
||||
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* trouble.texi (Crashing): Document ulimit -c.
|
||||
|
||||
2012-09-21 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* trouble.texi (Crashing): Document addr2line.
|
||||
|
||||
2012-09-19 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* killing.texi (Yanking): Minor clarification (Bug#12469).
|
||||
|
||||
2012-09-17 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* building.texi (GDB User Interface Layout): Remove reference to
|
||||
|
|
|
@ -644,10 +644,9 @@ statically scoped Emacs lisp.
|
|||
@item
|
||||
Daniel LaLiberte wrote @file{edebug.el}, a source-level debugger for
|
||||
Emacs Lisp; @file{cl-specs.el}, specifications to help @code{edebug}
|
||||
debug code written using David Gillespie's Common Lisp support;
|
||||
@file{cust-print.el}, a customizable package for printing lisp
|
||||
objects; and @file{isearch.el}, Emacs's incremental search minor mode.
|
||||
He also co-wrote @file{hideif.el} (q.v.@:).
|
||||
debug code written using David Gillespie's Common Lisp support; and
|
||||
@file{isearch.el}, Emacs's incremental search minor mode. He also
|
||||
co-wrote @file{hideif.el} (q.v.@:).
|
||||
|
||||
@item
|
||||
Karl Landstrom and Daniel Colascione wrote @file{js.el}, a mode for
|
||||
|
@ -1301,15 +1300,14 @@ providing electric accent keys.
|
|||
Colin Walters wrote Ibuffer, an enhanced buffer menu.
|
||||
|
||||
@item
|
||||
Barry Warsaw wrote @file{assoc.el}, a set of utility functions for
|
||||
working with association lists; @file{cc-mode.el}, a mode for editing
|
||||
C, C@t{++}, and Java code, based on earlier work by Dave Detlefs,
|
||||
Stewart Clamen, and Richard Stallman; @file{elp.el}, a profiler for
|
||||
Emacs Lisp programs; @file{man.el}, a mode for reading Unix manual
|
||||
pages; @file{regi.el}, providing an AWK-like functionality for use in
|
||||
lisp programs; @file{reporter.el}, providing customizable bug
|
||||
reporting for lisp packages; and @file{supercite.el}, a minor mode for
|
||||
quoting sections of mail messages and news articles.
|
||||
Barry Warsaw wrote @file{cc-mode.el}, a mode for editing C, C@t{++},
|
||||
and Java code, based on earlier work by Dave Detlefs, Stewart Clamen,
|
||||
and Richard Stallman; @file{elp.el}, a profiler for Emacs Lisp
|
||||
programs; @file{man.el}, a mode for reading Unix manual pages;
|
||||
@file{regi.el}, providing an AWK-like functionality for use in lisp
|
||||
programs; @file{reporter.el}, providing customizable bug reporting for
|
||||
lisp packages; and @file{supercite.el}, a minor mode for quoting
|
||||
sections of mail messages and news articles.
|
||||
|
||||
@item
|
||||
Christoph Wedler wrote @file{antlr-mode.el}, a major mode for ANTLR
|
||||
|
@ -1351,9 +1349,8 @@ Directory Client; and @code{eshell}, a command shell implemented
|
|||
entirely in Emacs Lisp. He also contributed to Org mode (q.v.@:).
|
||||
|
||||
@item
|
||||
Mike Williams wrote @file{mouse-sel.el}, providing enhanced mouse
|
||||
selection; and @file{thingatpt.el}, a library of functions for finding
|
||||
the ``thing'' (word, line, s-expression) containing point.
|
||||
Mike Williams wrote @file{thingatpt.el}, a library of functions for
|
||||
finding the ``thing'' (word, line, s-expression) at point.
|
||||
|
||||
@item
|
||||
Roland Winkler wrote @file{proced.el}, a system process editor.
|
||||
|
|
|
@ -267,7 +267,8 @@ necessary (@code{scroll-up-command}). @xref{Scrolling}.
|
|||
Scroll one screen backward, and move point onscreen if necessary
|
||||
(@code{scroll-down-command}). @xref{Scrolling}.
|
||||
|
||||
@item M-x goto-char
|
||||
@item M-g c
|
||||
@kindex M-g c
|
||||
@findex goto-char
|
||||
Read a number @var{n} and move point to buffer position @var{n}.
|
||||
Position 1 is the beginning of the buffer.
|
||||
|
@ -285,6 +286,13 @@ also specify @var{n} by giving @kbd{M-g M-g} a numeric prefix argument.
|
|||
@xref{Select Buffer}, for the behavior of @kbd{M-g M-g} when you give it
|
||||
a plain prefix argument.
|
||||
|
||||
@item M-g @key{TAB}
|
||||
@kindex M-g TAB
|
||||
@findex move-to-column
|
||||
Read a number @var{n} and move to column @var{n} in the current line.
|
||||
Column 0 is the leftmost column. If called with a prefix argument,
|
||||
move to the column number specified by the argument's numeric value.
|
||||
|
||||
@item C-x C-n
|
||||
@kindex C-x C-n
|
||||
@findex set-goal-column
|
||||
|
@ -619,12 +627,16 @@ narrowed region and the line number relative to the whole buffer.
|
|||
|
||||
@kindex M-=
|
||||
@findex count-words-region
|
||||
@findex count-words
|
||||
@kbd{M-=} (@code{count-words-region}) displays a message reporting
|
||||
the number of lines, words, and characters in the region. @kbd{M-x
|
||||
count-words} displays a similar message for the entire buffer, or for
|
||||
the region if the region is @dfn{active}. @xref{Mark}, for an
|
||||
explanation of the region.
|
||||
the number of lines, words, and characters in the region
|
||||
(@pxref{Mark}, for an explanation of the region). With a prefix
|
||||
argument, @kbd{C-u M-=}, the command displays a count for the entire
|
||||
buffer.
|
||||
|
||||
@findex count-words
|
||||
The command @kbd{M-x count-words} does the same job, but with a
|
||||
different calling convention. It displays a count for the region if
|
||||
the region is active, and for the buffer otherwise.
|
||||
|
||||
@kindex C-x =
|
||||
@findex what-cursor-position
|
||||
|
|
|
@ -212,7 +212,7 @@ unless they visit files: such buffers are used internally by Emacs.
|
|||
|
||||
@table @kbd
|
||||
@item C-x C-q
|
||||
Toggle read-only status of buffer (@code{toggle-read-only}).
|
||||
Toggle read-only status of buffer (@code{read-only-mode}).
|
||||
@item M-x rename-buffer @key{RET} @var{name} @key{RET}
|
||||
Change the name of the current buffer.
|
||||
@item M-x rename-uniquely
|
||||
|
@ -231,9 +231,9 @@ buffers are usually made by subsystems such as Dired and Rmail that
|
|||
have special commands to operate on the text; also by visiting a file
|
||||
whose access control says you cannot write it.
|
||||
|
||||
@findex toggle-read-only
|
||||
@findex read-only-mode
|
||||
@vindex view-read-only
|
||||
The command @kbd{C-x C-q} (@code{toggle-read-only}) makes a read-only
|
||||
The command @kbd{C-x C-q} (@code{read-only-mode}) makes a read-only
|
||||
buffer writable, and makes a writable buffer read-only. This works by
|
||||
setting the variable @code{buffer-read-only}, which has a local value
|
||||
in each buffer and makes the buffer read-only if its value is
|
||||
|
|
|
@ -1393,13 +1393,21 @@ putting a line like this in your init file (@pxref{Init File}):
|
|||
@end example
|
||||
|
||||
@cindex autoload
|
||||
Some commands are @dfn{autoloaded}: when you run them, Emacs
|
||||
Some commands are @dfn{autoloaded}; when you run them, Emacs
|
||||
automatically loads the associated library first. For instance, the
|
||||
@kbd{M-x compile} command (@pxref{Compilation}) is autoloaded; if you
|
||||
call it, Emacs automatically loads the @code{compile} library first.
|
||||
In contrast, the command @kbd{M-x recompile} is not autoloaded, so it
|
||||
is unavailable until you load the @code{compile} library.
|
||||
|
||||
@vindex help-enable-auto-load
|
||||
Automatic loading can also occur when you look up the documentation
|
||||
of an autoloaded command (@pxref{Name Help}), if the documentation
|
||||
refers to other functions and variables in its library (loading the
|
||||
library lets Emacs properly set up the hyperlinks in the @file{*Help*}
|
||||
buffer). To disable this feature, change the variable
|
||||
@code{help-enable-auto-load} to @code{nil}.
|
||||
|
||||
@vindex load-dangerous-libraries
|
||||
@cindex Lisp files byte-compiled by XEmacs
|
||||
By default, Emacs refuses to load compiled Lisp files which were
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
|
||||
@c Moved here from the Emacs Lisp Reference Manual, 2005-03-26.
|
||||
@node Advanced Calendar/Diary Usage
|
||||
@section Customizing the Calendar and Diary
|
||||
@section More advanced features of the Calendar and Diary
|
||||
|
||||
There are many ways in which you can customize the calendar and
|
||||
diary to suit your personal tastes.
|
||||
This section describes some of the more advanced/specialized
|
||||
features of the calendar and diary. It starts with some of the
|
||||
many ways in which you can customize the calendar and diary to suit
|
||||
your personal tastes.
|
||||
|
||||
@menu
|
||||
* Calendar Customizing:: Calendar layout and hooks.
|
||||
|
|
|
@ -396,17 +396,20 @@ Generate a sideways-printing one-month calendar
|
|||
Generate a one-day calendar
|
||||
(@code{cal-tex-cursor-day}).
|
||||
@item t w 1
|
||||
Generate a one-page calendar for one week
|
||||
Generate a one-page calendar for one week, with hours
|
||||
(@code{cal-tex-cursor-week}).
|
||||
@item t w 2
|
||||
Generate a two-page calendar for one week
|
||||
Generate a two-page calendar for one week, with hours
|
||||
(@code{cal-tex-cursor-week2}).
|
||||
@item t w 3
|
||||
Generate an ISO-style calendar for one week
|
||||
Generate an ISO-style calendar for one week, without hours
|
||||
(@code{cal-tex-cursor-week-iso}).
|
||||
@item t w 4
|
||||
Generate a calendar for one Monday-starting week
|
||||
Generate a calendar for one Monday-starting week, with hours
|
||||
(@code{cal-tex-cursor-week-monday}).
|
||||
@item t w W
|
||||
Generate a two-page calendar for one week, without hours
|
||||
(@code{cal-tex-cursor-week2-summary}).
|
||||
@item t f w
|
||||
Generate a Filofax-style two-weeks-at-a-glance calendar
|
||||
(@code{cal-tex-cursor-filofax-2week}).
|
||||
|
|
|
@ -1044,9 +1044,9 @@ the left fringe, but no arrow bitmaps, use @code{((top . left)
|
|||
@cindex whitespace, trailing
|
||||
@vindex show-trailing-whitespace
|
||||
It is easy to leave unnecessary spaces at the end of a line, or
|
||||
empty lines at the end of a file, without realizing it. In most
|
||||
cases, this @dfn{trailing whitespace} has no effect, but there are
|
||||
special circumstances where it matters, and it can be a nuisance.
|
||||
empty lines at the end of a buffer, without realizing it. In most
|
||||
cases, this @dfn{trailing whitespace} has no effect, but sometimes it
|
||||
can be a nuisance.
|
||||
|
||||
You can make trailing whitespace at the end of a line visible by
|
||||
setting the buffer-local variable @code{show-trailing-whitespace} to
|
||||
|
@ -1061,9 +1061,13 @@ the location of point is enough to show you that the spaces are
|
|||
present.
|
||||
|
||||
@findex delete-trailing-whitespace
|
||||
@vindex delete-trailing-lines
|
||||
Type @kbd{M-x delete-trailing-whitespace} to delete all trailing
|
||||
whitespace within the buffer. If the region is active, it deletes all
|
||||
trailing whitespace in the region instead.
|
||||
whitespace. This command deletes all extra spaces at the end of each
|
||||
line in the buffer, and all empty lines at the end of the buffer; to
|
||||
ignore the latter, change the variable @code{delete-trailing-lines} to
|
||||
@code{nil}. If the region is active, the command instead deletes
|
||||
extra spaces at the end of each line in the region.
|
||||
|
||||
@vindex indicate-empty-lines
|
||||
@cindex unused lines
|
||||
|
|
|
@ -267,6 +267,7 @@ The Minibuffer
|
|||
* Minibuffer History:: Reusing recent minibuffer arguments.
|
||||
* Repetition:: Re-executing commands that used the minibuffer.
|
||||
* Passwords:: Entering passwords in the echo area.
|
||||
* Yes or No Prompts:: Replying yes or no in the echo area.
|
||||
|
||||
Completion
|
||||
|
||||
|
@ -953,7 +954,7 @@ The Diary
|
|||
* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
|
||||
|
||||
@ifnottex
|
||||
Customizing the Calendar and Diary
|
||||
More advanced features of the Calendar and Diary
|
||||
|
||||
* Calendar Customizing:: Calendar layout and hooks.
|
||||
* Holiday Customizing:: Defining your own holidays.
|
||||
|
|
|
@ -79,11 +79,6 @@ non-@code{nil} value. (In that case, even if you specify one or more
|
|||
files on the command line, Emacs opens but does not display them.)
|
||||
The value of @code{initial-buffer-choice} should be the name of
|
||||
the desired file or directory.
|
||||
@ignore
|
||||
@c I do not think this should be mentioned. AFAICS it is just a dodge
|
||||
@c around inhibit-startup-screen not being settable on a site-wide basis.
|
||||
or @code{t}, which means to display the @file{*scratch*} buffer.
|
||||
@end ignore
|
||||
|
||||
@node Exiting
|
||||
@section Exiting Emacs
|
||||
|
|
|
@ -246,7 +246,7 @@ Archives}, for more about these features.
|
|||
or that is marked read-only, Emacs makes the buffer read-only too, so
|
||||
that you won't go ahead and make changes that you'll have trouble
|
||||
saving afterward. You can make the buffer writable with @kbd{C-x C-q}
|
||||
(@code{toggle-read-only}). @xref{Misc Buffer}.
|
||||
(@code{read-only-mode}). @xref{Misc Buffer}.
|
||||
|
||||
@kindex C-x C-r
|
||||
@findex find-file-read-only
|
||||
|
|
|
@ -243,7 +243,7 @@ by the innermost Lisp expression in the buffer around point,
|
|||
(That name appears as the default while you enter the argument.) For
|
||||
example, if point is located following the text @samp{(make-vector
|
||||
(car x)}, the innermost list containing point is the one that starts
|
||||
with @samp{(make-vector}, so @kbd{C-h f @key{RET}} will describe the
|
||||
with @samp{(make-vector}, so @kbd{C-h f @key{RET}} describes the
|
||||
function @code{make-vector}.
|
||||
|
||||
@kbd{C-h f} is also useful just to verify that you spelled a
|
||||
|
|
|
@ -289,7 +289,7 @@ e.g. @kbd{C-u 4 C-y} reinserts the fourth most recent kill.
|
|||
|
||||
On graphical displays, @kbd{C-y} first checks if another application
|
||||
has placed any text in the system clipboard more recently than the
|
||||
last Emacs kill. If so, it inserts the text in the clipboard instead.
|
||||
last Emacs kill. If so, it inserts the clipboard's text instead.
|
||||
Thus, Emacs effectively treats ``cut'' or ``copy'' clipboard
|
||||
operations performed in other applications like Emacs kills, except
|
||||
that they are not recorded in the kill ring. @xref{Cut and Paste},
|
||||
|
@ -709,6 +709,9 @@ rectangle, depending on the command that uses them.
|
|||
@item C-x r k
|
||||
Kill the text of the region-rectangle, saving its contents as the
|
||||
``last killed rectangle'' (@code{kill-rectangle}).
|
||||
@item C-x r M-w
|
||||
Save the text of the region-rectangle as the ``last killed rectangle''
|
||||
(@code{copy-rectangle-as-kill}).
|
||||
@item C-x r d
|
||||
Delete the text of the region-rectangle (@code{delete-rectangle}).
|
||||
@item C-x r y
|
||||
|
@ -757,6 +760,12 @@ yanking a rectangle is so different from yanking linear text that
|
|||
different yank commands have to be used. Yank-popping is not defined
|
||||
for rectangles.
|
||||
|
||||
@kindex C-x r M-w
|
||||
@findex copy-rectangle-as-kill
|
||||
@kbd{C-x r M-w} (@code{copy-rectangle-as-kill}) is the equivalent of
|
||||
@kbd{M-w} for rectangles: it records the rectangle as the ``last
|
||||
killed rectangle'', without deleting the text from the buffer.
|
||||
|
||||
@kindex C-x r y
|
||||
@findex yank-rectangle
|
||||
To yank the last killed rectangle, type @kbd{C-x r y}
|
||||
|
|
|
@ -1186,11 +1186,8 @@ point is on a directory entry, mark all files in that directory tree
|
|||
(@code{vc-dir-mark-all-files}). With a prefix argument, mark all
|
||||
listed files and directories.
|
||||
|
||||
@kindex q @r{(VC Directory)}
|
||||
@findex quit-window
|
||||
@item q
|
||||
Bury the VC Directory buffer, and delete its window if the window was
|
||||
created just for that buffer.
|
||||
Quit the VC Directory buffer, and bury it (@code{quit-window}).
|
||||
|
||||
@item u
|
||||
Unmark the file or directory on the current line. If the region is
|
||||
|
@ -1205,9 +1202,6 @@ files and directories.
|
|||
@item x
|
||||
Hide files with @samp{up-to-date} status
|
||||
(@code{vc-dir-hide-up-to-date}).
|
||||
|
||||
@item q
|
||||
Quit the VC Directory buffer, and bury it (@code{quit-window}).
|
||||
@end table
|
||||
|
||||
@findex vc-dir-mark
|
||||
|
|
|
@ -45,6 +45,7 @@ do not echo.
|
|||
* Minibuffer History:: Reusing recent minibuffer arguments.
|
||||
* Repetition:: Re-executing commands that used the minibuffer.
|
||||
* Passwords:: Entering passwords in the echo area.
|
||||
* Yes or No Prompts:: Replying yes or no in the echo area.
|
||||
@end menu
|
||||
|
||||
@node Minibuffer File
|
||||
|
@ -726,10 +727,60 @@ completion, and you cannot change windows or perform any other action
|
|||
with Emacs until you have submitted the password.
|
||||
|
||||
While you are typing the password, you may press @key{DEL} to delete
|
||||
backwards, removing the last character entered. @key{C-u} deletes
|
||||
backwards, removing the last character entered. @kbd{C-u} deletes
|
||||
everything you have typed so far. @kbd{C-g} quits the password prompt
|
||||
(@pxref{Quitting}). @kbd{C-y} inserts the current kill into the
|
||||
password (@pxref{Killing}). You may type either @key{RET} or
|
||||
@key{ESC} to submit the password. Any other self-inserting character
|
||||
key inserts the associated character into the password, and all other
|
||||
input is ignored.
|
||||
|
||||
@node Yes or No Prompts
|
||||
@section Yes or No Prompts
|
||||
|
||||
An Emacs command may require you to answer a ``yes or no'' question
|
||||
during the course of its execution. Such queries come in two main
|
||||
varieties.
|
||||
|
||||
@cindex y or n prompt
|
||||
For the first type of ``yes or no'' query, the prompt ends with
|
||||
@samp{(y or n)}. Such a query does not actually use the minibuffer;
|
||||
the prompt appears in the echo area, and you answer by typing either
|
||||
@samp{y} or @samp{n}, which immediately delivers the response. For
|
||||
example, if you type @kbd{C-x C-w} (@kbd{write-file}) to save a
|
||||
buffer, and enter the name of an existing file, Emacs issues a prompt
|
||||
like this:
|
||||
|
||||
@smallexample
|
||||
File `foo.el' exists; overwrite? (y or n)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
Because this query does not actually use the minibuffer, the usual
|
||||
minibuffer editing commands cannot be used. However, you can perform
|
||||
some window scrolling operations while the query is active: @kbd{C-l}
|
||||
recenters the selected window; @kbd{M-v} (or @key{PageDown} or
|
||||
@key{next}) scrolls forward; @kbd{C-v} (or @key{PageUp}, or
|
||||
@key{prior}) scrolls backward; @kbd{C-M-v} scrolls forward in the next
|
||||
window; and @kbd{C-M-S-v} scrolls backward in the next window. Typing
|
||||
@kbd{C-g} dismisses the query, and quits the command that issued it
|
||||
(@pxref{Quitting}).
|
||||
|
||||
@cindex yes or no prompt
|
||||
The second type of ``yes or no'' query is typically employed if
|
||||
giving the wrong answer would have serious consequences; it uses the
|
||||
minibuffer, and features a prompt ending with @samp{(yes or no)}. For
|
||||
example, if you invoke @kbd{C-x k} (@code{kill-buffer}) on a
|
||||
file-visiting buffer with unsaved changes, Emacs activates the
|
||||
minibuffer with a prompt like this:
|
||||
|
||||
@smallexample
|
||||
Buffer foo.el modified; kill anyway? (yes or no)
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
To answer, you must type @samp{yes} or @samp{no} into the minibuffer,
|
||||
followed by @key{RET}. The minibuffer behaves as described in the
|
||||
previous sections; you can switch to another window with @kbd{C-x o},
|
||||
use the history commands @kbd{M-p} and @kbd{M-f}, etc. Type @kbd{C-g}
|
||||
to quit the minibuffer and the querying command.
|
||||
|
|
|
@ -411,6 +411,10 @@ m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to
|
|||
select the slice.
|
||||
@c ??? How does this work?
|
||||
|
||||
The most convenient way is to set the optimal slice by using
|
||||
BoundingBox information automatically determined from the document by
|
||||
typing @kbd{s b} (@code{doc-view-set-slice-using-mouse}).
|
||||
|
||||
@findex doc-view-reset-slice
|
||||
To cancel the selected slice, type @kbd{s r}
|
||||
(@code{doc-view-reset-slice}). Then DocView shows the entire page
|
||||
|
@ -1505,15 +1509,11 @@ precedence.
|
|||
@cindex client frame
|
||||
@item -c
|
||||
Create a new graphical @dfn{client frame}, instead of using an
|
||||
existing Emacs frame. If you omit a filename argument while supplying
|
||||
the @samp{-c} option, the new frame displays the @file{*scratch*}
|
||||
buffer (@pxref{Buffers}). See below for the special behavior of
|
||||
@kbd{C-x C-c} in a client frame.
|
||||
|
||||
If Emacs is unable to create a new graphical frame (e.g.@: if it is
|
||||
unable to connect to the X server), it tries to create a text terminal
|
||||
client frame, as though you had supplied the @samp{-t} option instead
|
||||
(see below).
|
||||
existing Emacs frame. See below for the special behavior of @kbd{C-x
|
||||
C-c} in a client frame. If Emacs cannot create a new graphical frame
|
||||
(e.g.@: if it cannot connect to the X server), it tries to create a
|
||||
text terminal client frame, as though you had supplied the @samp{-t}
|
||||
option instead.
|
||||
|
||||
On MS-Windows, a single Emacs session cannot display frames on both
|
||||
graphical and text terminals, nor on multiple text terminals. Thus,
|
||||
|
@ -1521,6 +1521,11 @@ if the Emacs server is running on a text terminal, the @samp{-c}
|
|||
option, like the @samp{-t} option, creates a new frame in the server's
|
||||
current text terminal. @xref{Windows Startup}.
|
||||
|
||||
If you omit a filename argument while supplying the @samp{-c} option,
|
||||
the new frame displays the @file{*scratch*} buffer by default. If
|
||||
@code{initial-buffer-choice} is a string (@pxref{Entering Emacs}), the
|
||||
new frame displays that file or directory instead.
|
||||
|
||||
@item -F @var{alist}
|
||||
@itemx --frame-parameters=@var{alist}
|
||||
Set the parameters for a newly-created graphical frame
|
||||
|
@ -1541,38 +1546,24 @@ evaluate, @emph{not} as a list of files to visit.
|
|||
@item -f @var{server-file}
|
||||
@itemx --server-file=@var{server-file}
|
||||
@cindex @env{EMACS_SERVER_FILE} environment variable
|
||||
@cindex server file
|
||||
@vindex server-use-tcp
|
||||
@vindex server-host
|
||||
Specify a @dfn{server file} for connecting to an Emacs server via TCP.
|
||||
|
||||
An Emacs server usually uses an operating system feature called a
|
||||
``local socket'' to listen for connections. Some operating systems,
|
||||
such as Microsoft Windows, do not support local sockets; in that case,
|
||||
Emacs uses TCP instead. When you start the Emacs server, Emacs
|
||||
creates a server file containing some TCP information that
|
||||
@command{emacsclient} needs for making the connection. By default,
|
||||
the server file is in @file{~/.emacs.d/server/}. On Microsoft
|
||||
Windows, if @command{emacsclient} does not find the server file there,
|
||||
it looks in the @file{.emacs.d/server/} subdirectory of the directory
|
||||
pointed to by the @env{APPDATA} environment variable. You can tell
|
||||
@command{emacsclient} to use a specific server file with the @samp{-f}
|
||||
or @samp{--server-file} option, or by setting the
|
||||
@env{EMACS_SERVER_FILE} environment variable.
|
||||
|
||||
Even if local sockets are available, you can tell Emacs to use TCP by
|
||||
setting the variable @code{server-use-tcp} to @code{t}. One advantage
|
||||
of TCP is that the server can accept connections from remote machines.
|
||||
For this to work, you must (i) set the variable @code{server-host} to
|
||||
the hostname or IP address of the machine on which the Emacs server
|
||||
runs, and (ii) provide @command{emacsclient} with the server file.
|
||||
(One convenient way to do the latter is to put the server file on a
|
||||
networked file system such as NFS.)
|
||||
the server communicates with @command{emacsclient} via TCP.
|
||||
|
||||
@vindex server-auth-dir
|
||||
@cindex server file
|
||||
@vindex server-port
|
||||
When the Emacs server is using TCP, the variable @code{server-port}
|
||||
determines the port number to listen on; the default value,
|
||||
@code{nil}, means to choose a random port when the server starts.
|
||||
When you start a TCP Emacs server, Emacs creates a @dfn{server file}
|
||||
containing the TCP information to be used by @command{emacsclient} to
|
||||
connect to the server. The variable @code{server-auth-dir} specifies
|
||||
the directory containing the server file; by default, this is
|
||||
@file{~/.emacs.d/server/}. To tell @command{emacsclient} to connect
|
||||
to the server over TCP with a specific server file, use the @samp{-f}
|
||||
or @samp{--server-file} option, or set the @env{EMACS_SERVER_FILE}
|
||||
environment variable.
|
||||
|
||||
@item -n
|
||||
@itemx --no-wait
|
||||
|
@ -1602,19 +1593,14 @@ server it finds. (This option is not supported on MS-Windows.)
|
|||
@itemx --tty
|
||||
@itemx -nw
|
||||
Create a new client frame on the current text terminal, instead of
|
||||
using an existing Emacs frame. This is similar to the @samp{-c}
|
||||
option, above, except that it creates a text terminal frame
|
||||
(@pxref{Non-Window Terminals}). If you omit a filename argument while
|
||||
supplying this option, the new frame displays the @file{*scratch*}
|
||||
buffer (@pxref{Buffers}). See below for the special behavior of
|
||||
@kbd{C-x C-c} in a client frame.
|
||||
using an existing Emacs frame. This behaves just like the @samp{-c}
|
||||
option, described above, except that it creates a text terminal frame
|
||||
(@pxref{Non-Window Terminals}).
|
||||
|
||||
On MS-Windows, a single Emacs session cannot display frames on both
|
||||
graphical and text terminals, nor on multiple text terminals. Thus,
|
||||
if the Emacs server is using the graphical display, @samp{-t} behaves
|
||||
like @samp{-c} (see above); whereas if the Emacs server is running on
|
||||
a text terminal, it creates a new frame in its current text terminal.
|
||||
@xref{Windows Startup}.
|
||||
On MS-Windows, @samp{-t} behaves just like @samp{-c} if the Emacs
|
||||
server is using the graphical display, but if the Emacs server is
|
||||
running on a text terminal, it creates a new frame in the current text
|
||||
terminal.
|
||||
@end table
|
||||
|
||||
The new graphical or text terminal frames created by the @samp{-c}
|
||||
|
|
|
@ -17,7 +17,6 @@ thing, but search for patterns instead of fixed strings.
|
|||
(@pxref{Operating on Files}), or ask the @code{grep} program to do it
|
||||
(@pxref{Grep Searching}).
|
||||
|
||||
|
||||
@menu
|
||||
* Incremental Search:: Search happens as you type the string.
|
||||
* Nonincremental Search:: Specify entire string and then search.
|
||||
|
@ -218,6 +217,24 @@ search.
|
|||
Some of the characters you type during incremental search have
|
||||
special effects.
|
||||
|
||||
@cindex lax space matching
|
||||
@kindex M-s SPC @r{(Incremental search)}
|
||||
@kindex SPC @r{(Incremental search)}
|
||||
@findex isearch-toggle-lax-whitespace
|
||||
@vindex search-whitespace-regexp
|
||||
By default, incremental search performs @dfn{lax space matching}:
|
||||
each space, or sequence of spaces, matches any sequence of one or more
|
||||
spaces in the text. Hence, @samp{foo bar} matches @samp{foo bar},
|
||||
@samp{foo bar}, @samp{foo bar}, and so on (but not @samp{foobar}).
|
||||
More precisely, Emacs matches each sequence of space characters in the
|
||||
search string to a regular expression specified by the variable
|
||||
@code{search-whitespace-regexp}. For example, set it to
|
||||
@samp{"[[:space:]\n]+"} to make spaces match sequences of newlines as
|
||||
well as spaces. To toggle lax space matching, type @kbd{M-s SPC}
|
||||
(@code{isearch-toggle-lax-whitespace}). To disable this feature
|
||||
entirely, change @code{search-whitespace-regexp} to @code{nil}; then
|
||||
each space in the search string matches exactly one space
|
||||
|
||||
If the search string you entered contains only lower-case letters,
|
||||
the search is case-insensitive; as long as an upper-case letter exists
|
||||
in the search string, the search becomes case-sensitive. If you
|
||||
|
@ -492,12 +509,12 @@ Incremental regexp and non-regexp searches have independent defaults.
|
|||
They also have separate search rings, which you can access with
|
||||
@kbd{M-p} and @kbd{M-n}.
|
||||
|
||||
@vindex search-whitespace-regexp
|
||||
If you type @key{SPC} in incremental regexp search, it matches any
|
||||
sequence of whitespace characters, including newlines. If you want to
|
||||
match just a space, type @kbd{C-q @key{SPC}}. You can control what a
|
||||
bare space matches by setting the variable
|
||||
@code{search-whitespace-regexp} to the desired regexp.
|
||||
Just as in ordinary incremental search, any @key{SPC} typed in
|
||||
incremental regexp search matches any sequence of one or more
|
||||
whitespace characters. The variable @code{search-whitespace-regexp}
|
||||
specifies the regexp for the lax space matching, and @kbd{M-s SPC}
|
||||
(@code{isearch-toggle-lax-whitespace}) toggles the feature.
|
||||
@xref{Special Isearch}.
|
||||
|
||||
In some cases, adding characters to the regexp in an incremental
|
||||
regexp search can make the cursor move back and start again. For
|
||||
|
@ -974,6 +991,13 @@ instead (@pxref{Mark}). The basic replace commands replace one
|
|||
is possible to perform several replacements in parallel, using the
|
||||
command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}).
|
||||
|
||||
@vindex replace-lax-whitespace
|
||||
Unlike incremental search, the replacement commands do not use lax
|
||||
space matching (@pxref{Special Isearch}) by default. To enable lax
|
||||
space matching for replacement, change the variable
|
||||
@code{replace-lax-whitespace} to @code{t}. (This only affects how
|
||||
Emacs finds the text to replace, not the replacement text.)
|
||||
|
||||
@menu
|
||||
* Unconditional Replace:: Replacing all matches for a string.
|
||||
* Regexp Replace:: Replacing all matches for a regexp.
|
||||
|
|
|
@ -282,10 +282,15 @@ itself, and the reserve supply may not be enough.
|
|||
@subsection When Emacs Crashes
|
||||
|
||||
Emacs is not supposed to crash, but if it does, before it exits it
|
||||
reports some information about the crash to the standard error stream
|
||||
@code{stderr}. This report may be useful to someone who later debugs
|
||||
the same version of Emacs on the same platform. The format of this
|
||||
report depends on the platform, and some platforms support backtraces.
|
||||
reports a brief summary of the crash to the standard error stream
|
||||
@code{stderr}. If enabled, a crashed Emacs also generates a core dump
|
||||
containing voluminous data about the crash. On many platforms you can
|
||||
enable core dumps by putting the shell command @samp{ulimit -c unlimited}
|
||||
into your shell startup script. The crash report and core dump can be
|
||||
used when debugging the same version of Emacs on the same platform.
|
||||
|
||||
The format of the crash report depends on the platform, and some
|
||||
platforms support backtraces.
|
||||
Here is an example, generated on x86-64 GNU/Linux with version 2.15 of
|
||||
the GNU C Library:
|
||||
|
||||
|
@ -308,13 +313,26 @@ emacs[0x565151]
|
|||
|
||||
@noindent
|
||||
The number @samp{11} is the system signal number that corresponds to
|
||||
the problem, a segmentation fault here. The hexadecimal program
|
||||
addresses can be useful in debugging sessions. For example, the GDB
|
||||
command @samp{list *0x509af6} prints the source-code lines
|
||||
corresponding to the @samp{emacs[0x509af6]} entry in the backtrace.
|
||||
the problem, a segmentation fault here. The three dots at the end
|
||||
indicate that Emacs suppressed further backtrace entries, in the
|
||||
interest of brevity.
|
||||
|
||||
The three dots at the end indicate that Emacs suppressed further
|
||||
backtrace entries, in the interest of brevity.
|
||||
The hexadecimal program addresses can be useful in debugging sessions.
|
||||
For example, the GDB command @samp{list *0x509af6} prints the
|
||||
source-code lines corresponding to the @samp{emacs[0x509af6]} entry in
|
||||
the backtrace. Or, if your system has @command{addr2line}, the
|
||||
following shell command outputs a backtrace with source-code line
|
||||
numbers:
|
||||
|
||||
@example
|
||||
sed -n 's/.*\[\(.*\)]$/\1/p' @var{backtrace} |
|
||||
addr2line -Cfip -e @var{bindir}/emacs
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Here, @var{backtrace} is the name of a text file containing a copy of
|
||||
the backtrace, and @var{bindir} is the name of the directory that
|
||||
contains the Emacs executable.
|
||||
|
||||
@node After a Crash
|
||||
@subsection Recovery After a Crash
|
||||
|
|
|
@ -1,3 +1,112 @@
|
|||
2012-10-05 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* minibuf.texi (Basic Completion): Clarify list form of completion
|
||||
table (Bug#12564).
|
||||
|
||||
2012-10-05 Bruno Félix Rezende Ribeiro <oitofelix@gmail.com> (tiny change)
|
||||
|
||||
* functions.texi (Function Safety): Copyedit. (Bug#12562)
|
||||
|
||||
2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Revert the FOLLOW-SYMLINKS change for file-attributes.
|
||||
* files.texi (File Attributes, Magic File Names): Undo last change.
|
||||
|
||||
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
file-attributes has a new optional arg FOLLOW-SYMLINKS.
|
||||
* files.texi (File Attributes): Describe it.
|
||||
(Magic File Names): Use it.
|
||||
|
||||
2012-09-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* commands.texi (Click Events): Define "mouse position list".
|
||||
Remove mention of unimplemented horizontal scroll bars.
|
||||
(Drag Events, Motion Events): Refer to "mouse position list".
|
||||
(Accessing Mouse): Document posnp.
|
||||
|
||||
* errors.texi (Standard Errors): Tweak arith-error description.
|
||||
Tweak markup. Remove domain-error and friends, which seem to be
|
||||
unused after the floating-point code revamp.
|
||||
|
||||
* functions.texi (Obsolete Functions): Obsolescence also affects
|
||||
documentation commands. Various clarifications.
|
||||
(Declare Form): New node.
|
||||
|
||||
* strings.texi (String Basics): Copyedits.
|
||||
|
||||
* os.texi (Idle Timers): Minor clarifications.
|
||||
(User Identification): Add system-users and system-groups.
|
||||
|
||||
* macros.texi (Defining Macros): Move description of `declare' to
|
||||
Declare Form node.
|
||||
|
||||
* loading.texi (Autoload):
|
||||
* help.texi (Documentation Basics): The special sequences can
|
||||
trigger autoloading.
|
||||
|
||||
* numbers.texi (Integer Basics): Copyedits.
|
||||
(Float Basics): Consider IEEE floating point always available.
|
||||
(Random Numbers): Document actual limits.
|
||||
(Arithmetic Operations): Clarify division by zero. Don't mention
|
||||
the machine-independence of negative division since it does not
|
||||
happen in practice.
|
||||
|
||||
2012-09-28 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* os.texi (Startup Summary): Document leim-list.el change.
|
||||
|
||||
2012-09-25 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* functions.texi (Defining Functions): defun is now a macro.
|
||||
|
||||
2012-09-28 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* files.texi (Files): Fix typo.
|
||||
|
||||
2012-09-23 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffers.texi (Read Only Buffers): Document read-only-mode.
|
||||
|
||||
* keymaps.texi (Alias Menu Items): Replace toggle-read-only with
|
||||
read-only-mode.
|
||||
|
||||
* backups.texi (Auto-Saving): Refer to Minor Mode Conventions for
|
||||
calling conventions.
|
||||
|
||||
2012-09-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* searching.texi (Replacing Match): Minor clarification.
|
||||
|
||||
2012-09-22 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* edebug.texi (Instrumenting): Improve indexing.
|
||||
|
||||
* os.texi (Idle Timers): Warn against reinvoking an idle timer
|
||||
from within its own timer action. (Bug#12447)
|
||||
|
||||
2012-09-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* frames.texi (Pop-Up Menus): Minor clarification (Bug#11148).
|
||||
|
||||
2012-09-21 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* debugging.texi (Using Debugger): Fix typo.
|
||||
|
||||
2012-09-18 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* display.texi (Faces): Discuss anonymous faces.
|
||||
(Face Attributes): Tweak intro.
|
||||
(Defining Faces): Move after the Face Attributes node. Copyedits.
|
||||
(Displaying Faces): Describe role of inheritance.
|
||||
|
||||
* customize.texi (Customization): Define customization more
|
||||
carefully (Bug#11440).
|
||||
(Common Keywords): Add xref to Constant Variables.
|
||||
|
||||
* variables.texi (Defining Variables): Link to defcustom's node
|
||||
instead of the higher-level Customization chapter.
|
||||
|
||||
2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify, document, and port floating-point (Bug#12381).
|
||||
|
|
|
@ -441,12 +441,14 @@ buffer-auto-save-file-name
|
|||
@end defvar
|
||||
|
||||
@deffn Command auto-save-mode arg
|
||||
When used interactively without an argument, this command is a toggle
|
||||
switch: it turns on auto-saving of the current buffer if it is off,
|
||||
and vice versa. When called from Lisp with no argument, it turns
|
||||
auto-saving on. With an argument @var{arg}, it turns auto-saving on
|
||||
if the value of @var{arg} is @code{t}, a nonempty list, or a positive
|
||||
integer; otherwise, it turns auto-saving off.
|
||||
This is the mode command for Auto Save mode, a buffer-local minor
|
||||
mode. When Auto Save mode is enabled, auto-saving is enabled in the
|
||||
buffer. The calling convention is the same as for other minor mode
|
||||
commands (@pxref{Minor Mode Conventions}).
|
||||
|
||||
Unlike most minor modes, there is no @code{auto-save-mode} variable.
|
||||
Auto Save mode is enabled if @code{buffer-auto-save-file-name} is
|
||||
non-@code{nil} and @code{buffer-saved-size} (see below) is non-zero.
|
||||
@end deffn
|
||||
|
||||
@defun auto-save-file-name-p filename
|
||||
|
|
|
@ -740,31 +740,25 @@ properties have no effect. If @code{inhibit-read-only} is a list, then
|
|||
of the list (comparison is done with @code{eq}).
|
||||
@end defvar
|
||||
|
||||
@deffn Command toggle-read-only &optional arg message
|
||||
This command toggles whether the current buffer is read-only, by
|
||||
setting the variable @code{buffer-read-only}. If @var{arg} is
|
||||
non-@code{nil}, it should be a raw prefix argument; the command then
|
||||
makes the buffer read-only if the numeric value of that prefix
|
||||
argument is positive, and makes the buffer writable otherwise.
|
||||
@xref{Prefix Command Arguments}.
|
||||
@deffn Command read-only-mode &optional arg
|
||||
This is the mode command for Read Only minor mode, a buffer-local
|
||||
minor mode. When the mode is enabled, @code{buffer-read-only} is
|
||||
non-@code{nil} in the buffer; when disabled, @code{buffer-read-only}
|
||||
is @code{nil} in the buffer. The calling convention is the same as
|
||||
for other minor mode commands (@pxref{Minor Mode Conventions}).
|
||||
|
||||
If called interactively, or if called from Lisp with @var{message} is
|
||||
non-@code{nil}, the command prints a message reporting the buffer's
|
||||
new read-only status.
|
||||
This minor mode mainly serves as a wrapper for
|
||||
@code{buffer-read-only}; unlike most minor modes, there is no separate
|
||||
@code{read-only-mode} variable. Even when Read Only mode is disabled,
|
||||
characters with non-@code{nil} @code{read-only} text properties remain
|
||||
read-only. To temporarily ignore all read-only states, bind
|
||||
@code{inhibit-read-only}, as described above.
|
||||
|
||||
When making the buffer read-only, this command also enables View mode
|
||||
When enabling Read Only mode, this mode command also enables View mode
|
||||
if the option @code{view-read-only} is non-@code{nil}. @xref{Misc
|
||||
Buffer,,Miscellaneous Buffer Operations, emacs, The GNU Emacs Manual}.
|
||||
When making the buffer writable, it disables View mode if View mode
|
||||
was enabled.
|
||||
|
||||
Lisp programs should only call @code{toggle-read-only} if they really
|
||||
intend to do the same thing as the user command, including possibly
|
||||
enabling or disabling View mode. Note also that this command works by
|
||||
setting @code{buffer-read-only}, so even if you make the buffer
|
||||
writable, characters with non-@code{nil} @code{read-only} text
|
||||
properties will remain read-only. To temporarily ignore all read-only
|
||||
states, bind @code{inhibit-read-only}, as described above.
|
||||
When disabling Read Only mode, it disables View mode if View mode was
|
||||
enabled.
|
||||
@end deffn
|
||||
|
||||
@defun barf-if-buffer-read-only
|
||||
|
|
|
@ -1275,12 +1275,21 @@ describe events by their types; thus, if there is a key binding for
|
|||
@var{event-type} is @code{mouse-1}.
|
||||
|
||||
@item @var{position}
|
||||
This is the position where the mouse click occurred. The actual
|
||||
format of @var{position} depends on what part of a window was clicked
|
||||
on.
|
||||
@cindex mouse position list
|
||||
This is a @dfn{mouse position list} specifying where the mouse click
|
||||
occurred; see below for details.
|
||||
|
||||
For mouse click events in the text area, mode line, header line, or in
|
||||
the marginal areas, @var{position} has this form:
|
||||
@item @var{click-count}
|
||||
This is the number of rapid repeated presses so far of the same mouse
|
||||
button. @xref{Repeat Events}.
|
||||
@end table
|
||||
|
||||
To access the contents of a mouse position list in the
|
||||
@var{position} slot of a click event, you should typically use the
|
||||
functions documented in @ref{Accessing Mouse}. The explicit format of
|
||||
the list depends on where the click occurred. For clicks in the text
|
||||
area, mode line, header line, or in the fringe or marginal areas, the
|
||||
mouse position list has the form
|
||||
|
||||
@example
|
||||
(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp}
|
||||
|
@ -1289,18 +1298,16 @@ the marginal areas, @var{position} has this form:
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
The meanings of these list elements are documented below.
|
||||
@xref{Accessing Mouse}, for functions that let you easily access these
|
||||
elements.
|
||||
The meanings of these list elements are as follows:
|
||||
|
||||
@table @asis
|
||||
@item @var{window}
|
||||
This is the window in which the click occurred.
|
||||
The window in which the click occurred.
|
||||
|
||||
@item @var{pos-or-area}
|
||||
This is the buffer position of the character clicked on in the text
|
||||
area, or if clicked outside the text area, it is the window area in
|
||||
which the click occurred. It is one of the symbols @code{mode-line},
|
||||
The buffer position of the character clicked on in the text area; or,
|
||||
if the click was outside the text area, the window area where it
|
||||
occurred. It is one of the symbols @code{mode-line},
|
||||
@code{header-line}, @code{vertical-line}, @code{left-margin},
|
||||
@code{right-margin}, @code{left-fringe}, or @code{right-fringe}.
|
||||
|
||||
|
@ -1310,22 +1317,23 @@ happens after the imaginary prefix keys for the event are registered
|
|||
by Emacs. @xref{Key Sequence Input}.
|
||||
|
||||
@item @var{x}, @var{y}
|
||||
These are the relative pixel coordinates of the click. For clicks in
|
||||
the text area of a window, the coordinate origin @code{(0 . 0)} is
|
||||
taken to be the top left corner of the text area. @xref{Window
|
||||
Sizes}. For clicks in a mode line or header line, the coordinate
|
||||
origin is the top left corner of the window itself. For fringes,
|
||||
margins, and the vertical border, @var{x} does not have meaningful
|
||||
data. For fringes and margins, @var{y} is relative to the bottom edge
|
||||
of the header line. In all cases, the @var{x} and @var{y} coordinates
|
||||
increase rightward and downward respectively.
|
||||
The relative pixel coordinates of the click. For clicks in the text
|
||||
area of a window, the coordinate origin @code{(0 . 0)} is taken to be
|
||||
the top left corner of the text area. @xref{Window Sizes}. For
|
||||
clicks in a mode line or header line, the coordinate origin is the top
|
||||
left corner of the window itself. For fringes, margins, and the
|
||||
vertical border, @var{x} does not have meaningful data. For fringes
|
||||
and margins, @var{y} is relative to the bottom edge of the header
|
||||
line. In all cases, the @var{x} and @var{y} coordinates increase
|
||||
rightward and downward respectively.
|
||||
|
||||
@item @var{timestamp}
|
||||
This is the time at which the event occurred, in milliseconds.
|
||||
The time at which the event occurred, as an integer number of
|
||||
milliseconds since a system-dependent initial time.
|
||||
|
||||
@item @var{object}
|
||||
This is either @code{nil} if there is no string-type text property at
|
||||
the click position, or a cons cell of the form (@var{string}
|
||||
Either @code{nil} if there is no string-type text property at the
|
||||
click position, or a cons cell of the form (@var{string}
|
||||
. @var{string-pos}) if there is one:
|
||||
|
||||
@table @asis
|
||||
|
@ -1371,8 +1379,7 @@ These are the pixel width and height of @var{object} or, if this is
|
|||
@code{nil}, those of the character glyph clicked on.
|
||||
@end table
|
||||
|
||||
@sp 1
|
||||
For mouse clicks on a scroll-bar, @var{position} has this form:
|
||||
For clicks on a scroll bar, @var{position} has this form:
|
||||
|
||||
@example
|
||||
(@var{window} @var{area} (@var{portion} . @var{whole}) @var{timestamp} @var{part})
|
||||
|
@ -1380,32 +1387,35 @@ For mouse clicks on a scroll-bar, @var{position} has this form:
|
|||
|
||||
@table @asis
|
||||
@item @var{window}
|
||||
This is the window whose scroll-bar was clicked on.
|
||||
The window whose scroll bar was clicked on.
|
||||
|
||||
@item @var{area}
|
||||
This is the scroll bar where the click occurred. It is one of the
|
||||
symbols @code{vertical-scroll-bar} or @code{horizontal-scroll-bar}.
|
||||
This is the symbol @code{vertical-scroll-bar}.
|
||||
|
||||
@item @var{portion}
|
||||
This is the distance of the click from the top or left end of
|
||||
the scroll bar.
|
||||
The number of pixels from the top of the scroll bar to the click
|
||||
position. On some toolkits, including GTK+, Emacs cannot extract this
|
||||
data, so the value is always @code{0}.
|
||||
|
||||
@item @var{whole}
|
||||
This is the length of the entire scroll bar.
|
||||
The total length, in pixels, of the scroll bar. On some toolkits,
|
||||
including GTK+, Emacs cannot extract this data, so the value is always
|
||||
@code{0}.
|
||||
|
||||
@item @var{timestamp}
|
||||
This is the time at which the event occurred, in milliseconds.
|
||||
The time at which the event occurred, in milliseconds. On some
|
||||
toolkits, including GTK+, Emacs cannot extract this data, so the value
|
||||
is always @code{0}.
|
||||
|
||||
@item @var{part}
|
||||
This is the part of the scroll-bar which was clicked on. It is one
|
||||
of the symbols @code{above-handle}, @code{handle}, @code{below-handle},
|
||||
@code{up}, @code{down}, @code{top}, @code{bottom}, and @code{end-scroll}.
|
||||
The part of the scroll bar on which the click occurred. It is one of
|
||||
the symbols @code{handle} (the scroll bar handle), @code{above-handle}
|
||||
(the area above the handle), @code{below-handle} (the area below the
|
||||
handle), @code{up} (the up arrow at one end of the scroll bar), or
|
||||
@code{down} (the down arrow at one end of the scroll bar).
|
||||
@c The `top', `bottom', and `end-scroll' codes don't seem to be used.
|
||||
@end table
|
||||
|
||||
@item @var{click-count}
|
||||
This is the number of rapid repeated presses so far of the same mouse
|
||||
button. @xref{Repeat Events}.
|
||||
@end table
|
||||
|
||||
@node Drag Events
|
||||
@subsection Drag Events
|
||||
|
@ -1429,10 +1439,9 @@ For a drag event, the name of the symbol @var{event-type} contains the
|
|||
prefix @samp{drag-}. For example, dragging the mouse with button 2
|
||||
held down generates a @code{drag-mouse-2} event. The second and third
|
||||
elements of the event give the starting and ending position of the
|
||||
drag. They have the same form as @var{position} in a click event
|
||||
(@pxref{Click Events}) that is not on the scroll bar part of the
|
||||
window. You can access the second element of any mouse event in the
|
||||
same way, with no need to distinguish drag events from others.
|
||||
drag, as mouse position lists (@pxref{Click Events}). You can access
|
||||
the second element of any mouse event in the same way, with no need to
|
||||
distinguish drag events from others.
|
||||
|
||||
The @samp{drag-} prefix follows the modifier key prefixes such as
|
||||
@samp{C-} and @samp{M-}.
|
||||
|
@ -1575,13 +1584,14 @@ represented by lists that look like this:
|
|||
(mouse-movement POSITION)
|
||||
@end example
|
||||
|
||||
The second element of the list describes the current position of the
|
||||
mouse, just as in a click event (@pxref{Click Events}).
|
||||
@noindent
|
||||
@var{position} is a mouse position list (@pxref{Click Events}),
|
||||
specifying the current position of the mouse cursor.
|
||||
|
||||
The special form @code{track-mouse} enables generation of motion events
|
||||
within its body. Outside of @code{track-mouse} forms, Emacs does not
|
||||
generate events for mere motion of the mouse, and these events do not
|
||||
appear. @xref{Mouse Tracking}.
|
||||
The special form @code{track-mouse} enables generation of motion
|
||||
events within its body. Outside of @code{track-mouse} forms, Emacs
|
||||
does not generate events for mere motion of the mouse, and these
|
||||
events do not appear. @xref{Mouse Tracking}.
|
||||
|
||||
@node Focus Events
|
||||
@subsection Focus Events
|
||||
|
@ -1648,13 +1658,11 @@ frame has already been made visible, Emacs has no work to do.
|
|||
@cindex @code{wheel-up} event
|
||||
@cindex @code{wheel-down} event
|
||||
@item (wheel-up @var{position})
|
||||
@item (wheel-down @var{position})
|
||||
These kinds of event are generated by moving a mouse wheel. Their
|
||||
usual meaning is a kind of scroll or zoom.
|
||||
|
||||
The element @var{position} is a list describing the position of the
|
||||
event, in the same format as used in a mouse-click event (@pxref{Click
|
||||
Events}).
|
||||
@itemx (wheel-down @var{position})
|
||||
These kinds of event are generated by moving a mouse wheel. The
|
||||
@var{position} element is a mouse position list (@pxref{Click
|
||||
Events}), specifying the position of the mouse cursor when the event
|
||||
occurred.
|
||||
|
||||
@vindex mouse-wheel-up-event
|
||||
@vindex mouse-wheel-down-event
|
||||
|
@ -1922,14 +1930,8 @@ must be the last element of the list. For example,
|
|||
This section describes convenient functions for accessing the data in
|
||||
a mouse button or motion event.
|
||||
|
||||
These two functions return the starting or ending position of a
|
||||
mouse-button event, as a list of this form (@pxref{Click Events}):
|
||||
|
||||
@example
|
||||
(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp}
|
||||
@var{object} @var{text-pos} (@var{col} . @var{row})
|
||||
@var{image} (@var{dx} . @var{dy}) (@var{width} . @var{height}))
|
||||
@end example
|
||||
The following two functions return a mouse position list
|
||||
(@pxref{Click Events}), specifying the position of a mouse event.
|
||||
|
||||
@defun event-start event
|
||||
This returns the starting position of @var{event}.
|
||||
|
@ -1948,9 +1950,15 @@ event, the value is actually the starting position, which is the only
|
|||
position such events have.
|
||||
@end defun
|
||||
|
||||
@defun posnp object
|
||||
This function returns non-@code{nil} if @var{object} is a mouse
|
||||
position list, in either of the formats documented in @ref{Click
|
||||
Events}); and @code{nil} otherwise.
|
||||
@end defun
|
||||
|
||||
@cindex mouse position list, accessing
|
||||
These functions take a position list as described above, and
|
||||
return various parts of it.
|
||||
These functions take a mouse position list as argument, and return
|
||||
various parts of it:
|
||||
|
||||
@defun posn-window position
|
||||
Return the window that @var{position} is in.
|
||||
|
|
|
@ -6,13 +6,30 @@
|
|||
@chapter Customization Settings
|
||||
|
||||
@cindex customization item
|
||||
This chapter describes how to declare customizable variables and
|
||||
customization groups for classifying them. We use the term
|
||||
@dfn{customization item} to include customizable variables,
|
||||
customization groups, as well as faces.
|
||||
Users of Emacs can customize variables and faces without writing
|
||||
Lisp code, by using the Customize interface. @xref{Easy
|
||||
Customization,,, emacs, The GNU Emacs Manual}. This chapter describes
|
||||
how to define @dfn{customization items} that users can interact with
|
||||
through the Customize interface.
|
||||
|
||||
@xref{Defining Faces}, for the @code{defface} macro, which is used
|
||||
for declaring customizable faces.
|
||||
Customization items include customizable variables, which are
|
||||
defined with the
|
||||
@ifinfo
|
||||
@code{defcustom} macro (@pxref{Variable Definitions});
|
||||
@end ifinfo
|
||||
@ifnotinfo
|
||||
@code{defcustom} macro;
|
||||
@end ifnotinfo
|
||||
customizable faces, which are defined with @code{defface} (described
|
||||
separately in @ref{Defining Faces}); and @dfn{customization groups},
|
||||
defined with
|
||||
@ifinfo
|
||||
@code{defgroup} (@pxref{Group Definitions}),
|
||||
@end ifinfo
|
||||
@ifnotinfo
|
||||
@code{defgroup},
|
||||
@end ifnotinfo
|
||||
which act as containers for groups of related customization items.
|
||||
|
||||
@menu
|
||||
* Common Keywords:: Common keyword arguments for all kinds of
|
||||
|
@ -29,9 +46,10 @@ for declaring customizable faces.
|
|||
|
||||
@cindex customization keywords
|
||||
The customization declarations that we will describe in the next few
|
||||
sections (@code{defcustom}, @code{defgroup}, etc.) all accept keyword
|
||||
arguments for specifying various information. This section describes
|
||||
keywords that apply to all types of customization declarations.
|
||||
sections---@code{defcustom}, @code{defgroup}, etc.---all accept
|
||||
keyword arguments (@pxref{Constant Variables}) for specifying various
|
||||
information. This section describes keywords that apply to all types
|
||||
of customization declarations.
|
||||
|
||||
All of these keywords, except @code{:tag}, can be used more than once
|
||||
in a given item. Each use of the keyword has an independent effect.
|
||||
|
@ -188,14 +206,14 @@ choice is the official name of the package, such as MH-E or Gnus.
|
|||
@cindex define customization group
|
||||
@cindex customization groups, defining
|
||||
|
||||
Each Emacs Lisp package should have one main customization group which
|
||||
contains all the options, faces and other groups in the package. If the
|
||||
package has a small number of options and faces, use just one group and
|
||||
put everything in it. When there are more than twelve or so options and
|
||||
faces, then you should structure them into subgroups, and put the
|
||||
subgroups under the package's main customization group. It is OK to
|
||||
put some of the options and faces in the package's main group alongside
|
||||
the subgroups.
|
||||
Each Emacs Lisp package should have one main customization group
|
||||
which contains all the options, faces and other groups in the package.
|
||||
If the package has a small number of options and faces, use just one
|
||||
group and put everything in it. When there are more than twenty or so
|
||||
options and faces, then you should structure them into subgroups, and
|
||||
put the subgroups under the package's main customization group. It is
|
||||
OK to put some of the options and faces in the package's main group
|
||||
alongside the subgroups.
|
||||
|
||||
The package's main or only group should be a member of one or more of
|
||||
the standard customization groups. (To display the full list of them,
|
||||
|
@ -251,7 +269,17 @@ confusing names for options and faces.
|
|||
@node Variable Definitions
|
||||
@section Defining Customization Variables
|
||||
@cindex define customization options
|
||||
@cindex customization variables, how to define
|
||||
@cindex customizable variables, how to define
|
||||
@cindex user options, how to define
|
||||
|
||||
@dfn{Customizable variables}, also called @dfn{user options}, are
|
||||
global Lisp variables whose values can be set through the Customize
|
||||
interface. Unlike other global variables, which are defined with
|
||||
@code{defvar} (@pxref{Defining Variables}), customizable variables are
|
||||
defined using the @code{defcustom} macro. In addition to calling
|
||||
@code{defvar} as a subroutine, @code{defcustom} states how the
|
||||
variable should be displayed in the Customize interface, the values it
|
||||
is allowed to take, etc.
|
||||
|
||||
@defmac defcustom option standard doc [keyword value]@dots{}
|
||||
This macro declares @var{option} as a user option (i.e.@: a
|
||||
|
@ -291,13 +319,14 @@ has not been assigned the right value yet. In that case, use
|
|||
standard value after Emacs starts up.
|
||||
@end defmac
|
||||
|
||||
@code{defcustom} accepts the following additional keywords:
|
||||
In addition to the keywords listed in @ref{Common Keywords}, this
|
||||
macro accepts the following keywords:
|
||||
|
||||
@table @code
|
||||
@item :type @var{type}
|
||||
Use @var{type} as the data type for this option. It specifies which
|
||||
values are legitimate, and how to display the value.
|
||||
@xref{Customization Types}, for more information.
|
||||
values are legitimate, and how to display the value
|
||||
(@pxref{Customization Types}).
|
||||
|
||||
@item :options @var{value-list}
|
||||
@kindex options@r{, @code{defcustom} keyword}
|
||||
|
|
|
@ -331,7 +331,7 @@ variable is temporarily set according to
|
|||
non-@code{nil}, @code{debug-on-error} will temporarily be set to
|
||||
@code{t}. This means that any further errors that occur while doing a
|
||||
debugging session will (by default) trigger another backtrace. If
|
||||
this is not want you want, you can either set
|
||||
this is not what you want, you can either set
|
||||
@code{eval-expression-debug-on-error} to @code{nil}, or set
|
||||
@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}.
|
||||
|
||||
|
|
|
@ -1863,20 +1863,36 @@ height.
|
|||
|
||||
A @dfn{face} is a collection of graphical @dfn{attributes} for
|
||||
displaying text: font, foreground color, background color, optional
|
||||
underlining, and so on. Faces control how Emacs displays text in
|
||||
buffers, as well as other parts of the frame such as the mode line.
|
||||
@xref{Standard Faces,,, emacs, The GNU Emacs Manual}, for the list of
|
||||
faces Emacs normally comes with.
|
||||
underlining, etc. Faces control how Emacs displays text in buffers,
|
||||
as well as other parts of the frame such as the mode line.
|
||||
|
||||
@cindex face id
|
||||
For most purposes, you refer to a face in Lisp programs using its
|
||||
@dfn{face name}, which is usually a Lisp symbol. For backward
|
||||
compatibility, a face name can also be a string, which is equivalent
|
||||
to a Lisp symbol of the same name.
|
||||
@cindex anonymous face
|
||||
One way to represent a face is as a property list of attributes,
|
||||
like @code{(:foreground "red" :weight bold)}. For example, you can
|
||||
assign such an @dfn{anonymous face} as the value of the @code{face}
|
||||
text property; this causes Emacs to display the underlying text with
|
||||
the specified attributes. @xref{Special Properties}.
|
||||
|
||||
@cindex face name
|
||||
More commonly, a face is referred to via a @dfn{face name}: a Lisp
|
||||
symbol which is associated with a set of face attributes. Named faces
|
||||
are defined using the @code{defface} macro (@pxref{Defining Faces}).
|
||||
Emacs defines several standard named faces; @xref{Standard Faces,,,
|
||||
emacs, The GNU Emacs Manual}.
|
||||
|
||||
Many parts of Emacs require named faces, and do not accept anonymous
|
||||
faces. These include the functions documented in @ref{Attribute
|
||||
Functions}, and the variable @code{font-lock-keywords}
|
||||
(@pxref{Search-based Fontification}). Unless otherwise stated, we
|
||||
will use the term @dfn{face} to refer only to named faces.
|
||||
|
||||
For backward compatibility, you can also use a string to specify a
|
||||
face name; that is equivalent to a Lisp symbol with the same name.
|
||||
|
||||
@defun facep object
|
||||
This function returns a non-@code{nil} value if @var{object} is a Lisp
|
||||
symbol or string that names a face. Otherwise, it returns @code{nil}.
|
||||
This function returns a non-@code{nil} value if @var{object} is a
|
||||
named face: a Lisp symbol or string which serves as a face name.
|
||||
Otherwise, it returns @code{nil}.
|
||||
@end defun
|
||||
|
||||
By default, each face name corresponds to the same set of attributes
|
||||
|
@ -1884,8 +1900,8 @@ in all frames. But you can also assign a face name a special set of
|
|||
attributes in one frame (@pxref{Attribute Functions}).
|
||||
|
||||
@menu
|
||||
* Defining Faces:: How to define a face.
|
||||
* Face Attributes:: What is in a face?
|
||||
* Defining Faces:: How to define a face.
|
||||
* Attribute Functions:: Functions to examine and set face attributes.
|
||||
* Displaying Faces:: How Emacs combines the faces specified for a character.
|
||||
* Face Remapping:: Remapping faces to alternative definitions.
|
||||
|
@ -1900,161 +1916,21 @@ attributes in one frame (@pxref{Attribute Functions}).
|
|||
* Low-Level Font:: Lisp representation for character display fonts.
|
||||
@end menu
|
||||
|
||||
@node Defining Faces
|
||||
@subsection Defining Faces
|
||||
|
||||
The @code{defface} macro defines a face and specifies its default
|
||||
appearance. The user can subsequently customize the face using the
|
||||
Customize interface (@pxref{Customization}).
|
||||
|
||||
@defmac defface face spec doc [keyword value]@dots{}
|
||||
This macro declares @var{face} as a customizable face whose default
|
||||
attributes are given by @var{spec}. You should not quote the symbol
|
||||
@var{face}, and it should not end in @samp{-face} (that would be
|
||||
redundant). The argument @var{doc} is a documentation string for the
|
||||
face. The additional @var{keyword} arguments have the same meanings
|
||||
as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
|
||||
|
||||
When @code{defface} executes, it defines the face according to
|
||||
@var{spec}, then uses any customizations that were read from the
|
||||
init file (@pxref{Init File}) to override that specification.
|
||||
|
||||
When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs
|
||||
Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun}
|
||||
overrides any customizations of the face. This way, the face reflects
|
||||
exactly what the @code{defface} says.
|
||||
|
||||
@cindex face specification
|
||||
The @var{spec} argument is a @dfn{face specification}, which states
|
||||
how the face should appear on different kinds of terminals. It should
|
||||
be an alist whose elements each have the form
|
||||
|
||||
@example
|
||||
(@var{display} . @var{plist})
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@var{display} specifies a class of terminals (see below), while
|
||||
@var{plist} is a property list of face attributes and their values,
|
||||
specifying how the face appears on such terminals
|
||||
@iftex
|
||||
(see the next section for details about face attributes).
|
||||
@end iftex
|
||||
@ifnottex
|
||||
(@pxref{Face Attributes}, for details about face attributes).
|
||||
@end ifnottex
|
||||
|
||||
The @var{display} part of an element of @var{spec} determines which
|
||||
frames the element matches. If more than one element of @var{spec}
|
||||
matches a given frame, the first element that matches is the one used
|
||||
for that frame. There are three possibilities for @var{display}:
|
||||
|
||||
@table @asis
|
||||
@item @code{default}
|
||||
This element of @var{spec} doesn't match any frames; instead, it
|
||||
specifies defaults that apply to all frames. This element, if used,
|
||||
must be the first element of @var{spec}. Each of the following
|
||||
elements can override any or all of these defaults.
|
||||
|
||||
@item @code{t}
|
||||
This element of @var{spec} matches all frames. Therefore, any
|
||||
subsequent elements of @var{spec} are never used. Normally
|
||||
@code{t} is used in the last (or only) element of @var{spec}.
|
||||
|
||||
@item a list
|
||||
If @var{display} is a list, each element should have the form
|
||||
@code{(@var{characteristic} @var{value}@dots{})}. Here
|
||||
@var{characteristic} specifies a way of classifying frames, and the
|
||||
@var{value}s are possible classifications which @var{display} should
|
||||
apply to. Here are the possible values of @var{characteristic}:
|
||||
|
||||
@table @code
|
||||
@item type
|
||||
The kind of window system the frame uses---either @code{graphic} (any
|
||||
graphics-capable display), @code{x}, @code{pc} (for the MS-DOS console),
|
||||
@code{w32} (for MS Windows 9X/NT/2K/XP), or @code{tty}
|
||||
(a non-graphics-capable display).
|
||||
@xref{Window Systems, window-system}.
|
||||
|
||||
@item class
|
||||
What kinds of colors the frame supports---either @code{color},
|
||||
@code{grayscale}, or @code{mono}.
|
||||
|
||||
@item background
|
||||
The kind of background---either @code{light} or @code{dark}.
|
||||
|
||||
@item min-colors
|
||||
An integer that represents the minimum number of colors the frame
|
||||
should support. This matches a frame if its
|
||||
@code{display-color-cells} value is at least the specified integer.
|
||||
|
||||
@item supports
|
||||
Whether or not the frame can display the face attributes given in
|
||||
@var{value}@dots{} (@pxref{Face Attributes}). @xref{Display Face
|
||||
Attribute Testing}, for more information on exactly how this testing
|
||||
is done.
|
||||
@end table
|
||||
|
||||
If an element of @var{display} specifies more than one @var{value} for a
|
||||
given @var{characteristic}, any of those values is acceptable. If
|
||||
@var{display} has more than one element, each element should specify a
|
||||
different @var{characteristic}; then @emph{each} characteristic of the
|
||||
frame must match one of the @var{value}s specified for it in
|
||||
@var{display}.
|
||||
@end table
|
||||
@end defmac
|
||||
|
||||
Here's how the standard face @code{highlight} is defined:
|
||||
|
||||
@example
|
||||
(defface highlight
|
||||
'((((class color) (min-colors 88) (background light))
|
||||
:background "darkseagreen2")
|
||||
(((class color) (min-colors 88) (background dark))
|
||||
:background "darkolivegreen")
|
||||
(((class color) (min-colors 16) (background light))
|
||||
:background "darkseagreen2")
|
||||
(((class color) (min-colors 16) (background dark))
|
||||
:background "darkolivegreen")
|
||||
(((class color) (min-colors 8))
|
||||
:background "green" :foreground "black")
|
||||
(t :inverse-video t))
|
||||
"Basic face for highlighting."
|
||||
:group 'basic-faces)
|
||||
@end example
|
||||
|
||||
Internally, Emacs stores the face's default specification in its
|
||||
@code{face-defface-spec} symbol property (@pxref{Property Lists}).
|
||||
The @code{saved-face} property stores the face specification saved by
|
||||
the user, using the customization buffer; the @code{customized-face}
|
||||
property stores the face specification customized for the current
|
||||
session, but not saved; and the @code{theme-face} property stores an
|
||||
alist associating the active customization settings and Custom themes
|
||||
with their specifications for that face. The face's documentation
|
||||
string is stored in the @code{face-documentation} property. But
|
||||
normally you should not try to set any of these properties directly.
|
||||
@xref{Applying Customizations}, for the @code{custom-set-faces}
|
||||
function, which is used to apply customized face settings.
|
||||
|
||||
People are sometimes tempted to create variables whose values
|
||||
specify a face to use. In the vast majority of cases, this is not
|
||||
necessary; it is preferable to simply use faces directly.
|
||||
|
||||
@node Face Attributes
|
||||
@subsection Face Attributes
|
||||
@cindex face attributes
|
||||
|
||||
The effect of using a face is determined by a fixed set of @dfn{face
|
||||
attributes}. This table lists all the face attributes, their possible
|
||||
values, and their effects. You can specify more than one face for a
|
||||
given piece of text; Emacs merges the attributes of all the faces to
|
||||
determine how to display the text. @xref{Displaying Faces}.
|
||||
@dfn{Face attributes} determine the visual appearance of a face.
|
||||
The following table lists all the face attributes, their possible
|
||||
values, and their effects.
|
||||
|
||||
In addition to the values given below, each face attribute can also
|
||||
have the value @code{unspecified}. This special value means the face
|
||||
doesn't specify that attribute. In face merging, when the first face
|
||||
fails to specify a particular attribute, the next face gets a chance.
|
||||
However, the @code{default} face must specify all attributes.
|
||||
Apart from the values given below, each face attribute can have the
|
||||
value @code{unspecified}. This special value means that the face
|
||||
doesn't specify that attribute directly. An @code{unspecified}
|
||||
attribute tells Emacs to refer instead to a parent face (see the
|
||||
description @code{:inherit} attribute below); or, failing that, to an
|
||||
underlying face (@pxref{Displaying Faces}). The @code{default} face
|
||||
must specify all attributes.
|
||||
|
||||
Some of these attributes are meaningful only on certain kinds of
|
||||
displays. If your display cannot handle a certain attribute, the
|
||||
|
@ -2063,7 +1939,7 @@ attribute is ignored.
|
|||
@table @code
|
||||
@item :family
|
||||
Font family or fontset (a string). @xref{Fonts,,, emacs, The GNU
|
||||
Emacs Manual}, for more information about font families; the function
|
||||
Emacs Manual}, for more information about font families. The function
|
||||
@code{font-family-list} (see below) returns a list of available family
|
||||
names. @xref{Fontsets}, for information about fontsets.
|
||||
|
||||
|
@ -2083,9 +1959,8 @@ The height of the font. In the simplest case, this is an integer in
|
|||
units of 1/10 point.
|
||||
|
||||
The value can also be a floating point number or a function, which
|
||||
specifies the height relative to an @dfn{underlying face} (i.e., a
|
||||
face that has a lower priority in the list described in
|
||||
@ref{Displaying Faces}). If the value is a floating point number,
|
||||
specifies the height relative to an @dfn{underlying face}
|
||||
(@pxref{Displaying Faces}). If the value is a floating point number,
|
||||
that specifies the amount by which to scale the height of the
|
||||
underlying face. If the value is a function, that function is called
|
||||
with one argument, the height of the underlying face, and returns the
|
||||
|
@ -2261,11 +2136,147 @@ suitable for use with @code{:stipple} (see above). It returns
|
|||
@code{nil} otherwise.
|
||||
@end defun
|
||||
|
||||
@node Defining Faces
|
||||
@subsection Defining Faces
|
||||
|
||||
The usual way to define a face is through the @code{defface} macro.
|
||||
This macro defines a face name, and associates that name with a set of
|
||||
face attributes. It also sets up the face so that the user can
|
||||
customize it via the Customize interface (@pxref{Customization}).
|
||||
|
||||
@defmac defface face spec doc [keyword value]@dots{}
|
||||
This macro declares @var{face} as a customizable face whose default
|
||||
attributes are given by @var{spec}. You should not quote the symbol
|
||||
@var{face}, and it should not end in @samp{-face} (that would be
|
||||
redundant). The argument @var{doc} is a documentation string for the
|
||||
face. The additional @var{keyword} arguments have the same meanings
|
||||
as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
|
||||
|
||||
When @code{defface} executes, it defines the face according to
|
||||
@var{spec}, then uses any customizations that were read from the
|
||||
init file (@pxref{Init File}) to override that specification.
|
||||
|
||||
When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs
|
||||
Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun}
|
||||
overrides any customizations of the face. This way, the face reflects
|
||||
exactly what the @code{defface} says.
|
||||
|
||||
@cindex face specification
|
||||
The @var{spec} argument is a @dfn{face specification}, which states
|
||||
how the face should appear on different kinds of terminals. It should
|
||||
be an alist whose elements each have the form
|
||||
|
||||
@example
|
||||
(@var{display} . @var{plist})
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@var{display} specifies a class of terminals (see below). @var{plist}
|
||||
is a property list of face attributes and their values, specifying how
|
||||
the face appears on such terminals. For backward compatibility, you
|
||||
can also write an element as @code{(@var{display} @var{plist})}.
|
||||
|
||||
The @var{display} part of an element of @var{spec} determines which
|
||||
terminals the element matches. If more than one element of @var{spec}
|
||||
matches a given terminal, the first element that matches is the one
|
||||
used for that terminal. There are three possibilities for
|
||||
@var{display}:
|
||||
|
||||
@table @asis
|
||||
@item @code{default}
|
||||
This element of @var{spec} doesn't match any terminal; instead, it
|
||||
specifies defaults that apply to all terminals. This element, if
|
||||
used, must be the first element of @var{spec}. Each of the following
|
||||
elements can override any or all of these defaults.
|
||||
|
||||
@item @code{t}
|
||||
This element of @var{spec} matches all terminals. Therefore, any
|
||||
subsequent elements of @var{spec} are never used. Normally @code{t}
|
||||
is used in the last (or only) element of @var{spec}.
|
||||
|
||||
@item a list
|
||||
If @var{display} is a list, each element should have the form
|
||||
@code{(@var{characteristic} @var{value}@dots{})}. Here
|
||||
@var{characteristic} specifies a way of classifying terminals, and the
|
||||
@var{value}s are possible classifications which @var{display} should
|
||||
apply to. Here are the possible values of @var{characteristic}:
|
||||
|
||||
@table @code
|
||||
@item type
|
||||
The kind of window system the terminal uses---either @code{graphic}
|
||||
(any graphics-capable display), @code{x}, @code{pc} (for the MS-DOS
|
||||
console), @code{w32} (for MS Windows 9X/NT/2K/XP), or @code{tty} (a
|
||||
non-graphics-capable display). @xref{Window Systems, window-system}.
|
||||
|
||||
@item class
|
||||
What kinds of colors the terminal supports---either @code{color},
|
||||
@code{grayscale}, or @code{mono}.
|
||||
|
||||
@item background
|
||||
The kind of background---either @code{light} or @code{dark}.
|
||||
|
||||
@item min-colors
|
||||
An integer that represents the minimum number of colors the terminal
|
||||
should support. This matches a terminal if its
|
||||
@code{display-color-cells} value is at least the specified integer.
|
||||
|
||||
@item supports
|
||||
Whether or not the terminal can display the face attributes given in
|
||||
@var{value}@dots{} (@pxref{Face Attributes}). @xref{Display Face
|
||||
Attribute Testing}, for more information on exactly how this testing
|
||||
is done.
|
||||
@end table
|
||||
|
||||
If an element of @var{display} specifies more than one @var{value} for
|
||||
a given @var{characteristic}, any of those values is acceptable. If
|
||||
@var{display} has more than one element, each element should specify a
|
||||
different @var{characteristic}; then @emph{each} characteristic of the
|
||||
terminal must match one of the @var{value}s specified for it in
|
||||
@var{display}.
|
||||
@end table
|
||||
@end defmac
|
||||
|
||||
Here's how the standard face @code{highlight} is defined:
|
||||
|
||||
@example
|
||||
(defface highlight
|
||||
'((((class color) (min-colors 88) (background light))
|
||||
:background "darkseagreen2")
|
||||
(((class color) (min-colors 88) (background dark))
|
||||
:background "darkolivegreen")
|
||||
(((class color) (min-colors 16) (background light))
|
||||
:background "darkseagreen2")
|
||||
(((class color) (min-colors 16) (background dark))
|
||||
:background "darkolivegreen")
|
||||
(((class color) (min-colors 8))
|
||||
:background "green" :foreground "black")
|
||||
(t :inverse-video t))
|
||||
"Basic face for highlighting."
|
||||
:group 'basic-faces)
|
||||
@end example
|
||||
|
||||
Internally, Emacs stores the face's default specification in its
|
||||
@code{face-defface-spec} symbol property (@pxref{Property Lists}).
|
||||
The @code{saved-face} property stores the face specification saved by
|
||||
the user, using the customization buffer; the @code{customized-face}
|
||||
property stores the face specification customized for the current
|
||||
session, but not saved; and the @code{theme-face} property stores an
|
||||
alist associating the active customization settings and Custom themes
|
||||
with their specifications for that face. The face's documentation
|
||||
string is stored in the @code{face-documentation} property. But
|
||||
normally you should not try to set any of these properties directly.
|
||||
@xref{Applying Customizations}, for the @code{custom-set-faces}
|
||||
function, which is used to apply customized face settings.
|
||||
|
||||
People are sometimes tempted to create variables whose values
|
||||
specify a face to use. In the vast majority of cases, this is not
|
||||
necessary; it is preferable to simply use faces directly.
|
||||
|
||||
@node Attribute Functions
|
||||
@subsection Face Attribute Functions
|
||||
|
||||
This section describes the functions for accessing and modifying the
|
||||
attributes of an existing face.
|
||||
attributes of an existing named face.
|
||||
|
||||
@defun set-face-attribute face frame &rest arguments
|
||||
This function sets one or more attributes of @var{face} for
|
||||
|
@ -2467,8 +2478,12 @@ This function returns the @code{:inverse-video} attribute of face @var{face}.
|
|||
@node Displaying Faces
|
||||
@subsection Displaying Faces
|
||||
|
||||
Here is how Emacs determines the face to use for displaying any
|
||||
given piece of text:
|
||||
When Emacs displays a given piece of text, the visual appearance of
|
||||
the text may be determined by faces drawn from different sources. If
|
||||
these various sources together specify more than one face for a
|
||||
particular character, Emacs merges the attributes of the various
|
||||
faces. Here is the order in which Emacs merges the faces, from
|
||||
highest to lowest priority:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
|
@ -2482,11 +2497,11 @@ Manual}.
|
|||
|
||||
@item
|
||||
If the text lies within an overlay with a non-@code{nil} @code{face}
|
||||
property, Emacs applies the face or face attributes specified by that
|
||||
property. If the overlay has a @code{mouse-face} property and the
|
||||
mouse is ``near enough'' to the overlay, Emacs applies the face or
|
||||
face attributes specified by the @code{mouse-face} property instead.
|
||||
@xref{Overlay Properties}.
|
||||
property, Emacs applies the face(s) specified by that property. If
|
||||
the overlay has a @code{mouse-face} property and the mouse is ``near
|
||||
enough'' to the overlay, Emacs applies the face or face attributes
|
||||
specified by the @code{mouse-face} property instead. @xref{Overlay
|
||||
Properties}.
|
||||
|
||||
When multiple overlays cover one character, an overlay with higher
|
||||
priority overrides those with lower priority. @xref{Overlays}.
|
||||
|
@ -2508,11 +2523,12 @@ If any given attribute has not been specified during the preceding
|
|||
steps, Emacs applies the attribute of the @code{default} face.
|
||||
@end itemize
|
||||
|
||||
If these various sources together specify more than one face for a
|
||||
particular character, Emacs merges the attributes of the various faces
|
||||
specified. For each attribute, Emacs tries using the above order
|
||||
(i.e.@: first the face of any special glyph; then the face for region
|
||||
highlighting, if appropriate; and so on).
|
||||
At each stage, if a face has a valid @code{:inherit} attribute,
|
||||
Emacs treats any attribute with an @code{unspecified} value as having
|
||||
the corresponding value drawn from the parent face(s). @pxref{Face
|
||||
Attributes}. Note that the parent face(s) may also leave the
|
||||
attribute unspecified; in that case, the attribute remains unspecified
|
||||
at the next level of face merging.
|
||||
|
||||
@node Face Remapping
|
||||
@subsection Face Remapping
|
||||
|
|
|
@ -150,6 +150,7 @@ display a list of all Edebug commands.
|
|||
|
||||
@node Instrumenting
|
||||
@subsection Instrumenting for Edebug
|
||||
@cindex instrumenting for Edebug
|
||||
|
||||
In order to use Edebug to debug Lisp code, you must first
|
||||
@dfn{instrument} the code. Instrumenting code inserts additional code
|
||||
|
@ -179,9 +180,11 @@ to loading or evaluations in the minibuffer. The command @kbd{M-x
|
|||
edebug-all-forms} toggles this option.
|
||||
|
||||
@findex edebug-eval-top-level-form
|
||||
@findex edebug-defun
|
||||
Another command, @kbd{M-x edebug-eval-top-level-form}, is available to
|
||||
instrument any top-level form regardless of the values of
|
||||
@code{edebug-all-defs} and @code{edebug-all-forms}.
|
||||
@code{edebug-defun} is an alias for @code{edebug-eval-top-level-form}.
|
||||
|
||||
While Edebug is active, the command @kbd{I}
|
||||
(@code{edebug-instrument-callee}) instruments the definition of the
|
||||
|
|
|
@ -516,6 +516,7 @@ Functions
|
|||
* Obsolete Functions:: Declaring functions obsolete.
|
||||
* Inline Functions:: Defining functions that the compiler
|
||||
will expand inline.
|
||||
* Declare Form:: Adding additional information about a function.
|
||||
* Declaring Functions:: Telling the compiler that a function is defined.
|
||||
* Function Safety:: Determining whether a function is safe to call.
|
||||
* Related Topics:: Cross-references to specific Lisp primitives
|
||||
|
@ -1366,8 +1367,8 @@ Overlays
|
|||
|
||||
Faces
|
||||
|
||||
* Defining Faces:: How to define a face.
|
||||
* Face Attributes:: What is in a face?
|
||||
* Defining Faces:: How to define a face.
|
||||
* Attribute Functions:: Functions to examine and set face attributes.
|
||||
* Displaying Faces:: How Emacs combines the faces specified for
|
||||
a character.
|
||||
|
|
|
@ -37,78 +37,69 @@ handled.
|
|||
|
||||
@table @code
|
||||
@item error
|
||||
@code{"error"}@*
|
||||
@xref{Errors}.
|
||||
The message is @samp{error}. @xref{Errors}.
|
||||
|
||||
@item quit
|
||||
@code{"Quit"}@*
|
||||
@xref{Quitting}.
|
||||
The message is @samp{Quit}. @xref{Quitting}.
|
||||
|
||||
@item args-out-of-range
|
||||
@code{"Args out of range"}@*
|
||||
This happens when trying to access an element beyond the range of a
|
||||
sequence or buffer.@*
|
||||
@xref{Sequences Arrays Vectors}, @xref{Text}.
|
||||
The message is @samp{Args out of range}. This happens when trying to
|
||||
access an element beyond the range of a sequence, buffer, or other
|
||||
container-like object. @xref{Sequences Arrays Vectors}, and
|
||||
@xref{Text}.
|
||||
|
||||
@item arith-error
|
||||
@code{"Arithmetic error"}@*
|
||||
The message is @samp{Arithmetic error}. This occurs when trying to
|
||||
perform integer division by zero. @xref{Numeric Conversions}, and
|
||||
@xref{Arithmetic Operations}.
|
||||
|
||||
@item beginning-of-buffer
|
||||
@code{"Beginning of buffer"}@*
|
||||
@xref{Character Motion}.
|
||||
The message is @samp{Beginning of buffer}. @xref{Character Motion}.
|
||||
|
||||
@item buffer-read-only
|
||||
@code{"Buffer is read-only"}@*
|
||||
@xref{Read Only Buffers}.
|
||||
The message is @samp{Buffer is read-only}. @xref{Read Only Buffers}.
|
||||
|
||||
@item circular-list
|
||||
@code{"List contains a loop"}@*
|
||||
This happens when some operations (e.g. resolving face names)
|
||||
encounter circular structures.@*
|
||||
@xref{Circular Objects}.
|
||||
The message is @samp{List contains a loop}. This happens when a
|
||||
circular structure is encountered. @xref{Circular Objects}.
|
||||
|
||||
@item cl-assertion-failed
|
||||
@code{"Assertion failed"}@*
|
||||
This happens when the @code{assert} macro fails a test.@*
|
||||
@xref{Assertions,,, cl, Common Lisp Extensions}.
|
||||
The message is @samp{Assertion failed}. This happens when the
|
||||
@code{assert} macro fails a test. @xref{Assertions,,, cl, Common Lisp
|
||||
Extensions}.
|
||||
|
||||
@item coding-system-error
|
||||
@code{"Invalid coding system"}@*
|
||||
@xref{Lisp and Coding Systems}.
|
||||
The message is @samp{Invalid coding system}. @xref{Lisp and Coding
|
||||
Systems}.
|
||||
|
||||
@item cyclic-function-indirection
|
||||
@code{"Symbol's chain of function indirections contains a loop"}@*
|
||||
@xref{Function Indirection}.
|
||||
The message is @samp{Symbol's chain of function indirections contains
|
||||
a loop}. @xref{Function Indirection}.
|
||||
|
||||
@item cyclic-variable-indirection
|
||||
@code{"Symbol's chain of variable indirections contains a loop"}@*
|
||||
@xref{Variable Aliases}.
|
||||
The message is @samp{Symbol's chain of variable indirections contains
|
||||
a loop}. @xref{Variable Aliases}.
|
||||
|
||||
@item dbus-error
|
||||
@code{"D-Bus error"}@*
|
||||
This is only defined if Emacs was compiled with D-Bus support.@*
|
||||
@xref{Errors and Events,,, dbus, D-Bus integration in Emacs}.
|
||||
The message is @samp{D-Bus error}. This is only defined if Emacs was
|
||||
compiled with D-Bus support. @xref{Errors and Events,,, dbus, D-Bus
|
||||
integration in Emacs}.
|
||||
|
||||
@item end-of-buffer
|
||||
@code{"End of buffer"}@*
|
||||
@xref{Character Motion}.
|
||||
The message is @samp{End of buffer}. @xref{Character Motion}.
|
||||
|
||||
@item end-of-file
|
||||
@code{"End of file during parsing"}@*
|
||||
Note that this is not a subcategory of @code{file-error},
|
||||
because it pertains to the Lisp reader, not to file I/O.@*
|
||||
@xref{Input Functions}.
|
||||
The message is @samp{End of file during parsing}. Note that this is
|
||||
not a subcategory of @code{file-error}, because it pertains to the
|
||||
Lisp reader, not to file I/O. @xref{Input Functions}.
|
||||
|
||||
@item file-already-exists
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{Writing to Files}.
|
||||
This is a subcategory of @code{file-error}. @xref{Writing to Files}.
|
||||
|
||||
@item file-date-error
|
||||
This is a subcategory of @code{file-error}. It occurs when
|
||||
@code{copy-file} tries and fails to set the last-modification time of
|
||||
the output file.@*
|
||||
@xref{Changing Files}.
|
||||
the output file. @xref{Changing Files}.
|
||||
|
||||
@item file-error
|
||||
We do not list the error-strings of this error and its subcategories,
|
||||
|
@ -116,122 +107,109 @@ because the error message is normally constructed from the data items
|
|||
alone when the error condition @code{file-error} is present. Thus,
|
||||
the error-strings are not very relevant. However, these error symbols
|
||||
do have @code{error-message} properties, and if no data is provided,
|
||||
the @code{error-message} property @emph{is} used.@*
|
||||
@xref{Files}.
|
||||
the @code{error-message} property @emph{is} used. @xref{Files}.
|
||||
|
||||
@c jka-compr.el
|
||||
@item compression-error
|
||||
This is a subcategory of @code{file-error}, which results from
|
||||
problems handling a compressed file.@*
|
||||
@xref{How Programs Do Loading}.
|
||||
problems handling a compressed file. @xref{How Programs Do Loading}.
|
||||
|
||||
@c userlock.el
|
||||
@item file-locked
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{File Locks}.
|
||||
This is a subcategory of @code{file-error}. @xref{File Locks}.
|
||||
|
||||
@c userlock.el
|
||||
@item file-supersession
|
||||
This is a subcategory of @code{file-error}.@*
|
||||
@xref{Modification Time}.
|
||||
This is a subcategory of @code{file-error}. @xref{Modification Time}.
|
||||
|
||||
@c net/ange-ftp.el
|
||||
@item ftp-error
|
||||
This is a subcategory of @code{file-error}, which results from problems
|
||||
in accessing a remote file using ftp.@*
|
||||
@xref{Remote Files,,, emacs, The GNU Emacs Manual}.
|
||||
This is a subcategory of @code{file-error}, which results from
|
||||
problems in accessing a remote file using ftp. @xref{Remote Files,,,
|
||||
emacs, The GNU Emacs Manual}.
|
||||
|
||||
@item invalid-function
|
||||
@code{"Invalid function"}@*
|
||||
@xref{Function Indirection}.
|
||||
The message is @samp{Invalid function}. @xref{Function Indirection}.
|
||||
|
||||
@item invalid-read-syntax
|
||||
@code{"Invalid read syntax"}@*
|
||||
@xref{Printed Representation}.
|
||||
The message is @samp{Invalid read syntax}. @xref{Printed
|
||||
Representation}.
|
||||
|
||||
@item invalid-regexp
|
||||
@code{"Invalid regexp"}@*
|
||||
@xref{Regular Expressions}.
|
||||
The message is @samp{Invalid regexp}. @xref{Regular Expressions}.
|
||||
|
||||
@c simple.el
|
||||
@item mark-inactive
|
||||
@code{"The mark is not active now"}@*
|
||||
@xref{The Mark}.
|
||||
The message is @samp{The mark is not active now}. @xref{The Mark}.
|
||||
|
||||
@item no-catch
|
||||
@code{"No catch for tag"}@*
|
||||
@xref{Catch and Throw}.
|
||||
The message is @samp{No catch for tag}. @xref{Catch and Throw}.
|
||||
|
||||
@ignore
|
||||
@c Not actually used for anything? Probably definition should be removed.
|
||||
@item protected-field
|
||||
@code{"Attempt to modify a protected field"}
|
||||
The message is @samp{Attempt to modify a protected file}.
|
||||
@end ignore
|
||||
|
||||
@item scan-error
|
||||
@code{"Scan error"}@*
|
||||
This happens when certain syntax-parsing functions
|
||||
find invalid syntax or mismatched parentheses.@*
|
||||
@xref{List Motion}, and @ref{Parsing Expressions}.
|
||||
The message is @samp{Scan error}. This happens when certain
|
||||
syntax-parsing functions find invalid syntax or mismatched
|
||||
parentheses. @xref{List Motion}, and @xref{Parsing Expressions}.
|
||||
|
||||
@item search-failed
|
||||
@code{"Search failed"}@*
|
||||
@xref{Searching and Matching}.
|
||||
The message is @samp{Search failed}. @xref{Searching and Matching}.
|
||||
|
||||
@item setting-constant
|
||||
@code{"Attempt to set a constant symbol"}@*
|
||||
The values of the symbols @code{nil} and @code{t},
|
||||
and any symbols that start with @samp{:},
|
||||
may not be changed.@*
|
||||
@xref{Constant Variables, , Variables that Never Change}.
|
||||
The message is @samp{Attempt to set a constant symbol}. This happens
|
||||
when attempting to assign values to @code{nil}, @code{t}, and keyword
|
||||
symbols. @xref{Constant Variables}.
|
||||
|
||||
@c simple.el
|
||||
@item text-read-only
|
||||
@code{"Text is read-only"}@*
|
||||
This is a subcategory of @code{buffer-read-only}.@*
|
||||
@xref{Special Properties}.
|
||||
The message is @samp{Text is read-only}. This is a subcategory of
|
||||
@code{buffer-read-only}. @xref{Special Properties}.
|
||||
|
||||
@item undefined-color
|
||||
@code{"Undefined color"}@*
|
||||
@xref{Color Names}.
|
||||
The message is @samp{Undefined color}. @xref{Color Names}.
|
||||
|
||||
@item void-function
|
||||
@code{"Symbol's function definition is void"}@*
|
||||
The message is @samp{Symbol's function definition is void}.
|
||||
@xref{Function Cells}.
|
||||
|
||||
@item void-variable
|
||||
@code{"Symbol's value as variable is void"}@*
|
||||
The message is @samp{Symbol's value as variable is void}.
|
||||
@xref{Accessing Variables}.
|
||||
|
||||
@item wrong-number-of-arguments
|
||||
@code{"Wrong number of arguments"}@*
|
||||
@xref{Classifying Lists}.
|
||||
The message is @samp{Wrong number of arguments}. @xref{Classifying
|
||||
Lists}.
|
||||
|
||||
@item wrong-type-argument
|
||||
@code{"Wrong type argument"}@*
|
||||
@xref{Type Predicates}.
|
||||
The message is @samp{Wrong type argument}. @xref{Type Predicates}.
|
||||
@end table
|
||||
|
||||
@ignore The following seem to be unused now.
|
||||
The following kinds of error, which are classified as special cases of
|
||||
@code{arith-error}, can occur on certain systems for invalid use of
|
||||
mathematical functions. @xref{Math Functions}.
|
||||
|
||||
@table @code
|
||||
@item domain-error
|
||||
@code{"Arithmetic domain error"}
|
||||
The message is @samp{Arithmetic domain error}.
|
||||
|
||||
@item overflow-error
|
||||
@code{"Arithmetic overflow error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The message is @samp{Arithmetic overflow error}. This is a subcategory
|
||||
of @code{domain-error}.
|
||||
|
||||
@item range-error
|
||||
@code{"Arithmetic range error"}
|
||||
The message is @code{Arithmetic range error}.
|
||||
|
||||
@item singularity-error
|
||||
@code{"Arithmetic singularity error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The message is @samp{Arithmetic singularity error}. This is a
|
||||
subcategory of @code{domain-error}.
|
||||
|
||||
@item underflow-error
|
||||
@code{"Arithmetic underflow error"}@*
|
||||
This is a subcategory of @code{domain-error}.
|
||||
The message is @samp{Arithmetic underflow error}. This is a
|
||||
subcategory of @code{domain-error}.
|
||||
@end table
|
||||
@end ignore
|
||||
|
|
|
@ -29,7 +29,7 @@ arguments, except where noted. @xref{Magic File Names}, for details.
|
|||
When file I/O functions signal Lisp errors, they usually use the
|
||||
condition @code{file-error} (@pxref{Handling Errors}). The error
|
||||
message is in most cases obtained from the operating system, according
|
||||
to locale @code{system-message-locale}, and decoded using coding system
|
||||
to locale @code{system-messages-locale}, and decoded using coding system
|
||||
@code{locale-coding-system} (@pxref{Locales}).
|
||||
|
||||
@menu
|
||||
|
|
|
@ -1529,24 +1529,14 @@ track of such changes. @xref{Misc Events}.
|
|||
@node Raising and Lowering
|
||||
@section Raising and Lowering Frames
|
||||
|
||||
Most window systems use a desktop metaphor. Part of this metaphor is
|
||||
the idea that windows are stacked in a notional third dimension
|
||||
perpendicular to the screen surface, and thus ordered from ``highest''
|
||||
to ``lowest''. Where two windows overlap, the one higher up covers
|
||||
the one underneath. Even a window at the bottom of the stack can be
|
||||
seen if no other window overlaps it.
|
||||
|
||||
@c @cindex raising a frame redundant with raise-frame
|
||||
@cindex raising a frame
|
||||
@cindex lowering a frame
|
||||
A window's place in this ordering is not fixed; in fact, users tend
|
||||
to change the order frequently. @dfn{Raising} a window means moving
|
||||
it ``up'', to the top of the stack. @dfn{Lowering} a window means
|
||||
moving it to the bottom of the stack. This motion is in the notional
|
||||
third dimension only, and does not change the position of the window
|
||||
on the screen.
|
||||
|
||||
With Emacs, frames constitute the windows in the metaphor sketched
|
||||
above. You can raise and lower frames using these functions:
|
||||
Most window systems use a desktop metaphor. Part of this metaphor
|
||||
is the idea that system-level windows (e.g.@: Emacs frames) are
|
||||
stacked in a notional third dimension perpendicular to the screen
|
||||
surface. Where two overlap, the one higher up covers the one
|
||||
underneath. You can @dfn{raise} or @dfn{lower} a frame using the
|
||||
functions @code{raise-frame} and @code{lower-frame}.
|
||||
|
||||
@deffn Command raise-frame &optional frame
|
||||
This function raises frame @var{frame} (default, the selected frame).
|
||||
|
@ -1773,10 +1763,12 @@ where each pane is a list of form
|
|||
(@var{title} @var{item1} @var{item2}...)
|
||||
@end example
|
||||
|
||||
Each item should normally be a cons cell @code{(@var{line} . @var{value})},
|
||||
where @var{line} is a string, and @var{value} is the value to return if
|
||||
that @var{line} is chosen. An item can also be a string; this makes a
|
||||
non-selectable line in the menu.
|
||||
Each @var{item} should be a cons cell, @code{(@var{line} . @var{value})},
|
||||
where @var{line} is a string and @var{value} is the value to return if
|
||||
that @var{line} is chosen. Unlike in a menu keymap, a @code{nil}
|
||||
@var{value} does not make the menu item non-selectable.
|
||||
Alternatively, each @var{item} can be a string rather than a cons
|
||||
cell; this makes a non-selectable menu item.
|
||||
|
||||
If the user gets rid of the menu without making a valid choice, for
|
||||
instance by clicking the mouse away from a valid choice or by typing
|
||||
|
|
|
@ -23,6 +23,7 @@ define them.
|
|||
* Closures:: Functions that enclose a lexical environment.
|
||||
* Obsolete Functions:: Declaring functions obsolete.
|
||||
* Inline Functions:: Functions that the compiler will expand inline.
|
||||
* Declare Form:: Adding additional information about a function.
|
||||
* Declaring Functions:: Telling the compiler that a function is defined.
|
||||
* Function Safety:: Determining whether a function is safe to call.
|
||||
* Related Topics:: Cross-references to specific Lisp primitives
|
||||
|
@ -521,7 +522,7 @@ Scheme.)
|
|||
is called @dfn{defining a function}, and it is done with the
|
||||
@code{defun} special form.
|
||||
|
||||
@defspec defun name argument-list body-forms...
|
||||
@defmac defun name argument-list body-forms...
|
||||
@code{defun} is the usual way to define new Lisp functions. It
|
||||
defines the symbol @var{name} as a function that looks like this:
|
||||
|
||||
|
@ -578,7 +579,7 @@ without any hesitation or notification. Emacs does not prevent you
|
|||
from doing this, because redefining a function is sometimes done
|
||||
deliberately, and there is no way to distinguish deliberate
|
||||
redefinition from unintentional redefinition.
|
||||
@end defspec
|
||||
@end defmac
|
||||
|
||||
@cindex function aliases
|
||||
@defun defalias name definition &optional docstring
|
||||
|
@ -1132,29 +1133,46 @@ examining or altering the structure of closure objects.
|
|||
@node Obsolete Functions
|
||||
@section Declaring Functions Obsolete
|
||||
|
||||
You can use @code{make-obsolete} to declare a function obsolete. This
|
||||
indicates that the function may be removed at some stage in the future.
|
||||
You can mark a named function as @dfn{obsolete}, meaning that it may
|
||||
be removed at some point in the future. This causes Emacs to warn
|
||||
that the function is obsolete whenever it byte-compiles code
|
||||
containing that function, and whenever it displays the documentation
|
||||
for that function. In all other respects, an obsolete function
|
||||
behaves like any other function.
|
||||
|
||||
The easiest way to mark a function as obsolete is to put a
|
||||
@code{(declare (obsolete @dots{}))} form in the function's
|
||||
@code{defun} definition. @xref{Declare Form}. Alternatively, you can
|
||||
use the @code{make-obsolete} function, described below.
|
||||
|
||||
A macro (@pxref{Macros}) can also be marked obsolete with
|
||||
@code{make-obsolete}; this has the same effects as for a function. An
|
||||
alias for a function or macro can also be marked as obsolete; this
|
||||
makes the alias itself obsolete, not the function or macro which it
|
||||
resolves to.
|
||||
|
||||
@defun make-obsolete obsolete-name current-name &optional when
|
||||
This function makes the byte compiler warn that the function
|
||||
@var{obsolete-name} is obsolete. If @var{current-name} is a symbol, the
|
||||
warning message says to use @var{current-name} instead of
|
||||
@var{obsolete-name}. @var{current-name} does not need to be an alias for
|
||||
@var{obsolete-name}; it can be a different function with similar
|
||||
functionality. If @var{current-name} is a string, it is the warning
|
||||
message.
|
||||
This function marks @var{obsolete-name} as obsolete.
|
||||
@var{obsolete-name} should be a symbol naming a function or macro, or
|
||||
an alias for a function or macro.
|
||||
|
||||
If @var{current-name} is a symbol, the warning message says to use
|
||||
@var{current-name} instead of @var{obsolete-name}. @var{current-name}
|
||||
does not need to be an alias for @var{obsolete-name}; it can be a
|
||||
different function with similar functionality. @var{current-name} can
|
||||
also be a string, which serves as the warning message. The message
|
||||
should begin in lower case, and end with a period. It can also be
|
||||
@code{nil}, in which case the warning message provides no additional
|
||||
details.
|
||||
|
||||
If provided, @var{when} should be a string indicating when the function
|
||||
was first made obsolete---for example, a date or a release number.
|
||||
@end defun
|
||||
|
||||
You can define a function as an alias and declare it obsolete at the
|
||||
same time using the macro @code{define-obsolete-function-alias}:
|
||||
|
||||
@defmac define-obsolete-function-alias obsolete-name current-name &optional when docstring
|
||||
This macro marks the function @var{obsolete-name} obsolete and also
|
||||
defines it as an alias for the function @var{current-name}. It is
|
||||
equivalent to the following:
|
||||
This convenience macro marks the function @var{obsolete-name} obsolete
|
||||
and also defines it as an alias for the function @var{current-name}.
|
||||
It is equivalent to the following:
|
||||
|
||||
@example
|
||||
(defalias @var{obsolete-name} @var{current-name} @var{docstring})
|
||||
|
@ -1236,6 +1254,63 @@ body uses the arguments, as you do for macros.
|
|||
After an inline function is defined, its inline expansion can be
|
||||
performed later on in the same file, just like macros.
|
||||
|
||||
@node Declare Form
|
||||
@section The @code{declare} Form
|
||||
@findex declare
|
||||
|
||||
@code{declare} is a special macro which can be used to add ``meta''
|
||||
properties to a function or macro: for example, marking it as
|
||||
obsolete, or giving its forms a special @key{TAB} indentation
|
||||
convention in Emacs Lisp mode.
|
||||
|
||||
@anchor{Definition of declare}
|
||||
@defmac declare @var{specs}@dots{}
|
||||
This macro ignores its arguments and evaluates to @code{nil}; it has
|
||||
no run-time effect. However, when a @code{declare} form occurs as the
|
||||
@emph{very first form} in the body of a @code{defun} function
|
||||
definition or a @code{defmacro} macro definition (@pxref{Defining
|
||||
Macros}, for a description of @code{defmacro}), it appends the
|
||||
properties specified by @var{specs} to the function or macro. This
|
||||
work is specially performed by the @code{defun} and @code{defmacro}
|
||||
macros.
|
||||
|
||||
Note that if you put a @code{declare} form in an interactive function,
|
||||
it should go before the @code{interactive} form.
|
||||
|
||||
Each element in @var{specs} should have the form @code{(@var{property}
|
||||
@var{args}@dots{})}, which should not be quoted. These have the
|
||||
following effects:
|
||||
|
||||
@table @code
|
||||
@item (advertised-calling-convention @var{signature} @var{when})
|
||||
This acts like a call to @code{set-advertised-calling-convention}
|
||||
(@pxref{Obsolete Functions}); @var{signature} specifies the correct
|
||||
argument list for calling the function or macro, and @var{when} should
|
||||
be a string indicating when the variable was first made obsolete.
|
||||
|
||||
@item (debug @var{edebug-form-spec})
|
||||
This is valid for macros only. When stepping through the macro with
|
||||
Edebug, use @var{edebug-form-spec}. @xref{Instrumenting Macro Calls}.
|
||||
|
||||
@item (doc-string @var{n})
|
||||
Use element number @var{n}, if any, as the documentation string.
|
||||
|
||||
@item (indent @var{indent-spec})
|
||||
Indent calls to this function or macro according to @var{indent-spec}.
|
||||
This is typically used for macros, though it works for functions too.
|
||||
@xref{Indenting Macros}.
|
||||
|
||||
@item (obsolete @var{current-name} @var{when})
|
||||
Mark the function or macro as obsolete, similar to a call to
|
||||
@code{make-obsolete} (@pxref{Obsolete Functions}). @var{current-name}
|
||||
should be a symbol (in which case the warning message says to use that
|
||||
instead), a string (specifying the warning message), or @code{nil} (in
|
||||
which case the warning message gives no extra details). @var{when}
|
||||
should be a string indicating when the function or macro was first
|
||||
made obsolete.
|
||||
@end table
|
||||
@end defmac
|
||||
|
||||
@node Declaring Functions
|
||||
@section Telling the Compiler that a Function is Defined
|
||||
@cindex function declaration
|
||||
|
@ -1322,7 +1397,7 @@ opposed to an unspecified one).
|
|||
@cindex function safety
|
||||
@cindex safety of functions
|
||||
|
||||
Some major modes such as SES call functions that are stored in user
|
||||
Some major modes, such as SES, call functions that are stored in user
|
||||
files. (@inforef{Top, ,ses}, for more information on SES.) User
|
||||
files sometimes have poor pedigrees---you can get a spreadsheet from
|
||||
someone you've just met, or you can get one through email from someone
|
||||
|
|
|
@ -58,11 +58,17 @@ use @kbd{C-h f} (@code{describe-function}) or @kbd{C-h v}
|
|||
are many other conventions for documentation strings; see
|
||||
@ref{Documentation Tips}.
|
||||
|
||||
Documentation strings can contain several special substrings, which
|
||||
stand for key bindings to be looked up in the current keymaps when the
|
||||
documentation is displayed. This allows documentation strings to refer
|
||||
to the keys for related commands and be accurate even when a user
|
||||
rearranges the key bindings. (@xref{Keys in Documentation}.)
|
||||
Documentation strings can contain several special text sequences,
|
||||
referring to key bindings which are looked up in the current keymaps
|
||||
when the user views the documentation. This allows the help commands
|
||||
to display the correct keys even if a user rearranges the default key
|
||||
bindings. @xref{Keys in Documentation}.
|
||||
|
||||
In the documentation string of an autoloaded command
|
||||
(@pxref{Autoload}), these special text sequences have an additional
|
||||
special effect: they cause @kbd{C-h f} (@code{describe-function}) on
|
||||
the command to trigger autoloading. (This is needed for correctly
|
||||
setting up the hyperlinks in the @file{*Help*} buffer).
|
||||
|
||||
@vindex emacs-lisp-docstring-fill-column
|
||||
Emacs Lisp mode fills documentation strings to the width
|
||||
|
|
|
@ -2288,12 +2288,12 @@ command but with different enable conditions. The best way to do this
|
|||
in Emacs now is with extended menu items; before that feature existed,
|
||||
it could be done by defining alias commands and using them in menu
|
||||
items. Here's an example that makes two aliases for
|
||||
@code{toggle-read-only} and gives them different enable conditions:
|
||||
@code{read-only-mode} and gives them different enable conditions:
|
||||
|
||||
@example
|
||||
(defalias 'make-read-only 'toggle-read-only)
|
||||
(defalias 'make-read-only 'read-only-mode)
|
||||
(put 'make-read-only 'menu-enable '(not buffer-read-only))
|
||||
(defalias 'make-writable 'toggle-read-only)
|
||||
(defalias 'make-writable 'read-only-mode)
|
||||
(put 'make-writable 'menu-enable 'buffer-read-only)
|
||||
@end example
|
||||
|
||||
|
@ -2310,7 +2310,7 @@ itself). To request this, give the alias symbol a non-@code{nil}
|
|||
|
||||
@noindent
|
||||
causes menu items for @code{make-read-only} and @code{make-writable} to
|
||||
show the keyboard bindings for @code{toggle-read-only}.
|
||||
show the keyboard bindings for @code{read-only-mode}.
|
||||
|
||||
@node Toolkit Differences
|
||||
@subsubsection Toolkit Differences
|
||||
|
|
|
@ -384,11 +384,13 @@ non-@acronym{ASCII} characters written as @code{?v@var{literal}}.
|
|||
@section Autoload
|
||||
@cindex autoload
|
||||
|
||||
The @dfn{autoload} facility allows you to register the existence of
|
||||
a function or macro, but put off loading the file that defines it.
|
||||
The first call to the function automatically reads the proper file, in
|
||||
The @dfn{autoload} facility lets you register the existence of a
|
||||
function or macro, but put off loading the file that defines it. The
|
||||
first call to the function automatically loads the proper library, in
|
||||
order to install the real definition and other associated code, then
|
||||
runs the real definition as if it had been loaded all along.
|
||||
Autoloading can also be triggered by looking up the documentation of
|
||||
the function or macro (@pxref{Documentation Basics}).
|
||||
|
||||
There are two ways to set up an autoloaded function: by calling
|
||||
@code{autoload}, and by writing a special ``magic'' comment in the
|
||||
|
|
|
@ -235,43 +235,8 @@ of constants and nonconstant parts. To make this easier, use the
|
|||
@end example
|
||||
|
||||
The body of a macro definition can include a @code{declare} form,
|
||||
which can specify how @key{TAB} should indent macro calls, and how to
|
||||
step through them for Edebug.
|
||||
|
||||
@defmac declare @var{specs}@dots{}
|
||||
@anchor{Definition of declare}
|
||||
A @code{declare} form is used in a macro definition to specify various
|
||||
additional information about it. The following specifications are
|
||||
currently supported:
|
||||
|
||||
@table @code
|
||||
@item (debug @var{edebug-form-spec})
|
||||
Specify how to step through macro calls for Edebug.
|
||||
@xref{Instrumenting Macro Calls}.
|
||||
|
||||
@item (indent @var{indent-spec})
|
||||
Specify how to indent calls to this macro. @xref{Indenting Macros},
|
||||
for more details.
|
||||
|
||||
@item (doc-string @var{number})
|
||||
Specify which element of the macro is the documentation string, if
|
||||
any.
|
||||
@end table
|
||||
|
||||
A @code{declare} form only has its special effect in the body of a
|
||||
@code{defmacro} form if it immediately follows the documentation
|
||||
string, if present, or the argument list otherwise. (Strictly
|
||||
speaking, @emph{several} @code{declare} forms can follow the
|
||||
documentation string or argument list, but since a @code{declare} form
|
||||
can have several @var{specs}, they can always be combined into a
|
||||
single form.) When used at other places in a @code{defmacro} form, or
|
||||
outside a @code{defmacro} form, @code{declare} just returns @code{nil}
|
||||
without evaluating any @var{specs}.
|
||||
@end defmac
|
||||
|
||||
No macro absolutely needs a @code{declare} form, because that form
|
||||
has no effect on how the macro expands, on what the macro means in the
|
||||
program. It only affects the secondary features listed above.
|
||||
which specifies additional properties about the macro. @xref{Declare
|
||||
Form}.
|
||||
|
||||
@node Problems with Macros
|
||||
@section Common Problems Using Macros
|
||||
|
|
|
@ -664,25 +664,22 @@ This function returns the longest common substring of all possible
|
|||
completions of @var{string} in @var{collection}.
|
||||
|
||||
@cindex completion table
|
||||
The @var{collection} argument is called the @dfn{completion table}.
|
||||
Its value must be a list of strings, an alist whose keys are strings
|
||||
or symbols, an obarray, a hash table, or a completion function.
|
||||
@var{collection} is called the @dfn{completion table}. Its value must
|
||||
be a list of strings or cons cells, an obarray, a hash table, or a
|
||||
completion function.
|
||||
|
||||
Completion compares @var{string} against each of the permissible
|
||||
completions specified by @var{collection}. If no permissible
|
||||
completions match, @code{try-completion} returns @code{nil}. If there
|
||||
is just one matching completion, and the match is exact, it returns
|
||||
@code{try-completion} compares @var{string} against each of the
|
||||
permissible completions specified by the completion table. If no
|
||||
permissible completions match, it returns @code{nil}. If there is
|
||||
just one matching completion, and the match is exact, it returns
|
||||
@code{t}. Otherwise, it returns the longest initial sequence common
|
||||
to all possible matching completions.
|
||||
|
||||
If @var{collection} is an alist (@pxref{Association Lists}), the
|
||||
permissible completions are the elements of the alist that are either
|
||||
strings, or conses whose @sc{car} is a string or symbol.
|
||||
Symbols are converted to strings using @code{symbol-name}. Other
|
||||
elements of the alist are ignored. (Remember that in Emacs Lisp, the
|
||||
elements of alists do not @emph{have} to be conses.) In particular, a
|
||||
list of strings is allowed, even though we usually do not
|
||||
think of such lists as alists.
|
||||
If @var{collection} is an list, the permissible completions are
|
||||
specified by the elements of the list, each of which should be either
|
||||
a string, or a cons cell whose @sc{car} is either a string or a symbol
|
||||
(a symbol is converted to a string using @code{symbol-name}). If the
|
||||
list contains elements of any other type, those are ignored.
|
||||
|
||||
@cindex obarray in completion
|
||||
If @var{collection} is an obarray (@pxref{Creating Symbols}), the names
|
||||
|
|
|
@ -48,9 +48,8 @@ to
|
|||
@tex
|
||||
@math{2^{29}-1}),
|
||||
@end tex
|
||||
but some machines provide a wider range. Many examples in this
|
||||
chapter assume that an integer has 30 bits and that floating point
|
||||
numbers are IEEE double precision.
|
||||
but many machines provide a wider range. Many examples in this
|
||||
chapter assume the minimum integer width of 30 bits.
|
||||
@cindex overflow
|
||||
|
||||
The Lisp reader reads an integer as a sequence of digits with optional
|
||||
|
@ -160,8 +159,9 @@ The value of this variable is the smallest integer that Emacs Lisp can
|
|||
handle. It is negative.
|
||||
@end defvar
|
||||
|
||||
@xref{Character Codes, max-char}, for the maximum value of a valid
|
||||
character codepoint.
|
||||
In Emacs Lisp, text characters are represented by integers. Any
|
||||
integer between zero and the value of @code{max-char}, inclusive, is
|
||||
considered to be valid as a character. @xref{String Basics}.
|
||||
|
||||
@node Float Basics
|
||||
@section Floating Point Basics
|
||||
|
@ -171,8 +171,8 @@ character codepoint.
|
|||
not integral. The precise range of floating point numbers is
|
||||
machine-specific; it is the same as the range of the C data type
|
||||
@code{double} on the machine you are using. Emacs uses the
|
||||
@acronym{IEEE} floating point standard where possible (the standard is
|
||||
supported by most modern computers).
|
||||
@acronym{IEEE} floating point standard, which is supported by all
|
||||
modern computers.
|
||||
|
||||
The read syntax for floating point numbers requires either a decimal
|
||||
point (with at least one digit following), an exponent, or both. For
|
||||
|
@ -316,17 +316,16 @@ compare them, then you test whether two values are the same
|
|||
@emph{object}. By contrast, @code{=} compares only the numeric values
|
||||
of the objects.
|
||||
|
||||
At present, each integer value has a unique Lisp object in Emacs Lisp.
|
||||
In Emacs Lisp, each integer value is a unique Lisp object.
|
||||
Therefore, @code{eq} is equivalent to @code{=} where integers are
|
||||
concerned. It is sometimes convenient to use @code{eq} for comparing an
|
||||
unknown value with an integer, because @code{eq} does not report an
|
||||
error if the unknown value is not a number---it accepts arguments of any
|
||||
type. By contrast, @code{=} signals an error if the arguments are not
|
||||
numbers or markers. However, it is a good idea to use @code{=} if you
|
||||
can, even for comparing integers, just in case we change the
|
||||
representation of integers in a future Emacs version.
|
||||
concerned. It is sometimes convenient to use @code{eq} for comparing
|
||||
an unknown value with an integer, because @code{eq} does not report an
|
||||
error if the unknown value is not a number---it accepts arguments of
|
||||
any type. By contrast, @code{=} signals an error if the arguments are
|
||||
not numbers or markers. However, it is better programming practice to
|
||||
use @code{=} if you can, even for comparing integers.
|
||||
|
||||
Sometimes it is useful to compare numbers with @code{equal}; it
|
||||
Sometimes it is useful to compare numbers with @code{equal}, which
|
||||
treats two numbers as equal if they have the same data type (both
|
||||
integers, or both floating point) and the same value. By contrast,
|
||||
@code{=} can treat an integer and a floating point number as equal.
|
||||
|
@ -439,15 +438,16 @@ If @var{number} is already a floating point number, @code{float} returns
|
|||
it unchanged.
|
||||
@end defun
|
||||
|
||||
There are four functions to convert floating point numbers to integers;
|
||||
they differ in how they round. All accept an argument @var{number}
|
||||
and an optional argument @var{divisor}. Both arguments may be
|
||||
integers or floating point numbers. @var{divisor} may also be
|
||||
There are four functions to convert floating point numbers to
|
||||
integers; they differ in how they round. All accept an argument
|
||||
@var{number} and an optional argument @var{divisor}. Both arguments
|
||||
may be integers or floating point numbers. @var{divisor} may also be
|
||||
@code{nil}. If @var{divisor} is @code{nil} or omitted, these
|
||||
functions convert @var{number} to an integer, or return it unchanged
|
||||
if it already is an integer. If @var{divisor} is non-@code{nil}, they
|
||||
divide @var{number} by @var{divisor} and convert the result to an
|
||||
integer. An @code{arith-error} results if @var{divisor} is 0.
|
||||
integer. integer. If @var{divisor} is zero (whether integer or
|
||||
floating-point), Emacs signals an @code{arith-error} error.
|
||||
|
||||
@defun truncate number &optional divisor
|
||||
This returns @var{number}, converted to an integer by rounding towards
|
||||
|
@ -524,14 +524,12 @@ depending on your machine.
|
|||
@section Arithmetic Operations
|
||||
@cindex arithmetic operations
|
||||
|
||||
Emacs Lisp provides the traditional four arithmetic operations:
|
||||
addition, subtraction, multiplication, and division. Remainder and modulus
|
||||
functions supplement the division functions. The functions to
|
||||
add or subtract 1 are provided because they are traditional in Lisp and
|
||||
commonly used.
|
||||
|
||||
All of these functions except @code{%} return a floating point value
|
||||
if any argument is floating.
|
||||
Emacs Lisp provides the traditional four arithmetic operations
|
||||
(addition, subtraction, multiplication, and division), as well as
|
||||
remainder and modulus functions, and functions to add or subtract 1.
|
||||
Except for @code{%}, each of these functions accepts both integer and
|
||||
floating point arguments, and returns a floating point number if any
|
||||
argument is a floating point number.
|
||||
|
||||
It is important to note that in Emacs Lisp, arithmetic functions
|
||||
do not check for overflow. Thus @code{(1+ 536870911)} may evaluate to
|
||||
|
@ -620,40 +618,49 @@ quotient. If there are additional arguments @var{divisors}, then it
|
|||
divides @var{dividend} by each divisor in turn. Each argument may be a
|
||||
number or a marker.
|
||||
|
||||
If all the arguments are integers, then the result is an integer too.
|
||||
This means the result has to be rounded. On most machines, the result
|
||||
is rounded towards zero after each division, but some machines may round
|
||||
differently with negative arguments. This is because the Lisp function
|
||||
@code{/} is implemented using the C division operator, which also
|
||||
permits machine-dependent rounding. As a practical matter, all known
|
||||
machines round in the standard fashion.
|
||||
|
||||
@cindex @code{arith-error} in division
|
||||
If you divide an integer by 0, an @code{arith-error} error is signaled.
|
||||
(@xref{Errors}.) Floating point division by zero returns either
|
||||
infinity or a NaN if your machine supports @acronym{IEEE} floating point;
|
||||
otherwise, it signals an @code{arith-error} error.
|
||||
If all the arguments are integers, the result is an integer, obtained
|
||||
by rounding the quotient towards zero after each division.
|
||||
(Hypothetically, some machines may have different rounding behavior
|
||||
for negative arguments, because @code{/} is implemented using the C
|
||||
division operator, which permits machine-dependent rounding; but this
|
||||
does not happen in practice.)
|
||||
|
||||
@example
|
||||
@group
|
||||
(/ 6 2)
|
||||
@result{} 3
|
||||
@end group
|
||||
@group
|
||||
(/ 5 2)
|
||||
@result{} 2
|
||||
@end group
|
||||
@group
|
||||
(/ 5.0 2)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 5 2.0)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 5.0 2.0)
|
||||
@result{} 2.5
|
||||
@end group
|
||||
@group
|
||||
(/ 25 3 2)
|
||||
@result{} 4
|
||||
@end group
|
||||
@group
|
||||
(/ -17 6)
|
||||
@result{} -2 @r{(could in theory be @minus{}3 on some machines)}
|
||||
@result{} -2
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@cindex @code{arith-error} in division
|
||||
If you divide an integer by the integer 0, Emacs signals an
|
||||
@code{arith-error} error (@pxref{Errors}). If you divide a floating
|
||||
point number by 0, or divide by the floating point number 0.0, the
|
||||
result is either positive or negative infinity (@pxref{Float Basics}).
|
||||
@end defun
|
||||
|
||||
@defun % dividend divisor
|
||||
|
@ -661,22 +668,6 @@ otherwise, it signals an @code{arith-error} error.
|
|||
This function returns the integer remainder after division of @var{dividend}
|
||||
by @var{divisor}. The arguments must be integers or markers.
|
||||
|
||||
For negative arguments, the remainder is in principle machine-dependent
|
||||
since the quotient is; but in practice, all known machines behave alike.
|
||||
|
||||
An @code{arith-error} results if @var{divisor} is 0.
|
||||
|
||||
@example
|
||||
(% 9 4)
|
||||
@result{} 1
|
||||
(% -9 4)
|
||||
@result{} -1
|
||||
(% 9 -4)
|
||||
@result{} 1
|
||||
(% -9 -4)
|
||||
@result{} -1
|
||||
@end example
|
||||
|
||||
For any two integers @var{dividend} and @var{divisor},
|
||||
|
||||
@example
|
||||
|
@ -687,7 +678,19 @@ For any two integers @var{dividend} and @var{divisor},
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
always equals @var{dividend}.
|
||||
always equals @var{dividend}. If @var{divisor} is zero, Emacs signals
|
||||
an @code{arith-error} error.
|
||||
|
||||
@example
|
||||
(% 9 4)
|
||||
@result{} 1
|
||||
(% -9 4)
|
||||
@result{} -1
|
||||
(% 9 -4)
|
||||
@result{} 1
|
||||
(% -9 -4)
|
||||
@result{} -1
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@defun mod dividend divisor
|
||||
|
@ -697,10 +700,9 @@ in other words, the remainder after division of @var{dividend}
|
|||
by @var{divisor}, but with the same sign as @var{divisor}.
|
||||
The arguments must be numbers or markers.
|
||||
|
||||
Unlike @code{%}, @code{mod} returns a well-defined result for negative
|
||||
arguments. It also permits floating point arguments; it rounds the
|
||||
quotient downward (towards minus infinity) to an integer, and uses that
|
||||
quotient to compute the remainder.
|
||||
Unlike @code{%}, @code{mod} permits floating point arguments; it
|
||||
rounds the quotient downward (towards minus infinity) to an integer,
|
||||
and uses that quotient to compute the remainder.
|
||||
|
||||
If @var{divisor} is zero, @code{mod} signals an @code{arith-error}
|
||||
error if both arguments are integers, and returns a NaN otherwise.
|
||||
|
@ -1086,8 +1088,8 @@ numbers as arguments.
|
|||
@defun sin arg
|
||||
@defunx cos arg
|
||||
@defunx tan arg
|
||||
These are the ordinary trigonometric functions, with argument measured
|
||||
in radians.
|
||||
These are the basic trigonometric functions, with argument @var{arg}
|
||||
measured in radians.
|
||||
@end defun
|
||||
|
||||
@defun asin arg
|
||||
|
@ -1154,20 +1156,6 @@ This function returns the logarithm of @var{arg}, with base
|
|||
returns a NaN.
|
||||
@end defun
|
||||
|
||||
@ignore
|
||||
@defun expm1 arg
|
||||
This function returns @code{(1- (exp @var{arg}))}, but it is more
|
||||
accurate than that when @var{arg} is negative and @code{(exp @var{arg})}
|
||||
is close to 1.
|
||||
@end defun
|
||||
|
||||
@defun log1p arg
|
||||
This function returns @code{(log (1+ @var{arg}))}, but it is more
|
||||
accurate than that when @var{arg} is so small that adding 1 to it would
|
||||
lose accuracy.
|
||||
@end defun
|
||||
@end ignore
|
||||
|
||||
@defun log10 arg
|
||||
This function returns the logarithm of @var{arg}, with base 10:
|
||||
@code{(log10 @var{x})} @equiv{} @code{(log @var{x} 10)}.
|
||||
|
@ -1201,20 +1189,20 @@ The mathematical constant @math{pi} (3.14159@dots{}).
|
|||
@section Random Numbers
|
||||
@cindex random numbers
|
||||
|
||||
A deterministic computer program cannot generate true random numbers.
|
||||
For most purposes, @dfn{pseudo-random numbers} suffice. A series of
|
||||
pseudo-random numbers is generated in a deterministic fashion. The
|
||||
numbers are not truly random, but they have certain properties that
|
||||
mimic a random series. For example, all possible values occur equally
|
||||
often in a pseudo-random series.
|
||||
A deterministic computer program cannot generate true random
|
||||
numbers. For most purposes, @dfn{pseudo-random numbers} suffice. A
|
||||
series of pseudo-random numbers is generated in a deterministic
|
||||
fashion. The numbers are not truly random, but they have certain
|
||||
properties that mimic a random series. For example, all possible
|
||||
values occur equally often in a pseudo-random series.
|
||||
|
||||
In Emacs, pseudo-random numbers are generated from a ``seed''.
|
||||
Starting from any given seed, the @code{random} function always
|
||||
generates the same sequence of numbers. Emacs typically starts with a
|
||||
different seed each time, so the sequence of values of @code{random}
|
||||
typically differs in each Emacs run.
|
||||
Pseudo-random numbers are generated from a ``seed''. Starting from
|
||||
any given seed, the @code{random} function always generates the same
|
||||
sequence of numbers. By default, Emacs initializes the random seed at
|
||||
startup, in such a way that the sequence of values of @code{random}
|
||||
(with overwhelming likelihood) differs in each Emacs run.
|
||||
|
||||
Sometimes you want the random number sequence to be repeatable. For
|
||||
Sometimes you want the random number sequence to be repeatable. For
|
||||
example, when debugging a program whose behavior depends on the random
|
||||
number sequence, it is helpful to get the same behavior in each
|
||||
program run. To make the sequence repeat, execute @code{(random "")}.
|
||||
|
@ -1227,8 +1215,10 @@ This function returns a pseudo-random integer. Repeated calls return a
|
|||
series of pseudo-random integers.
|
||||
|
||||
If @var{limit} is a positive integer, the value is chosen to be
|
||||
nonnegative and less than @var{limit}. Otherwise, the value
|
||||
might be any integer representable in Lisp.
|
||||
nonnegative and less than @var{limit}. Otherwise, the value might be
|
||||
any integer representable in Lisp, i.e.@: an integer between
|
||||
@code{most-negative-fixnum} and @code{most-positive-fixnum}
|
||||
(@pxref{Integer Basics}).
|
||||
|
||||
If @var{limit} is @code{t}, it means to choose a new seed based on the
|
||||
current time of day and on Emacs's process @acronym{ID} number.
|
||||
|
|
|
@ -70,13 +70,11 @@ in their turn. The files @file{subdirs.el} are normally generated
|
|||
automatically when Emacs is installed.
|
||||
|
||||
@item
|
||||
It registers input methods by loading any @file{leim-list.el} file
|
||||
found in the @code{load-path}.
|
||||
|
||||
@c It removes PWD from the environment if it is not accurate.
|
||||
@c It abbreviates default-directory.
|
||||
|
||||
@c Now normal-top-level calls command-line.
|
||||
If the library @file{leim-list.el} exists, Emacs loads it. This
|
||||
optional library is intended for registering input methods; Emacs
|
||||
looks for it in @code{load-path} (@pxref{Library Search}), skipping
|
||||
those directories containing the standard Emacs libraries (since
|
||||
@file{leim-list.el} should not exist in those directories).
|
||||
|
||||
@vindex before-init-time
|
||||
@item
|
||||
|
@ -1159,6 +1157,20 @@ This function returns the effective @acronym{UID} of the user.
|
|||
The value may be a floating point number.
|
||||
@end defun
|
||||
|
||||
@defun system-users
|
||||
This function returns a list of strings, listing the user names on the
|
||||
system. If Emacs cannot retrieve this information, the return value
|
||||
is a list containing just the value of @code{user-real-login-name}.
|
||||
@end defun
|
||||
|
||||
@cindex user groups
|
||||
@defun system-groups
|
||||
This function returns a list of strings, listing the names of user
|
||||
groups on the system. If Emacs cannot retrieve this information, the
|
||||
return value is @code{nil}.
|
||||
@end defun
|
||||
|
||||
|
||||
@node Time of Day
|
||||
@section Time of Day
|
||||
|
||||
|
@ -1812,43 +1824,6 @@ minutes, and even if there have been garbage collections and autosaves.
|
|||
input. Then it becomes idle again, and all the idle timers that are
|
||||
set up to repeat will subsequently run another time, one by one.
|
||||
|
||||
@defun current-idle-time
|
||||
If Emacs is idle, this function returns the length of time Emacs has
|
||||
been idle, as a list of four integers: @code{(@var{sec-high}
|
||||
@var{sec-low} @var{microsec} @var{picosec})}, using the same format as
|
||||
@code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
|
||||
This is a convenient way to test whether Emacs is idle.
|
||||
|
||||
The main use of this function is when an idle timer function wants to
|
||||
``take a break'' for a while. It can set up another idle timer to
|
||||
call the same function again, after a few seconds more idleness.
|
||||
Here's an example:
|
||||
|
||||
@smallexample
|
||||
(defvar resume-timer nil
|
||||
"Timer that `timer-function' used to reschedule itself, or nil.")
|
||||
|
||||
(defun timer-function ()
|
||||
;; @r{If the user types a command while @code{resume-timer}}
|
||||
;; @r{is active, the next time this function is called from}
|
||||
;; @r{its main idle timer, deactivate @code{resume-timer}.}
|
||||
(when resume-timer
|
||||
(cancel-timer resume-timer))
|
||||
...@var{do the work for a while}...
|
||||
(when @var{taking-a-break}
|
||||
(setq resume-timer
|
||||
(run-with-idle-timer
|
||||
;; Compute an idle time @var{break-length}
|
||||
;; more than the current value.
|
||||
(time-add (current-idle-time)
|
||||
(seconds-to-time @var{break-length}))
|
||||
nil
|
||||
'timer-function))))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
Do not write an idle timer function containing a loop which does a
|
||||
certain amount of processing each time around, and exits when
|
||||
@code{(input-pending-p)} is non-@code{nil}. This approach seems very
|
||||
|
@ -1864,9 +1839,50 @@ It blocks out any idle timers that ought to run during that time.
|
|||
@end itemize
|
||||
|
||||
@noindent
|
||||
The correct approach is for the idle timer to reschedule itself after
|
||||
a brief pause, using the method in the @code{timer-function} example
|
||||
above.
|
||||
Similarly, do not write an idle timer function that sets up another
|
||||
idle timer (including the same idle timer) with @var{secs} argument
|
||||
less than or equal to the current idleness time. Such a timer will
|
||||
run almost immediately, and continue running again and again, instead
|
||||
of waiting for the next time Emacs becomes idle. The correct approach
|
||||
is to reschedule with an appropriate increment of the current value of
|
||||
the idleness time, as described below.
|
||||
|
||||
@defun current-idle-time
|
||||
If Emacs is idle, this function returns the length of time Emacs has
|
||||
been idle, as a list of four integers: @code{(@var{sec-high}
|
||||
@var{sec-low} @var{microsec} @var{picosec})}, using the same format as
|
||||
@code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
|
||||
This is a convenient way to test whether Emacs is idle.
|
||||
@end defun
|
||||
|
||||
The main use of @code{current-idle-time} is when an idle timer
|
||||
function wants to ``take a break'' for a while. It can set up another
|
||||
idle timer to call the same function again, after a few seconds more
|
||||
idleness. Here's an example:
|
||||
|
||||
@example
|
||||
(defvar my-resume-timer nil
|
||||
"Timer for `my-timer-function' to reschedule itself, or nil.")
|
||||
|
||||
(defun my-timer-function ()
|
||||
;; @r{If the user types a command while @code{my-resume-timer}}
|
||||
;; @r{is active, the next time this function is called from}
|
||||
;; @r{its main idle timer, deactivate @code{my-resume-timer}.}
|
||||
(when my-resume-timer
|
||||
(cancel-timer my-resume-timer))
|
||||
...@var{do the work for a while}...
|
||||
(when @var{taking-a-break}
|
||||
(setq my-resume-timer
|
||||
(run-with-idle-timer
|
||||
;; Compute an idle time @var{break-length}
|
||||
;; more than the current value.
|
||||
(time-add (current-idle-time)
|
||||
(seconds-to-time @var{break-length}))
|
||||
nil
|
||||
'my-timer-function))))
|
||||
@end example
|
||||
|
||||
@node Terminal Input
|
||||
@section Terminal Input
|
||||
|
@ -1900,7 +1916,6 @@ If @var{flow} is non-@code{nil}, then Emacs uses @sc{xon/xoff}
|
|||
(@kbd{C-q}, @kbd{C-s}) flow control for output to the terminal. This
|
||||
has no effect except in @sc{cbreak} mode.
|
||||
|
||||
@c Emacs 19 feature
|
||||
The argument @var{meta} controls support for input character codes
|
||||
above 127. If @var{meta} is @code{t}, Emacs converts characters with
|
||||
the 8th bit set into Meta characters. If @var{meta} is @code{nil},
|
||||
|
@ -1909,7 +1924,6 @@ it as a parity bit. If @var{meta} is neither @code{t} nor @code{nil},
|
|||
Emacs uses all 8 bits of input unchanged. This is good for terminals
|
||||
that use 8-bit character sets.
|
||||
|
||||
@c Emacs 19 feature
|
||||
If @var{quit-char} is non-@code{nil}, it specifies the character to
|
||||
use for quitting. Normally this character is @kbd{C-g}.
|
||||
@xref{Quitting}.
|
||||
|
@ -1918,7 +1932,6 @@ use for quitting. Normally this character is @kbd{C-g}.
|
|||
The @code{current-input-mode} function returns the input mode settings
|
||||
Emacs is currently using.
|
||||
|
||||
@c Emacs 19 feature
|
||||
@defun current-input-mode
|
||||
This function returns the current mode for reading keyboard input. It
|
||||
returns a list, corresponding to the arguments of @code{set-input-mode},
|
||||
|
|
|
@ -1278,20 +1278,18 @@ search. It works by means of the match data.
|
|||
|
||||
@cindex case in replacements
|
||||
@defun replace-match replacement &optional fixedcase literal string subexp
|
||||
This function replaces the text in the buffer (or in @var{string}) that
|
||||
was matched by the last search. It replaces that text with
|
||||
@var{replacement}.
|
||||
This function performs a replacement operation on a buffer or string.
|
||||
|
||||
If you did the last search in a buffer, you should specify @code{nil}
|
||||
for @var{string} and make sure that the current buffer when you call
|
||||
@code{replace-match} is the one in which you did the searching or
|
||||
matching. Then @code{replace-match} does the replacement by editing
|
||||
the buffer; it leaves point at the end of the replacement text, and
|
||||
returns @code{t}.
|
||||
If you did the last search in a buffer, you should omit the
|
||||
@var{string} argument or specify @code{nil} for it, and make sure that
|
||||
the current buffer is the one in which you performed the last search.
|
||||
Then this function edits the buffer, replacing the matched text with
|
||||
@var{replacement}. It leaves point at the end of the replacement
|
||||
text, and returns @code{t}.
|
||||
|
||||
If you did the search in a string, pass the same string as @var{string}.
|
||||
Then @code{replace-match} does the replacement by constructing and
|
||||
returning a new string.
|
||||
If you performed the last search on a string, pass the same string as
|
||||
@var{string}. Then this function returns a new string, in which the
|
||||
matched text is replaced by @var{replacement}.
|
||||
|
||||
If @var{fixedcase} is non-@code{nil}, then @code{replace-match} uses
|
||||
the replacement text without case conversion; otherwise, it converts
|
||||
|
|
|
@ -35,28 +35,31 @@ keyboard character events.
|
|||
@node String Basics
|
||||
@section String and Character Basics
|
||||
|
||||
Characters are represented in Emacs Lisp as integers;
|
||||
whether an integer is a character or not is determined only by how it is
|
||||
used. Thus, strings really contain integers. @xref{Character Codes},
|
||||
for details about character representation in Emacs.
|
||||
A character is a Lisp object which represents a single character of
|
||||
text. In Emacs Lisp, characters are simply integers; whether an
|
||||
integer is a character or not is determined only by how it is used.
|
||||
@xref{Character Codes}, for details about character representation in
|
||||
Emacs.
|
||||
|
||||
The length of a string (like any array) is fixed, and cannot be
|
||||
altered once the string exists. Strings in Lisp are @emph{not}
|
||||
terminated by a distinguished character code. (By contrast, strings in
|
||||
C are terminated by a character with @acronym{ASCII} code 0.)
|
||||
A string is a fixed sequence of characters. It is a type of
|
||||
sequence called a @dfn{array}, meaning that its length is fixed and
|
||||
cannot be altered once it is created (@pxref{Sequences Arrays
|
||||
Vectors}). Unlike in C, Emacs Lisp strings are @emph{not} terminated
|
||||
by a distinguished character code.
|
||||
|
||||
Since strings are arrays, and therefore sequences as well, you can
|
||||
operate on them with the general array and sequence functions.
|
||||
(@xref{Sequences Arrays Vectors}.) For example, you can access or
|
||||
change individual characters in a string using the functions @code{aref}
|
||||
and @code{aset} (@pxref{Array Functions}). However, note that
|
||||
@code{length} should @emph{not} be used for computing the width of a
|
||||
string on display; use @code{string-width} (@pxref{Width}) instead.
|
||||
operate on them with the general array and sequence functions
|
||||
documented in @ref{Sequences Arrays Vectors}. For example, you can
|
||||
access or change individual characters in a string using the functions
|
||||
@code{aref} and @code{aset} (@pxref{Array Functions}). However, note
|
||||
that @code{length} should @emph{not} be used for computing the width
|
||||
of a string on display; use @code{string-width} (@pxref{Width})
|
||||
instead.
|
||||
|
||||
There are two text representations for non-@acronym{ASCII} characters in
|
||||
Emacs strings (and in buffers): unibyte and multibyte (@pxref{Text
|
||||
Representations}). For most Lisp programming, you don't need to be
|
||||
concerned with these two representations.
|
||||
There are two text representations for non-@acronym{ASCII}
|
||||
characters in Emacs strings (and in buffers): unibyte and multibyte.
|
||||
For most Lisp programming, you don't need to be concerned with these
|
||||
two representations. @xref{Text Representations}, for details.
|
||||
|
||||
Sometimes key sequences are represented as unibyte strings. When a
|
||||
unibyte string is a key sequence, string elements in the range 128 to
|
||||
|
@ -88,7 +91,7 @@ for information about the syntax of characters and strings.
|
|||
representations and to encode and decode character codes.
|
||||
|
||||
@node Predicates for Strings
|
||||
@section The Predicates for Strings
|
||||
@section Predicates for Strings
|
||||
|
||||
For more information about general sequence and array predicates,
|
||||
see @ref{Sequences Arrays Vectors}, and @ref{Arrays}.
|
||||
|
|
|
@ -2999,12 +2999,11 @@ can be the following:
|
|||
A face name (a symbol or string).
|
||||
|
||||
@item
|
||||
A property list of face attributes. This has the
|
||||
form (@var{keyword} @var{value} @dots{}), where each @var{keyword} is a
|
||||
face attribute name and @var{value} is a meaningful value for that
|
||||
attribute. With this feature, you do not need to create a face each
|
||||
time you want to specify a particular attribute for certain text.
|
||||
@xref{Face Attributes}.
|
||||
A property list of face attributes. This has the form (@var{keyword}
|
||||
@var{value} @dots{}), where each @var{keyword} is a face attribute
|
||||
name and @var{value} is a meaningful value for that attribute. With
|
||||
this feature, you do not need to create a face each time you want to
|
||||
specify a particular attribute for certain text.
|
||||
|
||||
@item
|
||||
A list of faces. This specifies a face which is an aggregate of the
|
||||
|
|
|
@ -403,7 +403,8 @@ unconditionally initializes the variable, whereas @code{defvar}
|
|||
initializes it only if it is originally void.
|
||||
|
||||
To define a customizable variable, you should use @code{defcustom}
|
||||
(which calls @code{defvar} as a subroutine). @xref{Customization}.
|
||||
(which calls @code{defvar} as a subroutine). @xref{Variable
|
||||
Definitions}.
|
||||
|
||||
@defspec defvar symbol [value [doc-string]]
|
||||
This special form defines @var{symbol} as a variable. Note that
|
||||
|
|
|
@ -1,3 +1,270 @@
|
|||
2012-10-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* erc.texi: Include emacsver.texi, and use EMACSVER rather than
|
||||
ERC version.
|
||||
(Introduction): ERC is distributed with Emacs.
|
||||
(Obtaining ERC, Installation): Remove chapters, no longer relevant.
|
||||
(Getting Started): Simplify.
|
||||
(Getting Help and Reporting Bugs): Refer to general Emacs lists.
|
||||
(History): Mention ERC maintained as part of Emacs now.
|
||||
* Makefile.in ($(buildinfodir)/erc$(INFO_EXT), erc.dvi, erc.pdf):
|
||||
Add dependency on emacsver.texi.
|
||||
|
||||
* erc.texi: Remove hand-written node pointers.
|
||||
|
||||
2012-10-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* newsticker.texi (Overview, Requirements, Usage, Configuration):
|
||||
Copyedits.
|
||||
|
||||
2012-10-01 Eric Ludlam <zappo@gnu.org>
|
||||
|
||||
* ede.texi (Quick Start, Project Local Variables)
|
||||
(Miscellaneous commands, ede-java-root, Development Overview)
|
||||
(Detecting a Project): New nodes.
|
||||
(Simple projects): Node deleted.
|
||||
|
||||
* eieio.texi (Building Classes): Some slot attributes cannot be
|
||||
overridden.
|
||||
(Slot Options): Remove an example.
|
||||
(Method Invocation, Documentation): New nodes.
|
||||
|
||||
2012-10-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in ($(buildinfodir)/reftex$(INFO_EXT)), reftex.dvi)
|
||||
(reftex.pdf): Add dependency on emacsver.texi.
|
||||
* reftex.texi: Don't include directory part for emacsver.texi;
|
||||
the Makefile's -I handles it.
|
||||
|
||||
2012-09-30 Ralf Angeli <angeli@caeruleus.net>
|
||||
|
||||
Merge from standalone RefTeX repository.
|
||||
|
||||
* reftex.texi: Express TeX, LaTeX, AUCTeX, BibTeX and RefTeX
|
||||
with macros.
|
||||
(Imprint): Mention Wolfgang in list of contributors.
|
||||
(Creating Citations): Give a hint about how to
|
||||
auto-revert the BibTeX database file when using external editors.
|
||||
(Referencing Labels): Simplify section about reference macro
|
||||
cycling.
|
||||
(Options (Referencing Labels)): Adapt to new structure of
|
||||
`reftex-ref-style-alist'.
|
||||
(Referencing Labels, Reference Styles): Document changes in the
|
||||
referencing functionality.
|
||||
(Commands): Mention options for definition of header and footer in
|
||||
BibTeX files.
|
||||
(Options (Creating Citations)): Document
|
||||
`reftex-create-bibtex-header' and `reftex-create-bibtex-footer'.
|
||||
(Reference Styles): New section.
|
||||
(varioref (LaTeX package), fancyref (LaTeX package)): Remove.
|
||||
(Options (Referencing Labels)): Remove descriptions of deprecated
|
||||
variables `reftex-vref-is-default' and `reftex-fref-is-default'.
|
||||
Add descriptions for `reftex-ref-style-alist' and
|
||||
`reftex-ref-style-default-list'.
|
||||
(Referencing Labels): Update regarding reference styles.
|
||||
(Citation Styles): Mention support for ConTeXt.
|
||||
(Options (Defining Label Environments)): Fix typo.
|
||||
(Options (Creating Citations)): Document
|
||||
`reftex-cite-key-separator'.
|
||||
|
||||
2012-09-30 Achim Gratz <Stromeko@Stromeko.DE>
|
||||
|
||||
* org.texi: Add description of ORG_ADD_CONTRIB to info
|
||||
documentation. Add link to Worg for more details.
|
||||
|
||||
* org.texi: Clarify installation procedure. Provide link to the
|
||||
build system description on Worg.
|
||||
|
||||
* org.texi: Remove reference to utils/, x11idle.c is now in
|
||||
contrib/scripts.
|
||||
|
||||
* org.texi: Re-normalize to "Org mode" in manual.
|
||||
|
||||
* org.texi (Installation): Adapt documentation to new build
|
||||
system. Mention GNU ELPA (since it needs to be handled like Emacs
|
||||
built-in Org).
|
||||
|
||||
2012-09-30 Adam Spiers <orgmode@adamspiers.org> (tiny change)
|
||||
|
||||
* org.texi: Fix typo in description of the 'Hooks' section.
|
||||
|
||||
* org.texi: Add ID to the list of special properties.
|
||||
|
||||
2012-09-30 Andrew Hyatt <ahyatt@gmail.com> (tiny change)
|
||||
|
||||
* org.texi (Moving subtrees): Document the ability to archive to a
|
||||
datetree.
|
||||
|
||||
2012-09-30 Bastien Guerry <bzg@altern.org>
|
||||
|
||||
* org.texi (Installation, Feedback, Batch execution): Use
|
||||
(add-to-list 'load-path ... t) for the contrib dir.
|
||||
|
||||
* org.texi (results): Update documentation for ":results drawer"
|
||||
and ":results org".
|
||||
|
||||
* org.texi (Column width and alignment): Fix typo.
|
||||
|
||||
* org.texi (Activation): Point to the "Conflicts" section.
|
||||
|
||||
* org.texi (Conflicts): Mention filladapt.el in the list of
|
||||
conflicting packages.
|
||||
|
||||
* org.texi (Activation): Adding org-mode to `auto-mode-alist' is
|
||||
not needed for versions of Emacs > 22.1.
|
||||
|
||||
* org.texi (History and Acknowledgments): Fix typo.
|
||||
|
||||
* org.texi (History and Acknowledgments): Add my own
|
||||
acknowledgments.
|
||||
|
||||
* org.texi (Agenda commands): Document the new command and the new
|
||||
option.
|
||||
|
||||
* org.texi (Agenda commands): Delete `org-agenda-action' section.
|
||||
(Agenda commands): Reorder. Document `*' to toggle persistent
|
||||
marks.
|
||||
|
||||
* org.texi (Agenda dispatcher): Mention
|
||||
`org-toggle-agenda-sticky'.
|
||||
(Agenda commands, Exporting Agenda Views): Fix typo.
|
||||
|
||||
* org.texi (Templates in contexts, Setting Options): Update to
|
||||
reflect changes in how contexts options are processed.
|
||||
|
||||
* org.texi (Templates in contexts): Document the new structure of
|
||||
the variables `org-agenda-custom-commands-contexts' and
|
||||
`org-capture-templates-contexts'.
|
||||
|
||||
* org.texi (Templates in contexts): Document the new option
|
||||
`org-capture-templates-contexts'.
|
||||
(Storing searches): Document the new option
|
||||
`org-agenda-custom-commands-contexts'.
|
||||
|
||||
* org.texi (Formula syntax for Lisp): Reformat.
|
||||
|
||||
* org.texi (Special properties, Column attributes)
|
||||
(Agenda column view): Document the new special property
|
||||
CLOCKSUM_T.
|
||||
|
||||
* org.texi (Template expansion): Document the new %l template.
|
||||
|
||||
* org.texi (Fast access to TODO states): Fix documentation about
|
||||
allowed characters for fast todo selection.
|
||||
|
||||
* org.texi (Weekly/daily agenda): Mention APPT_WARNTIME and its
|
||||
use in `org-agenda-to-appt'.
|
||||
|
||||
* org.texi (Comment lines): Update wrt comments.
|
||||
|
||||
* org.texi (Resolving idle time): Document new keybinding.
|
||||
|
||||
* org.texi (Clocking commands): Document the use of S-M-<up/down>
|
||||
on clock timestamps.
|
||||
|
||||
* org.texi (Fast access to TODO states): Explicitely says only
|
||||
letters are supported as fast TODO selection keys.
|
||||
|
||||
* org.texi (Link abbreviations): Illustrate the use of the "%h"
|
||||
specifier. Document the new "%(my-function)" specifier.
|
||||
|
||||
* org.texi (Clocking commands): New cindex.
|
||||
(Clocking commands): Update documentation for `org-clock-in'.
|
||||
Document `org-clock-in-last'. Mention `org-clock-out' and
|
||||
`org-clock-in-last' as commands that can be globally bound.
|
||||
(Resolving idle time): Document continuous clocking.
|
||||
|
||||
* org.texi (Top, Introduction): Fix formatting.
|
||||
(Activation): Add index entries.
|
||||
(Conventions): Update section.
|
||||
(Embedded @LaTeX{}): Fix formatting.
|
||||
|
||||
* org.texi (Visibility cycling): Document `show-children'.
|
||||
|
||||
* org.texi (Using capture): Mention the `org-capture-last-stored'
|
||||
bookmark as a way to jump to the last stored capture.
|
||||
|
||||
* org.texi (Uploading files): Fix typo.
|
||||
|
||||
* org.texi (Using capture): Document `C-0' as a prefix argument
|
||||
for `org-capture'.
|
||||
|
||||
* org.texi (Agenda commands): Document persistent marks.
|
||||
|
||||
* org.texi (Template expansion): Update doc to reflect change.
|
||||
|
||||
* org.texi (Radio tables): Document the :no-escape parameter.
|
||||
|
||||
* org.texi (Repeated tasks): Document repeat cookies for years,
|
||||
months, weeks, days and hours.
|
||||
|
||||
* org.texi (Export options): State that you can use the d: option
|
||||
by specifying a list of drawers.
|
||||
|
||||
* org.texi (HTML preamble and postamble): Small doc improvement.
|
||||
|
||||
2012-09-30 Brian van den Broek <vanden@gmail.com> (tiny change)
|
||||
|
||||
* org.texi: The sections in the Exporting section of the manual
|
||||
left out articles in the description of the org-export-as-*
|
||||
commands, among other places. This patch adds them, adds a few
|
||||
missing prepositions, and switches instances of "an HTML" to "a
|
||||
html" for internal consistency.
|
||||
|
||||
* org.texi: Alter several examples of headings with timestamps in
|
||||
them to include the timestamps in the body instead of the heading.
|
||||
|
||||
2012-09-30 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.texi (Agenda dispatcher): Document sticky agenda views and
|
||||
the new key for them.
|
||||
|
||||
2012-09-30 Charles <millarc@verizon.net> (tiny change)
|
||||
|
||||
* org.texi (Advanced features): Fix error in table.
|
||||
|
||||
2012-09-30 Feng Shu <tumashu@gmail.com>
|
||||
|
||||
* org.texi (@LaTeX{} fragments): Document imagemagick as an
|
||||
alternative to dvipng.
|
||||
|
||||
2012-09-30 François Allisson <francois@allisson.co> (tiny change)
|
||||
|
||||
* org.texi: Remove extra curly bracket.
|
||||
|
||||
2012-09-30 Giovanni Ridolfi <giovanni.ridolfi@yahoo.it> (tiny change)
|
||||
|
||||
* org.texi (org-clock-in-last and org-clock-cancel): Update the
|
||||
defkeys.
|
||||
|
||||
2012-09-30 Ippei FURUHASHI <top.tuna+orgmode@gmail.com> (tiny change)
|
||||
|
||||
* org.texi (Agenda commands): Fix two typos by giving
|
||||
corresponding function names, according to
|
||||
`org-agenda-view-mode-dispatch'.
|
||||
|
||||
2012-09-30 Jan Bäcker <jan.boecker@jboecker.de>
|
||||
|
||||
* org.texi (The spreadsheet): Fix typo.
|
||||
|
||||
2012-09-30 Memnon Anon <gegendosenfleisch@gmail.com> (tiny change)
|
||||
|
||||
* org.texi (Tracking your habits): Point to the "Tracking TODO
|
||||
state changes" section.
|
||||
|
||||
2012-09-30 Nicolas Goaziou <n.goaziou@gmail.com>
|
||||
|
||||
* org.texi (Literal examples): Remove reference to unknown
|
||||
`org-export-latex-minted' variable. Also simplify footnote since
|
||||
`org-export-latex-listings' documentation is exhaustive already.
|
||||
|
||||
* org.texi (Plain lists): Remove reference to now hard-coded
|
||||
`bullet' automatic rule.
|
||||
|
||||
2012-09-30 Toby S. Cubitt <tsc25@cantab.net>
|
||||
|
||||
* org.texi: Updated documentation accordingly.
|
||||
|
||||
2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* texinfo.tex: Merge from gnulib.
|
||||
|
|
|
@ -336,12 +336,12 @@ epa.pdf: ${srcdir}/epa.texi
|
|||
$(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi
|
||||
|
||||
erc : $(buildinfodir)/erc$(INFO_EXT)
|
||||
$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi
|
||||
$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi
|
||||
$(mkinfodir)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi
|
||||
erc.dvi: ${srcdir}/erc.texi
|
||||
erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi
|
||||
erc.pdf: ${srcdir}/erc.texi
|
||||
erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi
|
||||
|
||||
ert : $(buildinfodir)/ert$(INFO_EXT)
|
||||
|
@ -526,12 +526,12 @@ rcirc.pdf: ${srcdir}/rcirc.texi
|
|||
$(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi
|
||||
|
||||
reftex : $(buildinfodir)/reftex$(INFO_EXT)
|
||||
$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi
|
||||
$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi
|
||||
$(mkinfodir)
|
||||
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi
|
||||
reftex.dvi: ${srcdir}/reftex.texi
|
||||
reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi
|
||||
reftex.pdf: ${srcdir}/reftex.texi
|
||||
reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi
|
||||
$(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi
|
||||
|
||||
remember : $(buildinfodir)/remember$(INFO_EXT)
|
||||
|
|
|
@ -35232,7 +35232,7 @@ character of the prefix can simply be typed twice.
|
|||
|
||||
Calc is controlled by many variables, most of which can be reset
|
||||
from within Calc. Some variables are less involved with actual
|
||||
calculation and can be set outside of Calc using Emacs'ss
|
||||
calculation and can be set outside of Calc using Emacs's
|
||||
customization facilities. These variables are listed below.
|
||||
Typing @kbd{M-x customize-variable RET @var{variable-name} RET}
|
||||
will bring up a buffer in which the variable's value can be redefined.
|
||||
|
|
|
@ -2087,7 +2087,7 @@ of a list. @var{list} should evaluate to a list; the body @var{forms}
|
|||
are executed with @var{var} bound to each element of the list in
|
||||
turn. Finally, the @var{result} form (or @code{nil}) is evaluated
|
||||
with @var{var} bound to @code{nil} to produce the result returned by
|
||||
the loop. Unlike with Emacs'ss built in @code{dolist}, the loop is
|
||||
the loop. Unlike with Emacs's built in @code{dolist}, the loop is
|
||||
surrounded by an implicit @code{nil} block.
|
||||
@end defspec
|
||||
|
||||
|
@ -2097,7 +2097,7 @@ of times. The body is executed with @var{var} bound to the integers
|
|||
from zero (inclusive) to @var{count} (exclusive), in turn. Then
|
||||
the @code{result} form is evaluated with @var{var} bound to the total
|
||||
number of iterations that were done (i.e., @code{(max 0 @var{count})})
|
||||
to get the return value for the loop form. Unlike with Emacs'ss built in
|
||||
to get the return value for the loop form. Unlike with Emacs's built in
|
||||
@code{dolist}, the loop is surrounded by an implicit @code{nil} block.
|
||||
@end defspec
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -63,7 +63,7 @@ Emacs.
|
|||
* Making New Objects:: How to construct new objects.
|
||||
* Accessing Slots:: How to access a slot.
|
||||
* Writing Methods:: How to write a method.
|
||||
@c * Method Invocation:: How methods are invoked.
|
||||
* Method Invocation:: How methods are invoked.
|
||||
* Predicates:: Class-p, Object-p, etc-p.
|
||||
* Association Lists:: List of objects as association lists.
|
||||
* Customizing:: Customizing objects.
|
||||
|
@ -71,8 +71,9 @@ Emacs.
|
|||
* Base Classes:: Additional classes you can inherit from.
|
||||
* Browsing:: Browsing your class lists.
|
||||
* Class Values:: Displaying information about a class or object.
|
||||
* Documentation:: Automatically creating texinfo documentation.
|
||||
* Default Superclass:: The root superclasses.
|
||||
* Signals:: When you make errors
|
||||
* Signals:: When you make errors.
|
||||
* Naming Conventions:: Name your objects in an Emacs friendly way.
|
||||
* CLOS compatibility:: What are the differences?
|
||||
* Wish List:: Things about EIEIO that could be improved.
|
||||
|
@ -269,6 +270,10 @@ If two parents share the same slot name, the parent which appears in
|
|||
the @var{superclass-list} first sets the tags for that slot. If the
|
||||
new class has a slot with the same name as the parent, the new slot
|
||||
overrides the parent's slot.
|
||||
|
||||
When overriding a slot, some slot attributes cannot be overridden
|
||||
because they break basic OO rules. You cannot override @code{:type}
|
||||
or @code{:protection}.
|
||||
@end defmac
|
||||
|
||||
@noindent
|
||||
|
@ -294,7 +299,7 @@ This option is here to support programs written with older versions of
|
|||
@end defvar
|
||||
|
||||
@menu
|
||||
* Inheritance:: How to specify parents classes
|
||||
* Inheritance:: How to specify parents classes.
|
||||
* Slot Options:: How to specify features of a slot.
|
||||
* Class Options:: How to specify features for this class.
|
||||
@end menu
|
||||
|
@ -435,35 +440,6 @@ A symbol that is a function like this:
|
|||
:initform +
|
||||
@end example
|
||||
will set the initial value as that symbol.
|
||||
A function that is a lambda expression, like this:
|
||||
@example
|
||||
:initform (lambda () some-variablename)
|
||||
@end example
|
||||
|
||||
will be evaluated at instantiation time to the value of
|
||||
@code{some-variablename}.
|
||||
@c This feature was more annoying than useful. Use the
|
||||
@c `initialize-instance' function to do this.
|
||||
@c
|
||||
@c On the other hand, if you need code to be
|
||||
@c executed at instantiation time as the initform, code like this:
|
||||
@c @example
|
||||
@c :initform (lambda () (+ 1 some-global-var))
|
||||
@c @end example
|
||||
@c will be identified as a function call, and be executed in place.
|
||||
|
||||
@cindex lambda-default
|
||||
|
||||
|
||||
Lastly, using the function @code{lambda-default} instead of
|
||||
@code{lambda} will let you specify a lambda expression to use as the
|
||||
value, without evaluation, thus:
|
||||
@example
|
||||
:initform (lambda-default () some-variablename)
|
||||
@end example
|
||||
@c @@TODO - This will be deleted after fair warning.
|
||||
will not be evaluated at instantiation time, and the value in this
|
||||
slot will instead be @code{(lambda () some-variablename)}.
|
||||
|
||||
After a class has been created with @code{defclass}, you can change
|
||||
that default value with @code{oset-default}. @ref{Accessing Slots}.
|
||||
|
@ -481,9 +457,6 @@ Here are some examples:
|
|||
An object of your class type.
|
||||
@item (or null symbol)
|
||||
A symbol, or nil.
|
||||
@item function
|
||||
A function symbol, or a @code{lambda-default} expression.
|
||||
|
||||
@end table
|
||||
|
||||
@item :allocation
|
||||
|
@ -621,9 +594,12 @@ Search for methods in the class hierarchy in breadth first order.
|
|||
This is the default.
|
||||
@item :depth-first
|
||||
Search for methods in the class hierarchy in a depth first order.
|
||||
@item :c3
|
||||
Searches for methods in in a linearized way that most closely matches
|
||||
what CLOS does when a monotonic class structure is defined.
|
||||
@end table
|
||||
|
||||
@c @xref{Method Invocation}, for more on method invocation order.
|
||||
@xref{Method Invocation}, for more on method invocation order.
|
||||
|
||||
@item :metaclass
|
||||
Unsupported CLOS option. Enables the use of a different base class other
|
||||
|
@ -1008,10 +984,39 @@ method.
|
|||
|
||||
@c TODO - Write some more about static methods here
|
||||
|
||||
@c @node Method Invocation
|
||||
@c @chapter Method Invocation
|
||||
@node Method Invocation
|
||||
@chapter Method Invocation
|
||||
|
||||
@c TODO - writeme
|
||||
When classes are defined, you can specify the
|
||||
@code{:method-invocation-order}. This is a feature specific to EIEIO.
|
||||
|
||||
This controls the order in which method resolution occurs for
|
||||
@code{:primary} methods in cases of multiple inheritance. The order
|
||||
affects which method is called first in a tree, and if
|
||||
@code{call-next-method} is used, it controls the order in which the
|
||||
stack of methods are run.
|
||||
|
||||
The original EIEIO order turned out to be broken for multiple
|
||||
inheritance, but some programs depended on it. As such this option
|
||||
was added when the default invocation order was fixed to something
|
||||
that made more sense in that case.
|
||||
|
||||
Valid values are:
|
||||
|
||||
@table @code
|
||||
@item :breadth-first
|
||||
Search for methods in the class hierarchy in breadth first order.
|
||||
This is the default.
|
||||
@item :depth-first
|
||||
Search for methods in the class hierarchy in a depth first order.
|
||||
@item :c3
|
||||
Searches for methods in in a linearized way that most closely matches
|
||||
what CLOS does when CLOS when a monotonic class structure is defined.
|
||||
|
||||
This is derived from the Dylan language documents by
|
||||
Kim Barrett et al.: A Monotonic Superclass Linearization for Dylan
|
||||
Retrieved from: http://192.220.96.201/dylan/linearization-oopsla96.html
|
||||
@end table
|
||||
|
||||
@node Predicates
|
||||
@comment node-name, next, previous, up
|
||||
|
@ -1399,9 +1404,12 @@ a header line comment from the class allocated slot if one is not
|
|||
provided.
|
||||
@end defmethod
|
||||
|
||||
@defun eieio-persistent-read filename
|
||||
Read @var{filename} which contains an @code{eieio-persistent} object
|
||||
previously written with @code{eieio-persistent-save}.
|
||||
@defun eieio-persistent-read filename &optional class allow-subclass
|
||||
Read a persistent object from @var{filename}, and return it.
|
||||
Signal an error if the object in @var{FILENAME} is not a constructor
|
||||
for @var{CLASS}. Optional @var{allow-subclass} says that it is ok for
|
||||
@code{eieio-persistent-read} to load in subclasses of class instead of
|
||||
being pedantic.
|
||||
@end defun
|
||||
|
||||
@node eieio-named
|
||||
|
@ -1544,8 +1552,51 @@ a class. In a program, pass it a string with the name of a class, a
|
|||
class symbol, or an object. The resulting buffer will display all slot
|
||||
names.
|
||||
|
||||
Additionally, all methods defined to have functionality on this class
|
||||
are displayed.
|
||||
Additionally, all methods defined to have functionality on this class is
|
||||
displayed.
|
||||
|
||||
@node Documentation
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Documentation
|
||||
|
||||
It is possible to automatically create documentation for your classes in
|
||||
texinfo format by using the tools in the file @file{eieio-doc.el}
|
||||
|
||||
@deffn Command eieiodoc-class class indexstring &optional skiplist
|
||||
|
||||
This will start at the current point, and create an indented menu of
|
||||
all the child classes of, and including @var{class}, but skipping any
|
||||
classes that might be in @var{skiplist}. It will then create nodes for
|
||||
all these classes, subsection headings, and indexes.
|
||||
|
||||
Each class will be indexed using the texinfo labeled index
|
||||
@var{indexstring} which is a two letter description.
|
||||
@xref{(texinfo) New Indices}.
|
||||
|
||||
To use this command, the texinfo macro
|
||||
|
||||
@example
|
||||
@@defindex @@var @{ indexstring @}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
where @var{indexstring} is replaced with the two letter code.
|
||||
|
||||
Next, an inheritance tree will be created listing all parents of that
|
||||
section's class.
|
||||
|
||||
Then, all the slots will be expanded in tables, and described
|
||||
using the documentation strings from the code. Default values will also
|
||||
be displayed. Only those slots with @code{:initarg} specified will be
|
||||
expanded, others will be hidden. If a slot is inherited from a parent,
|
||||
that slot will also be skipped unless the default value is different.
|
||||
If there is a change, then the documentation part of the slot will be
|
||||
replace with an @@xref back to the parent.
|
||||
|
||||
This command can only display documentation for classes whose
|
||||
definitions have been loaded in this Emacs session.
|
||||
|
||||
@end deffn
|
||||
|
||||
@node Default Superclass
|
||||
@comment node-name, next, previous, up
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
@setfilename ../../info/erc
|
||||
@settitle ERC Manual
|
||||
@syncodeindex fn cp
|
||||
@include emacsver.texi
|
||||
@c %**end of header
|
||||
|
||||
@copying
|
||||
This manual is for ERC version 5.3.
|
||||
This manual is for ERC as distributed with Emacs @value{EMACSVER}.
|
||||
|
||||
Copyright @copyright{} 2005-2012
|
||||
Free Software Foundation, Inc.
|
||||
Copyright @copyright{} 2005-2012 Free Software Foundation, Inc.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
|
@ -48,8 +48,7 @@ and modified without restriction.
|
|||
@contents
|
||||
|
||||
@ifnottex
|
||||
@node Top, Introduction, (dir), (dir)
|
||||
@comment node-name, next, previous, up
|
||||
@node Top
|
||||
@top ERC
|
||||
|
||||
@insertcopying
|
||||
|
@ -57,9 +56,6 @@ and modified without restriction.
|
|||
|
||||
@menu
|
||||
* Introduction:: What is ERC?
|
||||
* Obtaining ERC:: How to get ERC releases and development
|
||||
versions.
|
||||
* Installation:: Compiling and installing ERC.
|
||||
* Getting Started:: Quick Start guide to using ERC.
|
||||
* Keystroke Summary:: Keystrokes used in ERC buffers.
|
||||
* Modules:: Available modules for ERC.
|
||||
|
@ -76,11 +72,6 @@ and modified without restriction.
|
|||
@detailmenu
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
Obtaining ERC
|
||||
|
||||
* Releases:: Released versions of ERC.
|
||||
* Development:: Latest unreleased development changes.
|
||||
|
||||
Getting Started
|
||||
|
||||
* Sample Session:: Example of connecting to the #emacs channel
|
||||
|
@ -95,11 +86,11 @@ Advanced Usage
|
|||
@end detailmenu
|
||||
@end menu
|
||||
|
||||
@node Introduction, Obtaining ERC, Top, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Introduction
|
||||
@chapter Introduction
|
||||
|
||||
ERC is a powerful, modular, and extensible IRC client for Emacs.
|
||||
It is distributed with Emacs since version 22.1.
|
||||
|
||||
It comes with the following capabilities enabled by default.
|
||||
|
||||
|
@ -119,217 +110,13 @@ It comes with the following capabilities enabled by default.
|
|||
|
||||
@end itemize
|
||||
|
||||
@node Obtaining ERC, Installation, Introduction, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Obtaining ERC
|
||||
|
||||
@menu
|
||||
* Releases:: Released versions of ERC.
|
||||
* Development:: Latest unreleased development changes.
|
||||
@end menu
|
||||
|
||||
Note that some ERC files are not included with Emacs due to copyright or
|
||||
dependency issues. If desired, they may be found at the following
|
||||
locations, or from your local GNU mirror.
|
||||
|
||||
@itemize @bullet
|
||||
@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.tar.gz}
|
||||
@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.3-extras.zip}
|
||||
@end itemize
|
||||
|
||||
The rest of this chapter may be skipped if you are using the version of
|
||||
ERC that comes with Emacs.
|
||||
|
||||
@node Releases, Development, Obtaining ERC, Obtaining ERC
|
||||
@comment node-name, next, previous, up
|
||||
@section Releases
|
||||
|
||||
Choose to install a release if you want to minimize risk.
|
||||
|
||||
Errors are corrected in development first. User-visible changes will be
|
||||
announced on the @email{erc-discuss@@gnu.org} mailing list.
|
||||
@pxref{Getting Help and Reporting Bugs}.
|
||||
|
||||
@cindex releases, Debian package
|
||||
@cindex Debian package for ERC
|
||||
Debian users can get ERC via apt-get. The @file{erc} package is
|
||||
available in the official Debian repository.
|
||||
|
||||
@cindex releases, from source
|
||||
Alternatively, you can download the latest release from
|
||||
@uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror.
|
||||
|
||||
@node Development, , Releases, Obtaining ERC
|
||||
@comment node-name, next, previous, up
|
||||
@section Development
|
||||
@cindex development
|
||||
|
||||
Choose the development version if you want to live on the bleeding edge
|
||||
of ERC development or try out new features before release.
|
||||
|
||||
@cindex git version control system, using
|
||||
The git version control system allows you to keep up-to-date with the
|
||||
latest changes to the development version of ERC. It also allows you
|
||||
to contribute changes (via commits, if you are have developer access to
|
||||
the repository, or via patches, otherwise). If you would like to
|
||||
contribute to ERC development, it is highly recommended that you use
|
||||
git.
|
||||
|
||||
If you are new to git, you might find this tutorial helpful:
|
||||
@uref{http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html}.
|
||||
|
||||
Downloading ERC with git and staying up-to-date involves the following
|
||||
steps.
|
||||
|
||||
@enumerate
|
||||
@item Install git.
|
||||
|
||||
@itemize @bullet
|
||||
@item Debian and Ubuntu: @kbd{apt-get install git-core}.
|
||||
@item Windows: @uref{http://git.or.cz/gitwiki/WindowsInstall}.
|
||||
@item Other operating systems: download, compile, and install the source
|
||||
from @uref{http://www.kernel.org/pub/software/scm/git/}, or find a git
|
||||
package for your operating system.
|
||||
@end itemize
|
||||
|
||||
@item Download the ERC development branch.
|
||||
|
||||
If you have developer access to ERC, do:
|
||||
|
||||
@example
|
||||
git clone ssh://loginname@@git.sv.gnu.org/srv/git/erc.git
|
||||
@end example
|
||||
|
||||
otherwise, do:
|
||||
|
||||
@example
|
||||
git clone git://git.sv.gnu.org/erc.git
|
||||
@end example
|
||||
|
||||
If you are behind a restrictive firewall, and do not have developer
|
||||
access, then do the following instead:
|
||||
|
||||
@example
|
||||
git clone http://git.sv.gnu.org/r/erc.git
|
||||
@end example
|
||||
|
||||
@item List upstream changes that are missing from your local copy.
|
||||
Do this whenever you want to see whether new changes have been committed
|
||||
to ERC. If you wish, you may skip this step and proceed directly to
|
||||
the ``update'' step.
|
||||
|
||||
@example
|
||||
# Change to the source directory you are interested in.
|
||||
cd erc
|
||||
|
||||
# Fetch new changes from the repository, but don't apply them yet
|
||||
git fetch origin
|
||||
|
||||
# Display log messages for the new changes
|
||||
git log HEAD..origin
|
||||
@end example
|
||||
|
||||
``origin'' is git's name for the location where you originally got ERC
|
||||
from. You can change this location at any time by editing the
|
||||
@file{.git/config} file in the directory where the ERC source was
|
||||
placed.
|
||||
|
||||
@cindex updating ERC with git
|
||||
@item Update to the latest version by pulling in any missing changes.
|
||||
|
||||
@example
|
||||
cd erc
|
||||
git pull origin
|
||||
@end example
|
||||
|
||||
git will show how many files changed, and will provide a visual display
|
||||
for how many lines were changed in each file.
|
||||
|
||||
@end enumerate
|
||||
|
||||
There are other ways to interact with the ERC repository.
|
||||
|
||||
@itemize
|
||||
@item Browse git repo: @uref{http://git.sv.gnu.org/gitweb/?p=erc.git}
|
||||
@item Latest development snapshot: @uref{http://mwolson.org/static/dist/erc-latest.tar.gz}
|
||||
@item Latest development snapshot (zip file): @uref{http://mwolson.org/static/dist/erc-latest.zip}
|
||||
@end itemize
|
||||
|
||||
The latest development snapshot can lag behind the git repo by as much
|
||||
as 20 minutes, but never more than that.
|
||||
|
||||
For further information on committing changes to ERC and performing
|
||||
development, please consult
|
||||
@uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment}.
|
||||
|
||||
|
||||
@node Installation, Getting Started, Obtaining ERC, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Installation
|
||||
|
||||
ERC may be compiled and installed on your machine.
|
||||
|
||||
This section may be skipped if you are using the version of ERC that
|
||||
comes with Emacs.
|
||||
|
||||
@subsubheading Compilation
|
||||
|
||||
This is an optional step, since Emacs Lisp source code does not
|
||||
necessarily have to be byte-compiled. It will yield a speed increase,
|
||||
though.
|
||||
|
||||
A working copy of Emacs or XEmacs is needed in order to compile ERC. By
|
||||
default, the program that is installed with the name @command{emacs}
|
||||
will be used.
|
||||
|
||||
If you want to use the @command{xemacs} binary to perform the
|
||||
compilation, you would need to edit @file{Makefile} in the top-level
|
||||
directory as follows. You can put either a full path to an Emacs or
|
||||
XEmacs binary or just the command name, as long as it is in the
|
||||
@env{PATH}.
|
||||
|
||||
@example
|
||||
EMACS = xemacs
|
||||
SITEFLAG = -no-site-file
|
||||
@end example
|
||||
|
||||
Running @code{make} should compile the ERC source files in the
|
||||
@file{lisp} directory.
|
||||
|
||||
@subsubheading Installation
|
||||
|
||||
ERC may be installed into your file hierarchy by doing the following.
|
||||
|
||||
Edit the @file{Makefile} file so that @env{ELISPDIR} points to where you
|
||||
want the source and compiled ERC files to be installed and
|
||||
@env{INFODIR} indicates where to put the ERC manual. Of course, you
|
||||
will want to edit @env{EMACS} and @env{SITEFLAG} as shown in the
|
||||
Compilation section if you are using XEmacs.
|
||||
|
||||
If you are installing ERC on a Debian system, you might want to change
|
||||
the value of @env{INSTALLINFO} as specified in @file{Makefile}.
|
||||
|
||||
Run @code{make} as a normal user.
|
||||
|
||||
Run @code{make install} as the root user if you have chosen installation
|
||||
locations that require this.
|
||||
|
||||
|
||||
@node Getting Started, Keystroke Summary, Installation, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Getting Started
|
||||
@chapter Getting Started
|
||||
@cindex settings
|
||||
|
||||
To use ERC, add the directory containing its files to your
|
||||
@code{load-path} variable, in your @file{.emacs} file. Then, load ERC
|
||||
itself. An example follows.
|
||||
|
||||
@lisp
|
||||
(require 'erc)
|
||||
@end lisp
|
||||
|
||||
Once ERC is loaded, the command @kbd{M-x erc} will start ERC and
|
||||
prompt for the server to connect to.
|
||||
The command @kbd{M-x erc} will start ERC and prompt for the server to
|
||||
connect to.
|
||||
|
||||
If you want to place ERC settings in their own file, you can place them
|
||||
in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
|
||||
|
@ -344,8 +131,7 @@ you want, do @kbd{M-x customize-variable RET erc-modules RET}.
|
|||
* Special Features:: Differences from standalone IRC clients
|
||||
@end menu
|
||||
|
||||
@node Sample Session, Special Features, Getting Started, Getting Started
|
||||
@comment node-name, next, previous, up
|
||||
@node Sample Session
|
||||
@section Sample Session
|
||||
|
||||
This is an example ERC session which shows how to connect to the #emacs
|
||||
|
@ -403,8 +189,7 @@ talk with them.
|
|||
|
||||
@end itemize
|
||||
|
||||
@node Special Features, , Sample Session, Getting Started
|
||||
@comment node-name, next, previous, up
|
||||
@node Special Features
|
||||
@section Special Features
|
||||
|
||||
ERC has some features that distinguish it from some IRC clients.
|
||||
|
@ -478,8 +263,7 @@ ERC buffer and run the @code{/RECONNECT} command.
|
|||
@end itemize
|
||||
|
||||
|
||||
@node Keystroke Summary, Modules, Getting Started, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Keystroke Summary
|
||||
@chapter Keys Used in ERC
|
||||
@cindex keystrokes
|
||||
|
||||
|
@ -562,8 +346,7 @@ Kill current input line using `erc-bol' followed by `kill-line'.
|
|||
@end table
|
||||
|
||||
|
||||
@node Modules, Advanced Usage, Keystroke Summary, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Modules
|
||||
@chapter Modules
|
||||
@cindex modules
|
||||
|
||||
|
@ -701,8 +484,7 @@ Translate morse code in messages
|
|||
@c PRE5_4: Document every option of every module in its own subnode
|
||||
|
||||
|
||||
@node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Advanced Usage
|
||||
@chapter Advanced Usage
|
||||
@cindex advanced topics
|
||||
|
||||
|
@ -712,8 +494,7 @@ Translate morse code in messages
|
|||
* Options:: Options that are available for ERC.
|
||||
@end menu
|
||||
|
||||
@node Connecting, Sample Configuration, Advanced Usage, Advanced Usage
|
||||
@comment node-name, next, previous, up
|
||||
@node Connecting
|
||||
@section Connecting to an IRC Server
|
||||
@cindex connecting
|
||||
|
||||
|
@ -846,8 +627,7 @@ User full name.
|
|||
This can be either a string or a function to call.
|
||||
@end defopt
|
||||
|
||||
@node Sample Configuration, Options, Connecting, Advanced Usage
|
||||
@comment node-name, next, previous, up
|
||||
@node Sample Configuration
|
||||
@section Sample Configuration
|
||||
@cindex configuration, sample
|
||||
|
||||
|
@ -926,8 +706,7 @@ stuff, to the current ERC buffer."
|
|||
;; (setq erc-kill-server-buffer-on-quit t)
|
||||
@end lisp
|
||||
|
||||
@node Options, , Sample Configuration, Advanced Usage
|
||||
@comment node-name, next, previous, up
|
||||
@node Options
|
||||
@section Options
|
||||
@cindex options
|
||||
|
||||
|
@ -939,8 +718,7 @@ check out the available options for ERC is to do
|
|||
@kbd{M-x customize-group erc RET}.
|
||||
|
||||
|
||||
@node Getting Help and Reporting Bugs, History, Advanced Usage, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Getting Help and Reporting Bugs
|
||||
@chapter Getting Help and Reporting Bugs
|
||||
@cindex help, getting
|
||||
@cindex bugs, reporting
|
||||
|
@ -952,36 +730,24 @@ or if you have bugs to report, there are several places you can go.
|
|||
|
||||
@item
|
||||
@uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
|
||||
emacswiki.org page for ERC. Anyone may add tips, hints, or bug
|
||||
descriptions to it.
|
||||
emacswiki.org page for ERC. Anyone may add tips, hints, etc. to it.
|
||||
|
||||
@item
|
||||
There are several mailing lists for ERC. To subscribe, visit
|
||||
@uref{http://savannah.gnu.org/mail/?group=erc}.
|
||||
|
||||
The mailing lists are also available on Gmane.
|
||||
(@url{http://gmane.org/}). Gmane provides additional methods for
|
||||
accessing the mailing lists, adding content to them, and searching them.
|
||||
|
||||
@enumerate
|
||||
@item gmane.emacs.erc.announce: Announcements
|
||||
|
||||
@item gmane.emacs.erc.discuss: General discussion
|
||||
|
||||
@item gmane.emacs.erc.cvs: Log messages for changes to the ERC source code
|
||||
|
||||
@end enumerate
|
||||
You can ask questions about using ERC on the Emacs mailing list,
|
||||
@uref{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs}.
|
||||
|
||||
@item
|
||||
You can visit the IRC Freenode channel @samp{#emacs}. Many of the
|
||||
contributors are frequently around and willing to answer your
|
||||
questions.
|
||||
|
||||
@item
|
||||
To report a bug in ERC, use @kbd{M-x report-emacs-bug}.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
||||
@node History, Copying, Getting Help and Reporting Bugs, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node History
|
||||
@chapter History
|
||||
@cindex history, of ERC
|
||||
|
||||
|
@ -1044,18 +810,22 @@ our revision control system. Our mailing list address changed as well.
|
|||
|
||||
We switched to using git for our version control system.
|
||||
|
||||
@item 2009+
|
||||
|
||||
Since about 2009, ERC is no longer developed as a separate project, but
|
||||
is maintained as part of Emacs.
|
||||
|
||||
@end itemize
|
||||
|
||||
@node Copying, GNU Free Documentation License, History, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Copying
|
||||
@appendix GNU GENERAL PUBLIC LICENSE
|
||||
@include gpl.texi
|
||||
|
||||
@node GNU Free Documentation License, Concept Index, Copying, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node GNU Free Documentation License
|
||||
@appendix GNU Free Documentation License
|
||||
@include doclicense.texi
|
||||
|
||||
@node Concept Index, , GNU Free Documentation License, Top
|
||||
@comment node-name, next, previous, up
|
||||
@node Concept Index
|
||||
@unnumbered Index
|
||||
|
||||
@printindex cp
|
||||
|
|
|
@ -69,14 +69,14 @@ developing GNU and promoting software freedom.''
|
|||
@node Overview
|
||||
@chapter Overview
|
||||
|
||||
Newsticker provides a newsticker for Emacs. A newsticker is a thing
|
||||
Newsticker provides a newsticker for Emacs. A newsticker is a thing
|
||||
that asynchronously retrieves headlines from a list of news sites,
|
||||
prepares these headlines for reading, and allows for loading the
|
||||
corresponding articles in a web browser.
|
||||
|
||||
|
||||
Headlines consist of a title and (possibly) a small description. They
|
||||
are contained in "RSS" (RDF Site Summary) or "Atom" files. Newsticker
|
||||
are contained in ``RSS'' (RDF Site Summary) or ``Atom'' files. Newsticker
|
||||
works with the following RSS formats:
|
||||
|
||||
@itemize
|
||||
|
@ -105,8 +105,9 @@ messages in a stock-quote ticker, or just changing.
|
|||
|
||||
Newsticker allows for automatic processing of headlines by providing
|
||||
hooks and (sample) functions for automatically downloading images and
|
||||
enclosed files (as delivered by podcasts, e.g.).
|
||||
enclosed files (as delivered by, e.g., podcasts).
|
||||
|
||||
@ignore
|
||||
@ifhtml
|
||||
Here are screen shots of the @uref{newsticker-1.7.png, version 1.7
|
||||
(current version)} and some older screen shots:
|
||||
|
@ -116,6 +117,7 @@ Here are screen shots of the @uref{newsticker-1.7.png, version 1.7
|
|||
@uref{newsticker-1.3.png, version 1.3},
|
||||
@uref{newsticker-1.0.png, version 1.0}.
|
||||
@end ifhtml
|
||||
@end ignore
|
||||
|
||||
@node Requirements
|
||||
@chapter Requirements
|
||||
|
@ -123,7 +125,7 @@ Here are screen shots of the @uref{newsticker-1.7.png, version 1.7
|
|||
Newsticker can be used with
|
||||
@uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version
|
||||
21.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It
|
||||
requires an XML-parser (@file{xml.el}) which is part of GNU Emacs. If
|
||||
requires an XML-parser (@file{xml.el}), which is part of GNU Emacs. If
|
||||
you are using XEmacs you want to get the @file{net-utils} package
|
||||
which contains @file{xml.el} for XEmacs.
|
||||
|
||||
|
@ -161,11 +163,11 @@ You can choose between two different frontends for reading headlines:
|
|||
@itemize
|
||||
@item Newsticker's @emph{treeview} uses separate windows for the
|
||||
feeds (in tree form), a list of headlines for the current feed, and
|
||||
the content of the current headline. Feeds can be placed into groups
|
||||
which itself can be placed in groups and so on.
|
||||
the content of the current headline. Feeds can be placed into groups,
|
||||
which themselves can be placed in groups and so on.
|
||||
@item Newsticker's @emph{plainview} displays all headlines in a
|
||||
single buffer, called @samp{*newsticker*}. The modeline in the
|
||||
@samp{*newsticker*} buffer informs whenever new headlines have
|
||||
single buffer, called @samp{*newsticker*}. The modeline in the
|
||||
@samp{*newsticker*} buffer informs you whenever new headlines have
|
||||
arrived.
|
||||
@end itemize
|
||||
In both views clicking mouse-button 2 or pressing RET on a headline
|
||||
|
@ -175,13 +177,13 @@ your favorite web browser.
|
|||
@findex newsticker-start-ticker
|
||||
@findex newsticker-stop-ticker
|
||||
The scrolling, or flashing of headlines in the echo area, can be
|
||||
started with the command @code{newsticker-start-ticker}. It can be
|
||||
started with the command @code{newsticker-start-ticker}. It can be
|
||||
stopped with @code{newsticker-stop-ticker}.
|
||||
|
||||
@findex newsticker-start
|
||||
@findex newsticker-stop
|
||||
If you just want to start the periodic download of headlines use the
|
||||
command @code{newsticker-start}. Calling @code{newsticker-stop} will
|
||||
command @code{newsticker-start}. Calling @code{newsticker-stop} will
|
||||
stop the periodic download, but will call
|
||||
@code{newsticker-stop-ticker} as well.
|
||||
|
||||
|
@ -189,7 +191,7 @@ stop the periodic download, but will call
|
|||
@chapter Configuration
|
||||
|
||||
All Newsticker options are customizable, i.e. they can be changed with
|
||||
Emacs customization methods: Call the command
|
||||
Emacs customization methods. Call the command
|
||||
@code{customize-group} and enter @samp{newsticker} for the customization
|
||||
group.
|
||||
|
||||
|
@ -209,7 +211,7 @@ feeds are retrieved and how this is done.
|
|||
@itemize
|
||||
@item
|
||||
@vindex newsticker-url-list
|
||||
@code{newsticker-url-list} defines the list of headlines which are
|
||||
@code{newsticker-url-list} defines the list of headlines that are
|
||||
retrieved.
|
||||
@item
|
||||
@vindex newsticker-retrieval-method
|
||||
|
@ -245,11 +247,11 @@ commands to newsticker functions.
|
|||
@item
|
||||
@vindex newsticker-new-item-functions
|
||||
@code{newsticker-new-item-functions} allows for automatic
|
||||
processing of headlines. See `newsticker-download-images', and
|
||||
`newsticker-download-enclosures' for sample functions.
|
||||
processing of headlines. See @code{newsticker-download-images}, and
|
||||
@code{newsticker-download-enclosures} for sample functions.
|
||||
@item
|
||||
@vindex newsticker-plainview-hooks
|
||||
The subgroup @code{newsticker-plainview-hooks} contains hook which
|
||||
The subgroup @code{newsticker-plainview-hooks} contains hooks that
|
||||
apply to the plainview reader only.
|
||||
@end itemize
|
||||
|
||||
|
@ -276,7 +278,7 @@ the echo area.
|
|||
@itemize
|
||||
@item
|
||||
@vindex newsticker-frontend
|
||||
@code{newsticker-frontend} determines the actual headline reader. The
|
||||
@code{newsticker-frontend} determines the actual headline reader. The
|
||||
``plainview'' reader uses a single buffer, the ``treeview'' uses
|
||||
separate buffers and windows.
|
||||
@end itemize
|
||||
|
|
1110
doc/misc/org.texi
1110
doc/misc/org.texi
File diff suppressed because it is too large
Load diff
1279
doc/misc/reftex.texi
1279
doc/misc/reftex.texi
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,55 @@
|
|||
2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* NEWS (NextStep/OSX port changes): OSX 10.4 or newer is required.
|
||||
|
||||
2012-10-05 Douglas Lewan <d_lewan2000@yahoo.com> (tiny change)
|
||||
|
||||
* tutorials/TUTORIAL.pt_BR: Fix typo. (Bug#12557)
|
||||
|
||||
2012-10-01 Eric Ludlam <zappo@gnu.org>
|
||||
|
||||
* srecode/cc.srt, srecode/ede-autoconf.srt: New files.
|
||||
|
||||
* srecode/cpp.srt: Move parts to c.srt.
|
||||
|
||||
* srecode/ede-make.srt: Extra templates for Arduino Makefiles.
|
||||
|
||||
2012-10-01 Ralf Mattes <rm@mh-freiburg.de> (tiny change)
|
||||
|
||||
* srecode/el.srt (variable-option): Add missing quote.
|
||||
|
||||
2012-10-01 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* images/icons/hicolor/32x32/apps/emacs22.png:
|
||||
* images/icons/hicolor/16x16/apps/emacs22.png:
|
||||
* images/icons/hicolor/48x48/apps/emacs22.png:
|
||||
* images/icons/hicolor/24x24/apps/emacs22.png: Remove old icons
|
||||
(Bug#12536).
|
||||
|
||||
2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Revert the FOLLOW-SYMLINKS change for file-attributes.
|
||||
* NEWS: Undo last change.
|
||||
|
||||
2012-09-30 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* refcards/orgcard.tex: Update version number.
|
||||
|
||||
2012-09-30 Jambunathan K <kjambunathan@gmail.com>
|
||||
|
||||
* org/OrgOdtContentTemplate.xml:
|
||||
* org/OrgOdtStyles.xml: Add Listing-related entries.
|
||||
|
||||
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
file-attributes has a new optional arg FOLLOW-SYMLINKS.
|
||||
* NEWS: Document the change.
|
||||
|
||||
2012-09-30 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* NEWS: The NS port supports fullscreen.
|
||||
Mention that the file dialog is used on NS.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* refcards/emacsver.tex: New file.
|
||||
|
|
729
etc/NEWS
729
etc/NEWS
|
@ -76,6 +76,7 @@ You can explicitly require a specific version by passing
|
|||
|
||||
* Startup Changes in Emacs 24.3
|
||||
|
||||
+++
|
||||
** Emacs no longer searches for `leim-list.el' files beneath the standard
|
||||
lisp/ directory. There should not be any there anyway. If you have
|
||||
been adding them there, put them somewhere else, eg site-lisp.
|
||||
|
@ -86,45 +87,41 @@ been adding them there, put them somewhere else, eg site-lisp.
|
|||
|
||||
* Changes in Emacs 24.3
|
||||
|
||||
** You can now scroll the selected window in most y-or-n prompts.
|
||||
Typing C-v or M-v at a prompt scrolls forward or backward
|
||||
respectively, without leaving the y-or-n prompt.
|
||||
** minibuffer-electric-default-mode can rewrite (default ...) to [...].
|
||||
Just set minibuffer-eldef-shorten-default to t before enabling the mode.
|
||||
|
||||
+++
|
||||
** Most y-or-n prompts now allow you to scroll the selected window.
|
||||
Typing C-v or M-v at a y-or-n prompt scrolls forward or backward
|
||||
respectively, without exiting from the prompt.
|
||||
|
||||
---
|
||||
** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
|
||||
next and previous path separator, respectively.
|
||||
|
||||
** Mode line changes
|
||||
---
|
||||
*** New option `mode-line-default-help-echo' specifies the help text
|
||||
(shown in a tooltip or in the echo area) for any part of the mode line
|
||||
that does not have its own specialized help text.
|
||||
|
||||
*** You can now click mouse-3 in the coding system indicator to
|
||||
invokes `set-buffer-file-coding-system'.
|
||||
|
||||
** Help changes
|
||||
|
||||
+++
|
||||
*** `C-h f' (describe-function) can now perform autoloading.
|
||||
When this command is called for an autoloaded function whose docstring
|
||||
contains a key substitution construct, that function's library is
|
||||
automatically loaded, so that the documentation can be shown
|
||||
correctly. To disable this, set `help-enable-auto-load' to nil.
|
||||
|
||||
---
|
||||
*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
|
||||
even after their associated libraries have been loaded (and the
|
||||
autoloads have been redefined as functions).
|
||||
|
||||
** The function `current-time' now returns extended-format time stamps
|
||||
(HIGH LOW USEC PSEC) that use picosecond resolution; the PSEC
|
||||
component is new. PSEC is typically a multiple of 1000 on current
|
||||
machines. Other functions that use this format, such as
|
||||
file-attributes and format-time-string, have been changed accordingly.
|
||||
Old-format time stamps are still accepted.
|
||||
|
||||
** The format of timers in timer-list and timer-idle-list is now
|
||||
[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
|
||||
The PSECS slot is new, and uses picosecond resolution. It can be
|
||||
accessed via the new timer--psecs accessor.
|
||||
|
||||
** Emacs now generates backtraces on fatal errors.
|
||||
On encountering a fatal error, Emacs now outputs a textual description
|
||||
of the fatal signal, and a short backtrace on platforms like glibc
|
||||
that support backtraces.
|
||||
|
||||
** New functions `system-users', `system-groups' return lists of the user
|
||||
name, group names known to the system (where possible).
|
||||
|
||||
** If your Emacs was built from a bzr checkout, the new variable
|
||||
`emacs-bzr-version' contains information about which bzr revision was used.
|
||||
|
||||
** ImageMagick support, if available, is automatically enabled.
|
||||
It is no longer necessary to call `imagemagick-register-types'
|
||||
explicitly to install ImageMagick image types; that function is called
|
||||
|
@ -143,125 +140,157 @@ treated as images.
|
|||
*** Images displayed via ImageMagick now support transparency and the
|
||||
:background image spec property.
|
||||
|
||||
** Internationalization changes
|
||||
** Server and client changes
|
||||
+++
|
||||
*** emacsclient now obeys string values for `initial-buffer-choice',
|
||||
if it is told to open a new frame without specifying any file to visit
|
||||
or expression to evaluate.
|
||||
---
|
||||
*** New option `server-auth-key' specifies a shared server key.
|
||||
|
||||
*** New language environment: Persian.
|
||||
|
||||
** Face underlining can now use a wave.
|
||||
See the "Face Attributes" section of the Elisp manual.
|
||||
|
||||
** New fringe bitmap exclamation-mark.
|
||||
|
||||
** String values for `initial-buffer-choice' also apply to emacsclient
|
||||
frames, if emacsclient is only told to open a new frame without
|
||||
specifying any file to visit or expression to evaluate.
|
||||
** In the Package Menu, newly-available packages are listed as "new",
|
||||
and sorted above the other "available" packages by default.
|
||||
|
||||
+++
|
||||
** You can prevent the creation of lock files by setting `create-lockfiles'
|
||||
to nil. Use with caution, and only if you really need to.
|
||||
** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
|
||||
This minor mode replaces `toggle-read-only', which is now obsolete.
|
||||
|
||||
** Emacs now generates backtraces on fatal errors.
|
||||
On encountering a fatal error, Emacs now outputs a textual description
|
||||
of the fatal signal, and a short backtrace on platforms like glibc
|
||||
that support backtraces.
|
||||
|
||||
** `message-log-max' now defaults to 1000, not 100.
|
||||
|
||||
---
|
||||
** If your Emacs was built from a bzr checkout, the new variable
|
||||
`emacs-bzr-version' contains information about the bzr revision used.
|
||||
|
||||
+++
|
||||
** New variable `create-lockfiles' specifies usage of lockfiles.
|
||||
It defaults to t. Changing it to nil inhibits the creation of lock
|
||||
files (use this with caution).
|
||||
|
||||
+++
|
||||
** Using "unibyte: t" in Lisp source files is obsolete.
|
||||
Use "coding: raw-text" instead.
|
||||
|
||||
** Mode line changes
|
||||
|
||||
*** New option `mode-line-default-help-echo' specifies the help text
|
||||
(shown in a tooltip or in the echo area) for any part of the mode line
|
||||
that does not have its own specialized help text.
|
||||
|
||||
*** You can now click mouse-3 in the coding system indicator to
|
||||
invokes `set-buffer-file-coding-system'.
|
||||
|
||||
+++
|
||||
** Setting `enable-remote-dir-locals' to non-nil allows directory
|
||||
local variables on remote hosts.
|
||||
|
||||
+++
|
||||
** `insert-char' is now a command, and `ucs-insert' an obsolete alias
|
||||
for it.
|
||||
|
||||
---
|
||||
** The entry for PCL-CVS has been removed from the Tools menu.
|
||||
The PCL-CVS commands are still available via the keyboard.
|
||||
|
||||
** Internationalization changes
|
||||
---
|
||||
*** New language environment: Persian.
|
||||
---
|
||||
*** New input method `vietnamese-vni'.
|
||||
|
||||
** NextStep/OSX port changes.
|
||||
---
|
||||
*** OSX 10.4 or newer is required to build Emacs.
|
||||
---
|
||||
*** Fullscreen and frame parameter fullscreen is supported.
|
||||
---
|
||||
*** A file dialog is used when open/saved is done from the menu/toolbar.
|
||||
|
||||
* Editing Changes in Emacs 24.3
|
||||
|
||||
** The `z' key no longer has a binding in most special modes.
|
||||
It used to be bound to `kill-this-buffer', but `z' is too easy to
|
||||
accidentally type.
|
||||
|
||||
** New option `yank-handled-properties' allows processing of text
|
||||
properties on yanked text, in more ways that are more general than
|
||||
just removing them, as done by `yank-excluded-properties'.
|
||||
|
||||
** New option `delete-trailing-lines' specifies whether the M-x
|
||||
delete-trailing-whitespace command should delete trailing lines at the
|
||||
end of the buffer. It defaults to t.
|
||||
|
||||
** Navigation command changes
|
||||
+++
|
||||
** `C-x r +' is now overloaded to invoke `append-to-register.
|
||||
|
||||
*** New binding `M-g c' for `goto-char'.
|
||||
+++
|
||||
** New option `register-separator' specifies the register containing
|
||||
the text to put between collected texts for use with M-x
|
||||
append-to-register and M-x prepend-to-register.
|
||||
*** New binding `M-g TAB' for `move-to-column'.
|
||||
+++
|
||||
*** `M-g TAB' (`move-to-column') prompts for a column number if called
|
||||
interactively with no prefix arg. Previously, it moved to column 1.
|
||||
|
||||
** Search changes
|
||||
** Search and Replace changes
|
||||
+++
|
||||
*** Non-regexp Isearch now performs "lax" space matching.
|
||||
Each sequence of spaces in the supplied search string may match any
|
||||
sequence of one or more whitespace characters, as specified by the
|
||||
variable `search-whitespace-regexp'. (This variable is also used by a
|
||||
similar existing feature for regexp Isearch).
|
||||
+++
|
||||
*** New Isearch command `M-s SPC' toggles lax space matching.
|
||||
This applies to both ordinary and regexp Isearch.
|
||||
+++
|
||||
*** New option `replace-lax-whitespace'.
|
||||
If non-nil, `query-replace' uses flexible whitespace matching too.
|
||||
The default is nil.
|
||||
|
||||
*** Global `M-s _' starts a symbol (identifier) incremental search,
|
||||
and `M-s _' in Isearch toggles symbol search mode.
|
||||
`M-s c' in Isearch toggles search case-sensitivity.
|
||||
|
||||
*** `M-s SPC' in Isearch toggles whitespace matching mode
|
||||
in both ordinary and regexp incremental search, so that each
|
||||
sequence of spaces in the search string matches any combination
|
||||
of one or more whitespace characters defined by the variable
|
||||
`search-whitespace-regexp'. In ordinary incremental search,
|
||||
`isearch-toggle-lax-whitespace' toggles the value of the variable
|
||||
`isearch-lax-whitespace'. In regexp incremental search, it toggles
|
||||
the value of the variable `isearch-regexp-lax-whitespace'.
|
||||
+++
|
||||
** `C-x 8 RET' is now bound to `insert-char', which is now a command.
|
||||
`ucs-insert' is now an obsolete alias for `insert-char'.
|
||||
|
||||
** query-replace changes
|
||||
---
|
||||
** The `z' key no longer has a binding in most special modes.
|
||||
It used to be bound to `kill-this-buffer', but `z' is too easy to
|
||||
accidentally type.
|
||||
|
||||
*** When new option `replace-lax-whitespace' is non-nil,
|
||||
and you enter a space or spaces in the strings or regexps
|
||||
to be replaced, `query-replace' will match any sequence matched
|
||||
by the regexp `search-whitespace-regexp'.
|
||||
+++
|
||||
** New option `delete-trailing-lines' specifies whether
|
||||
M-x delete-trailing-whitespace should delete trailing lines at the end
|
||||
of the buffer. It defaults to t.
|
||||
|
||||
** M-x move-to-column, if called interactively with no prefix arg, now
|
||||
prompts for a column number.
|
||||
|
||||
** `mouse-avoidance-banish-position' can now be used to customize
|
||||
`mouse-avoidance-mode' further.
|
||||
** Register changes
|
||||
+++
|
||||
*** `C-x r +' is now overloaded to invoke `append-to-register.
|
||||
+++
|
||||
*** New option `register-separator' specifies the register containing
|
||||
the text to put between collected texts for use with M-x
|
||||
append-to-register and M-x prepend-to-register.
|
||||
|
||||
+++
|
||||
** `C-u M-=' now counts lines/words/characters in the entire buffer.
|
||||
|
||||
** `C-M-f' and `C-M-b' will now move to the path name separator
|
||||
character when doing minibuffer filename prompts.
|
||||
|
||||
** `goto-char' is now bound to `M-g c'.
|
||||
|
||||
+++
|
||||
** New command `C-x r M-w' (copy-rectangle-as-kill).
|
||||
It copies the region-rectangle as the last rectangle kill.
|
||||
|
||||
** New input method `vietnamese-vni'.
|
||||
** New option `yank-handled-properties' allows processing of text
|
||||
properties on yanked text, in more ways that are more general than
|
||||
just removing them, as done by `yank-excluded-properties'.
|
||||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 24.3
|
||||
|
||||
** Compilation has a new `compilation-always-kill' configuration variable.
|
||||
** Apropos
|
||||
---
|
||||
*** The faces used by Apropos are now directly customizable.
|
||||
These faces are named `apropos-symbol', `apropos-keybinding', and so on;
|
||||
see the `apropos' Custom group for details.
|
||||
---
|
||||
*** The old options whose values specified faces to use were removed
|
||||
(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
|
||||
|
||||
** Term changes
|
||||
** Buffer Menu
|
||||
This package has been rewritten to use Tabulated List mode.
|
||||
---
|
||||
*** Option `Buffer-menu-buffer+size-width' is now obsolete.
|
||||
Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
|
||||
|
||||
The variables `term-default-fg-color' and `term-default-bg-color' are
|
||||
now deprecated in favor of the `term-face' face, that you can
|
||||
customize. Also, it is now possible to customize how are displayed the
|
||||
ANSI terminal colors and styles by customizing the corresponding
|
||||
`term-color-<COLOR>', `term-color-underline' and `term-color-bold'
|
||||
faces.
|
||||
** Calendar
|
||||
|
||||
*** You can customize the header text that appears above each calendar month.
|
||||
See the variable `calendar-month-header'.
|
||||
|
||||
+++
|
||||
*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
|
||||
|
||||
*** The calendars produced by cal-html include holidays.
|
||||
Customize cal-html-holidays to change this.
|
||||
|
||||
** CL
|
||||
|
||||
*** CL's main entry is now (require 'cl-lib).
|
||||
`cl-lib' is like the old `cl' except that it uses the namespace cleanly,
|
||||
i.e. all its definitions have the "cl-" prefix (and internal definitions use
|
||||
|
@ -287,11 +316,131 @@ closures, so such closures will only work if `lexical-binding' is in use.
|
|||
A side effect is that vars without corresponding value are bound to nil
|
||||
rather than making them unbound.
|
||||
|
||||
** Compilation mode
|
||||
|
||||
*** New option `compilation-always-kill'.
|
||||
|
||||
** Customize
|
||||
|
||||
*** `custom-reset-button-menu' now defaults to t.
|
||||
|
||||
*** Non-option variables are never matched in `customize-apropos' and
|
||||
`customize-apropos-options' (i.e. the prefix argument does nothing for
|
||||
these commands now).
|
||||
|
||||
** Desktop
|
||||
|
||||
*** `desktop-path' no longer includes the "." directory. Desktop
|
||||
files are now located in ~/.emacs.d by default.
|
||||
|
||||
** D-Bus
|
||||
|
||||
+++
|
||||
*** New variables `dbus-compiled-version' and `dbus-runtime-version'.
|
||||
|
||||
+++
|
||||
*** The D-Bus object manager interface is implemented.
|
||||
|
||||
+++
|
||||
*** Variables of type :(u)int32 and :(u)int64 accept floating points,
|
||||
if their value does not fit into Emacs's integer range.
|
||||
|
||||
+++
|
||||
*** The function `dbus-call-method' works non-blocking now, it can be
|
||||
interrupted by C-g. `dbus-call-method-non-blocking' is obsolete.
|
||||
|
||||
+++
|
||||
*** Signals can be sent also as unicast message.
|
||||
|
||||
+++
|
||||
*** The argument list of `dbus-register-signal' has been extended,
|
||||
according to the new match rule types of D-Bus. See the manual for
|
||||
details.
|
||||
|
||||
+++
|
||||
*** `dbus-init-bus' supports private connections.
|
||||
|
||||
+++
|
||||
*** There is a new function `dbus-setenv'.
|
||||
|
||||
** Diff mode
|
||||
|
||||
*** Changes are now highlighted using the same color scheme as in
|
||||
modern VCSes. Deletions are displayed in red (new faces
|
||||
`diff-refine-removed' and `smerge-refined-removed' and new definition
|
||||
of `diff-removed'), insertions in green (new faces `diff-refine-added'
|
||||
and `smerge-refined-added' and new definition of `diff-added').
|
||||
|
||||
*** The variable `diff-use-changed-face' defines whether to use the
|
||||
face `diff-changed', or `diff-removed' and `diff-added' to highlight
|
||||
changes in context diffs.
|
||||
|
||||
*** The new command `diff-remove-trailing-whitespace' fixes trailing
|
||||
whitespace problems introduced by the diff.
|
||||
|
||||
** Dired
|
||||
|
||||
*** `dired-do-async-shell-command' executes each file sequentially
|
||||
if the command ends in `;' (when operating on multiple files).
|
||||
Otherwise, it executes the command on each file in parallel.
|
||||
|
||||
*** Typing M-n in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
|
||||
`dired-do-chown', `dired-do-touch' pulls the file attributes of the
|
||||
file at point.
|
||||
|
||||
*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
|
||||
`DEL' (`dired-unmark-backward'), `d' (`dired-flag-file-deletion')
|
||||
mark/unmark/flag all files in the active region.
|
||||
|
||||
*** The minibuffer default for `=' (`dired-diff) has changed.
|
||||
It is now the backup file for the file at point, if one exists.
|
||||
In Transient Mark mode the default is the file at the active mark.
|
||||
|
||||
*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
|
||||
The global binding for `M-=', `count-words-region' is in effect.
|
||||
|
||||
** Ediff now uses the same color scheme as Diff mode.
|
||||
|
||||
** erc will look up server/channel names via auth-source and use the
|
||||
channel keys found, if any.
|
||||
|
||||
** Flymake uses fringe bitmaps to indicate errors and warnings.
|
||||
See flymake-fringe-indicator-position, flymake-error-bitmap and
|
||||
flymake-warning-bitmap.
|
||||
|
||||
** Follow mode
|
||||
|
||||
*** The obsolete variable `follow-mode-off-hook' has been removed.
|
||||
|
||||
*** Follow mode no longer works by using advice.
|
||||
The option `follow-intercept-processes' has been removed.
|
||||
|
||||
** FFAP
|
||||
|
||||
*** The option `ffap-url-unwrap-remote' can now be a list of strings,
|
||||
specifying URL types which should be converted to remote file names at
|
||||
the FFAP prompt. The default is now '("ftp").
|
||||
|
||||
** Ibuffer
|
||||
|
||||
*** New `derived-mode' filter, bound to `/ M'.
|
||||
The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
|
||||
|
||||
** Mouse Avoidance mode
|
||||
|
||||
The new variable `mouse-avoidance-banish-position' can now be used to
|
||||
customize Mouse Avoidance mode further.
|
||||
|
||||
+++
|
||||
** notifications.el supports now version 1.2 of the Notifications API.
|
||||
The function `notifications-get-capabilities' returns the supported
|
||||
server properties.
|
||||
|
||||
** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
|
||||
closing brackets to be aligned with the line of the opening bracket.
|
||||
|
||||
** In Proced mode, new command `proced-renice' renices marked processes.
|
||||
|
||||
** Python mode
|
||||
|
||||
A new version of python.el, which provides several new features, including:
|
||||
|
@ -347,50 +496,6 @@ python-send-string | python-shell-send-string
|
|||
python-switch-to-python | python-shell-switch-to-shell
|
||||
python-describe-symbol | python-eldoc-at-point
|
||||
|
||||
** VHDL mode
|
||||
|
||||
*** The free software compiler GHDL is supported (and now the default).
|
||||
|
||||
*** Support for the VHDL-AMS packages has been added/updated.
|
||||
|
||||
*** Updated to the 2002 revision of the VHDL standard.
|
||||
|
||||
*** Accepts \r and \f as whitespace.
|
||||
|
||||
** SQL Mode
|
||||
|
||||
*** DB2 added `sql-db2-escape-newlines'
|
||||
|
||||
If non-nil, newlines sent to the command interpreter will be escaped
|
||||
by a backslash. The default does not escape the newlines and assumes
|
||||
that the sql statement will be terminated by a semicolon.
|
||||
|
||||
** Diff mode
|
||||
|
||||
Faces for changes now use the same diff color scheme as in modern VCSes
|
||||
where deletions are displayed in red (new faces `diff-refine-removed'
|
||||
and `smerge-refined-removed' and new definition of `diff-removed'),
|
||||
insertions in green (new faces `diff-refine-added' and
|
||||
`smerge-refined-added' and new definition of `diff-added').
|
||||
The variable `diff-use-changed-face' defines whether to use
|
||||
the face `diff-changed', or `diff-removed' and `diff-added'
|
||||
to highlight changes in context diffs.
|
||||
|
||||
*** The new command `diff-remove-trailing-whitespace' fixes trailing
|
||||
whitespace problems introduced by the diff.
|
||||
|
||||
** Ediff now uses the same color scheme as Diff mode
|
||||
on high color displays.
|
||||
|
||||
** Flymake uses fringe bitmaps to indicate errors and warnings.
|
||||
See flymake-fringe-indicator-position, flymake-error-bitmap and
|
||||
flymake-warning-bitmap.
|
||||
|
||||
** `sh-script'
|
||||
*** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
|
||||
*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
|
||||
*** `sh-use-smie' lets you choose a new indentation and navigation code.
|
||||
|
||||
** reStructuredText mode
|
||||
|
||||
*** Rebind nearly all keys making room for more keys and complying
|
||||
|
@ -419,52 +524,15 @@ the experience for Sphinx users.
|
|||
|
||||
*** Package version in `rst-version'.
|
||||
|
||||
** New `derived-mode' filter for Ibuffer, bound to `/ M'.
|
||||
`/ m' is now bound to filter by used-mode, which used to be bound to `/ M'.
|
||||
*** Support `imenu' and `which-func'.
|
||||
|
||||
** Apropos
|
||||
** SH Script mode
|
||||
|
||||
*** The faces used by Apropos are now directly customizable.
|
||||
These faces are named `apropos-symbol', `apropos-keybinding', and so on;
|
||||
see the `apropos' Custom group for details.
|
||||
*** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
|
||||
|
||||
**** The old options whose values specified faces to use were removed
|
||||
(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
|
||||
*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
|
||||
|
||||
** Buffer Menu
|
||||
This package has been rewritten to use Tabulated List mode.
|
||||
|
||||
*** Option `Buffer-menu-buffer+size-width' is now obsolete.
|
||||
Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
|
||||
|
||||
** Calendar
|
||||
|
||||
*** The calendars produced by cal-html include holidays.
|
||||
Customize cal-html-holidays to change this.
|
||||
|
||||
** Customize
|
||||
|
||||
*** `custom-reset-button-menu' now defaults to t.
|
||||
|
||||
*** Non-option variables are never matched in `customize-apropos' and
|
||||
`customize-apropos-options' (i.e. the prefix argument does nothing for
|
||||
these commands now).
|
||||
|
||||
** erc will look up server/channel names via auth-source and use the
|
||||
channel keys found, if any.
|
||||
|
||||
** Dired
|
||||
|
||||
*** `dired-do-async-shell-command' executes each file sequentially
|
||||
if the command ends in `;' (when operating on multiple files).
|
||||
Otherwise, it executes the command on each file in parallel.
|
||||
|
||||
*** The minibuffer default for `=' (`dired-diff) has changed.
|
||||
It is now the backup file for the file at point, if one exists, rather
|
||||
than the file at the mark.
|
||||
|
||||
*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
|
||||
The global binding for `M-=', `count-words-region' is in effect.
|
||||
*** `sh-use-smie' lets you choose a new indentation and navigation code.
|
||||
|
||||
** Shell
|
||||
|
||||
|
@ -472,83 +540,35 @@ The global binding for `M-=', `count-words-region' is in effect.
|
|||
for a new asynchronous shell command when the default output buffer
|
||||
`*Async Shell Command*' is already taken by another running command.
|
||||
|
||||
** FFAP
|
||||
** SQL Mode
|
||||
|
||||
*** The option `ffap-url-unwrap-remote' can now be a list of strings,
|
||||
specifying URL types which should be converted to remote file names at
|
||||
the FFAP prompt. The default is now '("ftp").
|
||||
*** DB2 added `sql-db2-escape-newlines'
|
||||
|
||||
** Follow mode
|
||||
|
||||
*** The obsolete variable `follow-mode-off-hook' has been removed.
|
||||
|
||||
*** Follow mode no longer works by using advice.
|
||||
The option `follow-intercept-processes' has been removed.
|
||||
|
||||
** The `server-auth-key' variable can be used to set a permanent
|
||||
shared key for Emacs Server.
|
||||
|
||||
** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
|
||||
closing brackets to be aligned with the line of the opening bracket.
|
||||
|
||||
** FIXME something happened to ses.el, 2012-04-17.
|
||||
|
||||
** which-function-mode now applies to all applicable major modes by default.
|
||||
|
||||
** Tramp
|
||||
|
||||
+++
|
||||
*** The syntax has been extended in order to allow ad-hoc proxy
|
||||
definitions. See the manual for details.
|
||||
|
||||
+++
|
||||
*** Remote processes are now supported also on remote Windows host.
|
||||
|
||||
** D-Bus
|
||||
|
||||
+++
|
||||
*** New variables `dbus-compiled-version' and `dbus-runtime-version'.
|
||||
|
||||
+++
|
||||
*** The D-Bus object manager interface is implemented.
|
||||
|
||||
+++
|
||||
*** Variables of type :(u)int32 and :(u)int64 accept floating points,
|
||||
if their value does not fit into Emacs's integer range.
|
||||
|
||||
+++
|
||||
*** The function `dbus-call-method' works non-blocking now, it can be
|
||||
interrupted by C-g. `dbus-call-method-non-blocking' is obsolete.
|
||||
|
||||
+++
|
||||
*** Signals can be sent also as unicast message.
|
||||
|
||||
+++
|
||||
*** The argument list of `dbus-register-signal' has been extended,
|
||||
according to the new match rule types of D-Bus. See the manual for
|
||||
details.
|
||||
|
||||
+++
|
||||
*** `dbus-init-bus' supports private connections.
|
||||
|
||||
+++
|
||||
*** There is a new function `dbus-setenv'.
|
||||
|
||||
+++
|
||||
** notifications.el supports now version 1.2 of the Notifications API.
|
||||
The function `notifications-get-capabilities' returns the supported
|
||||
server properties.
|
||||
|
||||
** Package Menu
|
||||
|
||||
*** Newly-available packages are listed in the Package Menu as "new",
|
||||
and sorted above the other "available" packages by default.
|
||||
If non-nil, newlines sent to the command interpreter will be escaped
|
||||
by a backslash. The default does not escape the newlines and assumes
|
||||
that the sql statement will be terminated by a semicolon.
|
||||
|
||||
** Tabulated List and packages derived from it
|
||||
|
||||
*** New command `tabulated-list-sort', bound to `S', sorts the column
|
||||
at point, or the Nth column if a numeric prefix argument is given.
|
||||
|
||||
** Term
|
||||
|
||||
The variables `term-default-fg-color' and `term-default-bg-color' are
|
||||
now deprecated in favor of the `term-face' face, that you can
|
||||
customize. Also, it is now possible to customize how are displayed the
|
||||
ANSI terminal colors and styles by customizing the corresponding
|
||||
`term-color-<COLOR>', `term-color-underline' and `term-color-bold'
|
||||
faces.
|
||||
|
||||
** Tramp
|
||||
+++
|
||||
*** The syntax has been extended in order to allow ad-hoc proxy
|
||||
definitions. See the manual for details.
|
||||
+++
|
||||
*** Remote processes are now supported also on remote Windows host.
|
||||
|
||||
** URL
|
||||
|
||||
*** Structs made by `url-generic-parse-url' have nil `attributes' slot.
|
||||
|
@ -561,23 +581,42 @@ and the `attributes' slot is always nil.
|
|||
The `url-retrieve' function now uses this to encode its URL argument,
|
||||
in case that is not properly encoded.
|
||||
|
||||
** Obsolete packages:
|
||||
** VHDL mode
|
||||
|
||||
*** The free software compiler GHDL is supported (and now the default).
|
||||
|
||||
*** Support for the VHDL-AMS packages has been added/updated.
|
||||
|
||||
*** Updated to the 2002 revision of the VHDL standard.
|
||||
|
||||
*** Accepts \r and \f as whitespace.
|
||||
|
||||
** which-function-mode now applies to all applicable major modes by default.
|
||||
|
||||
---
|
||||
** winner-mode-hook now runs when the mode is disabled, as well as when it is
|
||||
enabled.
|
||||
|
||||
** FIXME something happened to ses.el, 2012-04-17.
|
||||
|
||||
|
||||
** Obsolete packages:
|
||||
+++
|
||||
*** assoc.el
|
||||
In most cases, assoc+member+push+delq work just as well.
|
||||
And in any case it's just a terrible package: ugly semantics, terrible
|
||||
inefficiency, and not namespace-clean.
|
||||
|
||||
---
|
||||
*** bruce.el
|
||||
|
||||
---
|
||||
*** ledit.el
|
||||
|
||||
---
|
||||
*** mailpost.el
|
||||
|
||||
+++
|
||||
*** mouse-sel.el
|
||||
|
||||
---
|
||||
*** patcomp.el
|
||||
|
||||
+++
|
||||
*** cust-print.el
|
||||
|
||||
|
||||
|
@ -585,11 +624,15 @@ inefficiency, and not namespace-clean.
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 24.3
|
||||
|
||||
** set-buffer-multibyte now signals an error in narrowed buffers.
|
||||
|
||||
+++
|
||||
** (random) by default now returns a different random sequence in
|
||||
every Emacs run. Use (random S), where S is a string, to set the
|
||||
random seed to a value based on S, in order to get a repeatable
|
||||
sequence in later calls.
|
||||
|
||||
---
|
||||
** The function `x-select-font' can return a font spec, instead of a
|
||||
font name as a string. Whether it returns a font spec or a font name
|
||||
depends on the graphical library.
|
||||
|
@ -610,6 +653,7 @@ and are now undefined. For backwards compatibility, defun and
|
|||
defmacro currently return the name of the newly defined function/macro
|
||||
but this should not be relied upon.
|
||||
|
||||
---
|
||||
** `face-spec-set' no longer sets frame-specific attributes when the
|
||||
third argument is a frame (that usage was obsolete since Emacs 22.2).
|
||||
|
||||
|
@ -647,48 +691,54 @@ are deprecated and will be removed eventually.
|
|||
**** inactivate-current-input-method-function ->
|
||||
deactivate-current-input-method-function
|
||||
|
||||
** The following obsolete variables and varaliases have been removed:
|
||||
** Some obsolete functions, variables, and faces were removed:
|
||||
|
||||
*** `facemenu-unlisted-faces'
|
||||
*** `rmail-decode-mime-charset'
|
||||
*** `last-input-char', `last-command-char', `unread-command-char'.
|
||||
*** `iswitchb-read-buffer'
|
||||
*** `sc-version', `sc-submit-bug-report'
|
||||
*** `set-char-table-default'
|
||||
*** `string-to-sequence' (use `string-to-list' or `string-to-vector').
|
||||
*** `compile-internal'
|
||||
*** `mode-line-inverse-video'
|
||||
*** `cvs-commit-buffer-require-final-newline'
|
||||
(use `'log-edit-require-final-newline'instead)
|
||||
*** `cvs-changelog-full-paragraphs'
|
||||
(use `log-edit-changelog-full-paragraphs' instead)
|
||||
*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name'
|
||||
*** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
|
||||
*** `vc-master-templates' (use `vc-handled-backends' instead)
|
||||
*** `vc-checkout-carefully'
|
||||
*** `modeline'
|
||||
|
||||
|
||||
* Lisp changes in Emacs 24.3
|
||||
|
||||
** Interpreted files get eagerly macro-expanded during load.
|
||||
This can significantly speed up execution of non-byte-compiled code, but can
|
||||
also bump into harmless and previously unnoticed cyclic dependencies.
|
||||
These should not be fatal: they will simply cause the macro-calls to be left
|
||||
for later expansion (as before), but will also result in a warning describing
|
||||
the cycle.
|
||||
|
||||
** New minor mode `read-only-mode' to replace toggle-read-only (now obsolete).
|
||||
|
||||
** New functions `autoloadp' and `autoload-do-load'.
|
||||
|
||||
** New function `posnp' to test if an object is a `posn'.
|
||||
|
||||
** `function-get' fetches the property of a function, following aliases.
|
||||
|
||||
** `toggle-read-only' accepts a second argument specifying whether to
|
||||
print a message, if called from Lisp.
|
||||
** New sampling-based Elisp profiler.
|
||||
Try M-x profiler-start ... M-x profiler-stop; and then M-x profiler-report.
|
||||
The sampling rate can be based on CPU time (only supported on some
|
||||
systems), or based on memory allocations.
|
||||
|
||||
** CL-style generalized variables are now in core Elisp.
|
||||
`setf' is autoloaded and `push' and `pop' accept generalized variables.
|
||||
`setf' is autoloaded; `push' and `pop' accept generalized variables.
|
||||
|
||||
** `defun' also accepts a (declare DECLS) form, like `defmacro'.
|
||||
The interpretation of the DECLS is determined by `defun-declarations-alist'.
|
||||
|
||||
** `macro-declaration-function' is obsolete, use `macro-declarations-alist'.
|
||||
** Completion
|
||||
|
||||
** New function `set-temporary-overlay-map'.
|
||||
*** New function `completion-table-with-quoting' to handle completion
|
||||
in the presence of quoting, such as file completion in shell buffers.
|
||||
|
||||
** New macros `setq-local' and `defvar-local'.
|
||||
*** New function `completion-table-subvert' to use an existing completion
|
||||
table, but with a different prefix.
|
||||
|
||||
** New error type and new function `user-error'. Doesn't trigger the debugger.
|
||||
** Debugger changes
|
||||
|
||||
*** New error type and new function `user-error'.
|
||||
These do not trigger the debugger.
|
||||
|
||||
** Debugger
|
||||
*** New option `debugger-bury-or-kill'.
|
||||
|
||||
*** Set `debug-on-message' to enter the debugger when a certain
|
||||
|
@ -698,23 +748,31 @@ to work out which code is doing something.
|
|||
*** New var `inhibit-debugger', automatically set to prevent accidental
|
||||
recursive invocations.
|
||||
|
||||
+++
|
||||
** New utility function `buffer-narrowed-p'.
|
||||
** Minibuffer
|
||||
|
||||
*** `read-regexp' has a new argument HISTORY; the first argument PROMPT
|
||||
of `read-regexp' accepts a string ending with a colon and space, and its
|
||||
second argument DEFAULTS can be a list of strings accessible via M-n
|
||||
in the minibuffer ahead of other hard-coded useful regexp-related values.
|
||||
More commands use `read-regexp' now to read their regexp arguments.
|
||||
|
||||
** Window changes
|
||||
|
||||
*** The functions get-lru-window, get-mru-window and get-largest-window
|
||||
now accept a third argument to avoid choosing the selected window.
|
||||
|
||||
*** Additional values recognized for option `window-combination-limit'.
|
||||
|
||||
*** New macro `with-temp-buffer-window'.
|
||||
|
||||
*** New option `temp-buffer-resize-frames'.
|
||||
*** `temp-buffer-resize-mode' no longer resizes windows that have been
|
||||
reused.
|
||||
|
||||
*** New function `fit-frame-to-buffer' and new option
|
||||
`fit-frame-to-buffer-bottom-margin'.
|
||||
*** New function `fit-frame-to-buffer' and new options
|
||||
`fit-frame-to-buffer' and `fit-frame-to-buffer-bottom-margin'.
|
||||
|
||||
*** New display action functions `display-buffer-below-selected' and
|
||||
`display-buffer-in-previous-window'.
|
||||
*** New display action functions `display-buffer-below-selected',
|
||||
`display-buffer-at-bottom' and `display-buffer-in-previous-window'.
|
||||
|
||||
*** New display action alist entry `inhibit-switch-frame', if non-nil,
|
||||
tells display action functions to avoid changing which frame is
|
||||
|
@ -726,6 +784,9 @@ non-nil, specifies frame parameters to give any newly-created frame.
|
|||
*** New display action alist entry `previous-window', if non-nil,
|
||||
specifies window to reuse in `display-buffer-in-previous-window'.
|
||||
|
||||
*** New display action alist entries `window-height' and `window-width'
|
||||
to specify size of new window created by `display-buffer'.
|
||||
|
||||
*** The following variables are obsolete, as they can be replaced by
|
||||
appropriate entries in the `display-buffer-alist' function introduced
|
||||
in Emacs 24.1:
|
||||
|
@ -736,36 +797,74 @@ in Emacs 24.1:
|
|||
**** `special-display-buffer-names'
|
||||
**** `special-display-function'
|
||||
**** `display-buffer-function'
|
||||
|
||||
** Completion
|
||||
|
||||
*** New function `completion-table-with-quoting' to handle completion
|
||||
in the presence of quoting, such as file completion in shell buffers.
|
||||
|
||||
*** New function `completion-table-subvert' to use an existing completion
|
||||
table, but with a different prefix.
|
||||
**** `dired-shrink-to-fit'
|
||||
|
||||
** Time
|
||||
|
||||
---
|
||||
*** `current-time-string' no longer requires that its argument's year
|
||||
must be in the range 1000..9999. It now works with any year supported
|
||||
by the underlying C implementation.
|
||||
---
|
||||
*** `current-time' now returns extended-format time stamps
|
||||
(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
|
||||
PSEC is typically a multiple of 1000 on current machines. Other
|
||||
functions that use this format, such as file-attributes and
|
||||
format-time-string, have been changed accordingly. Old-format time
|
||||
stamps are still accepted.
|
||||
---
|
||||
*** The format of timers in timer-list and timer-idle-list is now
|
||||
[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
|
||||
The PSECS slot is new, and uses picosecond resolution. It can be
|
||||
accessed via the new timer--psecs accessor.
|
||||
|
||||
** Floating point
|
||||
+++
|
||||
** Floating point functions now always return special values like NaN,
|
||||
instead of signaling errors, if given invalid args, e.g. (log -1.0).
|
||||
Previously, they returned NaNs on some platforms but signaled errors
|
||||
on others. The affected functions are acos, asin, tan, exp, expt,
|
||||
log, log10, sqrt, and mod.
|
||||
|
||||
*** When floating point functions such as `log' are given invalid
|
||||
arguments, e.g., (log -1.0), they now uniformly return special values
|
||||
such as NaNs instead of signaling errors. Previously, these functions
|
||||
returned NaNs on some platforms but signaled errors on others. The affected
|
||||
functions are acos, asin, tan, exp, expt, log, log10, sqrt, and mod.
|
||||
** Interpreted files are eagerly macro-expanded during load.
|
||||
This can significantly speed up execution of non-byte-compiled code,
|
||||
but can also bump into harmless and previously unnoticed cyclic
|
||||
dependencies. These should not be fatal: they will simply cause the
|
||||
macro-calls to be left for later expansion (as before), but will also
|
||||
result in a warning ("Eager macro-expansion skipped due to cycle")
|
||||
describing the cycle.
|
||||
|
||||
** New function file-name-base.
|
||||
** Misc new functions:
|
||||
|
||||
** New function `tty-top-frame' returns the topmost frame of a text terminal.
|
||||
*** `autoloadp'
|
||||
*** `autoload-do-load'.
|
||||
+++
|
||||
*** `buffer-narrowed-p' tests if the buffer is narrowed.
|
||||
*** `file-name-base' returns a file name sans directory and extension.
|
||||
*** `function-get' fetches a function property, following aliases.
|
||||
+++
|
||||
*** `posnp' tests if an object is a `posn'.
|
||||
*** `set-temporary-overlay-map' sets up a temporary overlay map.
|
||||
+++
|
||||
*** `system-users' returns the user names on the system.
|
||||
+++
|
||||
*** `system-groups' returns the group names on the system.
|
||||
*** `tty-top-frame' returns the topmost frame of a text terminal.
|
||||
|
||||
** New macros `setq-local' and `defvar-local'.
|
||||
|
||||
** New fringe bitmap `exclamation-mark'.
|
||||
|
||||
** Face underlining can now use a wave.
|
||||
See the "Face Attributes" section of the Elisp manual.
|
||||
|
||||
** The following functions and variables are obsolete:
|
||||
|
||||
*** `automount-dir-prefix'
|
||||
*** `buffer-has-markers-at'
|
||||
*** `macro-declaration-function' (use `macro-declarations-alist').
|
||||
*** `window-system-version'
|
||||
*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
|
||||
*** `query-replace-interactive'
|
||||
|
||||
** `automount-dir-prefix' is obsolete.
|
||||
** `buffer-has-markers-at' is obsolete.
|
||||
** `window-system-version' is obsolete.
|
||||
|
||||
* Changes in Emacs 24.3 on non-free operating systems
|
||||
|
||||
|
|
1886
etc/ORG-NEWS
1886
etc/ORG-NEWS
File diff suppressed because it is too large
Load diff
|
@ -9,13 +9,6 @@ Copyright (C) 2007-2012 Free Software Foundation, Inc.
|
|||
License: GNU General Public License version 3 or later (see COPYING)
|
||||
|
||||
|
||||
Files: hicolor/16x16/apps/emacs22.png hicolor/24x24/apps/emacs22.png
|
||||
hicolor/32x32/apps/emacs22.png hicolor/48x48/apps/emacs22.png
|
||||
|
||||
Author: Andrew Zhilin <andrew_zhilin@yahoo.com>
|
||||
Copyright (C) 2005-2012 Free Software Foundation, Inc.
|
||||
License: GNU General Public License version 3 or later (see COPYING)
|
||||
|
||||
Files: allout-widgets-dark-bg/closed.png
|
||||
allout-widgets-dark-bg/closed.xpm
|
||||
allout-widgets-dark-bg/empty.png
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 705 B |
Binary file not shown.
Before Width: | Height: | Size: 988 B |
Binary file not shown.
Before Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.4 KiB |
|
@ -256,6 +256,7 @@
|
|||
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Equation"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
|
||||
<text:sequence-decl text:display-outline-level="0" text:name="Listing"/>
|
||||
</text:sequence-decls>
|
||||
</office:text>
|
||||
</office:body>
|
||||
|
|
|
@ -319,6 +319,11 @@
|
|||
<style:style style:name="Table" style:family="paragraph" style:parent-style-name="Caption" style:class="extra">
|
||||
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
|
||||
</style:style>
|
||||
<style:style style:name="Listing" style:family="paragraph" style:parent-style-name="Caption" style:class="extra">
|
||||
<style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false" fo:keep-with-next="always">
|
||||
<style:tab-stops/>
|
||||
</style:paragraph-properties>
|
||||
</style:style>
|
||||
<style:style style:name="Horizontal_20_Line" style:display-name="Horizontal Line" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="html">
|
||||
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.499cm" style:border-line-width-bottom="0.002cm 0.035cm 0.002cm" fo:padding="0cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.039cm double #808080" text:number-lines="false" text:line-number="0" style:join-border="false"/>
|
||||
<style:text-properties fo:font-size="6pt" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
|
||||
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{7.8.11}
|
||||
\def\orgversionnumber{7.9.2}
|
||||
\def\versionyear{2012} % latest update
|
||||
\input emacsver.tex
|
||||
|
||||
|
|
164
etc/srecode/c.srt
Normal file
164
etc/srecode/c.srt
Normal file
|
@ -0,0 +1,164 @@
|
|||
;;; c.srt --- SRecode templates for c-mode
|
||||
|
||||
;; Copyright (C) 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Eric M. Ludlam <eric@siege-engine.com>
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
set mode "c-mode"
|
||||
|
||||
set comment_start "/**"
|
||||
set comment_end " */"
|
||||
set comment_prefix " *"
|
||||
|
||||
;; OVERRIDE THIS in your user or project template file to whatever
|
||||
;; you use for your project.
|
||||
set HEADEREXT ".h"
|
||||
|
||||
context file
|
||||
|
||||
template empty :time :user :file :c
|
||||
----
|
||||
{{>:filecomment}}
|
||||
|
||||
{{#NOTHEADER}}
|
||||
|
||||
{{^}}
|
||||
{{/NOTHEADER}}
|
||||
{{#HEADER}}
|
||||
{{>:header_guard}}
|
||||
{{/HEADER}}
|
||||
----
|
||||
|
||||
template header_guard :file :blank
|
||||
----
|
||||
#ifndef {{FILENAME_SYMBOL}}
|
||||
#define {{FILENAME_SYMBOL}} 1
|
||||
|
||||
{{^}}
|
||||
|
||||
#endif // {{FILENAME_SYMBOL}}
|
||||
----
|
||||
|
||||
context misc
|
||||
|
||||
template arglist
|
||||
"Insert an argument list for a function.
|
||||
@todo - Support smart CR in a buffer for not too long lines."
|
||||
----
|
||||
({{#ARGS}}{{TYPE}} {{NAME}}{{#NOTLAST}},{{/NOTLAST}}{{/ARGS}})
|
||||
----
|
||||
|
||||
context declaration
|
||||
|
||||
prompt TYPE "Return Type: "
|
||||
|
||||
template function :indent :blank
|
||||
"Insert a function declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}}
|
||||
{{#INITIALIZERS}}{{>B:initializers}}{{/INITIALIZERS}}
|
||||
{
|
||||
{{^}}
|
||||
}
|
||||
----
|
||||
bind "f"
|
||||
|
||||
template function-prototype :indent :blank
|
||||
"Insert a function declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}};
|
||||
----
|
||||
|
||||
|
||||
prompt TYPE "Data Type: "
|
||||
|
||||
template variable :indent :blank
|
||||
"Insert a variable declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{#HAVEDEFAULT}} = {{DEFAULT}}{{/HAVEDEFAULT}};
|
||||
----
|
||||
bind "v"
|
||||
|
||||
template variable-prototype :indent :blank
|
||||
"Insert a variable declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}};
|
||||
----
|
||||
bind "v"
|
||||
|
||||
|
||||
template include :blank
|
||||
"An include statement."
|
||||
----
|
||||
#include "{{?NAME}}"
|
||||
----
|
||||
bind "i"
|
||||
|
||||
template system-include :blank
|
||||
"An include statement."
|
||||
----
|
||||
#include <{{?NAME}}>
|
||||
----
|
||||
bind "i"
|
||||
|
||||
template label :blank :indent
|
||||
----
|
||||
{{?NAME}}:
|
||||
----
|
||||
|
||||
context declaration
|
||||
|
||||
template comment-function :indent :blank
|
||||
"Used to put a nice comment in front of a function.
|
||||
Override this with your own preference to avoid using doxygen"
|
||||
----
|
||||
{{>A:declaration:doxygen-function}}
|
||||
----
|
||||
|
||||
;;; DOXYGEN FEATURES
|
||||
;;
|
||||
;;
|
||||
context declaration
|
||||
|
||||
template doxygen-function :indent :blank
|
||||
----
|
||||
/**
|
||||
* @name {{NAME}} - {{DOC}}{{^}}{{#ARGS}}
|
||||
* @param {{NAME}} - {{DOC}}{{/ARGS}}
|
||||
* @return {{TYPE}}
|
||||
*/
|
||||
----
|
||||
|
||||
template doxygen-variable-same-line
|
||||
----
|
||||
/**< {{DOC}}{{^}} */
|
||||
----
|
||||
|
||||
template doxygen-section-comment :blank :indent
|
||||
"Insert a comment that separates sections of an Emacs Lisp file."
|
||||
----
|
||||
|
||||
/** {{?TITLE}}
|
||||
*
|
||||
* {{^}}
|
||||
*/
|
||||
|
||||
----
|
||||
|
||||
|
||||
;; end
|
|
@ -25,82 +25,8 @@ set comment_start "/**"
|
|||
set comment_end " */"
|
||||
set comment_prefix " *"
|
||||
|
||||
;; OVERRIDE THIS in your user or project template file to whatever
|
||||
;; you use for your project.
|
||||
set HEADEREXT ".h"
|
||||
|
||||
context file
|
||||
|
||||
template empty :time :user :file :cpp
|
||||
----
|
||||
{{>:filecomment}}
|
||||
|
||||
{{#NOTHEADER}}
|
||||
|
||||
{{^}}
|
||||
{{/NOTHEADER}}
|
||||
{{#HEADER}}
|
||||
{{>:header_guard}}
|
||||
{{/HEADER}}
|
||||
----
|
||||
|
||||
template header_guard :file :blank
|
||||
----
|
||||
#ifndef {{FILENAME_SYMBOL}}
|
||||
#define {{FILENAME_SYMBOL}} 1
|
||||
|
||||
{{^}}
|
||||
|
||||
#endif // {{FILENAME_SYMBOL}}
|
||||
----
|
||||
|
||||
context misc
|
||||
|
||||
template arglist
|
||||
"Insert an argument list for a function.
|
||||
@todo - Support smart CR in a buffer for not too long lines."
|
||||
----
|
||||
({{#ARGS}}{{TYPE}} {{NAME}}{{#NOTLAST}},{{/NOTLAST}}{{/ARGS}})
|
||||
----
|
||||
|
||||
context declaration
|
||||
|
||||
prompt TYPE "Return Type: "
|
||||
|
||||
template function :indent :blank
|
||||
"Insert a function declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}}
|
||||
{{#INITIALIZERS}}{{>B:initializers}}{{/INITIALIZERS}}
|
||||
{
|
||||
{{^}}
|
||||
}
|
||||
----
|
||||
bind "f"
|
||||
|
||||
template function-prototype :indent :blank
|
||||
"Insert a function declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}};
|
||||
----
|
||||
|
||||
|
||||
prompt TYPE "Data Type: "
|
||||
|
||||
template variable :indent :blank
|
||||
"Insert a variable declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}}{{#HAVEDEFAULT}} = {{DEFAULT}}{{/HAVEDEFAULT}};
|
||||
----
|
||||
bind "v"
|
||||
|
||||
template variable-prototype :indent :blank
|
||||
"Insert a variable declaration."
|
||||
----
|
||||
{{?TYPE}} {{?NAME}};
|
||||
----
|
||||
bind "v"
|
||||
|
||||
template class :indent :blank
|
||||
"Insert a C++ class. For use by user insertion.
|
||||
Override this template to change contents of a class.
|
||||
|
@ -146,18 +72,6 @@ template method :indent :blank
|
|||
}
|
||||
----
|
||||
|
||||
template include :blank
|
||||
"An include statement."
|
||||
----
|
||||
#include "{{?NAME}}"
|
||||
----
|
||||
bind "i"
|
||||
|
||||
template label :blank :indent
|
||||
----
|
||||
{{?NAME}}:
|
||||
----
|
||||
|
||||
context classdecl
|
||||
|
||||
template constructor-tag :indent :blank
|
||||
|
@ -196,15 +110,6 @@ Override this with your own preference to avoid using doxygen."
|
|||
{{>A:classdecl:doxygen-function-group-end}}
|
||||
----
|
||||
|
||||
context declaration
|
||||
|
||||
template comment-function :indent :blank
|
||||
"Used to put a nice comment in front of a function.
|
||||
Override this with your own preference to avoid using doxygen"
|
||||
----
|
||||
{{>A:declaration:doxygen-function}}
|
||||
----
|
||||
|
||||
;;; DOXYGEN FEATURES
|
||||
;;
|
||||
;;
|
||||
|
@ -229,32 +134,4 @@ template doxygen-function-group-end :indent :blank
|
|||
|
||||
----
|
||||
|
||||
context declaration
|
||||
|
||||
template doxygen-function :indent :blank
|
||||
----
|
||||
/**
|
||||
* @name {{NAME}} - {{DOC}}{{^}}{{#ARGS}}
|
||||
* @param {{NAME}} - {{DOC}}{{/ARGS}}
|
||||
* @return {{TYPE}}
|
||||
*/
|
||||
----
|
||||
|
||||
template doxygen-variable-same-line
|
||||
----
|
||||
/**< {{DOC}}{{^}} */
|
||||
----
|
||||
|
||||
template doxygen-section-comment :blank :indent
|
||||
"Insert a comment that separates sections of an Emacs Lisp file."
|
||||
----
|
||||
|
||||
/** {{?TITLE}}
|
||||
*
|
||||
* {{^}}
|
||||
*/
|
||||
|
||||
----
|
||||
|
||||
|
||||
;; end
|
||||
|
|
54
etc/srecode/ede-autoconf.srt
Normal file
54
etc/srecode/ede-autoconf.srt
Normal file
|
@ -0,0 +1,54 @@
|
|||
;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE.
|
||||
;;
|
||||
;; Copyright (C) 2010 Eric M. Ludlam
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <eric@siege-engine.com>
|
||||
;;
|
||||
;; This program is free software; you can redistribute it and/or
|
||||
;; modify it under the terms of the GNU General Public License as
|
||||
;; published by the Free Software Foundation; either version 2, or (at
|
||||
;; your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful, but
|
||||
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
;; General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program; see the file COPYING. If not, write to
|
||||
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
;; Boston, MA 02110-1301, USA.
|
||||
|
||||
set mode "autoconf-mode"
|
||||
set escape_start "{{"
|
||||
set escape_end "}}"
|
||||
set comment_start "#"
|
||||
set comment_prefix "#"
|
||||
set application "ede"
|
||||
|
||||
context file
|
||||
|
||||
template ede-empty
|
||||
"Start a new EDE generated configure.in/ac file."
|
||||
----
|
||||
{{comment_prefix}} Automatically Generated/Maintained {{FILE}} by EDE.
|
||||
{{comment_prefix}}
|
||||
{{comment_prefix}} YOU MAY MODIFY THIS FILE
|
||||
{{comment_prefix}} Hand made changes in some sections will be preserved
|
||||
{{comment_prefix}} by EDE when this file is updated.
|
||||
{{comment_prefix}}
|
||||
{{comment_prefix}} EDE is the Emacs Development Environment.
|
||||
{{comment_prefix}} http://cedet.sourceforge.net/ede.shtml
|
||||
{{comment_prefix}}
|
||||
{{comment_prefix}} Process this file with autoconf to produce a configure script
|
||||
|
||||
AC_INIT({{TEST_FILE}})
|
||||
AM_INIT_AUTOMAKE([{{PROGRAM}}], 0)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
{{comment_prefix}} End the configure script.
|
||||
AC_OUTPUT(Makefile, [date > stamp-h] )
|
||||
----
|
||||
|
||||
|
||||
;; end
|
|
@ -46,4 +46,36 @@ template ede-vars
|
|||
{{NAME}}={{#VALUE}} {{VAL}}{{/VALUE}}{{/VARIABLE}}
|
||||
----
|
||||
|
||||
;; Some extra templates for Arduino based Makefiles.
|
||||
;; Perhaps split this out someday in the future.
|
||||
context arduino
|
||||
|
||||
template ede-empty :file
|
||||
----
|
||||
# Automatically Generated {{FILE}} by EDE.
|
||||
# For use with Make for an Arduino project.
|
||||
#
|
||||
# DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
|
||||
# EDE is the Emacs Development Environment.
|
||||
# http://cedet.sourceforge.net/ede.shtml
|
||||
|
||||
ARDUINO_DIR = {{ARDUINO_HOME}}
|
||||
|
||||
TARGET = {{TARGET}}
|
||||
ARDUINO_LIBS = {{ARDUINO_LIBS}}
|
||||
|
||||
MCU = {{MCU}}
|
||||
F_CPU = {{F_CPU}}
|
||||
ARDUINO_PORT = {{PORT}}
|
||||
BOARD_TAG = {{BOARD}}
|
||||
|
||||
AVRDUDE_ARD_BAUDRATE = {{AVRDUDE_ARD_BAUDRATE}}
|
||||
AVRDUDE_ARD_PROGRAMMER = {{AVRDUDE_ARD_PROGRAMMER}}
|
||||
|
||||
include {{ARDUINO_MK}}
|
||||
|
||||
# End of Makefile
|
||||
----
|
||||
|
||||
|
||||
;; end
|
||||
|
|
|
@ -197,7 +197,7 @@ template variable-option :el :el-custom :indent :blank
|
|||
----
|
||||
(defcustom $?NAME$ $^$
|
||||
"*$DOC$"
|
||||
:group $GROUP$
|
||||
:group '$GROUP$
|
||||
:type $?CUSTOMTYPE$)
|
||||
----
|
||||
bind "o"
|
||||
|
|
|
@ -46,7 +46,7 @@ META, EDIT ou ALT).
|
|||
Os comandos a seguir são úteis para visualizar telas inteiras
|
||||
|
||||
C-v Move para tela inteira posterior
|
||||
M-x Move para tela inteira anterior
|
||||
M-v Move para tela inteira anterior
|
||||
C-l Limpa a tela e re-mostrá todo o texto, movendo o texto ao
|
||||
redor do cursor para o centro da tela. (Isso é
|
||||
control-L, não control-1.)
|
||||
|
|
|
@ -406,7 +406,7 @@ C-k удалит две строки, а также завершающие их
|
|||
текста). Вы можете восстановить убитый текст в месте удаления или в любой
|
||||
другой точке редактируемого текста или даже в другом файле. Вы можете
|
||||
восстановить текст несколько раз и получить несколько копий данного текста.
|
||||
Некоторые редактора называют операции "убить" и "восстановить" как
|
||||
Некоторые редакторы называют операции "убить" и "восстановить" иначе:
|
||||
"вырезать" (cutting) и "вставить" (pasting) (ознакомьтесь с глоссарием
|
||||
(Glossary) в руководстве по Emacs).
|
||||
|
||||
|
|
|
@ -1,3 +1,19 @@
|
|||
2012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
|
||||
|
||||
* make-docfile.c (write_globals): Special-case
|
||||
Fexit_recursive_edit and Fabort_recursive_edit as well, as
|
||||
functions that are _Noreturn, to be consistent with
|
||||
src/keyboard.c.
|
||||
|
||||
2012-09-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* ntlib.c (gettimeofday): Copy from src/w32.c. lib/gettime.c
|
||||
needs this function.
|
||||
|
||||
2012-09-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* makefile.w32-in (obj): Add profiler.o.
|
||||
|
||||
2012-09-17 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ebrowse.c (version):
|
||||
|
@ -1038,7 +1054,7 @@
|
|||
(Asm_help, default_C_suffixes, default_C_help, Cplusplus_suffixes)
|
||||
(Cplusplus_help, Cjava_suffixes, Cobol_suffixes, Cstar_suffixes)
|
||||
(Erlang_suffixes, Erlang_help, Forth_suffixes, Forth_help)
|
||||
(Fortran_suffixes, Fortran_help, HTML_suffixes, HTML_help)
|
||||
(Fortran_suffixes, Fortran_help, HTML_suffixes, HTML_help)
|
||||
(Lisp_suffixes, Lisp_help, Lua_suffixes, Lua_help)
|
||||
(Makefile_filenames, Makefile_help, Objc_suffixes, Objc_help)
|
||||
(Pascal_suffixes, Pascal_help, Perl_suffixes, Perl_interpreters)
|
||||
|
|
|
@ -659,7 +659,9 @@ write_globals (void)
|
|||
special hacks. */
|
||||
if (strcmp (globals[i].name, "Fthrow") == 0
|
||||
|| strcmp (globals[i].name, "Ftop_level") == 0
|
||||
|| strcmp (globals[i].name, "Fkill_emacs") == 0)
|
||||
|| strcmp (globals[i].name, "Fkill_emacs") == 0
|
||||
|| strcmp (globals[i].name, "Fexit_recursive_edit") == 0
|
||||
|| strcmp (globals[i].name, "Fabort_recursive_edit") == 0)
|
||||
fprintf (outfile, "_Noreturn ");
|
||||
fprintf (outfile, "EXFUN (%s, ", globals[i].name);
|
||||
if (globals[i].value == -1)
|
||||
|
|
|
@ -140,7 +140,7 @@ obj = dosfns.o msdos.o \
|
|||
process.o callproc.o unexw32.o \
|
||||
region-cache.o sound.o atimer.o \
|
||||
doprnt.o intervals.o textprop.o composite.o \
|
||||
gnutls.o xml.o
|
||||
gnutls.o xml.o profiler.o
|
||||
|
||||
#
|
||||
# These are the lisp files that are loaded up in loadup.el
|
||||
|
|
|
@ -29,9 +29,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/timeb.h>
|
||||
|
||||
#include "ntlib.h"
|
||||
|
||||
struct timezone
|
||||
{
|
||||
int tz_minuteswest; /* minutes west of Greenwich */
|
||||
int tz_dsttime; /* type of dst correction */
|
||||
};
|
||||
|
||||
#define MAXPATHLEN _MAX_PATH
|
||||
|
||||
/* Emulate sleep...we could have done this with a define, but that
|
||||
|
@ -202,6 +209,29 @@ getpass (const char * prompt)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* This is needed because lib/gettime.c calls gettimeofday, which MSVC
|
||||
doesn't have. Copied from w32.c. */
|
||||
void
|
||||
gettimeofday (struct timeval *tv, struct timezone *tz)
|
||||
{
|
||||
struct _timeb tb;
|
||||
_ftime (&tb);
|
||||
|
||||
tv->tv_sec = tb.time;
|
||||
tv->tv_usec = tb.millitm * 1000L;
|
||||
/* Implementation note: _ftime sometimes doesn't update the dstflag
|
||||
according to the new timezone when the system timezone is
|
||||
changed. We could fix that by using GetSystemTime and
|
||||
GetTimeZoneInformation, but that doesn't seem necessary, since
|
||||
Emacs always calls gettimeofday with the 2nd argument NULL (see
|
||||
current_emacs_time). */
|
||||
if (tz)
|
||||
{
|
||||
tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */
|
||||
tz->tz_dsttime = tb.dstflag; /* type of dst correction */
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
fchown (int fd, unsigned uid, unsigned gid)
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
|
||||
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings
|
||||
|
||||
|
||||
MOSTLYCLEANFILES += core *.stackdump
|
||||
|
@ -857,6 +857,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
|
|||
-e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
|
||||
-e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
|
||||
-e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
|
||||
-e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
|
||||
-e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
|
||||
-e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
|
||||
-e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue