Merge from trunk

This commit is contained in:
Daniel Colascione 2012-10-07 14:31:58 -08:00
commit 36a305a723
687 changed files with 43983 additions and 20726 deletions

View file

@ -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.

View file

@ -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

View file

@ -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.

View file

@ -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...")

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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 ')']

View file

@ -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

View file

@ -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

View file

@ -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
'

View file

@ -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/

View file

@ -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

View file

@ -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;;;;;

View file

@ -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..."

View file

@ -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
View file

@ -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])

View file

@ -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
View file

@ -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 "

View file

@ -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"

View file

@ -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 "

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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}).

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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

View file

@ -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.

View file

@ -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}

View file

@ -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.

View file

@ -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

View file

@ -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).

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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}

View file

@ -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}.

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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},

View file

@ -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

View file

@ -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}.

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -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
View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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>

View file

@ -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.

View file

@ -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
View 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

View file

@ -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

View 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

View file

@ -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

View file

@ -197,7 +197,7 @@ template variable-option :el :el-custom :indent :blank
----
(defcustom $?NAME$ $^$
"*$DOC$"
:group $GROUP$
:group '$GROUP$
:type $?CUSTOMTYPE$)
----
bind "o"

View file

@ -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.)

View file

@ -406,7 +406,7 @@ C-k удалит две строки, а также завершающие их
текста). Вы можете восстановить убитый текст в месте удаления или в любой
другой точке редактируемого текста или даже в другом файле. Вы можете
восстановить текст несколько раз и получить несколько копий данного текста.
Некоторые редактора называют операции "убить" и "восстановить" как
Некоторые редакторы называют операции "убить" и "восстановить" иначе:
"вырезать" (cutting) и "вставить" (pasting) (ознакомьтесь с глоссарием
(Glossary) в руководстве по Emacs).

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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)
{

View file

@ -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