-2011-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
+ 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * help.texi (Accessing Documentation):
+ * display.texi (Pixel Specification):
+ * processes.texi (Serial Ports, Serial Ports):
+ * nonascii.texi (Character Properties, Default Coding Systems):
+ * text.texi (Changing Properties, Special Properties):
+ * windows.texi (Window Start and End):
+ * modes.texi (SMIE Indentation Example, SMIE Tricks):
+ * keymaps.texi (Searching Keymaps, Tool Bar):
+ * minibuf.texi (Basic Completion):
+ * compile.texi (Eval During Compile):
+ * strings.texi (Formatting Strings): Tweaks to avoid overflowing
+ 7x9 paper in printed manual.
+
+ * lists.texi (Sets And Lists): Fix misplaced text.
+
+2011-05-29 Chong Yidong <cyd@stupidchicken.com>
+
+ * keymaps.texi (Remapping Commands): Emphasize that the keymap
+ needs to be active (Bug#8350).
+
+2011-05-28 Chong Yidong <cyd@stupidchicken.com>
+
+ * minibuf.texi (Reading File Names): Clarify (Bug#8480).
+
+ * tips.texi (Coding Conventions): Remove antediluvian filename
+ limit recommendation (Bug#8538).
+
+2011-05-27 Glenn Morris <rgm@gnu.org>
+
+ * modes.texi (Auto Major Mode): Update for set-auto-mode changes.
+
+2011-05-26 Glenn Morris <rgm@gnu.org>
+
+ * variables.texi (File Local Variables):
+ Update hack-local-variables `mode-only' return value.
+ Add some more details on what this function does in the other case.
+
+2011-05-19 Glenn Morris <rgm@gnu.org>
+
+ * lists.texi (Sets And Lists): Mention cl provides union etc.
+
+2011-05-19 Nix <nix@esperi.org.uk>
+
+ * windows.texi (Displaying Buffers): pop-to-buffer is not a command.
+
+ * text.texi (Parsing HTML): Update for function name changes.
+
+ * syntax.texi (Syntax Flags): Small fix.
+
+ * keymaps.texi (Active Keymaps): Typo fix.
+ (Changing Key Bindings): Grammar fix.
+
+ * frames.texi (Minibuffers and Frames): Grammar fix.
+ (Window System Selections): x-select-enable-clipboard now defaults to t.
+
+ * customize.texi (Common Keywords):
+ * display.texi (Abstract Display):
+ * modes.texi (Auto-Indentation):
+ * nonascii.texi (Converting Representations): Typo fixes.
+
+ * control.texi (Examples of Catch): Call it "goto" not "go to".
+
+2011-05-14 Eli Zaretskii <eliz@gnu.org>
+
+ * nonascii.texi (Character Properties): Fix inconsistencies with
+ implementation.
+
+ * text.texi (Special Properties): Move @defvar's out of the
+ @table. (Bug#8652)
+
+2011-05-12 Glenn Morris <rgm@gnu.org>
+
+ * display.texi (Image Descriptors): Fix typo. (Bug#8495)
+
+2011-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
* modes.texi (Region to Refontify): Rename from "Region to Fontify".
(Multiline Font Lock):
* vol1.texi (Top):
* elisp.texi (Top): Update menu accordingly.
-2011-05-05 Drew Adams <drew.adams@oracle.com>
+2011-05-12 Drew Adams <drew.adams@oracle.com>
* modes.texi (Region to Fontify): Fix typo.
-2011-04-13 Juanma Barranquero <lekktu@gmail.com>
+2011-05-10 Jim Meyering <meyering@redhat.com>
+
+ * minibuf.texi: Fix typo "in in -> in".
+
+2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * numbers.texi (Integer Basics): Large integers are treated as floats.
+
+2011-04-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * processes.texi (Synchronous Processes): Document the (:file
+ "/file-name") syntax for `call-process'.
+
+2011-04-23 Juanma Barranquero <lekktu@gmail.com>
* windows.texi (Choosing Window): Fix typo.
-2011-04-10 Chong Yidong <cyd@stupidchicken.com>
+2011-04-23 Chong Yidong <cyd@stupidchicken.com>
* frames.texi (Layout Parameters): Note the difference between
querying and setting parameters for left-fringe and right-fringe
* buffers.texi (Current Buffer): Copyedits. Don't recommend using
save-excursion. Suggested by Uday S Reddy.
-2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
+2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * variables.texi (Defining Variables): Mention the new meaning of `defvar'.
+ (Lexical Binding): New sub-section.
+
+ * eval.texi (Eval): Discourage the use of `eval'.
+ Document its new `lexical' argument.
+
+2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * commands.texi (Command Overview): `post-command-hook' is not reset to
+ nil any more.
+
+2011-03-19 Stefan Monnier <monnier@iro.umontreal.ca>
* strings.texi (String Conversion): Don't mention
string-make-(uni|multi)byte (bug#8262).
* keymaps.texi (Key Binding Commands): Update code point, avoid
"unibyte character" and remove mention of unibyte bindings.
+2011-03-10 Eli Zaretskii <eliz@gnu.org>
+
+ * modes.texi (Operator Precedence Grammars): Don't use characters
+ outside ISO-8859-1.
+
+2011-03-09 Eli Zaretskii <eliz@gnu.org>
+
+ * intro.texi (Acknowledgements): Convert to ISO-8859-1 encoding.
+
+ * makefile.w32-in (MAKEINFO_OPTS): Add --enable-encoding.
+
+2011-03-08 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (MAKEINFO_OPTS): Add --enable-encoding.
+ * intro.texi (Acknowledgements): Names to UTF-8.
+ * elisp.texi: Set documentencoding.
+
2011-03-07 Chong Yidong <cyd@stupidchicken.com>
* Version 23.3 released.
-2011-02-25 Glenn Morris <rgm@gnu.org>
+2011-03-06 Chong Yidong <cyd@stupidchicken.com>
+
+ * package.texi: Update index keywords.
+ (Package Archives): New node contents. Document package-x.el.
+
+2011-03-06 Juanma Barranquero <lekktu@gmail.com>
+
+ * makefile.w32-in (srcs): Add package.texi.
+
+2011-03-06 Chong Yidong <cyd@stupidchicken.com>
+
+ * package.texi (Packaging, Packaging Basics, Simple Packages)
+ (Multi-file Packages): Expand and clarify.
+ (Package Archives): Temporary placeholder node.
+
+ * elisp.texi (Top): Update node listing.
+
+ * Makefile.in (srcs): Add package.texi.
+
+2011-03-05 Chong Yidong <cyd@stupidchicken.com>
+
+ * processes.texi (Synchronous Processes): Minor clarification
+ (Bug#8149).
+
+2011-03-03 Glenn Morris <rgm@gnu.org>
+
+ * files.texi (Truenames): Minor clarification. (Bug#2341)
+
+2011-03-01 Glenn Morris <rgm@gnu.org>
+
+ * variables.texi (Directory Local Variables):
+ Mention `(subdirs . nil)' alist element.
+
+2011-02-28 Glenn Morris <rgm@gnu.org>
* variables.texi (Directory Local Variables): Mention the optional
mtime argument of dir-locals-set-directory-class. (Bug#3577)
-2011-02-18 Eli Zaretskii <eliz@gnu.org>
+2011-02-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * minibuf.texi (Minibuffer History): Clarify discussion of
+ minibuffer history lists (Bug#8085).
+
+2011-02-19 Eli Zaretskii <eliz@gnu.org>
* elisp.texi: Sync @dircategory with ../../info/dir.
* variables.texi (Creating Buffer-Local): Explain the meaning of
permanent local variables.
-2011-02-18 Glenn Morris <rgm@gnu.org>
+ * files.texi (Visiting Functions): Document find-file-literally,
+ both the command and the variable.
+
+ * variables.texi (Creating Buffer-Local): Explain the meaning of
+ permanent local variables.
+
+2011-02-19 Glenn Morris <rgm@gnu.org>
* keymaps.texi (Remapping Commands): Mention how to undo it.
+2011-02-09 Reuben Thomas <rrt@sc3d.org>
+
+ * loading.texi (Hooks for Loading): Remove unnecessary advice
+ about eval-after-load (Bug#7986).
+
2011-02-05 Chong Yidong <cyd@stupidchicken.com>
* commands.texi (Accessing Mouse): Note that a header line is not
included in the row of posn-col-row.
+2011-02-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * modes.texi (Major Mode Conventions): Add face guidelines.
+ (Faces for Font Lock): List faces in order of prominence.
+
+2011-02-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ format-time-string now supports subsecond time stamp resolution
+ * os.texi (Time Parsing): Document %N.
+
2011-01-28 Chong Yidong <cyd@stupidchicken.com>
* vol1.texi (Top):
* keymaps.texi (Defining Menus): Add "menu item" and "extended
menu item" concept index entries (Bug#7805).
-2011-01-23 Chong Yidong <cyd@stupidchicken.com>
+2011-01-29 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (texinfodir): New variable.
+ (usermanualdir): Remove as redundant with $(emacsdir).
+ (MAKEINFO): Remove options, leave only program name.
+ (MAKEINFO_OPTS): New variable.
+ (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS).
+
+2011-01-25 Chong Yidong <cyd@stupidchicken.com>
Richard Kim <emacs18@gmail.com>
* loading.texi (Library Search): Document list-load-path-shadows
(Bug#7757).
-2011-01-23 Chong Yidong <cyd@stupidchicken.com>
+2011-01-25 Chong Yidong <cyd@stupidchicken.com>
* searching.texi (Regexp Special): Remove outdated discussion of
character sets (Bug#7780).
-2011-01-22 Chong Yidong <cyd@stupidchicken.com>
-
* frames.texi (Pop-Up Menus): Document where menu title comes
from (Bug#7684).
-2011-01-22 Glenn Morris <rgm@gnu.org>
+2011-01-25 Glenn Morris <rgm@gnu.org>
* display.texi (Making Buttons): Mention limitation of text buttons.
-2011-01-08 Chong Yidong <cyd@stupidchicken.com>
+2011-01-23 Werner Lemberg <wl@gnu.org>
+
+ * Makefile.in (MAKEINFO): Now controlled by `configure'.
+ (MAKEINFO_OPTS): New variable. Use it where appropriate.
+ (ENVADD): New variable to control texi2dvi and texi2pdf.
+
+2011-01-15 Chong Yidong <cyd@stupidchicken.com>
* files.texi (Directory Names): Move directory-abbrev-alist doc to
Emacs manual.
-2011-01-07 Eli Zaretskii <eliz@gnu.org>
+2011-01-15 Eli Zaretskii <eliz@gnu.org>
* files.texi (Directory Names): Explain why FROM in
directory-abbrev-alist should begin with \`. (Bug#7777)
-2010-12-25 Eli Zaretskii <eliz@gnu.org>
+2011-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * loading.texi (Hooks for Loading): Adjust doc of eval-after-load.
+
+2011-01-02 Eli Zaretskii <eliz@gnu.org>
* modes.texi (Emulating Mode Line): Fix last change.
-2010-12-18 Eli Zaretskii <eliz@gnu.org>
+2011-01-02 Eli Zaretskii <eliz@gnu.org>
* modes.texi (Emulating Mode Line): Update documentation of
format-mode-line according to changes that fixed bug #7587.
-2010-12-11 Eli Zaretskii <eliz@gnu.org>
+2010-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Derived Modes): Mention prog-mode.
+
+ * keymaps.texi (Simple Menu Items, Extended Menu Items): Remove mention
+ of the key-binding-data cache since we don't use it any more.
+
+2010-12-13 Eli Zaretskii <eliz@gnu.org>
* processes.texi (Shell Arguments):
* strings.texi (Creating Strings): Don't mention "shell commands";
* processes.texi (Shell Arguments): Fix documentation of
`split-string-and-unquote'. Add indexing. (Bug#7563)
-2010-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
+2010-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
* modes.texi (Auto-Indentation): New section to document SMIE.
(Major Mode Conventions):
* text.texi (Mode-Specific Indent): Refer to it.
-2010-12-04 Eli Zaretskii <eliz@gnu.org>
+2010-12-13 Eli Zaretskii <eliz@gnu.org>
* display.texi (Other Display Specs): Document left-fringe and
right-fringe display specs.
-2010-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
+2010-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
* backups.texi (Making Backups):
* modes.texi (Example Major Modes): Use recommended coding style.
(Major Mode Basics, Derived Modes): Encourge more strongly use of
define-derived-mode. Mention completion-at-point-functions.
-2010-11-21 Chong Yidong <cyd@stupidchicken.com>
+2010-12-13 Chong Yidong <cyd@stupidchicken.com>
* nonascii.texi (Converting Representations):
Document byte-to-string.
+2010-12-08 Glenn Morris <rgm@gnu.org>
+
+ * buffers.texi (Modification Time):
+ verify-visited-file-modtime now defaults to the current buffer.
+
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * nonascii.texi (Converting Representations): Document byte-to-string.
+
* strings.texi (Creating Strings): Don't mention semi-obsolete
function char-to-string.
(String Conversion): Shorten discussion of semi-obsolete function
* functions.texi (Mapping Functions): Use string instead of
char-to-string in examples.
-2010-11-20 Chong Yidong <cyd@stupidchicken.com>
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
* text.texi (Kill Functions, Kill Functions)
(Low-Level Kill Ring, Low-Level Kill Ring): Remove obsolete
* variables.texi (Defining Variables): Change "pi" example to
"float-pi".
-2010-11-12 Eli Zaretskii <eliz@gnu.org>
+2010-11-26 Eli Zaretskii <eliz@gnu.org>
+
+ * commands.texi (Click Events): Document the values of X, Y and
+ COL, ROW in the event's position, when the click is on the header
+ or mode line, on the fringes, or in the margins.
+
+2010-11-17 Eli Zaretskii <eliz@gnu.org>
* customize.texi (Composite Types): Lower-case index entry.
* loading.texi (How Programs Do Loading):
Document load-file-name. (Bug#7346)
-2010-11-10 Glenn Morris <rgm@gnu.org>
+2010-11-17 Glenn Morris <rgm@gnu.org>
* text.texi (Kill Functions, Low-Level Kill Ring): Small fixes.
-2010-10-27 Glenn Morris <rgm@gnu.org>
+2010-11-13 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Usual Display): Characters with no fonts are not
+ necessarily displayed as empty boxes.
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
* maps.texi (Standard Keymaps): Update File menu description.
-2010-10-22 Eli Zaretskii <eliz@gnu.org>
+2010-10-28 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (elisp.dvi, elisp.pdf): Also include $emacsdir.
+
+2010-10-24 Eli Zaretskii <eliz@gnu.org>
* display.texi (Window Systems): Deprecate use of window-system as
a predicate.
-2010-09-05 Alexander Klimov <alserkli@inbox.ru> (tiny change)
+2010-10-23 Glenn Morris <rgm@gnu.org>
+
+ * help.texi (Documentation Basics): Remove mentions of digest-doc and
+ sorted-doc.
+
+2010-10-15 Eli Zaretskii <eliz@gnu.org>
+
+ * os.texi (Dynamic Libraries): New node, with slightly modified
+ text deleted from "Image Formats".
+ (System Interface): Add @menu entry for "Dynamic Libraries".
+
+ * display.texi (Image Formats): Remove description of
+ image-library-alist. (Renamed in 2010-10-13T14:50:06Z!lekktu@gmail.com.)
+
+2010-10-12 Glenn Morris <rgm@gnu.org>
+
+ * book-spine.texinfo: Rename to book-spine.texi.
+
+2010-10-11 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (MAKEINFO): Add explicit -I$srcdir.
+
+ * Makefile.in (DVIPS): New variable.
+ (.PHONY): Add html, ps.
+ (html, elisp.html, ps, elisp.ps): New targets.
+ (clean): Delete html, ps files.
+ ($(infodir)/elisp): Remove unnecessary includes.
+
+2010-10-09 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (emacsdir): New variable.
+ (srcs): Add emacsver.texi.
+ ($(infodir)/elisp, elisp.dvi): Add -I$(emacsdir).
+
+2010-10-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (VPATH): Remove.
+ (infodir): Make it absolute.
+ (mkinfodir, $(infodir)/elisp, infoclean): No need to cd $srcdir.
+
+ * Makefile.in (dist): Anchor regexps.
+
+ * Makefile.in (srcs): Put elisp.texi first.
+ ($(infodir)/elisp, elisp.dvi, elisp.pdf): Use $<.
+
+ * Makefile.in (infoclean): Remove harmless, long-standing error.
+
+ * Makefile.in ($(infodir)): Delete rule.
+ (mkinfodir): New.
+ ($(infodir)/elisp): Use $mkinfodir instead of infodir.
+
+ * Makefile.in (dist): Remove reference to emacsver.texi.in.
+ Also copy emacsver.texi, and edit $emacsdir.
+
+2010-10-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (emacsdir): New variable.
+ (MAKEINFO): Add -I $emacsdir.
+ (dist): Copy emacsver.texi.
+ (srcs): Add emacsver.texi.
+
+ * book-spine.texinfo, elisp.texi, vol2.texi, vol1.texi:
+ Set EMACSVER by including emacsver.texi.
+
+ * Makefile.in (.PHONY): Declare info, dvi, pdf, dist.
+
+2010-10-07 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (version): New, set by configure.
+ (clean): Delete dist tar file.
+ (dist): Use version in tar name.
+
+2010-10-06 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Rearrange to more closely resemble doc/emacs/Makefile.
+ (INSTALL_INFO): Remove unused variable.
+ (mostlyclean, infoclean, dist): New rules.
+ (clean): Delete dvi and pdf files.
+ (maintainer-clean): Remove elisp.oaux, use infoclean.
+ ($(infodir)): Add parallel build workaround.
+
+2010-10-04 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (dvi, pdf, $(infodir)): New targets.
+ ($(infodir)/elisp): Ensure target directory exists. Use $@.
+ Fix -I typo.
+ (clean): No 'make.out' or 'core' files.
+ (.PHONY): Declare clean rules.
+ (maintainer-clean): Delete pdf file. Guard against cd failures.
+
+2010-10-03 Glenn Morris <rgm@gnu.org>
+
+ * files.texi (File Name Components): Remove ignored section about
+ deleted variable directory-sep-char.
+
+2010-10-03 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): New defopt
+ remote-file-name-inhibit-cache.
+
+2010-10-02 Glenn Morris <rgm@gnu.org>
+
+ * os.texi (Killing Emacs): Hook now runs in batch mode.
+
+2010-09-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * text.texi (Special Properties): Clarify when modification-hooks run.
+
+2010-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.texi (Syntax Flags): Document new `c' flag.
+
+2010-09-09 Glenn Morris <rgm@gnu.org>
+
+ * display.texi (ImageMagick Images): General cleanup.
+
+2010-09-06 Alexander Klimov <alserkli@inbox.ru> (tiny change)
* files.texi (Directory Names): Use \` rather than ^.
+2010-09-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * text.texi (Low-Level Kill Ring):
+ * frames.texi (Window System Selections): Remove cut buffer
+ documentation.
+
+2010-08-28 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Fringe Size/Pos): Add a cross-reference to "Layout
+ Parameters", where the default fringe width is described.
+
+ * frames.texi (Window Frame Parameters, Basic Parameters)
+ (Position Parameters, Layout Parameters, Management Parameters)
+ (Cursor Parameters, Font and Color Parameters): Add indexing for
+ frame parameters. (Bug#6929)
+
+2010-08-25 Tom Tromey <tromey@redhat.com>
+
+ * vol2.texi (Top): Update.
+ * vol1.texi (Top): Update.
+ * tips.texi (Library Headers): Mention Package-Version and
+ Package-Requires.
+ * package.texi: New file.
+ * os.texi (System Interface): Update pointers.
+ * elisp.texi (Top): Link to new nodes. Include package.texi.
+ * anti.texi (Antinews): Update pointers.
+
+2010-08-25 Eli Zaretskii <eliz@gnu.org>
+
+ * processes.texi (Filter Functions): Fix last change.
+
+2010-08-24 Markus Triska <triska@gmx.at>
+
+ * processes.texi (Filter Functions): Use `buffer-live-p' instead
+ of `buffer-name' in the main text as well as in the example
+ (Bug#3098).
+
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
+
+ * nonascii.texi (Text Representations):
+ * loading.texi (Loading Non-ASCII):
+ * compile.texi (Byte Compilation): Don't mention obsolete
+ --unibyte command-line argument.
+
2010-08-22 Chong Yidong <cyd@stupidchicken.com>
* modes.texi (Defining Minor Modes): Doc fix (Bug#6880).
-2010-08-19 Chong Yidong <cyd@stupidchicken.com>
+2010-08-22 Chong Yidong <cyd@stupidchicken.com>
* objects.texi (Bool-Vector Type): Minor definition tweak (Bug#6878).
-2010-08-02 Christoph <cschol2112@googlemail.com>
+2010-08-20 Eli Zaretskii <eliz@gnu.org>
+
+ * commands.texi (Misc Events): Add cross-references to where
+ POSITION of a mouse event is described in detail.
+
+2010-08-08 Christoph <cschol2112@googlemail.com>
* control.texi (Handling Errors) <error-message-string>: Fix arg name.
-2010-07-29 Juanma Barranquero <lekktu@gmail.com>
+2010-08-08 Juanma Barranquero <lekktu@gmail.com>
* modes.texi (Defining Minor Modes): Use C-backspace, not C-delete.
Suggested by Štěpán Němec <stepnem@gmail.com>.
-2010-07-28 Juanma Barranquero <lekktu@gmail.com>
+2010-08-08 Juanma Barranquero <lekktu@gmail.com>
* minibuf.texi (High-Level Completion): Document args of
`read-buffer-function' (bug#5625).
+2010-07-29 Jan Djärv <jan.h.d@swipnet.se>
+
+ * frames.texi (Layout Parameters): Add doc for tool-bar-position.
+
+2010-07-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * processes.texi (Process Information): Explain process property
+ `remote-tty'.
+
2010-07-27 Juanma Barranquero <lekktu@gmail.com>
* modes.texi (Defining Minor Modes): Use C-delete in examples,
instead of "\C-\^?" (bug#6334).
-2010-07-21 Juanma Barranquero <lekktu@gmail.com>
-
* text.texi (Special Properties): Fix typo.
+2010-07-09 Eli Zaretskii <eliz@gnu.org>
+
+ * internals.texi (Writing Emacs Primitives): Adapt to ANSI C
+ calling sequences, which are now the standard.
+
2010-06-24 Chong Yidong <cyd@stupidchicken.com>
* text.texi (Undo): Clarify command loop behavior (Bug#2433).
2010-06-19 Chong Yidong <cyd@stupidchicken.com>
- * errors.texi (Standard Errors): Remove unnecessary markup
- (Bug#6461).
+ * errors.texi (Standard Errors): Remove unnecessary markup (Bug#6461).
2010-06-02 Chong Yidong <cyd@stupidchicken.com>
* minibuf.texi (Basic Completion): Document completion-boundaries.
(Programmed Completion): Document the new fourth method for boundaries.
-2010-05-07 Chong Yidong <cyd@stupidchicken.com>
+2010-05-22 Chong Yidong <cyd@stupidchicken.com>
- * Version 23.2 released.
+ * display.texi (Image Cache): Update documentation about image caching.
-2010-05-03 Štěpán Němec <stepnem@gmail.com> (tiny change)
+2010-05-08 Štěpán Němec <stepnem@gmail.com> (tiny change)
* windows.texi (Textual Scrolling):
* tips.texi (Coding Conventions):
* loading.texi (Where Defined):
* edebug.texi (Instrumenting): Fix typos.
-2010-04-25 Chong Yidong <cyd@stupidchicken.com>
+2010-05-08 Chong Yidong <cyd@stupidchicken.com>
* keymaps.texi (Menu Bar): Document :advertised-binding property.
* elisp.texi (Top): Update node description.
+2010-05-08 Eli Zaretskii <eliz@gnu.org>
+
+ * nonascii.texi (Character Properties):
+ Document unicode-category-table. Add an index entry for Unicode
+ general category.
+
+2010-05-07 Chong Yidong <cyd@stupidchicken.com>
+
+ * Version 23.2 released.
+
+2010-04-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * locals.texi (Standard Buffer-Local Variables):
+ Remove @ignore'd reference to `direction-reversed'.
+
2010-04-14 Juri Linkov <juri@jurta.org>
Fix @deffn without category.
* frames.texi (Cursor Parameters): Fix typo. (Bug#5760)
-2010-03-21 Chong Yidong <cyd@stupidchicken.com>
+2010-03-24 Chong Yidong <cyd@stupidchicken.com>
* processes.texi (Network Processes): Document seqpacket type.
+2010-03-20 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * os.texi (System Environment): Do not mention lynxos.
+
+2010-03-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * Branch for 23.2.
+
2010-03-06 Chong Yidong <cyd@stupidchicken.com>
* objects.texi (Integer Type): Take note of the read syntax
2005-02-05 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Color Names): Add pointer to the X docs about RGB
- color specifications. Improve indexing
+ color specifications. Improve indexing.
(Text Terminal Colors): Replace the description of RGB values by
an xref to "Color Names".
* minibuf.texi (Reading File Names): read-file-name has new
arg PREDICATE. New function read-directory-name.
- * macros.texi (Defining Macros): Give definition of `declare'
+ * macros.texi (Defining Macros): Give definition of `declare'.
(Indenting Macros): New node.
* frames.texi (Parameter Access): Add modify-all-frames-parameters.
* numbers.texi (Integer Basics): Add most-positive-fixnum,
most-negative-fixnum.
- * compile.texi (Byte Compilation): Explain no-byte-compile
+ * compile.texi (Byte Compilation): Explain no-byte-compile.
(Compiler Errors): New node.
* os.texi (User Identification): user-uid, user-real-uid
;; Local Variables:
;; coding: utf-8
-;; add-log-time-zone-rule: t
;; End:
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1998-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 2001-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/compile
@node Byte Compilation, Advising Functions, Loading, Top
transportable from machine to machine without recompilation. It is not,
however, as fast as true compiled code.
- Compiling a Lisp file with the Emacs byte compiler always reads the
-file as multibyte text, even if Emacs was started with @samp{--unibyte},
-unless the file specifies otherwise. This is so that compilation gives
-results compatible with running the same file without compilation.
-@xref{Loading Non-ASCII}.
-
In general, any version of Emacs can run byte-compiled code produced
by recent earlier versions of Emacs, but the reverse is not true.
@lisp
(eval-when-compile
- (require 'my-macro-package)) ;; only macros needed from this
+ (require 'my-macro-package))
@end lisp
The same sort of thing goes for macros and @code{defsubst} functions
@end group
@end example
-
-@ignore
- arch-tag: f78e3050-2f0a-4dee-be27-d9979a0a2289
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/display
@node Display, System Interface, Processes, Top
Attributes}.
@item
- A cons cell, either of the form @code{(foreground-color . @var{color-name})} or
- @code{(background-color . @var{color-name})}. These elements specify
- just the foreground color or just the background color.
+ A cons cell, either of the form @code{(fg-color . @var{color-name})}
+ or @code{(bg-color . @var{color-name})}. These elements specify just
+ the foreground color or just the background color.
@code{(foreground-color . @var{color-name})} has the same effect as
@code{(:foreground @var{color-name})}; likewise for the background.
The values of these variables take effect when you display the
buffer in a window. If you change them while the buffer is visible,
you can call @code{set-window-buffer} to display it once again in the
-same window, to make the changes take effect.
+same window, to make the changes take effect. A buffer that does not
+specify values for these variables will use the default values
+specified for the frame; see @ref{Layout Parameters}.
@defun set-window-fringes window left &optional right outside-margins
This function sets the fringe widths of window @var{window}.
and height of the current face. An image specification @code{image}
corresponds to the width or height of the image.
- The @code{left-fringe}, @code{right-fringe}, @code{left-margin},
- @code{right-margin}, @code{scroll-bar}, and @code{text} elements
- specify to the width of the corresponding area of the window.
+ The elements @code{left-fringe}, @code{right-fringe},
+ @code{left-margin}, @code{right-margin}, @code{scroll-bar}, and
+ @code{text} specify to the width of the corresponding area of the
+ window.
The @code{left}, @code{center}, and @code{right} positions can be
used with @code{:align-to} to specify a position relative to the left
* GIF Images:: Special features for GIF format.
* TIFF Images:: Special features for TIFF format.
* PostScript Images:: Special features for PostScript format.
+* ImageMagick Images:: Special features available through ImageMagick.
* Other Image Types:: Various other formats are supported.
* Defining Images:: Convenient ways to define an image for later use.
* Showing Images:: Convenient ways to display an image once it is defined.
Emacs can display a number of different image formats; some of them
are supported only if particular support libraries are installed on
-your machine. In some environments, Emacs can load image
-libraries on demand; if so, the variable @code{image-library-alist}
-can be used to modify the set of known names for these dynamic
-libraries (though it is not possible to add new image formats).
+your machine. In some environments, Emacs can load support libraries
+on demand; if so, the variable @code{dynamic-library-alist}
+(@pxref{Dynamic Libraries}) can be used to modify the set of known
+names for these dynamic libraries (though it is not possible to add
+new image formats). Note that image types @code{pbm} and @code{xbm}
+do not depend on external libraries and are always available in Emacs.
The supported image formats include XBM, XPM (this requires the
libraries @code{libXpm} version 3.4k and @code{libz}), GIF (requiring
@code{image-type-available-p}.
@end defvar
-@defvar image-library-alist
-This in an alist of image types vs external libraries needed to
-display them.
-
-Each element is a list @code{(@var{image-type} @var{library}...)},
-where the car is a supported image format from @code{image-types}, and
-the rest are strings giving alternate filenames for the corresponding
-external libraries to load.
-
-Emacs tries to load the libraries in the order they appear on the
-list; if none is loaded, the running session of Emacs won't support
-the image type. @code{pbm} and @code{xbm} don't need to be listed;
-they're always supported.
-
-This variable is ignored if the image libraries are statically linked
-into Emacs.
-@end defvar
-
@defun image-type-available-p type
This function returns non-@code{nil} if image type @var{type} is
available, i.e., if images of this type can be loaded and displayed in
@tex
$$\pmatrix{1 & 0 & 0 \cr
0& 0 & 0 \cr
- 9 & 9 & -1 \cr}$$
+ 0 & 0 & -1 \cr}$$
@end tex
@end iftex
@ifnottex
@display
(1 0 0
0 0 0
- 9 9 -1)
+ 0 0 -1)
@end display
@end ifnottex
@end example
@end table
+@node ImageMagick Images
+@subsection ImageMagick Images
+@cindex ImageMagick images
+@cindex images, support for more formats
+
+ If you build Emacs with ImageMagick (@url{http://www.imagemagick.org})
+support, you can use the ImageMagick library to load many image formats.
+
+@findex imagemagick-types
+The function @code{imagemagick-types} returns a list of image file
+extensions that your installation of ImageMagick supports. To enable
+support, you must call the function @code{imagemagick-register-types}.
+
+@vindex imagemagick-types-inhibit
+The variable @code{imagemagick-types-inhibit} specifies a list of
+image types that you do @emph{not} want ImageMagick to handle. There
+may be overlap between image loaders in your Emacs installation, and
+you may prefer to use a different one for a given image type (which
+@c FIXME how is this priority determined?
+loader will be used in practice depends on the priority of the loaders).
+@c FIXME why are these uppercase when image-types is lower-case?
+@c FIXME what are the possibe options? Are these actually file extensions?
+For example, if you never want to use the ImageMagick loader to use
+JPEG files, add @code{JPG} to this list.
+
+@vindex imagemagick-render-type
+You can set the variable @code{imagemagick-render-type} to choose
+between screen render methods for the ImageMagick loader. The options
+are: @code{0}, a conservative method which works with older
+@c FIXME details of this "newer method"?
+@c Presumably it is faster but may be less "robust"?
+ImageMagick versions (it is a bit slow, but robust); and @code{1},
+a newer ImageMagick method.
+
+Images loaded with ImageMagick support a few new display specifications:
+
+@table @code
+@item :width, :height
+The @code{:width} and @code{:height} keywords are used for scaling the
+image. If only one of them is specified, the other one will be
+calculated so as to preserve the aspect ratio. If both are specified,
+aspect ratio may not be preserved.
+
+@item :rotation
+Specifies a rotation angle in degrees.
+
+@item :index
+Specifies which image to view inside an image bundle file format, such
+as TIFF or DJVM. You can use the @code{image-metadata} function to
+retrieve the total number of images in an image bundle (this is
+similar to how GIF files work).
+@end table
+
+
@node Other Image Types
@subsection Other Image Types
@cindex PBM
found, don't signal an error. Instead, return a list of directories as
before, except that @code{nil} appears in place of the image directory.
- Here is an example that uses a common idiom to provide compatibility
- with versions of Emacs that lack the variable @code{image-load-path}:
+ Here is an example of using @code{image-load-path-for-library}:
@example
(defvar image-load-path) ; shush compiler
(let* ((load-path (image-load-path-for-library
- "mh-e" "mh-logo.xpm"))
+ "mh-e" "mh-logo.xpm"))
(image-load-path (cons (car load-path)
- (when (boundp 'image-load-path)
- image-load-path))))
+ image-load-path)))
(mh-tool-bar-folder-buttons-init))
@end example
@end defun
efficiently. When Emacs displays an image, it searches the image
cache for an existing image specification @code{equal} to the desired
specification. If a match is found, the image is displayed from the
-cache; otherwise, Emacs loads the image normally.
-
- Occasionally, you may need to tell Emacs to refresh the images
-associated with a given image specification. For example, suppose you
-display an image using a specification that contains a @code{:file}
-property. The image is automatically cached, and subsequent displays
-of that image, with the same image specification, will use the image
-cache. If the image file changes in the meantime, Emacs would be
-displaying the old version of the image. In such a situation, you can
-``refresh'' the image by calling @code{image-refresh}.
-
- In Emacs' current implementation, each graphical terminal possesses
-an image cache, which is shared by all the frames on that terminal
+cache. Otherwise, Emacs loads the image normally.
+
+@defun image-flush spec &optional frame
+This function removes the image with specification @var{spec} from the
+image cache of frame @var{frame}. Image specifications are compared
+using @code{equal}. If @var{frame} is @code{nil}, it defaults to the
+selected frame. If @var{frame} is @code{t}, the image is flushed on
+all existing frames.
+
+In Emacs' current implementation, each graphical terminal possesses an
+image cache, which is shared by all the frames on that terminal
(@pxref{Multiple Terminals}). Thus, refreshing an image in one frame
also refreshes it in all other frames on the same terminal.
-
-@defun image-refresh spec &optional frame
-This function refreshes any images with image specifications
-@code{equal} to @var{spec} on frame @var{frame}. If @var{frame} is
-@code{nil}, it defaults to the selected frame. If @var{frame} is
-@code{t}, the refresh is applied to all existing frames.
@end defun
+ One use for @code{image-flush} is to tell Emacs about a change in an
+image file. If an image specification contains a @code{:file}
+property, the image is cached based on the file's contents when the
+image is first displayed. Even if the file subsequently changes,
+Emacs continues displaying the old version of the image. Calling
+@code{image-flush} flushes the image from the cache, forcing Emacs to
+re-read the file the next time it needs to display that image.
+
+ Another use for @code{image-flush} is for memory conservation. If
+your Lisp program creates a large number of temporary images over a
+period much shorter than @code{image-cache-eviction-delay} (see
+below), you can opt to flush unused images yourself, instead of
+waiting for Emacs to do it automatically.
+
@defun clear-image-cache &optional filter
This function clears an image cache, removing all the images stored in
it. If @var{filter} is omitted or @code{nil}, it clears the cache for
associated memory.
@defvar image-cache-eviction-delay
-This variable specifies the number of seconds an image can remain in the
-cache without being displayed. When an image is not displayed for this
-length of time, Emacs removes it from the image cache.
+This variable specifies the number of seconds an image can remain in
+the cache without being displayed. When an image is not displayed for
+this length of time, Emacs removes it from the image cache.
+
+Under some circumstances, if the number of images in the cache grows
+too large, the actual eviction delay may be shorter than this.
If the value is @code{nil}, Emacs does not remove images from the cache
except when you explicitly clear it. This mode can be useful for
Typically, you define an ewoc with @code{ewoc-create}, and then pass
the resulting ewoc structure to other functions in the Ewoc package to
build nodes within it, and display it in the buffer. Once it is
-displayed in the buffer, other functions determine the correspondance
+displayed in the buffer, other functions determine the correspondence
between buffer positions and nodes, move point from one node's textual
representation to another, and so forth. @xref{Abstract Display
Functions}.
(aref colorcomp-data 2)))
(samp " (sample text) "))
(insert "Color\t: "
- (propertize samp 'face `(foreground-color . ,cstr))
- (propertize samp 'face `(background-color . ,cstr))
+ (propertize samp 'face
+ `(foreground-color . ,cstr))
+ (propertize samp 'face
+ `(background-color . ,cstr))
"\n"))))
(defun colorcomp (color)
table can specify a glyph to use instead of @samp{\}.)
@item
-Multibyte character codes above 256 are displayed as themselves, or as a
-question mark or empty box if the terminal cannot display that
-character.
+Multibyte character codes above 256 are displayed as themselves, or as
+a question mark or a hex code or an empty box if the terminal cannot
+display that character.
@end itemize
The usual display conventions apply even when there is a display
@c Please remember to update the edition number in README as well.
@c And also the copies in vol1.texi and vol2.texi.
@set VERSION 3.0
-@set EMACSVER 23.3.50
+@include emacsver.texi
@set DATE July 2009
@c in general, keep the following line commented out, unless doing a
@c copy of this manual that will be published. The manual should go
@c onto the distribution in the full, 8.5 x 11" size.
- @c set smallbook
+ @c @smallbook
@ifset smallbook
@smallbook
This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
corresponding to Emacs version @value{EMACSVER}.
-Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
-1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+Copyright @copyright{} 1990-1996, 1998-2011 Free Software
Foundation, Inc.
@quotation
@end quotation
@end copying
+@documentencoding ISO-8859-1
+
@dircategory GNU Emacs Lisp
@direntry
* Elisp: (elisp). The Emacs Lisp Reference Manual.
* System Interface:: Getting the user id, system type, environment
variables, and other such things.
+* Packaging:: Preparing Lisp code for distribution.
+
Appendices
* Antinews:: Info for users downgrading to Emacs 22.
* Session Management:: Saving and restoring state with
X Session Management.
+Preparing Lisp code for distribution
+
+* Packaging Basics:: The basic concepts of Emacs Lisp packages.
+* Simple Packages:: How to package a single .el file.
+* Multi-file Packages:: How to package multiple files.
+* Package Archives:: Maintaining package archives.
+
Starting Up Emacs
* Startup Summary:: Sequence of actions Emacs performs at startup.
@include display.texi
@include os.texi
+@include package.texi
+
@c MOVE to Emacs Manual: include misc-modes.texi
@c appendices
\f
These words prevent "local variables" above from confusing Emacs.
-
-@ignore
- arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/help
@node Documentation, Files, Modes, Top
documentation string from the appropriate file; this is transparent to
the user.
-@c Wordy to prevent overfull hbox. --rjc 15mar92
- The @file{emacs/lib-src} directory contains two utilities that you can
-use to print nice-looking hardcopy for the file
-@file{emacs/etc/DOC-@var{version}}. These are @file{sorted-doc} and
-@file{digest-doc}.
-
@node Accessing Documentation
@section Access to Documentation Strings
@end defun
@defun documentation function &optional verbatim
- This function returns the documentation string of @var{function}.
- @code{documentation} handles macros, named keyboard macros, and
- special forms, as well as ordinary functions.
+ This function returns the documentation string of @var{function}. It
+ handles macros, named keyboard macros, and special forms, as well as
+ ordinary functions.
If @var{function} is a symbol, this function first looks for the
@code{function-documentation} property of that symbol; if that has a
if the user types the help character again.
@end defopt
-@ignore
- arch-tag: ba36b4c2-e60f-49e2-bc25-61158fdcd815
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 1998-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/keymaps
@node Keymaps, Modes, Command Loop, Top
When commands are remapped (@pxref{Remapping Commands}),
@code{key-binding} normally processes command remappings so as to
-returns the remapped command that will actually be executed. However,
+return the remapped command that will actually be executed. However,
if @var{no-remap} is non-@code{nil}, @code{key-binding} ignores
remappings and returns the binding directly specified for @var{key}.
them:
@lisp
- (or (if overriding-terminal-local-map
- (@var{find-in} overriding-terminal-local-map)
- (if overriding-local-map
- (@var{find-in} overriding-local-map)
- (or (@var{find-in} (get-char-property (point) 'keymap))
- (@var{find-in-any} emulation-mode-map-alists)
- (@var{find-in-any} minor-mode-overriding-map-alist)
- (@var{find-in-any} minor-mode-map-alist)
- (if (get-text-property (point) 'local-map)
- (@var{find-in} (get-char-property (point) 'local-map))
- (@var{find-in} (current-local-map))))))
+ (or (cond
+ (overriding-terminal-local-map
+ (@var{find-in} overriding-terminal-local-map))
+ (overriding-local-map
+ (@var{find-in} overriding-local-map))
+ (or (@var{find-in} (get-char-property (point) 'keymap))
+ (@var{find-in-any} emulation-mode-map-alists)
+ (@var{find-in-any} minor-mode-overriding-map-alist)
+ (@var{find-in-any} minor-mode-map-alist)
+ (if (get-text-property (point) 'local-map)
+ (@var{find-in} (get-char-property (point) 'local-map))
+ (@var{find-in} (current-local-map)))))
(@var{find-in} (current-global-map)))
@end lisp
The @code{global-set-key} and @code{local-set-key} functions are
convenient interfaces for these operations (@pxref{Key Binding
Commands}). You can also use @code{define-key}, a more general
-function; then you must specify explicitly the map to change.
+function; then you must explicitly specify the map to change.
When choosing the key sequences for Lisp programs to rebind, please
follow the Emacs conventions for use of various keys (@pxref{Key
@section Remapping Commands
@cindex remapping commands
- A special kind of key binding, using a special ``key sequence''
-which includes a command name, has the effect of @dfn{remapping} that
-command into another. Here's how it works. You make a key binding
-for a key sequence that starts with the dummy event @code{remap},
-followed by the command name you want to remap. Specify the remapped
-definition as the definition in this binding. The remapped definition
-is usually a command name, but it can be any valid definition for
-a key binding.
+ A special kind of key binding can be used to @dfn{remap} one command
+to another, without having to refer to the key sequence(s) bound to
+the original command. To use this feature, make a key binding for a
+key sequence that starts with the dummy event @code{remap}, followed
+by the command name you want to remap; for the binding, specify the
+new definition (usually a command name, but possibly any other valid
+definition for a key binding).
- Here's an example. Suppose that My mode uses special commands
-@code{my-kill-line} and @code{my-kill-word}, which should be invoked
-instead of @code{kill-line} and @code{kill-word}. It can establish
-this by making these two command-remapping bindings in its keymap:
+ For example, suppose My mode provides a special command
+@code{my-kill-line}, which should be invoked instead of
+@code{kill-line}. To establish this, its mode keymap should contain
+the following remapping:
@smallexample
(define-key my-mode-map [remap kill-line] 'my-kill-line)
-(define-key my-mode-map [remap kill-word] 'my-kill-word)
@end smallexample
-Whenever @code{my-mode-map} is an active keymap, if the user types
-@kbd{C-k}, Emacs will find the standard global binding of
-@code{kill-line} (assuming nobody has changed it). But
-@code{my-mode-map} remaps @code{kill-line} to @code{my-kill-line},
-so instead of running @code{kill-line}, Emacs runs
-@code{my-kill-line}.
+@noindent
+Then, whenever @code{my-mode-map} is active, if the user types
+@kbd{C-k} (the default global key sequence for @code{kill-line}) Emacs
+will instead run @code{my-kill-line}.
-Remapping only works through a single level. In other words,
+ Note that remapping only takes place through active keymaps; for
+example, putting a remapping in a prefix keymap like @code{ctl-x-map}
+typically has no effect, as such keymaps are not themselves active.
+In addition, remapping only works through a single level; in the
+following example,
@smallexample
(define-key my-mode-map [remap kill-line] 'my-kill-line)
@end smallexample
@noindent
-does not have the effect of remapping @code{kill-line} into
-@code{my-other-kill-line}. If an ordinary key binding specifies
-@code{kill-line}, this keymap will remap it to @code{my-kill-line};
-if an ordinary binding specifies @code{my-kill-line}, this keymap will
-remap it to @code{my-other-kill-line}.
+@code{kill-line} is @emph{not} remapped to @code{my-other-kill-line}.
+Instead, if an ordinary key binding specifies @code{kill-line}, it is
+remapped to @code{my-kill-line}; if an ordinary binding specifies
+@code{my-kill-line}, it is remapped to @code{my-other-kill-line}.
To undo the remapping of a command, remap it to @code{nil}; e.g.
of menus in advance. To force recalculation of the menu bar, call
@code{force-mode-line-update} (@pxref{Mode Line Format}).
- You've probably noticed that menu items show the equivalent keyboard key
-sequence (if any) to invoke the same command. To save time on
-recalculation, menu display caches this information in a sublist in the
-binding, like this:
-
-@c This line is not too long--rms.
-@example
-(@var{item-string} @r{[}@var{help}@r{]} (@var{key-binding-data}) . @var{real-binding})
-@end example
-
-@noindent
-Don't put these sublists in the menu item yourself; menu display
-calculates them automatically. Don't mention keyboard equivalents in
-the item strings themselves, since that is redundant.
-
@node Extended Menu Items
@subsubsection Extended Menu Items
@kindex menu-item
@var{item-property-list}, has the form of a property list which contains
other information.
- When an equivalent keyboard key binding is cached, the extended menu
-item binding looks like this:
-
-@example
-(menu-item @var{item-name} @var{real-binding} (@var{key-binding-data})
- . @var{item-property-list})
-@end example
-
Here is a table of the properties that are supported:
@table @code
By default, the global map binds @code{[tool-bar]} as follows:
@example
(global-set-key [tool-bar]
- '(menu-item "tool bar" ignore
- :filter (lambda (ignore) tool-bar-map)))
+ '(menu-item "tool bar" ignore
+ :filter (lambda (ignore) tool-bar-map)))
@end example
@noindent
Thus the tool bar map is derived dynamically from the value of variable
[work] '("Work" . work-command) 'break)
@end example
@end defun
-
-@ignore
- arch-tag: cfb87287-9364-4e46-9e93-6c2f7f6ae794
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/lists
@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@cindex CL note---lack @code{union}, @code{intersection}
@quotation
@b{Common Lisp note:} Common Lisp has functions @code{union} (which
-avoids duplicate elements) and @code{intersection} for set operations,
-but GNU Emacs Lisp does not have them. You can write them in Lisp if
-you wish.
+avoids duplicate elements) and @code{intersection} for set operations.
+Although standard GNU Emacs Lisp does not have them, the @file{cl}
+library provides versions. @inforef{Top, Overview, cl}.
@end quotation
@defun memq object list
(delq '(4) sample-list)
@result{} (a c (4))
@end group
+ @end example
If you want to delete elements that are @code{equal} to a given value,
use @code{delete} (see below).
- @end example
@defun remq object list
This function returns a copy of @var{list}, with all elements removed
(ring-remove fifo)))
@result{} (0 t one t "two")
@end lisp
-
-@ignore
- arch-tag: 31fb8a4e-4aa8-4a74-a206-aa00451394d4
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
-@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/minibuf
@cindex minibuffer history
@cindex history list
- A @dfn{minibuffer history list} records previous minibuffer inputs so
-the user can reuse them conveniently. A history list is actually a
-symbol, not a list; it is a variable whose value is a list of strings
-(previous inputs), most recent first.
+ A @dfn{minibuffer history list} records previous minibuffer inputs
+so the user can reuse them conveniently. It is a variable whose value
+is a list of strings (previous inputs), most recent first.
- There are many separate history lists, used for different kinds of
-inputs. It's the Lisp programmer's job to specify the right history
-list for each use of the minibuffer.
+ There are many separate minibuffer history lists, used for different
+kinds of inputs. It's the Lisp programmer's job to specify the right
+history list for each use of the minibuffer.
- You specify the history list with the optional @var{hist} argument
-to either @code{read-from-minibuffer} or @code{completing-read}. Here
-are the possible values for it:
+ You specify a minibuffer history list with the optional @var{hist}
+argument to @code{read-from-minibuffer} or @code{completing-read}.
+Here are the possible values for it:
@table @asis
@item @var{variable}
@code{risky-local-variable} property. @xref{File Local Variables}.
@defvar completion-ignore-case
- If the value of this variable is non-@code{nil}, Emacs does not
- consider case significant in completion. Note, however, that this
- variable is overridden by @code{read-file-name-completion-ignore-case}
- within @code{read-file-name} (@pxref{Reading File Names}), and by
- @code{read-buffer-completion-ignore-case} within @code{read-buffer}
- (@pxref{High-Level Completion}).
+ If the value of this variable is non-@code{nil}, case is not
+ considered significant in completion. Within @code{read-file-name},
+ this variable is overridden by
+ @code{read-file-name-completion-ignore-case} (@pxref{Reading File
+ Names}); within @code{read-buffer}, it is overridden by
+ @code{read-buffer-completion-ignore-case} (@pxref{High-Level
+ Completion}).
@end defvar
@defvar completion-regexp-list
graphical file dialog is platform-dependent. Here, we simply document
the behavior when using the minibuffer.
-The optional argument @var{require-match} has the same meaning as in
-@code{completing-read}. @xref{Minibuffer Completion}.
+@code{read-file-name} does not automatically expand the returned file
+name. You must call @code{expand-file-name} yourself if an absolute
+file name is required.
-@code{read-file-name} uses
-@code{minibuffer-local-filename-completion-map} as the keymap if
-@var{require-match} is @code{nil}, and uses
-@code{minibuffer-local-filename-must-match-map} if @var{require-match}
-is non-@code{nil}. @xref{Completion Commands}.
+The optional argument @var{require-match} has the same meaning as in
+@code{completing-read}. @xref{Minibuffer Completion}. If
+@var{require-match} is @code{nil}, the local keymap in the minibuffer
+is @code{minibuffer-local-filename-completion-map}; otherwise, it is
+@code{minibuffer-local-filename-must-match-map}. @xref{Completion
+Commands}.
The argument @var{directory} specifies the directory to use for
-completion of relative file names. It should be an absolute directory
+completing relative file names. It should be an absolute directory
name. If @code{insert-default-directory} is non-@code{nil},
@var{directory} is also inserted in the minibuffer as initial input.
It defaults to the current buffer's value of @code{default-directory}.
possibilities. A file name is an acceptable value if @var{predicate}
returns non-@code{nil} for it.
-@code{read-file-name} does not automatically expand file names. You
-must call @code{expand-file-name} yourself if an absolute file name is
-required.
-
-Here is an example:
+Here is an example of using @code{read-file-name}:
@example
@group
@item
@code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}.
The function should return a value of the form @code{(boundaries
-START . END)} where START is the position of the beginning boundary in
+START . END)} where START is the position of the beginning boundary
in the string to complete, and END is the position of the end boundary
in SUFFIX.
@end itemize
actual message is obtained by passing @var{string} and @var{args}
through @code{format}. @xref{Formatting Strings}.
@end defun
-
-@ignore
- arch-tag: bba7f945-9078-477f-a2ce-18818a6e1218
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/modes
@node Modes, Documentation, Keymaps, Top
setting up a buffer-local value for the variable
@code{font-lock-defaults} (@pxref{Font Lock Mode}).
+@item
+Each face that the mode defines should, if possible, inherit from an
+existing Emacs face. This reduces the chance of conflicting with a
+user's face customizations. Useful faces include:
+
+@table @asis
+@item @code{highlight}
+for stretches of text that should temporarily stand out.
+
+@item @code{match}
+for text matching a search command.
+
+@item @code{link} and @code{link-visited}
+for clickable text buttons that send the user to a different buffer or
+``location''.
+
+@item @code{button}
+for clickable text buttons that perform other actions.
+
+@item @asis{Font Lock faces}
+for other kinds of syntactic highlighting, if highlighting is not
+handled by Font Lock mode or some Font Lock faces are not in use.
+@xref{Faces for Font Lock}, for how to assign Font Lock faces.
+@end table
+
@item
The mode should specify how Imenu should find the definitions or
sections of a buffer, by setting up a buffer-local value for the
@var{find-file} is normally @code{nil}. In this case,
@code{normal-mode} unconditionally processes any file local variables.
-If @code{normal-mode} processes the local variables list and this list
-specifies a major mode, that mode overrides any mode chosen by
-@code{set-auto-mode}. If neither @code{set-auto-mode} nor
-@code{hack-local-variables} specify a major mode, the buffer stays in
-the major mode determined by the default value of @code{major-mode}
-(see below).
+The function calls @code{set-auto-mode} to choose a major mode. If this
+does not specify a mode, the buffer stays in the major mode determined
+by the default value of @code{major-mode} (see below).
@cindex file mode specification error
@code{normal-mode} uses @code{condition-case} around the call to the
@cindex visited file mode
This function selects the major mode that is appropriate for the
current buffer. It bases its decision (in order of precedence) on
-the @w{@samp{-*-}} line, on the @w{@samp{#!}} line (using
+the @w{@samp{-*-}} line, on any @samp{mode:} local variable near the
+end of a file, on the @w{@samp{#!}} line (using
@code{interpreter-mode-alist}), on the text at the beginning of the
buffer (using @code{magic-mode-alist}), and finally on the visited
file name (using @code{auto-mode-alist}). @xref{Choosing Modes, , How
-Major Modes are Chosen, emacs, The GNU Emacs Manual}. However, this
-function does not look for the @samp{mode:} local variable near the
-end of a file; the @code{hack-local-variables} function does that.
+Major Modes are Chosen, emacs, The GNU Emacs Manual}.
If @code{enable-local-variables} is @code{nil}, @code{set-auto-mode}
-does not check the @w{@samp{-*-}} line for a mode tag either.
+does not check the @w{@samp{-*-}} line, or near the end of the file,
+for any mode tag.
If @var{keep-mode-if-same} is non-@code{nil}, this function does not
call the mode command if the buffer is already in the proper major
The recommended way to define a new major mode is to derive it
from an existing one using @code{define-derived-mode}. If there is no
closely related mode, you can inherit from @code{text-mode},
-@code{special-mode}, or in the worst case @code{fundamental-mode}.
+@code{special-mode}, @code{prog-mode}, or in the worst case
+@code{fundamental-mode}.
@defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{}
This macro defines @var{variant} as a major mode command, using
@end group
@group
;; @r{These four lines are absent from the current version}
- ;; @r{not because this is done some other way, but rather}
- ;; @r{because nowadays Text mode uses the normal definition of paragraphs.}
+ ;; @r{not because this is done some other way, but because}
+ ;; @r{nowadays Text mode uses the normal definition of paragraphs.}
(set (make-local-variable 'paragraph-start)
(concat "[ \t]*$\\|" page-delimiter))
(set (make-local-variable 'paragraph-separate) paragraph-start)
@smallexample
@group
- (set (make-local-variable 'paragraph-start) (concat page-delimiter "\\|$" ))
- (set (make-local-variable 'paragraph-separate) paragraph-start)
+ (set (make-local-variable 'paragraph-start)
+ (concat page-delimiter "\\|$" ))
+ (set (make-local-variable 'paragraph-separate)
+ paragraph-start)
@dots{}
@end group
@group
- (set (make-local-variable 'comment-indent-function) 'lisp-comment-indent))
+ (set (make-local-variable 'comment-indent-function)
+ 'lisp-comment-indent))
@dots{}
@end group
@end smallexample
@cindex faces for font lock
@cindex font lock faces
- You can make Font Lock mode use any face, but several faces are
-defined specifically for Font Lock mode. Each of these symbols is both
-a face name, and a variable whose default value is the symbol itself.
-Thus, the default value of @code{font-lock-comment-face} is
-@code{font-lock-comment-face}. This means you can write
-@code{font-lock-comment-face} in a context such as
-@code{font-lock-keywords} where a face-name-valued expression is used.
+ Font Lock mode can highlight using any face, but Emacs defines several
+faces specifically for syntactic highlighting. These @dfn{Font Lock
+faces} are listed below. They can also be used by major modes for
+syntactic highlighting outside of Font Lock mode (@pxref{Major Mode
+Conventions}).
-@table @code
-@item font-lock-comment-face
-@vindex font-lock-comment-face
-Used (typically) for comments.
+ Each of these symbols is both a face name, and a variable whose
+default value is the symbol itself. Thus, the default value of
+@code{font-lock-comment-face} is @code{font-lock-comment-face}.
-@item font-lock-comment-delimiter-face
-@vindex font-lock-comment-delimiter-face
-Used (typically) for comments delimiters.
-
-@item font-lock-doc-face
-@vindex font-lock-doc-face
-Used (typically) for documentation strings in the code.
-
-@item font-lock-string-face
-@vindex font-lock-string-face
-Used (typically) for string constants.
-
-@item font-lock-keyword-face
-@vindex font-lock-keyword-face
-Used (typically) for keywords---names that have special syntactic
-significance, like @code{for} and @code{if} in C.
+ The faces are listed with descriptions of their typical usage, and in
+order of greater to lesser ``prominence''. If a mode's syntactic
+categories do not fit well with the usage descriptions, the faces can be
+assigned using the ordering as a guide.
-@item font-lock-builtin-face
-@vindex font-lock-builtin-face
-Used (typically) for built-in function names.
+@table @code
+@item font-lock-warning-face
+@vindex font-lock-warning-face
+for a construct that is peculiar, or that greatly changes the meaning of
+other text, like @samp{;;;###autoload} in Emacs Lisp and @samp{#error}
+in C.
@item font-lock-function-name-face
@vindex font-lock-function-name-face
-Used (typically) for the name of a function being defined or declared,
-in a function definition or declaration.
+for the name of a function being defined or declared.
@item font-lock-variable-name-face
@vindex font-lock-variable-name-face
-Used (typically) for the name of a variable being defined or declared,
-in a variable definition or declaration.
+for the name of a variable being defined or declared.
+
+@item font-lock-keyword-face
+@vindex font-lock-keyword-face
+for a keyword with special syntactic significance, like @samp{for} and
+@samp{if} in C.
+
+@item font-lock-comment-face
+@vindex font-lock-comment-face
+for comments.
+
+@item font-lock-comment-delimiter-face
+@vindex font-lock-comment-delimiter-face
+for comments delimiters, like @samp{/*} and @samp{*/} in C. On most
+terminals, this inherits from @code{font-lock-comment-face}.
@item font-lock-type-face
@vindex font-lock-type-face
-Used (typically) for names of user-defined data types,
-where they are defined and where they are used.
+for the names of user-defined data types.
@item font-lock-constant-face
@vindex font-lock-constant-face
-Used (typically) for constant names.
+for the names of constants, like @samp{NULL} in C.
+
+@item font-lock-builtin-face
+@vindex font-lock-builtin-face
+for the names of built-in functions.
@item font-lock-preprocessor-face
@vindex font-lock-preprocessor-face
-Used (typically) for preprocessor commands.
+for preprocessor commands. This inherits, by default, from
+@code{font-lock-builtin-face}.
+
+@item font-lock-string-face
+@vindex font-lock-string-face
+for string constants.
+
+@item font-lock-doc-face
+@vindex font-lock-doc-face
+for documentation strings in the code. This inherits, by default, from
+@code{font-lock-string-face}.
@item font-lock-negation-char-face
@vindex font-lock-negation-char-face
-Used (typically) for easily-overlooked negation characters.
-
-@item font-lock-warning-face
-@vindex font-lock-warning-face
-Used (typically) for constructs that are peculiar, or that greatly
-change the meaning of other text. For example, this is used for
-@samp{;;;###autoload} cookies in Emacs Lisp, and for @code{#error}
-directives in C.
+for easily-overlooked negation characters.
@end table
@node Syntactic Font Lock
@end defvar
@node Auto-Indentation
-@section Auto-indention of code
+@section Auto-indentation of code
For programming languages, an important feature of a major mode is to
provide automatic indentation. This is controlled in Emacs by
the precedence rules of the language.
Calling `smie-setup' is also sufficient to make TAB indentation work in
-the expected way, and provides some commands that you can bind in the
-major mode keymap.
+the expected way, extends @code{blink-matching-paren} to apply to
+elements like @code{begin...end}, and provides some commands that you
+can bind in the major mode keymap.
@deffn Command smie-close-block
This command closes the most recently opened (and not yet closed) block.
or right-associativity of infix operators, nesting of tokens like
parentheses and many other cases.
-@c ¡Let's leave this undocumented to leave it more open for change!
+@c Let's leave this undocumented to leave it more open for change!
@c @defvar smie-grammar
@c The value of this variable is an alist specifying the left and right
@c precedence of each token. It is meant to be initialized by using one of
(inst ("IF" exp "THEN" insts "ELSE" insts "END")
("CASE" exp "OF" cases "END")
...)
- (cases (cases "|" cases) (caselabel ":" insts) ("ELSE" insts))
+ (cases (cases "|" cases)
+ (caselabel ":" insts)
+ ("ELSE" insts))
...
@end example
Here is an example of an indentation function:
@example
-;; For the `case' macro.
-(eval-when-compile (require 'cl))
-
(defun sample-smie-rules (kind token)
- (case kind
- (:elem (case token
- (basic sample-indent-basic)))
- (:after
- (cond
- ((equal token ",") (smie-rule-separator kind))
- ((equal token ":=") sample-indent-basic)))
- (:before
- (cond
- ((equal token ",") (smie-rule-separator kind))
- ((member token '("begin" "(" "@{"))
- (if (smie-rule-hanging-p) (smie-rule-parent)))
- ((equal token "if")
- (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
- (smie-rule-parent)))))))
+ (pcase (cons kind token)
+ (`(:elem . basic) sample-indent-basic)
+ (`(,_ . ",") (smie-rule-separator kind))
+ (`(:after . ":=") sample-indent-basic)
+ (`(:before . ,(or `"begin" `"(" `"@{")))
+ (if (smie-rule-hanging-p) (smie-rule-parent)))
+ (`(:before . "if")
+ (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
+ (smie-rule-parent)))))
@end example
@noindent
is discouraged.
@item
-The two (identical) rules for the token @code{","} make SMIE try to be
-more clever when the comma separator is placed at the beginning of
-lines. It tries to outdent the separator so as to align the code after
-the comma; for example:
+The rule for the token @code{","} make SMIE try to be more clever when
+the comma separator is placed at the beginning of lines. It tries to
+outdent the separator so as to align the code after the comma; for
+example:
@example
x = longfunctionname (
rule:
@example
((equal token "if")
- (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
+ (and (not (smie-rule-bolp))
+ (smie-rule-prev-p "else")
(save-excursion
- (sample-smie-backward-token) ;Jump before the "else".
+ (sample-smie-backward-token)
(cons 'column (current-column)))))
@end example
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+@c Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/characters
@node Non-ASCII Characters, Searching and Matching, Text, Top
You cannot set this variable directly; instead, use the function
@code{set-buffer-multibyte} to change a buffer's representation.
-
-The @samp{--unibyte} command line option does its job by setting the
-default value to @code{nil} early in startup.
@end defvar
@defun position-bytes position
@defun byte-to-string byte
@cindex byte to string
This function returns a unibyte string containing a single byte of
-character data, @var{character}. It signals a error if
+character data, @var{character}. It signals an error if
@var{character} is not an integer between 0 and 255.
@end defun
@table @code
@item name
- This property corresponds to the Unicode @code{Name} property. The
- value is a string consisting of upper-case Latin letters A to Z,
- digits, spaces, and hyphen @samp{-} characters.
+ Corresponds to the @code{Name} Unicode property. The value is a
+ string consisting of upper-case Latin letters A to Z, digits, spaces,
+ and hyphen @samp{-} characters.
+@cindex unicode general category
@item general-category
- This property corresponds to the Unicode @code{General_Category}
- property. The value is a symbol whose name is a 2-letter abbreviation
- of the character's classification.
+ Corresponds to the @code{General_Category} Unicode property. The
+ value is a symbol whose name is a 2-letter abbreviation of the
+ character's classification.
@item canonical-combining-class
- Corresponds to the Unicode @code{Canonical_Combining_Class} property.
+ Corresponds to the @code{Canonical_Combining_Class} Unicode property.
The value is an integer number.
@item bidi-class
characters whose @code{Numeric_Type} is @samp{Digit}. The value is an
integer number.
-@item digit
+@item digit-value
Corresponds to the Unicode @code{Numeric_Value} property for
characters whose @code{Numeric_Type} is @samp{Decimal}. The value is
an integer number. Examples of such characters include compatibility
@result{} Nd
@end group
@group
- (get-char-code-property ?\u2084 'digit-value) ; subscript 4
+ ;; subscript 4
+ (get-char-code-property ?\u2084 'digit-value)
@result{} 4
@end group
@group
- (get-char-code-property ?\u2155 'numeric-value) ; one fifth
+ ;; one fifth
+ (get-char-code-property ?\u2155 'numeric-value)
- @result{} 1/5
+ @result{} 0.2
@end group
@group
- (get-char-code-property ?\u2163 'numeric-value) ; Roman IV
+ ;; Roman IV
+ (get-char-code-property ?\u2163 'numeric-value)
- @result{} \4
+ @result{} 4
@end group
@end example
@end defun
@var{propname} for the character @var{char}.
@end defun
-@defvar char-script-table
+@defvar unicode-category-table
The value of this variable is a char-table (@pxref{Char-Tables}) that
-specifies, for each character, a symbol whose name is the script to
-which the character belongs, according to the Unicode Standard
-classification of the Unicode code space into script-specific blocks.
-This char-table has a single extra slot whose value is the list of all
-script symbols.
+specifies, for each character, its Unicode @code{General_Category}
+property as a symbol.
+@end defvar
+
+@defvar char-script-table
+The value of this variable is a char-table that specifies, for each
+character, a symbol whose name is the script to which the character
+belongs, according to the Unicode Standard classification of the
+Unicode code space into script-specific blocks. This char-table has a
+single extra slot whose value is the list of all script symbols.
@end defvar
@defvar char-width-table
@var{encoding-system} is the coding system for encoding (in case
@var{operation} does encoding).
- The argument @var{operation} is a symbol, one of @code{write-region},
- @code{start-process}, @code{call-process}, @code{call-process-region},
- @code{insert-file-contents}, or @code{open-network-stream}. These are
- the names of the Emacs I/O primitives that can do character code and
- eol conversion.
+ The argument @var{operation} is a symbol; it should be one of
+ @code{write-region}, @code{start-process}, @code{call-process},
+ @code{call-process-region}, @code{insert-file-contents}, or
+ @code{open-network-stream}. These are the names of the Emacs I/O
+ primitives that can do character code and eol conversion.
The remaining arguments should be the same arguments that might be given
to the corresponding I/O primitive. Depending on the primitive, one
@code{locale-coding-system}. @xref{Locales,,, libc, The GNU Libc Manual},
for more information about locales and locale items.
@end defun
-
-@ignore
- arch-tag: be705bf8-941b-4c35-84fc-ad7d20ddb7cb
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/processes
system, much like text written into a file. @xref{Coding Systems}.
@defun call-process program &optional infile destination display &rest args
-This function calls @var{program} in a separate process and waits for
-it to finish.
+This function calls @var{program} and waits for it to finish.
-The standard input for the process comes from file @var{infile} if
+The standard input for the new process comes from file @var{infile} if
@var{infile} is not @code{nil}, and from the null device otherwise.
The argument @var{destination} says where to put the process output.
Here are the possibilities:
MS-DOS doesn't support asynchronous subprocesses, so this option doesn't
work there.
+@item @code{(:file @var{file-name})}
+Send the output to the file name specified.
+
@item @code{(@var{real-destination} @var{error-destination})}
Keep the standard output stream separate from the standard error stream;
deal with the ordinary output as specified by @var{real-destination},
@end defun
@defun call-process-shell-command command &optional infile destination display &rest args
-This function executes the shell command @var{command} synchronously
-in a separate process. The final arguments @var{args} are additional
-arguments to add at the end of @var{command}. The other arguments
-are handled as in @code{call-process}.
+This function executes the shell command @var{command} synchronously.
+The final arguments @var{args} are additional arguments to add at the
+end of @var{command}. The other arguments are handled as in
+@code{call-process}.
@end defun
@defun process-file-shell-command command &optional infile destination display &rest args
@end defun
@defun process-lines program &rest args
-This function runs @var{program} in a separate process, waits for it
-to finish, and returns its output as a list of strings. Each string
-in the list holds a single line of text output by the program; the
-end-of-line characters are stripped from each line. The arguments
-beyond @var{program}, @var{args}, are strings that specify
-command-line arguments with which to run the program.
+This function runs @var{program}, waits for it to finish, and returns
+its output as a list of strings. Each string in the list holds a
+single line of text output by the program; the end-of-line characters
+are stripped from each line. The arguments beyond @var{program},
+@var{args}, are strings that specify command-line arguments with which
+to run the program.
If @var{program} exits with a non-zero exit status, this function
signals an error.
This function returns the terminal name that @var{process} is using for
its communication with Emacs---or @code{nil} if it is using pipes
instead of a terminal (see @code{process-connection-type} in
-@ref{Asynchronous Processes}).
+@ref{Asynchronous Processes}). If @var{process} represents a program
+running on a remote host, the terminal name used by that program on
+the remote host is provided as process property @code{remote-tty}.
@end defun
@defun process-coding-system process
filter. Such filter functions need to use @code{set-buffer} in order to
be sure to insert in that buffer. To avoid setting the current buffer
semipermanently, these filter functions must save and restore the
-current buffer. They should also update the process marker, and in some
-cases update the value of point. Here is how to do these things:
+current buffer. They should also check whether the buffer is still
+alive, update the process marker, and in some cases update the value
+of point. Here is how to do these things:
@smallexample
@group
(defun ordinary-insertion-filter (proc string)
- (with-current-buffer (process-buffer proc)
- (let ((moving (= (point) (process-mark proc))))
+ (when (buffer-live-p (process-buffer proc))
+ (with-current-buffer (process-buffer proc)
+ (let ((moving (= (point) (process-mark proc))))
@end group
@group
- (save-excursion
- ;; @r{Insert the text, advancing the process marker.}
- (goto-char (process-mark proc))
- (insert string)
- (set-marker (process-mark proc) (point)))
- (if moving (goto-char (process-mark proc))))))
+ (save-excursion
+ ;; @r{Insert the text, advancing the process marker.}
+ (goto-char (process-mark proc))
+ (insert string)
+ (set-marker (process-mark proc) (point)))
+ (if moving (goto-char (process-mark proc)))))))
@end group
@end smallexample
match data. Now Emacs does this automatically for filter functions;
they never need to do it explicitly. @xref{Match Data}.
- A filter function that writes the output into the buffer of the
-process should check whether the buffer is still alive. If it tries to
-insert into a dead buffer, it will get an error. The expression
-@code{(buffer-name (process-buffer @var{process}))} returns @code{nil}
-if the buffer is dead.
-
The output to the function may come in chunks of any size. A program
that produces the same output twice in a row may send it as one batch of
200 characters one time, and five batches of 40 characters the next. If
The number of threads in the process.
@item start
- The time the process was started, in the @w{@code{(@var{high}
- @var{low} @var{microsec})}} format used by @code{current-time} and
- @code{file-attributes}.
+ The time when the process was started, in the same
+ @w{@code{(@var{high} @var{low} @var{microsec})}} format used by
+ @code{current-time} and @code{file-attributes}.
@item etime
The time elapsed since the process started, in the @w{@code{(@var{high}
@itemx :parity
@itemx :stopbits
@itemx :flowcontrol
- These arguments are handled by @code{serial-process-configure}, which
- is called by @code{make-serial-process}.
+ These are handled by @code{serial-process-configure}, which is called
+ by @code{make-serial-process}.
@end table
The original argument list, possibly modified by later configuration,
is available via the function @code{process-contact}.
- Examples:
+ Here is an example:
@example
(make-serial-process :port "/dev/ttyS0" :speed 9600)
-
- (make-serial-process :port "COM1" :speed 115200 :stopbits 2)
-
- (make-serial-process :port "\\\\.\\COM13" :speed 1200
- :bytesize 7 :parity 'odd)
-
- (make-serial-process :port "/dev/tty.BlueConsole-SPP-1"
- :speed nil)
@end example
@end defun
flow control.
@end table
- @code{serial-process-configure} is called by @code{make-serial-process} for the
- initial configuration of the serial port.
-
- Examples:
-
- @example
- (serial-process-configure :process "/dev/ttyS0" :speed 1200)
-
- (serial-process-configure :buffer "COM1" :stopbits 1
- :parity 'odd :flowcontrol 'hw)
-
- (serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
- @end example
+ @code{serial-process-configure} is called by
+ @code{make-serial-process} for the initial configuration of the serial
+ port.
@end defun
@node Byte Packing
(bindat-get-field decoded 'item 1 'id)
@result{} "BCDEFG"
@end lisp
-
-@ignore
- arch-tag: ba9da253-e65f-4e7f-b727-08fba0a1df7a
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/strings
@example
@group
- (format "The word `%7s' actually has %d letters in it."
+ (format "The word `%7s' has %d letters in it."
"foo" (length "foo"))
- @result{} "The word ` foo' actually has 3 letters in it."
- (format "The word `%7s' actually has %d letters in it."
+ @result{} "The word ` foo' has 3 letters in it."
+ (format "The word `%7s' has %d letters in it."
"specification" (length "specification"))
- @result{} "The word `specification' actually has 13 letters in it."
+ @result{} "The word `specification' has 13 letters in it."
@end group
@end example
This command displays a description of the contents of the current
buffer's case table.
@end deffn
-
-@ignore
- arch-tag: 700b8e95-7aa5-4b52-9eb3-8f2e1ea152b4
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/text
@node Text, Non-ASCII Characters, Markers, Top
position stored in a register.
* Base 64:: Conversion to or from base 64 encoding.
* MD5 Checksum:: Compute the MD5 "message digest"/"checksum".
+* Parsing HTML:: Parsing HTML and XML.
* Atomic Changes:: Installing several buffer changes "atomically".
* Change Hooks:: Supplying functions to be run when text is changed.
@end menu
@defvar interprogram-cut-function
This variable provides a way of communicating killed text to other
programs, when you are using a window system. Its value should be
-@code{nil} or a function of one required and one optional argument.
+@code{nil} or a function of one required argument.
If the value is a function, @code{kill-new} and @code{kill-append} call
-it with the new first element of the kill ring as the first argument.
-The second, optional, argument has the same meaning as the @var{push}
-argument to @code{x-set-cut-buffer} (@pxref{Definition of
-x-set-cut-buffer}) and only affects the second and later cut buffers.
+it with the new first element of the kill ring as the argument.
The normal use of this function is to set the window system's primary
-selection (and first cut buffer) from the newly killed text.
+selection from the newly killed text.
@xref{Window System Selections}.
@end defvar
@end smallexample
@end defun
- See also the function @code{buffer-substring-no-properties}
- (@pxref{Buffer Contents}) which copies text from the buffer
- but does not copy its properties.
+ @xref{Buffer Contents}, for the function
+ @code{buffer-substring-no-properties}, which copies text from the
+ buffer but does not copy its properties.
@node Property Search
@subsection Text Property Search Functions
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}.
-
- @item
- A cons cell with the form @code{(foreground-color . @var{color-name})}
- or @code{(background-color . @var{color-name})}. These are old,
- deprecated equivalents for @code{(:foreground @var{color-name})} and
- @code{(:background @var{color-name})}. Please convert code that uses
- them.
@end itemize
It works to use the latter two forms directly as the value
@cindex hooks for changing a character
@kindex modification-hooks @r{(text property)}
If a character has the property @code{modification-hooks}, then its
-value should be a list of functions; modifying that character calls all
-of those functions. Each function receives two arguments: the beginning
-and end of the part of the buffer being modified. Note that if a
-particular modification hook function appears on several characters
-being modified by a single primitive, you can't predict how many times
-the function will be called.
+value should be a list of functions; modifying that character calls
+all of those functions before the actual modification. Each function
+receives two arguments: the beginning and end of the part of the
+buffer being modified. Note that if a particular modification hook
+function appears on several characters being modified by a single
+primitive, you can't predict how many times the function will
+be called.
+Furthermore, insertion will not modify any existing character, so this
+hook will only be run when removing some characters, replacing them
+with others, or changing their text-properties.
If these functions modify the buffer, they should bind
@code{inhibit-modification-hooks} to @code{t} around doing so, to
@code{point-left} functions are called first, followed by all the
@code{point-entered} functions.
-It is possible with @code{char-after} to examine characters at various
+It is possible to use @code{char-after} to examine characters at various
buffer positions without moving point to those positions. Only an
actual change in the value of point runs these hook functions.
+The variable @code{inhibit-point-motion-hooks} can inhibit running the
+@code{point-left} and @code{point-entered} hooks, see @ref{Inhibit
+point motion hooks}.
+
+@item composition
+@kindex composition @r{(text property)}
+This text property is used to display a sequence of characters as a
+single glyph composed from components. But the value of the property
+itself is completely internal to Emacs and should not be manipulated
+directly by, for instance, @code{put-text-property}.
+
+@end table
+
@defvar inhibit-point-motion-hooks
-When this variable is non-@code{nil}, @code{point-left} and
-@code{point-entered} hooks are not run, and the @code{intangible}
-property has no effect. Do not set this variable globally; bind it with
-@code{let}.
+@anchor{Inhibit point motion hooks} When this variable is
+non-@code{nil}, @code{point-left} and @code{point-entered} hooks are
+not run, and the @code{intangible} property has no effect. Do not set
+this variable globally; bind it with @code{let}.
@end defvar
@defvar show-help-function
Manual}) provides an example.
@end defvar
-@item composition
-@kindex composition @r{(text property)}
-This text property is used to display a sequence of characters as a
-single glyph composed from components. But the value of the property
-itself is completely internal to Emacs and should not be manipulated
-directly by, for instance, @code{put-text-property}.
-
-@end table
-
@node Format Properties
@subsection Formatted Text Properties
coding instead.
@end defun
+@node Parsing HTML
+@section Parsing HTML
+@cindex parsing html
+
+@defun libxml-parse-html-region start end &optional base-url
+This function provides HTML parsing via the @code{libxml2} library.
+It parses ``real world'' HTML and tries to return a sensible parse tree
+regardless.
+
+In addition to @var{start} and @var{end} (specifying the start and end
+of the region to act on), it takes an optional parameter,
+@var{base-url}, which is used to expand relative URLs in the document,
+if any.
+
+Here's an example demonstrating the structure of the parsed data you
+get out. Given this HTML document:
+
+@example
+<html><hEad></head><body width=101><div class=thing>Foo<div>Yes
+@end example
+
+You get this parse tree:
+
+@example
+(html
+ (head)
+ (body
+ (:width . "101")
+ (div
+ (:class . "thing")
+ (text . "Foo")
+ (div
+ (text . "Yes\n")))))
+@end example
+
+It's a simple tree structure, where the @code{car} for each node is
+the name of the node, and the @code{cdr} is the value, or the list of
+values.
+
+Attributes are coded the same way as child nodes, but with @samp{:} as
+the first character.
+@end defun
+
+@cindex parsing xml
+@defun libxml-parse-xml-region start end &optional base-url
+
+This is much the same as @code{libxml-parse-html-region} above, but
+operates on XML instead of HTML, and is correspondingly stricter about
+syntax.
+@end defun
+
@node Atomic Changes
@section Atomic Change Groups
@cindex atomic changes
- In data base terminology, an @dfn{atomic} change is an indivisible
+ In database terminology, an @dfn{atomic} change is an indivisible
change---it can succeed entirely or it can fail entirely, but it
cannot partly succeed. A Lisp program can make a series of changes to
one or several buffers as an @dfn{atomic change group}, meaning that
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002,
-@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2011
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/tips
definition automatically. Avoid constructing the names in the macro
itself, since that would confuse these tools.
-@item
-Please keep the names of your Emacs Lisp source files to 13 characters
-or less. This way, if the files are compiled, the compiled files' names
-will be 14 characters or less, which is short enough to fit on all kinds
-of Unix systems.
-
@item
In some other systems there is a convention of choosing variable names
that begin and end with @samp{*}. We don't use that convention in Emacs
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
- ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+ ;; along with this program. If not, see
+ ;; <http://www.gnu.org/licenses/>.
@end smallexample
If you have signed papers to assign the copyright to the Foundation,
This field is important; it's how people will find your package when
they're looking for things by topic area. To separate the keywords, you
can use spaces, commas, or both.
+
+@item Package-Version
+If @samp{Version} is not suitable for use by the package manager, then
+a package can define @samp{Package-Version}; it will be used instead.
+This is handy if @samp{Version} is an RCS id or something else that
+cannot be parsed by @code{version-to-list}. @xref{Packaging Basics}.
+
+@item Package-Requires
+If this exists, it names packages on which the current package depends
+for proper operation. @xref{Packaging Basics}. This is used by the
+package manager both at download time (to ensure that a complete set
+of packages is downloaded) and at activation time (to ensure that a
+package is activated if and only if all its dependencies have been).
+
+Its format is a list of lists. The @code{car} of each sub-list is the
+name of a package, as a symbol. The @code{cadr} of each sub-list is
+the minimum acceptable version number, as a string. For instance:
+
+@smallexample
+;; Package-Requires: ((gnus "1.0") (bubbles "2.7.2"))
+@end smallexample
+
+The package code automatically defines a package named @samp{emacs}
+with the version number of the currently running Emacs. This can be
+used to require a minimal version of Emacs for a package.
@end table
Just about every Lisp library ought to have the @samp{Author} and
Its purpose is to enable people to detect truncated versions of the file
from the lack of a footer line.
@end table
-
-@ignore
- arch-tag: 9ea911c2-6b1d-47dd-88b7-0a94e8b27c2e
-@end ignore
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/windows
unless @var{norecord} is non-@code{nil}.
@end deffn
-@deffn Command pop-to-buffer buffer-or-name &optional other-window norecord
-This command makes @var{buffer-or-name} the current buffer and switches
+@defun pop-to-buffer buffer-or-name &optional other-window norecord
+This function makes @var{buffer-or-name} the current buffer and switches
to it in some window, preferably not the window previously selected.
The ``popped-to'' window becomes the selected window. Its frame is
given the X server's focus, if possible; see @ref{Input Focus}. The
This function updates the buffer list just like @code{switch-to-buffer}
unless @var{norecord} is non-@code{nil}.
-@end deffn
+@end defun
@deffn Command replace-buffer-in-windows &optional buffer-or-name
This function replaces @var{buffer-or-name} in all windows displaying
selected window. If @var{position} is @code{t}, that means to check the
last visible position in @var{window}.
- The @code{pos-visible-in-window-p} function considers only vertical
- scrolling. If @var{position} is out of view only because @var{window}
- has been scrolled horizontally, @code{pos-visible-in-window-p} returns
- non-@code{nil} anyway. @xref{Horizontal Scrolling}.
+ This function considers only vertical scrolling. If @var{position} is
+ out of view only because @var{window} has been scrolled horizontally,
+ @code{pos-visible-in-window-p} returns non-@code{nil} anyway.
+ @xref{Horizontal Scrolling}.
If @var{position} is visible, @code{pos-visible-in-window-p} returns
@code{t} if @var{partially} is @code{nil}; if @var{partially} is
Lock fontification function, which will be called whenever parts of a
buffer are (re)fontified because a window was scrolled or its size
changed. @xref{Other Font Lock Variables}.
-
-@ignore
- arch-tag: 3f6c36e8-df49-4986-b757-417feed88be3
-@end ignore