From: Miles Bader Date: Wed, 2 Jan 2008 02:20:42 +0000 (+0000) Subject: Merge from emacs--rel--22, gnus--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8741 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b201b9880e01120b7e64f82c98464c5bea630b0d;p=emacs.git Merge from emacs--rel--22, gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-975 --- b201b9880e01120b7e64f82c98464c5bea630b0d diff --cc doc/lispref/ChangeLog index 50399b0120e,00000000000..9f98547e590 mode 100644,000000..100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@@ -1,6497 -1,0 +1,6502 @@@ ++2007-12-30 Richard Stallman ++ ++ * commands.texi (Accessing Mouse): Renamed from Accessing Events. ++ (Accessing Scroll): New node broken out of Accessing Mouse. ++ +2007-12-28 Richard Stallman + + * frames.texi (Size Parameters): Fix typo. + (Basic Parameters): For `title', refer to title bar. + (Size and Position): Explain meaning of frame pixel width and height. + +2007-12-23 Richard Stallman + + * customize.texi (Type Keywords): Uncomment :validate and clarify it. + Improve some of the commented-out keywords' text too. + +2007-12-14 Martin Rudalics + + * nonascii.texi (Encoding and I/O): Reword to avoid saying + "visit the current buffer". + + * os.texi (System Interface): Fix typo. + +2007-12-04 Richard Stallman + + * objects.texi (Symbol Type): Fix typo. + +2007-12-03 Richard Stallman + + * hooks.texi (Standard Hooks): Add link to Hooks for Loading. + +2007-12-01 Glenn Morris + + * functions.texi (Declaring Functions): Improve previous change. + +2007-11-30 Glenn Morris + + * functions.texi (Declaring Functions): Add optional fourth + argument of declare-function, and setting third argument to `t'. + +2007-11-29 Richard Stallman + + * customize.texi (Composite Types): Document `group' type. + +2007-11-29 Glenn Morris + + * functions.texi (Declaring Functions): Add findex. Mention + `external' files. + +2007-11-26 Juanma Barranquero + + * functions.texi (Declaring Functions): Fix directive. + +2007-11-25 Richard Stallman + + * help.texi (Help Functions): Clean up last change. + + * advice.texi (Preactivation, Activation of Advice): Minor cleanup. + + * loading.texi (Named Features): Minor cleanup. + + * macros.texi (Eval During Expansion): Minor cleanup. + + * variables.texi (Variable Aliases): Minor cleanup. + +2007-11-24 Richard Stallman + + * functions.texi (Declaring Functions): Clarify previous change. + + * compile.texi (Compiler Errors): Clarify previous change. + +2007-11-24 Richard Stallman + + * display.texi (Refresh Screen, Forcing Redisplay): + Clarify the text and move items around. + +2007-11-24 Glenn Morris + + * functions.texi (Declaring Functions): New section. + * compile.texi (Compiler Errors): Mention declaring functions, + defvar with no initvalue, and byte-compile-warnings. + +2007-11-15 Martin Rudalics + + * vol1.texi (Top): Remove Frame-Local Variables from Node Listing. + * vol2.texi (Top): Remove Frame-Local Variables from Node Listing. + +2007-11-13 Martin Rudalics + + * help.texi (Help Functions): Document new macro `with-help-window'. + +2007-11-10 Paul Pogonyshev + + * searching.texi (Replacing Match): Describe new + `match-substitute-replacement'. + +2007-10-31 Richard Stallman + + * strings.texi (Creating Strings): Null strings from concat not unique. + +2007-10-26 Richard Stallman + + * objects.texi (Equality Predicates): Null strings are uniquified. + + * minibuf.texi: Minor clarifications in previous change. + +2007-10-25 Glenn Morris + + * customize.texi (Variable Definitions): Add :risky and :safe keywords. + +2007-10-24 Richard Stallman + + * elisp.texi (Top): Delete Frame-Local Variables from subnode menu. + + * variables.texi (Frame-Local Variables): Node deleted. + (Variables): Delete Frame-Local Variables from menu. + (Local Variables, Buffer-Local Variables, Intro to Buffer-Local) + (Default Value): Don't mention frame-local vars. + + * os.texi (Idle Timers): current-idle-time returns nil if not idle. + + * loading.texi (Unloading): Document FEATURE-unload-function + instead of FEATURE-unload-hook. + + * frames.texi (Multiple Displays): Don't mention frame-local vars. + +2007-10-22 Juri Linkov + + * minibuf.texi (Text from Minibuffer, Minibuffer Completion) + (High-Level Completion): Document a list of default value strings + in the DEFAULT argument, for which minibuffer functions return the + first element. + +2007-10-17 Juri Linkov + + * text.texi (Filling): Update arguments of fill-paragraph. + fill-paragraph operates on the active region in Transient Mark mode. + Remove fill-paragraph-or-region. + +2007-10-13 Karl Berry + + * elisp.texi (@dircategory): Move to after @copying, + since we want @copying as close as possible to the beginning of + the output. + +2007-10-12 Richard Stallman + + * elisp.texi (Top): Add Distinguish Interactive to subnode menu. + + * commands.texi (Distinguish Interactive): New node, + broken out from Interactive Call and rewritten. + (Command Loop): Put Distinguish Interactive in menu. + +2007-10-09 Richard Stallman + + * text.texi (Examining Properties): Mention overlay priority. + + * display.texi (Display Margins): Correct the description + of margin display specifications. + (Replacing Specs): New subnode broken out of Display Property. + +2007-10-06 Juri Linkov + + * text.texi (Filling): Document fill-paragraph-or-region. + +2007-10-05 Juanma Barranquero + + * display.texi (Auto Faces): Fix typo. + +2007-10-02 Richard Stallman + + * display.texi (Display Property): Explain some display specs + don't let you move point in. + + * frames.texi (Cursor Parameters): Describe + cursor-in-non-selected-windows here. Explain more values. + + * windows.texi (Basic Windows): Don't describe + cursor-in-non-selected-windows here. + +2007-10-01 Eli Zaretskii + + * processes.texi (Misc Network): Note that these functions are + supported only on some systems. + +2007-10-01 Richard Stallman + + * display.texi (Overlay Properties): Explain nil as priority. + Explain that conflicts are unpredictable if not resolved by + priorities. + +2007-09-23 Richard Stallman + + * macros.texi (Backquote): Minor clarification. + +2007-09-19 Richard Stallman + + * display.texi (Display Property): Explain multiple display specs. + Clarify when they work in parallel and when one overrides. + Fix error in example. + +2007-09-06 Glenn Morris + + * Move from lispref/ to doc/lispref/. Change all setfilename + commands to use ../../info. + * Makefile.in (infodir): Go up one more level. + (usermanualdir): Change from ../man to ../emacs. + (miscmanualdir): New. + (dist): Use new variable miscmanualdir. + * makefile.w32-in (infodir, texinputdir): Go up one more level. + (usermanualdir): Change from ../man to ../emacs. + +2007-08-30 Martin Rudalics + + * commands.texi (Command Loop Info): Advise against changing + most variables described here. Explain new variable + last-repeatable-command. + +2007-08-29 Glenn Morris + + * elisp.texi (EMACSVER): Increase to 23.0.50. + +2007-08-29 Dan Nicolaescu + + * frames.texi (Basic Parameters): Add display-environment-variable + and term-environment-variable. + +2007-08-28 Juri Linkov + + * display.texi (Image Formats, Other Image Types): Add SVG. + +2007-08-28 Juri Linkov + + * display.texi (Images): Move formats-related text to new node + "Image Formats". + (Image Formats): New node. + +2007-08-27 Richard Stallman + + * windows.texi (Window Configurations): Clarify what + a window configuration saves. + +2007-08-25 Richard Stallman + + * display.texi (Images): Delete redundant @findex. + +2007-08-16 Richard Stallman + + * processes.texi (Asynchronous Processes): Clarify + doc of start-file-process. + +2007-08-08 Martin Rudalics + + * modes.texi (Example Major Modes): Fix typo. + +2007-08-08 Glenn Morris + + * intro.texi (nil and t): Do not use `iff' in documentation. + + * tips.texi (Documentation Tips): Recommend against `iff'. + +2007-08-07 Chong Yidong + + * display.texi (Image Cache): Document image-refresh. + +2007-08-06 Martin Rudalics + + * windows.texi (Size of Window): Document window-full-width-p. + +2007-07-25 Glenn Morris + + * gpl.texi (GPL): Replace license with GPLv3. + + * Relicense all FSF files to GPLv3 or later. + +2007-07-24 Michael Albinus + + * processes.texi (Synchronous Processes): + Add `process-file-shell-command'. + (Asynchronous Processes): Mention restricted use of + `process-filter' and `process-sentinel' in + `start-file-process'. Add `start-file-process-shell-command'. + +2007-07-17 Michael Albinus + + * files.texi (Magic File Names): Introduce optional parameter + IDENTIFICATION for `file-remote-p'. + +2007-07-16 Richard Stallman + + * display.texi (Defining Faces): Fix previous change. + +2007-07-14 Richard Stallman + + * control.texi (Handling Errors): Document `debug' in handler list. + +2007-07-10 Richard Stallman + + * display.texi (Defining Faces): Explain C-M-x feature for defface. + +2007-07-09 Richard Stallman + + * files.texi (Magic File Names): Rewrite previous change. + +2007-07-08 Michael Albinus + + * files.texi (Magic File Names): Introduce optional parameter + CONNECTED for `file-remote-p'. + +2007-07-07 Michael Albinus + + * processes.texi (Asynchronous Processes): + * files.texi (Magic File Names): Add `start-file-process'. + +2007-06-27 Richard Stallman + + * files.texi (Format Conversion Piecemeal): Clarify + `after-insert-file-functions' calling convention. + +2007-06-27 Michael Albinus + + * files.texi (Magic File Names): Remove `dired-call-process'. + Add `process-file'. + +2007-06-27 Kenichi Handa + + * text.texi (Special Properties): Fix description about + `composition' property. + +2007-06-26 Kenichi Handa + + * nonascii.texi (Default Coding Systems): Document about the + return value `undecided'. + +2007-06-25 David Kastrup + + * keymaps.texi (Active Keymaps): Document new POSITION argument of + `current-active-maps'. + +2007-06-24 Karl Berry + + * elisp.texi, vol1.texi, vol2.texi: New Back-Cover Text. + +2007-06-15 Juanma Barranquero + + * display.texi (Overlay Arrow): Doc fix. + +2007-06-14 Karl Berry + + * anti.texi (Antinews): Typo. + +2007-06-14 Chong Yidong + + * display.texi (Image Cache): Document image-refresh. + +2007-06-12 Karl Berry + + * vol1.texi, vol2.texi, two-volume-cross-refs.txt: Update. + * two-volume.make: New file. + * .cvsignore: Ignore two-volume files. + +2007-06-12 Tom Tromey + + * os.texi (Init File): Document user-emacs-directory. + +2007-06-03 Nick Roberts + + * commands.texi (Click Events): Describe width and height when + object is nil. + +2007-05-30 Nick Roberts + + * commands.texi (Click Events): Layout more logically. Describe + width and height. + (Drag Events, Motion Events): Update to new format for position. + +2007-06-02 Richard Stallman + + * frames.texi (Color Parameters): Add xref to (emacs)Standard Faces. + +2007-06-02 Chong Yidong + + * Version 22.1 released. + +2007-06-01 Stefan Monnier + + * text.texi (Special Properties): Correct meaning of fontified face. + +2007-05-30 Richard Stallman + + * text.texi (Special Properties): Add link to Adjusting Point. + +2007-05-12 Richard Stallman + + * text.texi (Margins): indent-to-left-margin is not the default. + (Mode-Specific Indent): For indent-line-function, the default + is indent-relative. + + * modes.texi (Example Major Modes): Explain last line of text-mode + is redundant. + +2007-05-10 Richard Stallman + + * keymaps.texi (Scanning Keymaps): Update where-is-internal example. + + * help.texi (Keys in Documentation): Add reference to + Documentation Tips. + + * files.texi (Format Conversion): TO-FN gets three arguments. + + * modes.texi (Auto Major Mode): Document file-start-mode-alist. + +2007-05-10 Thien-Thi Nguyen + + * elisp.texi (Top): Remove "Saving Properties" from detailed menu. + * files.texi (Format Conversion): Expand intro; add menu. + (Format Conversion Overview, Format Conversion Round-Trip) + (Format Conversion Piecemeal): New nodes/subsections. + * hooks.texi: Xref "Format Conversion" , not "Saving Properties". + * text.texi (Text Properties): Remove "Saving Properties" from menu. + (Saving Properties): Delete node/subsection. + +2007-05-07 Karl Berry + + * elisp.texi (EMACSVER): Back to 22. + +2007-05-06 Richard Stallman + + * processes.texi (Accepting Output): Revert most of previous change. + +2007-05-05 Richard Stallman + + * processes.texi (Accepting Output): accept-process-output + uses microseconds, not milliseconds. But that arg is obsolete. + +2007-05-04 Karl Berry + + * elisp.texi (EMACSVER) [smallbook]: 22.1, not 22. + +2007-05-04 Eli Zaretskii + + * tips.texi (Documentation Tips): Rearrange items to place the + more important ones first. Add an index entry for hyperlinks. + +2007-05-03 Karl Berry + + * elisp.texi (\urlcolor, \linkcolor) [smallbook]: \Black for printing. + (EMACSVER) [smallbook]: 22 for printed version. + + * control.texi (Signaling Errors) : texinfo.tex is fixed, + so restore anchor to normal position after defun. Found by Kevin Ryde. + +2007-04-26 Glenn Morris + + * elisp.texi (EMACSVER): Increase to 22.1.50. + +2007-04-28 Karl Berry + + * elisp.texi: Improve line breaks on copyright page, + similar layout to emacs manual, 8.5x11 by default. + +2007-04-24 Richard Stallman + + * text.texi (Special Properties): Add xref to Overlay Properties. + + * display.texi (Overlay Properties): Add xref to Special Properties. + +2007-04-22 Richard Stallman + + * keymaps.texi (Extended Menu Items): Move the info about + format with cached keyboard binding. + +2007-04-21 Richard Stallman + + * text.texi (Special Properties): Clarify previous change. + + * files.texi (File Name Expansion): Clarify previous change. + + * display.texi (Attribute Functions): Fix example for + face-attribute-relative-p. + +2007-04-19 Kenichi Handa + + * text.texi (Special Properties): Document composition property. + +2007-04-19 Glenn Morris + + * files.texi (File Name Expansion): Mention "superroot". + +2007-04-15 Chong Yidong + + * frames.texi (Multiple Displays): Add note about "multi-monitor" + setups. + (Display Feature Testing): Note that display refers to all + physical monitors for multi-monitor setups. + +2007-04-14 Richard Stallman + + * lists.texi (Sets And Lists): Clarify `delete' examples. + Remove spurious xref to same node. + Clarify xref for add-to-list. + +2007-04-12 Nick Roberts + + * keymaps.texi (Format of Keymaps): Remove spurious ")" from + value of lisp-mode-map. + +2007-04-11 Karl Berry + + * anti.texi (Antinews): + * display.texi (Overlay Properties, Defining Images): + * processes.texi (Synchronous Processes, Sentinels): + * syntax.texi (Syntax Table Internals): + * searching.texi (Regexp Special): + * nonascii.texi (Default Coding Systems): + * text.texi (Special Properties): + * minibuf.texi (Basic Completion): Wording to improve breaks in + 8.5x11 format. + * elisp.texi (smallbook): New @set to more easily switch between + smallbook and 8.5x11. + +2007-04-11 Richard Stallman + + * text.texi (Lazy Properties): Minor fix. + +2007-04-08 Karl Berry + + * symbols.texi (Plists and Alists): Period after "vs" in index entries. + * macros.texi (Backquote): Downcase Backquote in index entries for + consistency. + +2007-04-08 Richard Stallman + + * text.texi (Adaptive Fill): Just describe default, + don't show it (since it contains non-ASCII chars). + +2007-04-07 Karl Berry + + * text.texi (Adaptive Fill) [@iftex]: Omit binary characters in + adaptive-fill-regexp's value, since they are not in the standard + TeX fonts. + +2007-04-07 Guanpeng Xu + + * display.texi (Defining Faces): Fix example. + +2007-04-07 Karl Berry + + * display.texi (Button Buffer Commands): Improve page break. + +2007-04-07 Richard Stallman + + * advice.texi (Activation of Advice): Remove redundant index entry. + + * backups.texi: Improve index entries. Remove redundant ones. + + * compile.texi (Byte Compilation): Improve index entry. + + * hash.texi (Creating Hash): Improve index entry. + + * symbols.texi (Definitions): Improve index entry. + + * edebug.texi: Improve index entries. Remove redundant/useless ones. + + * maps.texi (Standard Keymaps): Remove useless index entry. + + * help.texi (Documentation Basics): Remove redundant index entries. + + * customize.texi: Improve index entries. + Remove redundant/useless ones. + + * locals.texi (Standard Buffer-Local Variables): Clarify intro text. + + * streams.texi (Output Variables): Improve index entry. + + * abbrevs.texi (Abbrevs): Remove useless index entry. + + * macros.texi (Expansion): Remove useless index entry. + + * text.texi: Improve index entries. Remove redundant/useless ones. + (Text Properties, Examining Properties) + (Special Properties): Use "property category" instead of "category" + to refer to the `category' property. + + * positions.texi: Improve index entries. Remove useless one. + + * lists.texi: Improve index entries. Remove redundant/useless ones. + + * os.texi: Improve index entries. + (Timers): Fix previous change. + + * buffers.texi: Improve index entries. + (Modification Time): Get rid of term "obsolete buffer". + + * debugging.texi: Improve index entries. + (Test Coverage): Add xref to other test coverage ftr. + + * eval.texi: Improve index entry. Remove redundant ones. + + * numbers.texi: Improve index entries. Remove redundant/useless ones. + + * files.texi: Improve index entries. Remove redundant/useless ones. + + * objects.texi: Improve index entries. + + * processes.texi: Improve index entries. + + * modes.texi: Improve index entry. Remove redundant one. + + * nonascii.texi: Improve index entries. + + * internals.texi: Improve index entries. + + * syntax.texi: Improve index entries. + + * keymaps.texi (Active Keymaps): Improve index entries. + + * commands.texi: Improve index entries. Remove redundant/useless ones. + + * frames.texi: Improve index entries. Remove redundant/useless ones. + + * markers.texi: Improve index entries. Remove redundant ones. + + * tips.texi: Improve index entries. + + * loading.texi (Unloading): Improve index entry. + + * variables.texi: Improve index entries. Remove redundant one. + + * sequences.texi: Improve index entry. + + * display.texi: Improve index entries. Remove redundant ones. + + * windows.texi: Improve index entries. + + * searching.texi: Improve index entries. Remove redundant one. + + * strings.texi (Case Tables): Improve last change. + +2007-04-04 Chong Yidong + + * strings.texi (Case Tables): Document with-case-table and + ascii-case-table. + +2007-04-03 Karl Berry + + * processes.texi (Network): Reword to improve page break. + +2007-04-03 Eli Zaretskii + + * functions.texi (Inline Functions): Describe more disadvantages + of defsubst, and make advice against it stronger. + +2007-04-02 Karl Berry + + * backups.texi (Backup Names): Avoid widow words. + * modes.texi (Example Major Modes): Align last comment. + +2007-04-01 Chong Yidong + + * keymaps.texi (Remapping Commands): Document new arg to + command-remapping. + +2007-04-01 Karl Berry + + * processes.texi (Low-Level Network): Typo. + * loading.texi (Hooks for Loading): Avoid double "the". + * keymaps.texi (Key Sequences): No double "and". + (Changing Key Bindings): Shorten to improve line break. + +2007-03-31 Glenn Morris + + * os.texi (Timers): Fix description of run-at-time TIME formats. + +2007-03-31 Richard Stallman + + * display.texi (Invisible Text): Correct buffer-invisibility-spec + regarding ellipsis. + +2007-03-31 Eli Zaretskii + + * intro.texi (nil and t): + * symbols.texi (Plists and Alists): + * variables.texi (Variable Aliases, Constant Variables): + * functions.texi (Defining Functions): + * advice.texi (Advising Primitives): + * debugging.texi (Syntax Errors, Compilation Errors): + * minibuf.texi (Minibuffer Windows): + * commands.texi (Adjusting Point): + * modes.texi (Syntactic Font Lock, Faces for Font Lock) + (Auto Major Mode, Major Mode Conventions): + * help.texi (Describing Characters): + * files.texi (Create/Delete Dirs, Information about Files) + (File Locks, Writing to Files, Reading from Files) + (Saving Buffers): + * windows.texi (Resizing Windows, Cyclic Window Ordering): + * frames.texi (Finding All Frames): + * positions.texi (Buffer End, Motion): + * markers.texi (The Region): + * text.texi (Deletion, Near Point): + * display.texi (Displaying Messages, Truncation): + * os.texi (Processor Run Time): + * tips.texi (Key Binding Conventions, Programming Tips) + (Warning Tips, Documentation Tips, Comment Tips): + * internals.texi (Memory Usage): Improve indexing. + + * variables.texi (Frame-Local Variables): + * functions.texi (Argument List): + * loading.texi (Library Search): + * streams.texi (Output Variables): + * keymaps.texi (Translation Keymaps, Searching Keymaps): + * searching.texi (Replacing Match, Search and Replace): + * processes.texi (Byte Packing, Decoding Output) + (Accepting Output, Network Servers, Shell Arguments): + * display.texi (Abstract Display, Image Cache, Scroll Bars): + * windows.texi (Window Point, Window Start): + * frames.texi (Management Parameters, Frame Parameters, Frame Titles): + * commands.texi (Reading Input, Keyboard Events): + * minibuf.texi (Reading File Names, Minibuffer Completion) + (Recursive Mini): + * positions.texi (List Motion): + * hash.texi (Hash Tables, Creating Hash, Defining Hash): + * numbers.texi (Arithmetic Operations, Math Functions) + (Predicates on Numbers, Comparison of Numbers): + (Numeric Conversions): + * locals.texi (Standard Buffer-Local Variables): + * maps.texi (Standard Keymaps): + * os.texi (User Identification, System Environment, Recording Input) + (X11 Keysyms): + * nonascii.texi (Non-ASCII Characters, Splitting Characters): + * backups.texi (Backups and Auto-Saving): + * customize.texi (Customization, Group Definitions) + (Variable Definitions): + * compile.texi (Byte Compilation): Improve index entries. + +2007-03-31 Karl Berry + + * macros.texi (Defining Macros): Avoid widow syllable. + +2007-03-31 Eli Zaretskii + + * elisp.texi (Top): Postscript -> PostScript. + + * display.texi (Images, Postscript Images): Postscript -> PostScript. + +2007-03-31 Markus Triska + + * internals.texi (Writing Emacs Primitives): Untabify `For'. + +2007-03-30 Karl Berry + + * lists.texi (List-related Predicates): Remove spurious @need. + (Setcdr): Use @smallexample to improve page break. + (Association Lists) : Reword to improve page break. + + * strings.texi (String Conversion): Insert blank line to improve + page break. + + * numbers.texi (Random Numbers): Use @minus{}. + (Math Functions): Use @minus{}. + + * intro.texi (Acknowledgements): Avoid line breaks before middle + initials. + +2007-03-24 Eli Zaretskii + + * errors.texi (Standard Errors): Add an index entry. + +2007-03-19 Richard Stallman + + * os.texi (Recording Input): recent-keys now gives 300 keys. + +2007-03-12 Glenn Morris + + * os.texi: Replace "daylight savings" with "daylight saving" + throughout. + +2007-03-05 Richard Stallman + + * variables.texi (File Local Variables): Update + enable-local-variables values. + +2007-03-04 Richard Stallman + + * syntax.texi (Control Parsing): Minor clarification. + + * strings.texi (Formatting Strings): Clarify width, precision, flags. + + * sequences.texi (Sequence Functions): Move string-bytes away, + add xref. + + * nonascii.texi (Text Representations): Move string-bytes here. + + * modes.texi (Major Mode Conventions): Fundamental mode is exception. + + * minibuf.texi (Basic Completion): Minor clarification. + + * markers.texi (The Mark): Clarify existence vs activation of mark. + Other cleanup. + + * display.texi (Finding Overlays): Write better example. + + * compile.texi (Eval During Compile): Clarify putting macros + in eval-when-compile. + +2007-02-25 Vinicius Jose Latorre + + * loading.texi (How Programs Do Loading): Fix anchor position at + load-read-function definition doc. (tiny change) + +2007-02-21 Kim F. Storm + + * strings.texi (Text Comparison): Mention that assoc-string + converts symbols to strings before testing. + +2007-02-17 Kim F. Storm + + * processes.texi (Bindat Spec): Vector types can have optional + element type. + (Bindat Examples): Fix example. Add vector with element type. + +2007-02-16 Andreas Schwab + + * strings.texi (Formatting Strings): Document '+' flag. + +2007-02-15 Juanma Barranquero + + * strings.texi (Modifying Strings): Clarify that `clear-string' + always converts the string to unibyte. + +2007-02-14 Kim F. Storm + + * display.texi (Glyphs): Add make-glyph-code, glyph-char, glyph-face. + Rewrite glyph code description to refer to these functions. + Remove details of encoding face number and char into integer code. + +2007-02-03 Alan Mackenzie + + * loading.texi (Hooks for Loading): Make the description of + `eval-after-load' more detailed, and amend the description of + after-load-alist, in accordance with changes from 2006-05. + +2007-02-03 Chong Yidong + + * modes.texi (Defining Minor Modes): Document that a :require + keyword or similar may be required to make saved customization + variables work. + +2007-02-03 Eli Zaretskii + + * elisp.texi (Top): Make the detailed menu headers compliant with + Texinfo guidelines and with what texnfo-upd.el expects. Add + comments to prevent people from inadvertently modifying the key + parts needed by `texinfo-multiple-files-update'. + +2007-02-02 Eli Zaretskii + + * elisp.texi (Top): Update the top-level menus. + + * syntax.texi (Categories): Add index entries. + +2007-02-01 Juanma Barranquero + + * display.texi (Attribute Functions): Fix name and description of + the UNDERLINE arg of `set-face-underline-p'. + +2007-01-29 Eli Zaretskii + + * elisp.texi (Top): Add "Standard Errors", "Standard Buffer-Local + Variables", and "Standard Keymaps" to the detailed menu. + + * variables.texi (Future Local Variables): Add index entry. + +2007-01-28 Richard Stallman + + * tips.texi (Coding Conventions): Clarify the tip about macros + that define a function or a variable. + + * files.texi (File Attributes): UID and GID can be floats. + (Magic File Names): Explain why deferring all operations to + the standard handler does not work. + +2007-01-23 Martin Rudalics + + * backups.texi (Reverting): Use "buffer" instead of "file" + when talking about major and minor modes. + +2007-01-21 Richard Stallman + + * help.texi (Documentation): Add xref to Documentation Tips. + +2007-01-14 Juanma Barranquero + + * tips.texi (Coding Conventions): Fix typos. + +2007-01-05 Richard Stallman + + * modes.texi (Defining Minor Modes): Fix previous change. + +2007-01-03 Richard Stallman + + * customize.texi (Variable Definitions, Customization Types): + Don't use * in doc string for defcustom. + +2007-01-02 Richard Stallman + + * variables.texi (Variable Aliases): Clarify that aliases vars + always have the same value. + + * processes.texi (Bindat Spec): Fix Texinfo usage. + + * modes.texi (Defining Minor Modes): Explain effect of command + defined with define-global-minor-mode on new buffers. + +2006-12-30 Kim F. Storm + + * keymaps.texi (Tool Bar): Describe `grow-only' value of + `auto-resize-tool-bars'. + +2006-12-30 Richard Stallman + + * keymaps.texi (Active Keymaps): Fix previous change. + +2006-12-30 Nick Roberts + + * keymaps.texi (Active Keymaps): Make xref to lookup-key. + +2006-12-30 Kim F. Storm + + * processes.texi (Bindat Spec): Clarify using field names in + length specifications. + +2006-12-29 Kim F. Storm + + * processes.texi (Bindat Spec): Explain eval forms and lengths better. + Add count and index variables for eval forms in repeat blocks. + +2006-12-24 Richard Stallman + + * customize.texi (Variable Definitions): Document + new name custom-add-frequent-value. + +2006-12-19 Kim F. Storm + + * commands.texi (Misc Events): User signals now result in sigusr1 + and sigusr2 events which are handled through special-event-map. + (Special Events): User signals and drag-n-drop are special. + +2006-12-17 Richard Stallman + + * loading.texi (Named Features): Explain subfeatures better. + + * customize.texi: Use "option" only for user options. + For the keyword values inside defcustom etc, say "keywords". + For :options value's elements, say "elements". + :group should not be omitted. + + * syntax.texi (Parsing Expressions): Split up node. + (Motion via Parsing, Position Parse, Parser State) + (Low-Level Parsing, Control Parsing): New subnodes. + (Parser State): Document syntax-ppss-toplevel-pos. + + * positions.texi (List Motion): Punctuation fix. + + * files.texi (File Name Completion): Document PREDICATE arg + to file-name-completion. + +2006-12-16 Eli Zaretskii + + * internals.texi (Building Emacs, Writing Emacs Primitives): + Add index entries. + +2006-12-11 Richard Stallman + + * modes.texi (Font Lock Basics): Explain how nil for font-lock-defaults + affects face menu. Explain how to make it non-nil without enabling + any fontification. + +2006-12-10 Chong Yidong + + * modes.texi (Font Lock Basics): Document nil value of + font-lock-defaults. + +2006-12-10 Glenn Morris + + * abbrevs.texi (Defining Abbrevs): Mention `define-abbrev' 'force + value for system-flag argument. Abbrev tables may not be empty + when major modes are loaded. + +2006-12-08 Juanma Barranquero + + * makefile.w32-in (maintainer-clean): Partially revert last + change; delete "elisp-?" and "elisp-??" instead of "elisp-*" + to protect elisp-covers.texi. + +2006-12-07 Juanma Barranquero + + * makefile.w32-in (maintainer-clean): Depend on `distclean'. + Don't remove elisp* info files; they are already deleted by the + `clean' and `distclean' targets, and they are in the $(infodir) + directory, not the current one. + +2006-12-04 Kim F. Storm + + * commands.texi (Misc Events): Update signal events. + (Event Examples): Add signal example. + +2006-11-29 Richard Stallman + + * frames.texi (Visibility of Frames): Explain visible windows + can be covered by others. Add xref for raise-frame. + +2006-11-28 Richard Stallman + + * searching.texi (Regexp Special): Update when ^ is special. + +2006-11-27 Eli Zaretskii + + * customize.texi (Customization, Common Keywords) + (Group Definitions, Variable Definitions, Composite Types) + (Type Keywords, Customization Types): Add index entries for + various customization keywords. + +2006-11-23 Stefan Monnier + + * modes.texi (Multiline Font Lock): Rephrase some parts for clarity. + +2006-11-10 Jan Dj,Ad(Brv + + * frames.texi (Window System Selections): Remove clipboard from + description of selection-coding-system. + +2006-11-06 Richard Stallman + + * lists.texi (List Variables): Document COMPARE-FN. + + * keymaps.texi: Avoid use of "binding" to mean a relation; + use it only to refer to the meaning associated with a key. + (Keymaps): Change menu node description. + + * elisp.texi (Top): Change menu node description. + + * display.texi (Managing Overlays): Document overlay-recenter. + +2006-10-29 Chong Yidong + + * Makefile.in: Use relative paths to avoid advertising filesystem + contents during compilation. + +2006-10-23 Kim F. Storm + + * commands.texi (Event Input Misc): Update unread-command-events. + +2006-10-23 Nick Roberts + + * lists.texi (Sets And Lists): Fix typos. + +2006-10-18 Juanma Barranquero + + * control.texi (Processing of Errors): Use @var for an argument, + not @code. + +2006-10-16 Richard Stallman + + * edebug.texi (Edebug Recursive Edit): Minor cleanup. + + * keymaps.texi (Format of Keymaps): Show all the keymap element + patterns that result from menu items. + (Key Lookup): Minor cleanups. + + * modes.texi (Precalculated Fontification): Don't say that + not setting font-lock-defaults avoids loading font-lock. + + * help.texi (Documentation): Move xref to Emacs Manual here. + (Documentation Basics): From here. + Also doc emacs-lisp-docstring-fill-column. + + * elisp.texi: Update version and ISBN. + + * commands.texi (Interactive Call): Clarify KEYS arg to + call-interactively is a vector. + (Command Loop Info): Delete anchor in this-command-keys. + Add anchor in this-command-keys-vector. + (Recursive Editing): Document how recursive-edit + handles the current buffer. + +2006-10-13 Chong Yidong + + * frames.texi (Frame Titles): %c and %l are ignored in + frame-title-format. + +2006-10-11 Richard Stallman + + * keymaps.texi (Key Sequences): Clarify use of kbd. + +2006-10-10 Kim F. Storm + + * lists.texi (Sets And Lists): Add memql. + +2006-10-03 Richard Stallman + + * searching.texi (Char Classes): Document :multibyte: and :unibyte:. + Clarify :ascii: and :nonascii:. + +2006-09-29 Juri Linkov + + * modes.texi (%-Constructs): Reorder coding systems in the + documentation of %z to the real order displayed in the modeline. + +2006-09-25 Richard Stallman + + * os.texi (Timers): Describe timer-max-repeats. + +2006-09-25 Chong Yidong + + * os.texi (Timers): Mention with-local-quit. + +2006-09-24 Richard Stallman + + * searching.texi (Searching and Matching): Mention property search. + + * commands.texi (Command Loop Info): Explain how read-event affects + this-command-keys. + +2006-09-20 Richard Stallman + + * os.texi (Timers): Clarify about REPEAT when timer is delayed. + + * windows.texi (Window Start): Minor cleanups. + +2006-09-20 Kim F. Storm + + * windows.texi (Window Start): pos-visible-in-window-p allows + specifying t for position to mean "end of window". + Add window-line-height. + + * anti.texi (Antinews): Mention window-line-height. + +2006-09-19 David Kastrup + + * keymaps.texi (Searching Keymaps): Small clarification. + +2006-09-18 Richard Stallman + + * keymaps.texi (Creating Keymaps): Explain that keymap prompt strings + cause keyboard menus. + (Menu Keymaps): Likewise. + (Defining Menus, Keyboard Menus): Clarify. + + * text.texi (Fields): Clarify explanation of constrain-to-field. + +2006-09-16 Eli Zaretskii + + * variables.texi (Tips for Defining): Fix a typo. + +2006-09-15 Richard Stallman + + * keymaps.texi (Remapping Commands, Searching Keymaps) + (Active Keymaps): Clean up previous change. + +2006-09-15 Jay Belanger + + * gpl.texi: Replace "Library Public License" by "Lesser Public + License" throughout. + +2006-09-15 David Kastrup + + * keymaps.texi (Active Keymaps): Adapt description to use + `get-char-property' instead `get-text-property'. Explain how + mouse events change this. Explain the new optional argument of + `key-binding' and its mouse-dependent lookup. + (Searching Keymaps): Adapt description similarly. + (Remapping Commands): Explain the new optional argument of + `command-remapping'. + +2006-09-14 Richard Stallman + + * keymaps.texi (Searching Keymaps): Clarification. + (Active Keymaps): Refer to Searching Keymaps instead of duplication. + +2006-09-13 Richard Stallman + + * objects.texi (Character Type): Node split. + Add xref to Describing Characters. + (Basic Char Syntax, General Escape Syntax) + (Ctl-Char Syntax, Meta-Char Syntax): New subnodes. + +2006-09-11 Richard Stallman + + * display.texi (Display Table Format): Wording clarification. + (Glyphs): Clarifications. + +2006-09-10 Chong Yidong + + * keymaps.texi (Active Keymaps): Mention that key-binding checks + local maps. + +2006-09-10 Kim F. Storm + + * display.texi (Forcing Redisplay): Document return value of + function redisplay. + +2006-09-09 Richard Stallman + + * windows.texi (Window Hooks): Explain limits of + window-scroll-functions. + + * display.texi (Fringe Indicators): Update for last change in + indicate-buffer-boundaries. + +2006-09-08 Richard Stallman + + * processes.texi (Bindat Spec): Suggest names ending in -bindat-spec. + +2006-09-06 Kim F. Storm + + * frames.texi (Display Feature Testing): display-mm-dimensions-alist. + + * windows.texi (Window Start): Update pos-visible-in-window-p. + +2006-09-04 Richard Stallman + + * processes.texi (Accepting Output): Explain SECONDS=0 for + accept-process-output. + + * os.texi (Idle Timers): Explain why timer functions should not + loop until (input-pending-p). + +2006-09-02 Eli Zaretskii + + * makefile.w32-in (usermanualdir): New variable. + (elisp.dvi): Use it. + +2006-09-01 Eli Zaretskii + + * buffers.texi (Buffer Modification): Fix last change. + +2006-09-01 Chong Yidong + + * buffers.texi (Buffer Modification): Document + buffer-chars-modified-tick. + +2006-08-31 Richard Stallman + + * modes.texi (Syntactic Font Lock): Mention specific faces once again. + +2006-08-31 Richard Bielawski (tiny change) + + * modes.texi (Syntactic Font Lock): + Mention font-lock-syntactic-face-function + instead of specific faces. + +2006-08-29 Chong Yidong + + * display.texi (Images): Add xrref to display-images-p. + +2006-08-28 Kenichi Handa + + * nonascii.texi (Lisp and Coding Systems): Fix description of + detect-coding-region. + +2006-08-27 Michael Olson + + * processes.texi (Transaction Queues): Remove stray quote + character. + +2006-08-25 Richard Stallman + + * os.texi (Idle Timers): run-with-idle-timer allows Lisp time value. + Add xref. + +2006-08-24 Chong Yidong + + * os.texi (Timers): Avoid waiting inside timers. + +2006-08-21 Lute Kamstra + + * Makefile.in: Use ../man/texinfo.tex to build elisp.dvi. + +2006-08-20 Richard Stallman + + * os.texi (Idle Timers): New node, split out from Timers. + Document current-idle-time. + * commands.texi (Reading One Event): Update xref. + * elisp.texi (Top): Update subnode menu. + +2006-08-16 Richard Stallman + + * keymaps.texi (Extended Menu Items): Show format of cached + bindings in extended menu items. + + * customize.texi (Variable Definitions): Explain when the + standard value expression is evaluated. + +2006-08-15 Chong Yidong + + * commands.texi (Reading One Event): Explain idleness in + `read-event'. + +2006-08-12 Chong Yidong + + * text.texi (Near Point): Say "cursor" not "terminal cursor". + (Commands for Insertion): Removed split-line since it's not + relevant for Lisp programming. + (Yank Commands): Rewrite introduction. + (Undo): Clarify. + (Maintaining Undo): Clarify. Document undo-ask-before-discard. + (Filling): Remove redundant comment. Clarify return value of + current-justification. + (Margins): Minor clarifications. + (Adaptive Fill): Update default value of adaptive-fill-regexp. + (Sorting): Update definition of sort-lines. + (Columns): Clarify behavior of sort-columns. + (Indent Tabs): Link to Tab Stops in Emacs manual. + (Special Properties): Clarify. + (Clickable Text): Mention Buttons package. + +2006-08-12 Kevin Ryde + + * os.texi (Time Parsing): Add %z to description of + format-time-string, as per docstring. Add cross reference to + glibc manual for strftime. + +2006-08-08 Richard Stallman + + * modes.texi: Clean up wording in previous change. + +2006-08-07 Chong Yidong + + * modes.texi (Hooks): Clarify. + (Major Mode Basics): Mention define-derived-mode explicitly. + (Major Mode Conventions): Rebinding RET is OK for some modes. + Mention change-major-mode-hook and after-change-major-mode-hook. + (Example Major Modes): Moved to end of Modes section. + (Mode Line Basics): Clarify. + (Mode Line Data): Mention help-echo and local-map in strings. + Explain reason for treatment of non-risky variables. + (Properties in Mode): Clarify. + (Faces for Font Lock): Add font-lock-negation-char-face. + +2006-08-04 Eli Zaretskii + + * strings.texi (Formatting Strings): Warn against arbitrary + strings as first arg to `format'. + +2006-07-31 Thien-Thi Nguyen + + * text.texi (Clickable Text): Mention `help-echo' text property. + Update intro, examples and associated explanations. + +2006-07-31 Richard Stallman + + * commands.texi: Update xrefs. + (Event Mod): New node, cut out from old Translating Input. + + * maps.texi: Update xrefs. + + * keymaps.texi (Translation Keymaps): New node. + Update xrefs from Translating Input to Translation Keymaps. + + * elisp.texi (Top): Update subnode menu. + + * display.texi (Face Functions): Fix explanations of FRAME=t or nil. + + * os.texi (System Interface): Fix menu descriptions of some nodes. + (Translating Input): Node deleted. + +2006-07-31 Nick Roberts + + * modes.texi (Minor Mode Conventions): Update xref for add-to-list. + + * lists.texi (Sets And Lists): Likewise. + +2006-07-30 Thien-Thi Nguyen + + * text.texi (Fields): Mention POS + requirement when narrowing is in effect. + +2006-07-28 Richard Stallman + + * display.texi (Face Attributes): Simplify wording. + (Attribute Functions): Clarify meaning of new-frame default + attribute settings. + + * customize.texi (Common Keywords): Document how to use + :package-version in a package not in Emacs. + +2006-07-28 Kim F. Storm + + * commands.texi (Reading One Event): Fix last change. + +2006-07-26 Chong Yidong + + * commands.texi (Reading One Event): Document SECONDS argument for + read-event, read-char, and read-char-exclusive. + +2006-07-25 Stefan Monnier + + * modes.texi (Multiline Font Lock): Can't use jit-lock-defer-multiline + to ensure correct identification. + +2006-07-24 Richard Stallman + + * text.texi (Clickable Text): Clarify. + + * sequences.texi (Vector Functions): Delete duplicate xref. + + * objects.texi (Function Type): Clarify. + + * modes.texi (Keymaps and Minor Modes): List punct chars for minor + modes. + + * lists.texi (List Variables): New node. + Material moved from other nodes. + + * variables.texi (Setting Variables): add-to-list and + add-to-ordered-list moved to List Variables node. + +2006-07-23 Thien-Thi Nguyen + + * text.texi (Links and Mouse-1): + For mouse-on-link-p, expand on arg POS. + +2006-07-21 Kim F. Storm + + * display.texi (Forcing Redisplay): Don't mention systems which + don't support sub-second timers for redisplay-preemption-period. + + * os.texi (Terminal Output): Clarify text vs graphical terminal. + +2006-07-21 Eli Zaretskii + + * frames.texi (Input Focus): Document that focus-follows-mouse has + no effect on MS-Windows. + +2006-07-18 Richard Stallman + + * display.texi (Forcing Redisplay): Cleanups in previous change. + + * processes.texi (Low-Level Network): Make menu more convenient. + +2006-07-18 Kim F. Storm + + * display.texi (Forcing Redisplay): redisplay-preemption-period + only used on window systems. Add xref to Terminal Output. + + * os.texi (Terminal Output): baud-rate only controls preemption on + non-window systems. Add xref to Forcing Redisplay. + + * processes.texi (Low-Level Network): Rename node "Make Network" + to "Network Processes". + +2006-07-18 Karl Berry + + * variables.texi, functions.texi, customize.texi, loading.texi: + * edebug.texi, minibuf.texi: Fix page breaks through chapter 20. + +2006-07-17 Chong Yidong + + * commands.texi (Waiting): Document batch-mode sit-for behavior. + +2006-07-17 Richard Stallman + + * eval.texi, elisp.texi, text.texi: Use real doublequote inside menus. + Put period and comma inside quotes. + + * loading.texi, markers.texi: Use real doublequote inside menus. + + * windows.texi: Put point and comma inside quotes. + (Textual Scrolling): Use @samp for error message. + + * variables.texi, tips.texi, syntax.texi, symbols.texi: + * strings.texi, streams.texi, processes.texi, os.texi: + * objects.texi, numbers.texi, modes.texi, minibuf.texi: + * lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi: + * gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi: + * display.texi, control.texi, commands.texi, buffers.texi, anti.texi: + Put point and comma inside quotes. + + * control.texi (Processing of Errors): Add command-error-function. + + * variables.texi (File Local Variables): Clarify that + file local variables make buffer-local bindings. + + * modes.texi (Syntactic Font Lock): Give default for + font-lock-syntax-table. + +2006-07-17 Nick Roberts + + * text.texi (Special Properties): Clean up previous change. + +2006-07-16 Karl Berry + + * objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi: + * control.texi: Fix bad page breaks through chapter 10 (control). + + * anti.texi (Antinews): Reorder face-attribute fns to avoid + underfull hbox. + +2006-07-15 Nick Roberts + + * text.texi (Special Properties): Describe fontified text property + in relation to a character (not text). + +2006-07-15 Kim F. Storm + + * maps.texi (Standard Keymaps): Add xref for minibuffer maps. + Add apropos-mode-map, custom-mode-map, esc-map, global-map, + grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map. + + * anti.texi (Antinews): Mention redisplay function. + The kbd macro existed, but was not documented, before 22.x. + Function pos-visible-in-window-p is not new in 22.x, just enhanced. + +2006-07-14 Nick Roberts + + * display.texi (Displaying Messages): Add anchor. + + * frames.texi (Dialog Boxes): Use it. + +2006-07-12 Richard Stallman + + * objects.texi (Frame Type): Explain nature of frames better. + + * frames.texi (Frames): Explain nature of frames better. + +2006-07-12 Ken Manheimer + + * tips.texi (Coding Conventions): Explain why use cl at compile time. + +2006-07-12 YAMAMOTO Mitsuharu + + * frames.texi (Window System Selections): Mention scrap support for Mac. + Default value of x-select-enable-clipboard is t on Mac. + + * os.texi (Getting Out): Suspending is not allowed on Mac, either. + +2006-07-11 Kim F. Storm + + * display.texi (Forcing Redisplay): Add `redisplay' function. + Don't mention (sit-for -1) -- use (redisplay t) instead. + + * commands.texi (Waiting): (sit-for -1) is no longer special. + (sit-for 0) is equivalent to (redisplay). + Iconifying/deiconifying no longer makes sit-for return. + +2006-07-10 Nick Roberts + + * display.texi (Buttons): Fix typo. + + * index.texi, elisp.texi (New Symbols): Comment node out. + +2006-07-09 Richard Stallman + + * display.texi (Truncation): Clean up previous change. + +2006-07-08 Richard Stallman + + * commands.texi (Interactive Call): Use 3 as prefix in example + for execute-extended-command. + + * display.texi (Attribute Functions): Move paragraph about + compatibility with Emacs < 21. + +2006-07-09 Kim F. Storm + + * display.texi (Refresh Screen): Clarify force-window-update. + (Truncation): "Normally" indicated by fringe arrows. + +2006-07-08 Eli Zaretskii + + * windows.texi (Textual Scrolling, Resizing Windows): + * variables.texi (Constant Variables): + * text.texi (Buffer Contents, Deletion, Changing Properties) + (Property Search, Special Properties, Sticky Properties) + (Links and Mouse-1, Fields, Change Hooks): + * syntax.texi (Syntax Table Functions, Parsing Expressions) + (Categories): + * symbols.texi (Other Plists): + * streams.texi (Output Variables): + * processes.texi (Input to Processes, Query Before Exit): + * positions.texi (Word Motion, Text Lines, List Motion): + * os.texi (Init File, System Environment, Sound Output) + (Session Management): + * nonascii.texi (Text Representations, Character Sets) + (Chars and Bytes, Locales): + * modes.texi (Defining Minor Modes, Header Lines): + * minibuf.texi (Minibuffer Contents): + * markers.texi (Information from Markers): + * lists.texi (List Elements, Building Lists, Association Lists): + * keymaps.texi (Tool Bar): + * hash.texi (Creating Hash, Hash Access, Defining Hash, Other Hash): + * functions.texi (What Is a Function, Mapping Functions): + * frames.texi (Creating Frames, Parameter Access, Pointer Shape) + (Color Names, Text Terminal Colors, Display Feature Testing): + * files.texi (Visiting Functions, File Name Components) + (Unique File Names, Contents of Directories): + * display.texi (Forcing Redisplay, Displaying Messages) + (Temporary Displays, Font Selection, Auto Faces) + (Font Lookup, Fringe Indicators, Display Margins) + (Image Descriptors, Showing Images, Image Cache, Button Types) + (Making Buttons, Manipulating Buttons, Button Buffer Commands) + (Display Table Format, Glyphs): + * control.texi (Iteration): + * commands.texi (Command Loop Info, Adjusting Point): + * backups.texi (Making Backups, Auto-Saving): + Remove @tindex entries. + +2006-07-07 Kim F. Storm + + * display.texi (Fringe Cursors): Fix typo. + (Customizing Bitmaps): Fix define-fringe-bitmap entry. + (Overlay Arrow): Default is overlay-arrow fringe indicator. + +2006-07-05 Richard Stallman + + * text.texi (Buffer Contents): Add example of text props + in result of buffer-substring. + (Text Properties): Explain better about use of specific property names. + (Property Search): Some cleanups; reorder some functions. + + * keymaps.texi (Changing Key Bindings): Cleanup. + Add xref to Key Binding Conventions. + + * display.texi (Attribute Functions): Add examples for + face-attribute-relative-p. + + * tips.texi (Coding Conventions): Cleanup last change. + +2006-07-05 Karl Berry + + * elisp.texi: Use @fonttextsize 10pt, a la emacs.texi. + Remove @setchapternewpage odd. + Result is 1013 pages, down from 1100. + + * anti.texi, customize.texi, display.texi, internals.texi: + * minibuf.texi, modes.texi, tips.texi: + Fix overfull/underfull boxes. + +2006-07-05 Thien-Thi Nguyen + + * edebug.texi (Instrumenting): + Add Edebug-specific findex for eval-buffer. + * loading.texi (Loading): + Replace eval-current-buffer with eval-buffer. + +2006-06-30 Nick Roberts + + * locals.texi (Standard Buffer-Local Variables): Update the list + of variables. + +2006-06-26 Nick Roberts + + * files.texi (File Name Completion): Point user to the node + "Reading File Names". + +2006-06-24 Eli Zaretskii + + * files.texi (Contents of Directories): Document case-insensitive + behavior on respective filesystems. + + * objects.texi (Character Type): Document that Emacs signals an + error for unsupported Unicode characters specified as \uNNNN. + +2006-06-19 Richard Stallman + + * processes.texi (Bindat Spec): Clarify previous change. + +2006-06-16 Richard Stallman + + * tips.texi (Coding Conventions): Better explain conventions + for definition constructs. + + * text.texi (Special Properties): String value of `read-only' + serves as the error message. + + * objects.texi (Character Type): Clarify prev. change. + (Non-ASCII in Strings): Mention \u and \U. + + * commands.texi (Using Interactive): Explain problem of + markers, etc., in command-history. + +2006-06-14 Kim F. Storm + + * commands.texi (Waiting): Negative arg to sit-for forces + redisplay even if input is pending. + + * display.texi (Forcing Redisplay): Use (sit-for -1) to force a + redisplay. Remove incorrect example of binding redisplay-dont-pause + around (sit-for 0). + +2006-06-13 Richard Stallman + + * display.texi (Forcing Redisplay): Clarify previous change. + +2006-06-13 Romain Francoise + + * display.texi (Forcing Redisplay): Fix typo. + +2006-06-13 Kim F. Storm + + * display.texi (Forcing Redisplay): Add redisplay-preemption-period. + +2006-06-10 Luc Teirlinck + + * tips.texi (Coding Conventions): Add `@end itemize'. + +2006-06-10 Richard Stallman + + * tips.texi (Coding Conventions): Explain use of coding systems + to ensure one decoding for strings. + +2006-06-09 Aidan Kehoe + + * objects.texi (Character Type): Describe the \uABCD and \U00ABCDEF + syntax. + +2006-06-07 Eli Zaretskii + + * display.texi (Font Selection): Remove description of + clear-face-cache. + + * compile.texi (Eval During Compile): Fix a typo. Add index + entries for possible uses of eval-when-compile. + +2006-06-04 Thien-Thi Nguyen + + * display.texi (Abstract Display): Fix typo. + +2006-06-03 Eli Zaretskii + + * minibuf.texi (Minibuffer History) : + Reword variable's description. + +2006-06-01 Richard Stallman + + * windows.texi (Splitting Windows): Clarify splitting nonselected + window. + +2006-05-31 Juri Linkov + + * minibuf.texi (Minibuffer History): Add history-add-new-input. + +2006-05-30 Richard Stallman + + * display.texi (Line Height): Fix errors in description of + default line height and line-height properyty. + + * nonascii.texi (Default Coding Systems): Further clarification. + +2006-05-29 Luc Teirlinck + + * internals.texi (Pure Storage): Mention that an overflow in pure + space causes a memory leak. + (Garbage Collection): If there was an overflow in pure space, + `garbage-collect' returns nil. + +2006-05-30 Eli Zaretskii + + * nonascii.texi (Default Coding Systems): Fix it some more. + +2006-05-29 Eli Zaretskii + + * nonascii.texi (Default Coding Systems): Fix last change. + +2006-05-29 Kenichi Handa + + * nonascii.texi (find-operation-coding-system): Describe the new + argument format (FILENAME . BUFFER). + +2006-05-28 Richard Stallman + + * tips.texi (Coding Conventions): Better explain reasons not to + advise other packages or use `eval-after-load'. + +2006-05-29 Kim F. Storm + + * processes.texi (Bindat Functions): Rename `pos' and `raw-data' to + `bindat-idx' and `bindat-raw' for clarity. + +2006-05-27 Thien-Thi Nguyen + + * processes.texi (Bindat Spec): Expand on `repeat' handler. + + * display.texi (Display): Add "Abstract Display" to menu. + (Abstract Display, Abstract Display Functions) + (Abstract Display Example): New nodes. + * elisp.texi (Top): Add "Abstract Display" to menu. + +2006-05-27 Chong Yidong + + * keymaps.texi (Key Sequences): Link to input events definition. + (Format of Keymaps): Delete material duplicated in Keymap Basics. + + * files.texi (Changing Files): Document updated argument list for + copy-file. + +2006-05-27 Thien-Thi Nguyen + + * processes.texi (Bindat Functions): Explain term "total length". + Use it in bindat-length and bindat-pack descriptions. + +2006-05-26 Eli Zaretskii + + * tips.texi (Coding Conventions): Advise against using + eval-after-load in packages. Add an index entry. + +2006-05-25 Juri Linkov + + * minibuf.texi (Text from Minibuffer): Undocument keep-all. + + * modes.texi (%-Constructs): Add %e, %z, %Z. + +2006-05-25 Richard Stallman + + * elisp.texi (Top): Update subnode menu. + + * keymaps.texi (Keymap Basics): New node, split out of Key Sequences. + (Keymaps): Update menu. + +2006-05-25 Chong Yidong + + * keymaps.texi (Key Sequences): Some clarifications. + +2006-05-25 Thien-Thi Nguyen + + * processes.texi (Bindat Functions): Say "unibyte string" + explicitly for bindat-unpack and bindat-pack descriptions. + (Bindat Examples): Don't call `string-make-unibyte' in example. + +2006-05-25 Chong Yidong + + * keymaps.texi (Key Sequences): Renamed from Keymap Terminology. + Explain string and vector representations of key sequences + + * keymaps.texi (Changing Key Bindings): + * commands.texi (Interactive Codes): + * help.texi (Describing Characters): Refer to it. + +2006-05-23 Luc Teirlinck + + * frames.texi (Pointer Shape): @end table -> @end defvar. + +2006-05-22 Richard Stallman + + * elisp.texi (Top): Update subnode menus. + + * frames.texi (Pointer Shape): Node renamed from Pointer Shapes. + Contents rewritten; material from old Pointer Shape node moved here. + + * display.texi (Pointer Shape): Node deleted. + (Image Descriptors): Minor cleanup. + +2006-05-21 Richard Stallman + + * syntax.texi (Parsing Expressions): Update info on which STATE + elements are ignored. + +2006-05-19 Luc Teirlinck + + * hooks.texi (Standard Hooks): Correct typo. + + * gpl.texi (GPL): ifinfo -> ifnottex. + +2006-05-19 Michael Ernst (tiny change) + + * searching.texi (Simple Match Data): Warn about match data being + set anew by every search. + +2006-05-17 Richard Stallman + + * minibuf.texi (Minibuffer History): Clarify. + + * searching.texi (Regexp Special): Clarify nested regexp warning. + +2006-05-16 Kim F. Storm + + * minibuf.texi (Minibuffer History): Update add-to-history. + +2006-05-15 Oliver Scholz (tiny change) + + * nonascii.texi (Explicit Encoding): Fix + typo (encoding<->decoding). + +2006-05-14 Richard Stallman + + * buffers.texi (Creating Buffers): Cleanup. + + * files.texi (Visiting Functions): Rewrite in find-file-noselect. + +2006-05-13 Eli Zaretskii + + * buffers.texi (Current Buffer): Document that with-temp-buffer + disables undo. + + * os.texi (Terminal-Specific): More accurate description of how + Emacs searches for the terminal-specific libraries. + +2006-05-12 Eli Zaretskii + + * hooks.texi (Standard Hooks) [iftex]: Convert @xref's to + emacs-xtra to @inforef's. + + * text.texi (Undo): Document that undo is turned off in buffers + whose names begin with a space. + + * buffers.texi (Buffer Names): Add index entries for buffers whose + names begin with a space. + (Creating Buffers): Document that undo is turned off in buffers + whose names begin with a space. + + * files.texi (Visiting Functions, Reading from Files) + (Saving Buffers): Mention code and EOL conversions by file I/O + primitives and subroutines. + + * nonascii.texi (Lisp and Coding Systems): Document + coding-system-eol-type. Add index entries for eol conversion. + + * display.texi (Defining Faces): Mention `mac', and add an xref to + where window-system is described. + +2006-05-10 Richard Stallman + + * internals.texi (Writing Emacs Primitives): Clarify GCPRO rules. + +2006-05-10 Reiner Steib + + * variables.texi (File Local Variables): Recommend to quote lambda + expressions in safe-local-variable property. + +2006-05-09 Richard Stallman + + * variables.texi (File Local Variables): Document + safe-local-eval-forms and safe-local-eval-function. + +2006-05-07 Kim F. Storm + + * minibuf.texi (Minibuffer History): Remove keep-dups arg + from add-to-history. + +2006-05-07 Romain Francoise + + * commands.texi (Event Input Misc): + * compile.texi (Eval During Compile): + * internals.texi (Buffer Internals): + * minibuf.texi (Initial Input): + * nonascii.texi (Scanning Charsets): + * numbers.texi (Comparison of Numbers): + * windows.texi (Textual Scrolling, Vertical Scrolling): + Fix various typos. + +2006-05-06 Eli Zaretskii + + * hooks.texi (Standard Hooks): Replace inforef to emacs-xtra by + conditional xref's to either emacs or emacs-xtra, depending on + @iftex/@ifnottex. + + * minibuf.texi (Minibuffer History): Document add-to-history. + +2006-05-05 Eli Zaretskii + + * internals.texi (Pure Storage): Mention the pure overflow message + at startup. + +2006-05-05 Johan Bockg,Ae(Brd + + * keymaps.texi (Active Keymaps): Fix pseudo-Lisp syntax. + (Searching Keymaps): Fix pseudo-Lisp description of keymap + search. + +2006-05-01 Richard Stallman + + * intro.texi (nil and t): Clarify. + + * variables.texi (File Local Variables): Suggest using booleanp. + +2006-05-01 Juanma Barranquero + + * objects.texi (Type Predicates): Fix typos. + +2006-05-01 Stefan Monnier + + * intro.texi (nil and t): Add booleanp. + + * objects.texi (Type Predicates): Add links for booleanp and + string-or-null-p. + +2006-04-29 Richard Stallman + + * modes.texi (Multiline Font Lock): Rename from + Multi line Font Lock Elements. Much clarification. + (Font Lock Multiline, Region to Fontify): Much clarification. + +2006-04-29 Stefan Monnier + + * variables.texi (File Local Variables): Remove the special case t for + safe-local-variable. + +2006-04-26 Richard Stallman + + * syntax.texi (Parsing Expressions): Minor cleanup. + +2006-04-18 Richard Stallman + + * tips.texi (Coding Conventions): Explain when the package's + prefix should appear later on (not at the start of the name). + + * searching.texi (String Search): Clarify effect of NOERROR. + + * modes.texi (Imenu): Clarify what special items do. + + * hooks.texi (Standard Hooks): Delete text about old hook names. + +2006-04-17 Romain Francoise + + * variables.texi (Local Variables): Update the default value of + `max-specpdl-size'. + +2006-04-15 Michael Olson + + * processes.texi (Transaction Queues): Mention the new optional + `delay-question' argument for `tq-enqueue'. + +2006-04-13 Bill Wohler + + * customize.texi (Common Keywords): Use dotted notation for + :package-version value. Specify its values. Improve documentation + for customize-package-emacs-version-alist. + +2006-04-12 Bill Wohler + + * customize.texi (Common Keywords): Move description of + customize-package-emacs-version-alist to @defvar. + +2006-04-10 Bill Wohler + + * customize.texi (Common Keywords): Add :package-version. + +2006-04-10 Kim F. Storm + + * text.texi (Buffer Contents): Add NOPROPS arg to + filter-buffer-substring. + +2006-04-08 Kevin Ryde + + * os.texi (Command-Line Arguments): Update xref to emacs manual + "Command Arguments" -> "Emacs Invocation", per change there. + +2006-04-08 Thien-Thi Nguyen + + * display.texi (Other Display Specs): Arrange a @code{DOTTED-LIST} to + be on one line to help makeinfo not render two spaces after the dot. + +2006-04-07 Reiner Steib + + * strings.texi (Predicates for Strings): Add string-or-null-p. + +2006-03-28 Kim F. Storm + + * processes.texi (Accepting Output): Remove obsolete (and incorrect) + remarks about systems that don't support fractional seconds. + +2006-03-25 Karl Berry + + * elisp.texi: Use @copyright{} instead of (C), and do not indent + the year list. + +2006-03-21 Nick Roberts + + * display.texi (Fringe Indicators): Fix typos. + +2006-03-19 Luc Teirlinck + + * tips.texi (Documentation Tips): One can now also write `program' + in front of a quoted symbol in a docstring to prevent making a + hyperlink. + +2006-03-19 Alan Mackenzie + + * text.texi (Special Properties): Clarify `fontified' property. + +2006-03-16 Richard Stallman + + * display.texi (Defining Images): Minor cleanup. + +2006-03-16 Bill Wohler + + * display.texi (Defining Images): In image-load-path-for-library, + prefer user's images. + +2006-03-15 Stefan Monnier + + * modes.texi (Region to Fontify): Remove font-lock-lines-before. + +2006-03-15 Bill Wohler + + * display.texi (Defining Images): Fix example in + image-load-path-for-library by not recommending that one binds + image-load-path. Just defvar it to placate compiler and only use + it if previously defined. + +2006-03-14 Bill Wohler + + * display.texi (Defining Images): In image-load-path-for-library, + always return list of directories. Update example. + +2006-03-14 Alan Mackenzie + + * modes.texi: New node, "Region to Fontify" (for Font Lock). + This describes font-lock-extend-region-function. + ("Other Font Lock Variables"): Move "font-lock-lines-before" to + the new node "Region to Fontify". + +2006-03-13 Richard Stallman + + * display.texi (Invisible Text): The impossible position is + now before the invisible text, not after. + (Defining Images): Clean up last change. + +2006-03-11 Bill Wohler + + * display.texi (Defining Images): Add image-load-path-for-library. + +2006-03-11 Luc Teirlinck + + * text.texi (Adaptive Fill): Fix Texinfo usage. + + * strings.texi (Creating Strings): Fix Texinfo usage. + + * searching.texi (Regexp Special): Use @samp for regular + expressions that are not in Lisp syntax. + +2006-03-08 Luc Teirlinck + + * searching.texi (Regexp Special): Put remark between parentheses + to avoid misreading. + +2006-03-07 Luc Teirlinck + + * searching.texi (Syntax of Regexps): More accurately describe + which characters are special in which situations. + (Regexp Special): Recommend _not_ to quote `]' or `-' when they + are not special. Describe in detail when `[' and `]' are special. + (Regexp Backslash): Plenty of regexps with unbalanced square + brackets are valid, so reword that statement. + +2006-03-02 Kim F. Storm + + * keymaps.texi (Tool Bar): Add tool-bar-border. + +2006-02-28 Luc Teirlinck + + * loading.texi (Load Suffixes): Rephrase last paragraph. Fix typos. + +2006-02-27 Luc Teirlinck + + * elisp.texi (Top): Include "Load Suffixes" in the detailed menu. + + * files.texi (Locating Files): Suggest additional values for the + SUFFIXES arg of `locate-file'. Update pxref. + + * loading.texi (Loading): Include new node "Load Suffixes" in menu. + (How Programs Do Loading): Discuss the effects of Auto Compression + mode on `load'. + (Load Suffixes): New node. + (Library Search): Delete description of `load-suffixes'; it was + moved to "Load Suffixes". + (Autoload, Named Features): Mention `load-suffixes'. + +2006-02-21 Giorgos Keramidas (tiny change) + + * display.texi (Fringe Indicators, Fringe Cursors): Fix typos. + + * windows.texi (Window Tree): Fix typo. + +2006-02-20 Kim F. Storm + + * display.texi (Fringe Indicators): New section. + Move indicate-empty-lines, indicate-buffer-boundaries, and + default-indicate-buffer-boundaries here. + Add fringe-indicator-alist and default-fringes-indicator-alist. + Add list of logical fringe indicator symbols. + Update list of standard bitmap names. + (Fringe Cursors): New section. + Move overflow-newline-into-fringe here. + Add fringe-cursor-alist and default-fringes-cursor-alist. + Add list of fringe cursor symbols. + +2006-02-20 Juanma Barranquero + + * commands.texi (Using Interactive): Fix reference to node + "Minibuffers". + +2006-02-19 Richard M. Stallman + + * minibuf.texi (High-Level Completion): + Add xref to read-input-method-name. + + * files.texi (Relative File Names): Move file-relative-name here. + (File Name Expansion): From here. Minor clarifications. + + * commands.texi (Using Interactive): Add xrefs about reading input. + Clarify remarks about that moving point and mark. + Put string case before list case. + +2006-02-16 Johan Bockg,Ae(Brd + + * display.texi (Other Display Specs, Image Descriptors): + Revert erroneous changes. The previous description of + image-descriptors as `(image . PROPS)' was correct. + +2006-02-14 Richard M. Stallman + + * variables.texi (File Local Variables): Clarifications. + +2006-02-14 Juanma Barranquero + + * variables.texi (File Local Variables): Use @code for a cons + cell, not @var. + +2006-02-13 Chong Yidong + + * variables.texi (File Local Variables): Document new file local + variable behavior. + +2006-02-10 Kim F. Storm + + * eval.texi (Function Indirection): Add NOERROR to indirect-function. + +2006-02-08 Juanma Barranquero + + * modes.texi (%-Constructs): Remove obsolete info about + `global-mode-string'. + +2006-02-07 Richard M. Stallman + + * commands.texi (Prefix Command Arguments): Minor cleanup. + + * display.texi: "Graphical display", not window system. + + * functions.texi (What Is a Function): Fix xref. + + * keymaps.texi (Key Lookup): Clarify wrt commands vs other functions. + (Changing Key Bindings): Clarify when remapping is better than + substitute-key-definition. + +2006-02-02 Richard M. Stallman + + * minibuf.texi (Basic Completion): Completion alists are risky. + + * keymaps.texi (Active Keymaps): Clarifications. + (Searching Keymaps): New node. + (Keymaps): Update menu. + + * frames.texi (Layout Parameters): Minor clarification. + (Drag and Drop): New node. + (Frames): Update menu. + +2006-01-29 Chong Yidong + + * display.texi (Other Display Specs, Image Descriptors): + Image description is a list, not a cons cell. + +2006-01-28 Luc Teirlinck + + * lists.texi (Cons Cells): Minor correction (the cdr of a dotted + list is not necessarily a list). + +2006-01-27 Eli Zaretskii + + * frames.texi (Layout Parameters): border-width and + internal-border-width belong to the frame, not the window. + +2006-01-19 Richard M. Stallman + + * nonascii.texi (Translation of Characters): Search cmds use + translation-table-for-input. Automatically made local. + + * markers.texi (Overview of Markers): Count insertion type + as one of a marker's attributes. + + * keymaps.texi (Controlling Active Maps): New node, split out of + Active Keymaps. + (Keymaps): Menu updated. + (Active Keymaps): Give pseudocode to explain how the active + maps are searched. current-active-maps and key-binding moved here. + (Functions for Key Lookup): current-active-maps and key-binding moved. + Clarifications. + (Searching the Keymaps): New subnode. + + * elisp.texi (Top): Menu clarification. + + * display.texi (Other Display Specs): Delete duplicate entry for + just a string as display spec. Move text about recursive display + specs on such a string. + + * commands.texi (Key Sequence Input): Clarify. + Move num-nonmacro-input-events out. + (Reading One Event): num-nonmacro-input-events moved here. + +2006-01-14 Nick Roberts + + * advice.texi (Simple Advice): Update example to fit argument + change in previous-line. + +2006-01-05 Richard M. Stallman + + * markers.texi (The Mark): Fix in `mark'. + +2006-01-04 Richard M. Stallman + + * processes.texi (Misc Network, Make Network): Minor cleanups. + +2006-01-04 Kim F. Storm + + * processes.texi (Make Network): Add IPv6 addresses and handling. + (Network Feature Testing): Mention (:family ipv6). + (Misc Network): Add IPv6 formats to format-network-address. + +2005-12-30 Richard M. Stallman + + * text.texi (Changing Properties): + Don't use return value of set-text-properties. + +2005-12-29 Luc Teirlinck + + * modes.texi (Mode Line Format): Correct typo in menu. + +2005-12-29 Richard M. Stallman + + * modes.texi (Mode Line Top): New node. + (Mode Line Data): Some text moved to new node. + Explain the data structure more concretely. + (Mode Line Basics): Clarifications. + (Mode Line Variables): Clarify intro paragraph. + (%-Constructs): Clarify intro paragraph. + (Mode Line Format): Update menu. + +2005-12-28 Luc Teirlinck + + * minibuf.texi (Basic Completion): Update lazy-completion-table + examples for removal of ARGS argument. + +2005-12-23 Richard M. Stallman + + * text.texi (Undo): Restore some explanation from the version + that was deleted. + +2005-12-23 Eli Zaretskii + + * text.texi (Undo): Remove duplicate descriptions of `apply + funname' and `apply delta' elements of the undo list. + +2005-12-20 Richard M. Stallman + + * help.texi (Help Functions): Update documentation of `apropos'. + +2005-12-20 Luc Teirlinck + + * customize.texi (Type Keywords): Delete xref to "Text help-echo", + because it is confusing. If the :help-echo keyword is a function, + it is not directly used as the :help-echo overlay property, as the + xref seems to suggest (it does not take the appropriate args). + +2005-12-19 Luc Teirlinck + + * customize.texi (Common Keywords): Fix Texinfo usage. + (Group Definitions, Variable Definitions): Update for new + conventions for using `*' in docstrings. + + * tips.texi (Documentation Tips): Update for new conventions for + using `*' in docstrings. + +2005-12-16 Richard M. Stallman + + * minibuf.texi (Minibuffer Contents): Minor cleanup. + +2005-12-16 Juri Linkov + + * minibuf.texi (Minibuffer Contents): Add minibuffer-completion-contents. + +2005-12-14 Romain Francoise + + * modes.texi (Customizing Keywords): Rename `append' to `how'. + Fix typo. + +2005-12-11 Juri Linkov + + * minibuf.texi (Completion Commands): Add mention of read-file-name + for filename completion keymaps. + (Reading File Names): Add mention of filename completion keymaps + for read-file-name and xref to `Completion Commands'. + +2005-12-10 Richard M. Stallman + + * customize.texi (Common Keywords): State caveats for use of :tag. + +2005-12-08 Richard M. Stallman + + * minibuf.texi (Intro to Minibuffers): Replace list of local maps + with xrefs and better explanation. + (Completion Commands): Add the filename completion maps. + + * objects.texi (Character Type): Clarify that \s is not space + if a dash follows. + +2005-12-05 Richard M. Stallman + + * windows.texi (Resizing Windows): Delete preserve-before args. + +2005-12-05 Stefan Monnier + + * keymaps.texi (Format of Keymaps): Remove mention of a quirk + in full keymaps, since the quirk has been fixed. + +2005-12-03 Eli Zaretskii + + * hooks.texi (Standard Hooks): Add index entries. Mention + `compilation-finish-functions'. + +2005-11-27 Richard M. Stallman + + * windows.texi (Resizing Windows): Add adjust-window-trailing-edge. + +2005-11-21 Juri Linkov + + * customize.texi (Common Keywords): Update links types + custom-manual and url-link. Add link types emacs-library-link, + file-link, function-link, variable-link, custom-group-link. + +2005-11-20 Chong Yidong + + * display.texi: Revert 2005-11-20 change. + +2005-11-20 Thien-Thi Nguyen + + * processes.texi (Bindat Functions): + Say "third" to refer to zero-based index "2". + +2005-11-18 Luc Teirlinck + + * loading.texi (Library Search): Update the default value of + `load-suffixes'. + +2005-11-17 Chong Yidong + + * display.texi (Attribute Functions): Mention :ignore-defface. + +2005-11-16 Stefan Monnier + + * modes.texi (Minor Mode Conventions): Use custom-set-minor-mode. + (Minor Mode Conventions): Mention the use of a hook. + +2005-11-06 Richard M. Stallman + + * files.texi (Magic File Names): find-file-name-handler checks the + `operations' property of the handler. + +2005-11-03 Richard M. Stallman + + * variables.texi (Frame-Local Variables): Small clarification. + +2005-10-29 Chong Yidong + + * os.texi (Init File): Document ~/.emacs.d/init.el. + +2005-10-29 Richard M. Stallman + + * internals.texi (Garbage Collection): Document memory-full. + +2005-10-28 Bill Wohler + + * tips.texi (Documentation Tips): Help mode now creates hyperlinks + for URLs. + +2005-10-28 Richard M. Stallman + + * minibuf.texi (Completion Commands): Clean up prev change. + +2005-10-26 Kevin Ryde + + * compile.texi (Eval During Compile): Explain recommended uses + of eval-when-compile and eval-and-compile. + +2005-10-27 Masatake YAMATO + + * minibuf.texi (Completion Commands): + Write about new optional argument for `display-completion-list'. + +2005-10-23 Richard M. Stallman + + * display.texi (Overlay Arrow): Clarify about local bindings of + overlay-arrow-position. + +2005-10-22 Eli Zaretskii + + * internals.texi (Building Emacs): Fix last change. + +2005-10-22 Richard M. Stallman + + * internals.texi (Building Emacs): Document eval-at-startup. + +2005-10-21 Richard M. Stallman + + * loading.texi (Where Defined): load-history contains abs file names. + symbol-file returns abs file names. + +2005-10-19 Kim F. Storm + + * display.texi (Showing Images): Add max-image-size integer value. + +2005-10-18 Chong Yidong + + * display.texi (Showing Images): Document max-image-size. + +2005-10-17 Richard M. Stallman + + * commands.texi (Quitting): Minor clarification. + + * processes.texi (Sentinels): Clarify about output and quitting. + (Filter Functions): Mention with-local-quit. + +2005-10-17 Juri Linkov + + * buffers.texi (Current Buffer): + * commands.texi (Event Input Misc): + * compile.texi (Eval During Compile, Compiler Errors): + * customize.texi (Group Definitions): + * display.texi (Progress, Defining Faces): + * files.texi (Writing to Files): + * modes.texi (Mode Hooks, Defining Minor Modes): + * streams.texi (Output Functions): + * syntax.texi (Syntax Table Functions): + * text.texi (Change Hooks): + Replace `...' with `@dots{}' in `@defmac' and `@defspec'. + + * commands.texi (Quitting): Replace arg `forms' with `body' in + `with-local-quit'. + + * positions.texi (Excursions): Replace arg `forms' with `body' in + `save-excursion'. + +2005-10-08 Kim F. Storm + + * windows.texi (Window Tree): Rename window-split-tree to window-tree. + Rename manual section accordingly. + +2005-10-04 Kim F. Storm + + * windows.texi (Window Split Tree): New section describing + new function window-split-tree function. + +2005-10-03 Nick Roberts + + * display.texi (Fringe Size/Pos): Simplify and add detail. + +2005-09-30 Romain Francoise + + * minibuf.texi (High-Level Completion): Explain that the prompt + given to `read-buffer' should end with a colon and a space. + Update usage examples. + +2005-09-29 Juri Linkov + + * display.texi (Displaying Messages): Rename argument name + `string' to `format-string' in functions `message', `message-box', + `message-or-box'. + +2005-09-26 Chong Yidong + + * errors.texi (Standard Errors): Correct xrefs. + +2005-09-18 Chong Yidong + + * display.texi (Defining Images): Update documentation for + `image-load-path'. + +2005-09-17 Richard M. Stallman + + * display.texi (Defining Images): Clean up previous change. + +2005-09-16 Romain Francoise + + * elisp.texi: Specify GFDL version 1.2. + + * doclicense.texi (GNU Free Documentation License): Update to + version 1.2. + +2005-09-15 Chong Yidong + + * display.texi (Defining Images): Document `image-load-path'. + +2005-09-15 Richard M. Stallman + + * objects.texi (Printed Representation): Minor cleanup. + (Box Diagrams): Minor fix. + (Cons Cell Type): Move (...) index item here. + (Box Diagrams): From here. + (Array Type): Minor fix. + (Type Predicates): Delete index "predicates". + (Hash Table Type): Clarify xref. + (Dotted Pair Notation): Minor fix. + +2005-09-10 Chong Yidong + + * files.texi (Saving Buffers): Fix typo. + +2005-09-08 Richard M. Stallman + + * tips.texi (Programming Tips): Correct the "default" prompt spec. + +2005-09-08 Chong Yidong + + * locals.texi (Standard Buffer-Local Variables): Don't include + mode variables for minor modes. + Fix xrefs for buffer-display-count, buffer-display-table, + buffer-offer-save, buffer-saved-size, cache-long-line-scans, + enable-multibyte-characters, fill-column, header-line-format, + left-fringe-width, left-margin, and right-fringe-width. + + * hooks.texi (Standard Hooks): All hooks should conform to the + standard naming convention now. + Fix xref for `echo-area-clear-hook'. + + * display.texi (Usual Display): Note that indicate-empty-lines and + tab-width are buffer-local. + + * files.texi (Saving Buffers): Add xref to `Killing Buffers'. + + * modes.texi (Mode Help): Note that major-mode is buffer-local. + + * nonascii.texi (Encoding and I/O): Note that + buffer-file-coding-system is buffer-local. + + * positions.texi (List Motion): Note that defun-prompt-regexp is + buffer-local. + + * text.texi (Auto Filling): Note that auto-fill-function is + buffer-local. + (Undo): Note that buffer-undo-list is buffer-local. + + * windows.texi (Buffers and Windows): Document + buffer-display-count. + +2005-09-06 Richard M. Stallman + + * tips.texi (Coding Conventions): Sometimes it is ok to put the + package prefix elsewhere than at the start of the name. + +2005-09-03 Richard M. Stallman + + * tips.texi (Programming Tips): Add conventions for minibuffer + questions and prompts. + +2005-09-03 Joshua Varner (tiny change) + + * intro.texi (nil and t): Minor cleanup. + Delete spurious mention of keyword symbols. + (Evaluation Notation): Add index entry. + (A Sample Function Description): Minor cleanup. + (A Sample Variable Description): Not all vars can be set. + +2005-09-03 Thien-Thi Nguyen + + * text.texi (Buffer Contents): Use "\n" in examples' result strings. + + (Insertion): Document precise type of `insert-char' arg COUNT. + +2005-09-02 Stefan Monnier + + * modes.texi (Other Font Lock Variables): Sync the default of + font-lock-lines-before. + +2005-08-31 Michael Albinus + + * files.texi (Magic File Names): Add `make-auto-save-file-name'. + +2005-08-29 Richard M. Stallman + + * elisp.texi (Top): Update subnode menu. + + * searching.texi (Searching and Matching): Move node. + Rearrange contents and add overall explanation. + (Searching and Case): Move node. + (Searching and Matching): Update menu. + +2005-08-27 Eli Zaretskii + + * os.texi (Startup Summary): Fix the description of the initial + startup message display. + +2005-08-25 Richard M. Stallman + + * searching.texi (Search and Replace): Add replace-regexp-in-string. + +2005-08-25 Emilio C. Lopes + + * display.texi (Finding Overlays): Fix `find-overlay-prop' in + `next-overlay-change' example. + +2005-08-22 Juri Linkov + + * display.texi (Attribute Functions): Add set-face-inverse-video-p. + Fix invert-face. Fix args of face-background. + + * display.texi (Standard Faces): Delete node. + (Faces): Add xref to `(emacs)Standard Faces'. + (Displaying Faces): Fix xref to `Standard Faces'. + + * modes.texi (Mode Line Data): Fix xref to Standard Faces. + +2005-08-20 Alan Mackenzie + + * buffers.texi (The Buffer List): Clarify the manipulation of the + buffer list. + +2005-08-14 Richard M. Stallman + + * modes.texi (Auto Major Mode): interpreter-mode-alist key is not + a regexp. + +2005-08-11 Richard M. Stallman + + * elisp.texi (Top): Update subnode lists. + + * display.texi (Inverse Video): Node deleted. + + * tips.texi (Key Binding Conventions, Programming Tips, Warning Tips): + New nodes split out of Coding Conventions. + + * searching.texi (Regular Expressions): Document re-builder. + + * os.texi (Time Parsing): New node split out of Time Conversion. + + * processes.texi (Misc Network, Network Feature Testing) + (Network Options, Make Network): New nodes split out of + Low-Level Network. + +2005-08-09 Richard M. Stallman + + * frames.texi (Geometry): New node, split from Size and Position. + (Frame Parameters): Refer to Geometry. + + * buffers.texi (The Buffer List): Fix xrefs. + + * windows.texi (Splitting Windows): Fix xref. + + * frames.texi (Layout Parameters): Add xref. + + * display.texi (Line Height, Scroll Bars): Fix xrefs. + + * keymaps.texi (Menu Bar): Fix xref. + + * locals.texi (Standard Buffer-Local Variables): Fix xref. + + * modes.texi (%-Constructs): Fix xref. + + * frames.texi (Window Frame Parameters): Node split up. + (Basic Parameters, Position Parameters, Size Parameters) + (Layout Parameters, Buffer Parameters, Management Parameters) + (Cursor Parameters, Color Parameters): New subnodes. + +2005-08-09 Luc Teirlinck + + * positions.texi (Screen Lines): Update xref for previous change + in minibuf.texi. + + * minibuf.texi (Intro to Minibuffers): Update pxref for previous + change in minibuf.texi. + +2005-08-09 Richard M. Stallman + + * tips.texi (Coding Conventions): Minor cleanup. + + * modes.texi (Defining Minor Modes): Explain when init-value + can be non-nil. + + * elisp.texi (Top): Update submenu for Minibuffer. + + * minibuf.texi (Minibuffer Misc): Node split up. + (Minibuffer Commands, Minibuffer Windows, Minibuffer Contents) + (Recursive Mini): New nodes split out from Minibuffer Misc. + (Minibuffer Misc): Document max-mini-window-height. + + * hash.texi (Defining Hash): Delete stray paren in example. + + * display.texi (Echo Area Customization): Don't define + max-mini-window-height here; xref instead. + + * commands.texi (Event Input Misc): Update while-no-input. + + * advice.texi (Advising Functions): Explain when to use advice + and when to use a hook. + +2005-07-30 Eli Zaretskii + + * makefile.w32-in (info): Don't run install-info. + ($(infodir)/dir): New target, produced by running install-info. + +2005-07-27 Luc Teirlinck + + * modes.texi (Defining Minor Modes): The keyword for the initial + value is :init-value, not :initial-value. + +2005-07-23 Eli Zaretskii + + * loading.texi (Autoload): Make the `doctor' example be consistent + with what's in current loaddefs.el. Describe the "fn" magic in + the usage portion of the doc string. + +2005-07-22 Richard M. Stallman + + * internals.texi (Garbage Collection): Clarify previous change. + +2005-07-21 Stefan Monnier + + * internals.texi (Garbage Collection): Add gc-cons-percentage. + +2005-07-18 Juri Linkov + + * commands.texi (Accessing Events): + * frames.texi (Text Terminal Colors, Resources): + * markers.texi (The Mark): + * modes.texi (Defining Minor Modes): + Delete duplicate duplicate words. + +2005-07-16 Richard M. Stallman + + * display.texi (Managing Overlays): Clarify make-overlay + args for insertion types. + +2005-07-13 Luc Teirlinck + + * customize.texi (Variable Definitions): + Add `custom-initialize-safe-set' and `custom-initialize-safe-default'. + `standard-value' is a list too. + (Defining New Types): Use @key{RET} instead of @key{ret}. + +2005-07-13 Francis Litterio (tiny change) + + * os.texi (Translating Input): Fix typo. + +2005-07-08 Richard M. Stallman + + * README: Update edition number and size estimate. + + * elisp.texi (VERSION): Set to 2.9. + +2005-07-07 Richard M. Stallman + + * book-spine.texinfo: Update Emacs version. + + * display.texi (Inverse Video): Delete mode-line-inverse-video. + +2005-07-06 Richard M. Stallman + + * searching.texi (Regexp Search): Clarify what re-search-forward + does when the search fails. + +2005-07-05 Lute Kamstra + + * Update FSF's address in GPL notices. + + * doclicense.texi (GNU Free Documentation License): + * gpl.texi (GPL): + * tips.texi (Coding Conventions, Library Headers): + * vol1.texi: + * vol2.texi: Update FSF's address. + +2005-07-04 Richard M. Stallman + + * hooks.texi (Standard Hooks): Add occur-hook. + +2005-07-03 Luc Teirlinck + + * display.texi (The Echo Area): Correct menu. + +2005-07-03 Richard M. Stallman + + * elisp.texi (Top): Update subnode menu for Display. + + * display.texi (Displaying Messages): New node, with most + of what was in The Echo Area. + (Progress): Moved under The Echo Area. + (Logging Messages): New node with new text. + (Echo Area Customization): New node, the rest of what was + in The Echo Area. Document message-truncate-lines with @defvar. + (Display): Update menu. + + * windows.texi (Textual Scrolling): Doc 3 values for + scroll-preserve-screen-position. + + * text.texi (Special Properties): Change hook functions + should bind inhibit-modification-hooks around altering buffer text. + + * keymaps.texi (Key Binding Commands): Call binding BINDING + rather than DEFINITION. + +2005-06-29 Juanma Barranquero + + * variables.texi (Defining Variables): `user-variable-p' returns t + for aliases of user options, nil for alias loops. + +2005-06-28 Richard M. Stallman + + * keymaps.texi (Creating Keymaps): Put make-sparse-keymap before + make-keymap. + +2005-06-27 Luc Teirlinck + + * variables.texi (Setting Variables): Correct and clarify + description of `add-to-ordered-list'. + +2005-06-26 Richard M. Stallman + + * display.texi (Faces): Minor cleanup. + +2005-06-25 Luc Teirlinck + + * display.texi (Faces): `facep' returns t for strings that are + face names. + +2005-06-25 Richard M. Stallman + + * objects.texi (Equality Predicates): Clarify meaning of equal. + + * windows.texi (Selecting Windows): save-selected-window + and with-selected-window save and restore the current buffer. + +2005-06-24 Richard M. Stallman + + * numbers.texi (Float Basics): Explain how to test for NaN, + and printing the sign of NaNs. + +2005-06-24 Eli Zaretskii + + * makefile.w32-in (MAKEINFO): Use --force. + +2005-06-23 Richard M. Stallman + + * display.texi (Face Functions): Correct Texinfo usage. + +2005-06-23 Luc Teirlinck + + * lists.texi (Rings): `ring-elements' now returns the elements of + RING in order. + +2005-06-23 Juanma Barranquero + + * markers.texi (The Mark): Texinfo usage fix. + +2005-06-23 Kim F. Storm + + * searching.texi (Entire Match Data): Remove evaporate option for + match-data. Do not mention evaporate option for set-match-data. + +2005-06-22 Glenn Morris + + * display.texi (Face Functions): Mention face aliases. + +2005-06-21 Richard M. Stallman + + * anti.texi (Antinews): Texinfo usage fix. + +2005-06-21 Karl Berry + + * elisp.texi: Use @copying. + + * elisp.texi: Put @summarycontents and @contents before the Top + node, instead of the end of the file, so that the contents appear + in the right place in the dvi/pdf output. + +2005-06-21 Juri Linkov + + * display.texi (Defining Faces): Add `customized-face'. + +2005-06-20 Kim F. Storm + + * variables.texi (Setting Variables): Any type of element can be + given order in add-to-ordered-list. Compare elements with eq. + + * lists.texi (Rearrangement): Sort predicate may just return non-nil. + +2005-06-20 Karl Berry + + * syntax.texi (Syntax Flags): Make last column very slightly wider + to avoid "generic comment" breaking on two lines and causing an + underfull box. + +2005-06-19 Luc Teirlinck + + * lists.texi (Rings): Various minor clarifications and corrections. + +2005-06-18 Richard M. Stallman + + * functions.texi (Obsolete Functions): Simplify. + + * variables.texi (Variable Aliases): Simplify. + + * anti.texi, backups.texi, compile.texi, customization.texi: + * debugging.texi, display.texi, edebug.texi, errors.texi, frames.texi: + * functions.texi, help.texi, keymaps.texi, modes.texi, nonascii.texi: + * os.texi, processes.texi, searching.texi, strings.texi, text.texi: + * variables.texi: Fix formatting ugliness. + + * elisp.texi: Add links to Rings and Byte Packing. + Update version and copyright years. + + * minibuf.texi: Fix formatting ugliness. + (Completion Commands): Move keymap vars to the end + and vars completing-read binds to the top. + +2005-06-17 Luc Teirlinck + + * processes.texi: Fix typos. + (Bindat Spec): Correct Texinfo error. + (Byte Packing): Fix ungrammatical sentence. + +2005-06-17 Thien-Thi Nguyen + + * lists.texi (Rings): New node. + (Lists): Add it to menu. + + * processes.texi (Byte Packing): New node. + (Processes): Add it to menu. + +2005-06-17 Richard M. Stallman + + * syntax.texi (Parsing Expressions): Fix texinfo usage. + + * help.texi (Documentation Basics): Explain the xref to + Documentation Tips. + + * debugging.texi (Debugger Commands): Minor fix. + +2005-06-16 Luc Teirlinck + + * edebug.texi (Instrumenting): Eliminate duplicate link. + (Specification List): Replace references to "below", referring to + a later node, with one @ref to that node. + + * os.texi (Timers): Timers should save and restore the match data + if they change it. + + * debugging.texi (Debugger Commands): Mention that the Lisp + debugger can not step through primitive functions. + +2005-06-16 Juanma Barranquero + + * functions.texi (Obsolete Functions): Update argument names of + `make-obsolete' and `define-obsolete-function-alias'. + + * variables.texi (Variable Aliases): Update argument names of + `defvaralias', `make-obsolete-variable' and + `define-obsolete-variable-alias'. + +2005-06-15 Kim F. Storm + + * searching.texi (Entire Match Data): Rephrase warnings about + evaporate arg to match-data and set-match-data. + +2005-06-14 Luc Teirlinck + + * elisp.texi (Top): Update detailed menu. + + * edebug.texi (Edebug): Update menu. + (Instrumenting): Update xrefs. + (Edebug Execution Modes): Correct xref. + (Jumping): Clarify description of `h' command. + Eliminate redundant @ref. + (Breaks): New node. + (Breakpoints): Is now a subsubsection. + (Global Break Condition): Mention `C-x X X'. + (Edebug Views): Clarify `v' and `p'. Mention `C-x X w'. + (Trace Buffer): Clarify STRING arg of `edebug-tracing'. + (Edebug Display Update): Correct pxref. + (Edebug and Macros): New node. + (Instrumenting Macro Calls): Is now a subsubsection. + Neither arg of `def-edebug-spec' is evaluated. + (Instrumenting Macro Calls): Mention `edebug-eval-macro-args'. + (Specification Examples): Fix typo. + +2005-06-14 Lute Kamstra + + * debugging.texi (Function Debugging): Primitives can break on + entry too. + +2005-06-14 Kim F. Storm + + * variables.texi (Setting Variables): Add add-to-ordered-list. + +2005-06-13 Stefan Monnier + + * syntax.texi (Parsing Expressions): Document aux functions and vars of + syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function. + +2005-06-13 Lute Kamstra + + * text.texi (Special Properties): Fix cross reference. + +2005-06-11 Luc Teirlinck + + * debugging.texi (Function Debugging): Delete mention of empty + string argument to `cancel-debug-on-entry'. Delete inaccurate + description of the return value of that command. + +2005-06-11 Alan Mackenzie + + * text.texi (Adaptive Fill): Amplify the description of + fill-context-prefix. + +2005-06-10 Luc Teirlinck + + * syntax.texi (Parsing Expressions): Fix Texinfo error. + +2005-06-10 Stefan Monnier + + * syntax.texi (Parsing Expressions): Document syntax-ppss. + +2005-06-10 Luc Teirlinck + + * debugging.texi (Error Debugging): Minor rewording. + (Function Debugging): FUNCTION-NAME arg to `cancel-debug-on-entry' + is optional. + +2005-06-10 Lute Kamstra + + * elisp.texi: Use EMACSVER to refer to the current version of Emacs. + (Top): Give it a title. Correct version number. Give the + detailed node listing a more prominent header. + * intro.texi: Don't set VERSION here a second time. + Mention Emacs's version too. + * anti.texi (Antinews): Use EMACSVER to refer to the current + version of Emacs. + +2005-06-09 Kim F. Storm + + * searching.texi (Entire Match Data): Explain new `reseat' argument to + match-data and set-match-data. + +2005-06-08 Richard M. Stallman + + * searching.texi (Entire Match Data): Clarify when match-data + returns markers and when integers. + + * display.texi (Defining Faces): Explain that face name should not + end in `-face'. + + * modes.texi (Mode Line Data): Minor cleanup. + (Customizing Keywords): Node split out of Search-based Fontification. + Add example of using font-lock-add-keywords from a hook. + Clarify when MODE should be non-nil, and when nil. + +2005-06-06 Richard M. Stallman + + * modes.texi (Mode Line Data): Explain what happens when the car + of a list is a void symbol. + (Search-based Fontification): Explain MODE arg to + font-lock-add-keywords and warn about calls from major modes. + +2005-06-08 Juri Linkov + + * display.texi (Standard Faces): Add `shadow' face. + +2005-05-29 Luc Teirlinck + + * modes.texi (Major Mode Conventions): A derived mode only needs + to put the call to the parent mode inside `delay-mode-hooks'. + +2005-05-29 Richard M. Stallman + + * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook is + new, and what that implies. Clarify. + + * files.texi (Locating Files): Clean up the text. + + * frames.texi (Window Frame Parameters): Document user-size. + Shorten entry for top by referring to left. + +2005-05-26 Richard M. Stallman + + * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook + is new, and what the implications are. Other clarifications. + +2005-05-24 Richard M. Stallman + + * frames.texi (Dialog Boxes): Minor fixes. + +2005-05-25 Masatake YAMATO + + * display.texi (Standard Faces): Write about `mode-line-highlight'. + +2005-05-24 Luc Teirlinck + + * frames.texi (Dialog Boxes): HEADER argument to `x-popup-dialog' + is optional. + +2005-05-24 Nick Roberts + + * frames.texi (Dialog Boxes): Descibe new optional argument. + +2005-05-23 Lute Kamstra + + * modes.texi (Font Lock Basics, Syntactic Font Lock): Recommend + syntax-begin-function over font-lock-beginning-of-syntax-function. + +2005-05-21 Luc Teirlinck + + * minibuf.texi (Reading File Names): Update description of + `read-directory-name'. + + * modes.texi (Derived Modes): Clarify :group keyword. + +2005-05-21 Eli Zaretskii + + * files.texi (Locating Files): New subsection. + Describe locate-file and executable-find. + +2005-05-21 Kevin Ryde + + * frames.texi (Initial Parameters): Update cross reference to + "Emacs Invocation". + +2005-05-19 Luc Teirlinck + + * keymaps.texi (Active Keymaps): Add anchor. + + * modes.texi (Hooks): Delete confusing and unnecessary sentence. + (Major Mode Conventions): Refer to `Auto Major Mode' in more + appropriate place. + (Derived Modes): Small clarifications. + (Minor Mode Conventions, Keymaps and Minor Modes): + Replace references to nodes with references to anchors. + (Mode Line Data): Warn that `(:eval FORM)' should not load any files. + Clarify description of lists whose first element is an integer. + (Mode Line Variables): Add anchor. + (%-Constructs): Clarify description of integer after %. + (Emulating Mode Line): Describe nil value for FACE. + +2005-05-18 Luc Teirlinck + + * modes.texi (Derived Modes): Correct references to non-existing + variable standard-syntax-table. + +2005-05-17 Lute Kamstra + + * modes.texi (Defining Minor Modes): Mention the mode hook. + +2005-05-15 Kim F. Storm + + * processes.texi (Network): Remove open-network-stream-nowait. + (Network Servers): Remove open-network-stream-server. + +2005-05-15 Luc Teirlinck + + * elisp.texi (Top): Update detailed menu. + + * variables.texi: Reorder nodes. + (Variables): Update menu. + (File Local Variables): Do not refer to the `-*-' line as + a "local variables list". Add pxref. + +2005-05-14 Luc Teirlinck + + * elisp.texi (Top): Update detailed menu for node changes. + + * modes.texi (Modes): Update Menu. + (Hooks): Move to beginning of chapter. + Most minor modes run mode hooks too. + `add-hook' can handle void hooks or hooks whose value is a single + function. + (Major Modes): Update Menu. + (Major Mode Basics): New node, split off from `Major Modes'. + (Major Mode Conventions): Correct xref. Explain how to handle + auto-mode-alist if the major mode command has an autoload cookie. + (Auto Major Mode): Major update. Add magic-mode-alist. + (Derived Modes): Major update. + (Mode Line Format): Update Menu. + (Mode Line Basics): New node, split off from `Mode Line Format'. + + * loading.texi (Autoload): Mention `autoload cookie' as synonym + for `magic autoload comment'. Add index entries and anchor. + +2005-05-14 Richard M. Stallman + + * tips.texi (Coding Conventions): Explain how important it is + that just loading certain files not change Emacs behavior. + + * modes.texi (Defining Minor Modes): Define define-global-minor-mode. + +2005-05-12 Lute Kamstra + + * modes.texi (Generic Modes): Update. + (Major Modes): Refer to node "Generic Modes". + + * elisp.texi (Top): Update to the current structure of the manual. + * processes.texi (Processes): Add menu description. + * customize.texi (Customization): Add menu descriptions. + +2005-05-11 Thien-Thi Nguyen + + * processes.texi (Signals to Processes) + (Low-Level Network): Fix typos. + +2005-05-11 Lute Kamstra + + * elisp.texi (Top): Add some nodes from the chapter "Major and + Minor Modes" to the detailed node listing. + +2005-05-10 Richard M. Stallman + + * keymaps.texi (Extended Menu Items): Menu item filter functions + can be called at any time. + +2005-05-08 Luc Teirlinck + + * variables.texi (File Local Variables): `(hack-local-variables t)' + now also checks whether a mode is specified in the local variables + list. + +2005-05-05 Kevin Ryde + + * display.texi (The Echo Area): Correct format function cross + reference. + +2005-05-05 Luc Teirlinck + + * variables.texi (Variable Aliases): Change description of + `define-obsolete-variable-alias'. + + * functions.texi (Functions): Add "Obsolete Functions" to menu. + (Defining Functions): Add xref. + (Obsolete Functions): New node. + (Function Safety): Standardize capitalization of section title. + + * frames.texi (Pop-Up Menus): Complete description of `x-popup-menu'. + (Dialog Boxes): Complete description of `x-popup-dialog'. + +2005-05-04 Richard M. Stallman + + * commands.texi (Interactive Codes): Fix Texinfo usage. + Document U more clearly. + +2005-05-01 Luc Teirlinck + + * variables.texi (Variable Aliases): `make-obsolete-variable' is a + function and not a macro. + + * frames.texi (Pop-Up Menus): Correct and clarify description of + `x-popup-menu'. + (Dialog Boxes): Clarify description of `x-popup-dialog'. + +2005-05-01 Richard M. Stallman + + * edebug.texi (Checking Whether to Stop): Fix previous change. + +2005-05-01 Luc Teirlinck + + * display.texi: Fix typos and Texinfo usage. + + * edebug.texi (Checking Whether to Stop): executing-macro -> + executing-kbd-macro. + +2005-05-01 Richard M. Stallman + + * display.texi (Invisible Text): Correct add-to-invisibility-spec. + +2005-04-30 Richard M. Stallman + + * files.texi (Magic File Names): Document `operations' property. + +2005-04-29 Lute Kamstra + + * modes.texi (Generic Modes): New node. + (Major Modes): Add it to the menu. + (Derived Modes): Add "derived mode" to concept index. + +2005-04-28 Lute Kamstra + + * modes.texi (Defining Minor Modes): Fix previous change. + (Font Lock Mode): Simplify. + (Font Lock Basics): Say that font-lock-defaults is buffer-local + when set and that some parts are optional. Add cross references. + (Search-based Fontification): Say how to specify font-lock-keywords. + Add cross references. Add font-lock-multiline to index. + Move font-lock-keywords-case-fold-search here from node "Other Font + Lock Variables". Document font-lock-add-keywords and + font-lock-remove-keywords. + (Other Font Lock Variables): Move font-lock-keywords-only, + font-lock-syntax-table, font-lock-beginning-of-syntax-function, + and font-lock-syntactic-face-function to node "Syntactic Font + Lock". Move font-lock-keywords-case-fold-search to node + "Search-based Fontification". Document font-lock-inhibit-thing-lock + and font-lock-{,un}fontify-{buffer,region}-function. + (Precalculated Fontification): Remove reference to deleted variable + font-lock-core-only. + (Faces for Font Lock): Add font-lock-comment-delimiter-face. + (Syntactic Font Lock): Add intro. Move font-lock-keywords-only, + font-lock-syntax-table, font-lock-beginning-of-syntax-function, + and font-lock-syntactic-face-function here from node "Other Font + Lock Variables". Move font-lock-syntactic-keywords to "Setting + Syntax Properties". Add cross references. + (Setting Syntax Properties): New node. + Move font-lock-syntactic-keywords here from "Syntactic Font Lock". + * syntax.texi (Syntax Properties): Add cross reference. + * hooks.texi (Standard Hooks): Add Font-Lock hooks. + +2005-04-26 Richard M. Stallman + + * display.texi (Defining Faces): + Document `default' elements of defface spec. + + * modes.texi (Major Mode Conventions): Explain customizing ElDoc mode. + + * variables.texi (Variable Aliases): Clarify text. + +2005-04-25 Chong Yidong + + * windows.texi (Window Hooks): Remove reference to obsolete Lazy Lock. + +2005-04-25 Luc Teirlinck + + * hooks.texi (Standard Hooks): Most minor modes have mode hooks too. + +2005-04-24 Eli Zaretskii + + * syntax.texi (Syntax Table Internals): Elaborate documentation of + syntax-after and syntax-class. + + * files.texi (Changing Files): Fix last change's cross-reference. + (Unique File Names): Don't mention "numbers" in the documentation + of make-temp-file and make-temp-name. + +2005-04-23 Richard M. Stallman + + * files.texi (Changing Files): Document MUSTBENEW arg in copy-file. + +2005-04-22 Nick Roberts + + * windows.texi (Cyclic Window Ordering): Clarify window-list. + +2005-04-22 Nick Roberts + + * variables.texi (Variable Aliases): Describe make-obsolete-variable + and define-obsolete-variable-alias. + +2005-04-22 Kim F. Storm + + * symbols.texi (Symbol Plists): Remove safe-get, as get is now safe. + (Other Plists): Remove safe-plist-get, as plist-get is now safe. + +2005-04-21 Lute Kamstra + + * lists.texi (Association Lists): Document rassq-delete-all. + +2005-04-19 Richard M. Stallman + + * modes.texi (Search-based Fontification): Explain that + facespec is an expression to be evaluated. + +2005-04-19 Kevin Ryde + + * streams.texi (Output Functions): Fix xref. + * strings.texi (String Conversion): Fix xref. + +2005-04-19 Kim F. Storm + + * symbols.texi (Symbol Plists): Add safe-get. + Mention that `get' may signal an error. + +2005-04-18 Nick Roberts + + * customize.texi (Variable Definitions): Replace tooltip-mode + example with save-place. + +2005-04-17 Richard M. Stallman + + * buffers.texi (Indirect Buffers): Clarify. + + * positions.texi (Positions): Clarify converting marker to integer. + + * strings.texi (String Basics): Mention string-match; clarify. + +2005-04-08 Lute Kamstra + + * modes.texi (Search-based Fontification): Fix cross references. + Use consistent terminology. Document anchored highlighting. + +2005-04-05 Lute Kamstra + + * modes.texi (Defining Minor Modes): Document :group keyword + argument and its default value. + +2005-04-03 Lute Kamstra + + * hooks.texi (Standard Hooks): Add some hooks. Add cross + references and/or descriptions. Delete major mode hooks; mention + them as a category instead. Rename or delete obsolete hooks. + +2005-04-02 Richard M. Stallman + + * nonascii.texi (Coding System Basics): Another wording cleanup. + +2005-04-01 Richard M. Stallman + + * nonascii.texi (Coding System Basics): Clarify previous change. + +2005-04-01 Kenichi Handa + + * nonascii.texi (Coding System Basics): Describe about rondtrip + identity of coding systems. + +2005-03-29 Chong Yidong + + * text.texi (Buffer Contents): Add filter-buffer-substring and + buffer-substring-filters. + +2005-03-26 Chong Yidong + + * anti.texi (Antinews): Mention `G' interactive code. + + * tips.texi (Compilation Tips): Mention benchmark.el. + +2005-03-27 Luc Teirlinck + + * modes.texi (Other Font Lock Variables): `font-lock-fontify-block' + is now bound to M-o M-o. + + * keymaps.texi (Prefix Keys): `facemenu-keymap' is now on M-o. + +2005-03-26 Glenn Morris + + * calendar.texi: Delete file (and move contents to emacs-xtra.texi + in the Emacs Manual). + * Makefile.in (srcs): Remove calendar.texi. + * makefile.w32-in (srcs): Remove calendar.texi. + * display.texi (Display): Change name of next node. + * os.texi (System In): Change name of previous node. + * elisp.texi (Top): Remove Calendar references. + * vol1.texi (Top): Remove Calendar references. + * vol2.texi (Top): Remove Calendar references. + +2005-03-25 Richard M. Stallman + + * display.texi (Standard Faces, Fringe Bitmaps, Customizing Bitmaps): + Cleanup previous change. + +2005-03-25 Chong Yidong + + * display.texi (Face Attributes): Faces earlier in an :inherit + list take precedence. + (Scroll Bars): Fix description of vertical-scroll-bars. + Document frame-current-scroll-bars and window-current-scroll-bars. + + * markers.texi (The Mark): Document temporary Transient Mark mode. + + * minibuf.texi (Reading File Names): + Document read-file-name-completion-ignore-case. + + * positions.texi (Screen Lines): Document nil for width argument + to compute-motion. + +2005-03-23 Kim F. Storm + + * display.texi (Standard Faces): Other faces used in the fringe + implicitly inherits from the fringe face. + (Fringe Bitmaps): FACE in right-fringe and left-fringe display + properties implicitly inherits from fringe face. + (Customizing Bitmaps): Likewise for set-fringe-bitmap-face. + +2005-03-20 Chong Yidong + + * display.texi (Invisible Text): State default value of + line-move-ignore-invisible. + (Managing Overlays): Document remove-overlays. + (Standard Faces): Document escape-glyph face. + + * minibuf.texi (Reading File Names): Document read-file-name-function. + + * modes.texi (Other Font Lock Variables): + Document font-lock-lines-before. + + * positions.texi (Skipping Characters): skip-chars-forward allows + character classes. + +2005-03-18 Lute Kamstra + + * edebug.texi (Instrumenting Macro Calls): Fix another typo. + +2005-03-17 Richard M. Stallman + + * text.texi (Undo): Document extensible undo entries. + + * searching.texi (String Search, Regexp Search): Cleanups. + + * nonascii.texi (Character Codes): Minor fix. + + * display.texi (Display Property): Explain the significance + of having text properties that are eq. + (Other Display Specs): Explain string as display spec. + + * commands.texi (Interactive Codes): Document G option. + +2005-03-17 Chong Yidong + + * text.texi (Filling): Add sentence-end-without-period and + sentence-end-without-space. + (Changing Properties): Minor fix. + + * anti.texi: Total rewrite. + +2005-03-15 Lute Kamstra + + * edebug.texi (Instrumenting Macro Calls): Fix typos. + +2005-03-08 Kim F. Storm + + * display.texi (Specified Space): Property :width is support on + non-graphic terminals, :height is not. + +2005-03-07 Richard M. Stallman + + * display.texi (Overlay Arrow, Fringe Bitmaps, Customizing Bitmaps): + Now subnodes of Fringes. + (Overlay Arrow): Document overlay-arrow-variable-list. + (Fringe Size/Pos): New node, broken out of Fringes. + (Display): Explain clearing vs redisplay better. + (Truncation): Clarify use of bitmaps. + (The Echo Area): Clarify the uses of the echo area. + Add max-mini-window-height. + (Progress): Clarify. + (Invisible Text): Explain that main loop moves point out. + (Selective Display): Say "hidden", not "invisible". + (Managing Overlays): Move up. Describe relation to Undo here. + (Overlay Properties): Clarify intro. + (Finding Overlays): Explain return values when nothing found. + (Width): truncate-string-to-width has added arg. + (Displaying Faces): Clarify and update mode line face handling. + (Face Functions): Minor cleanup. + (Conditional Display): Merge into Other Display Specs. + (Pixel Specification, Other Display Specs): Minor cleanups. + (Images, Image Descriptors): Minor cleanups. + (GIF Images): Patents have expired. + (Showing Images): Explain default text for insert-image. + (Manipulating Button Types): Merge into Manipulating Buttons. + (Making Buttons): Explain return values. + (Button Buffer Commands): Add xref. + (Inverse Video): Update mode-line-inverse-video. + (Display Table Format): Clarify. + (Active Display Table): Give defaults for window-display-table. + + * calendar.texi (Calendar Customizing): calendar-holiday-marker + and calendar-today-marker are strings, not chars. + (Holiday Customizing): Minor fix. + + * internals.texi (Writing Emacs Primitives): Update `or' example. + Update limit on # args of subr. + + * edebug.texi (Using Edebug): Arrow is in fringe. + (Instrumenting): Arg to eval-defun works without loading edebug. + (Edebug Execution Modes): Add xref. + + * customize.texi (Common Keywords): Clarify :require. + Mention :version here. + (Variable Definitions, Group Definitions): Not here. + (Variable Definitions): Clarify symbol arg to :initialize and :set fns. + +2005-03-07 Chong Yidong + * nonascii.texi (Text Representations): Clarify position-bytes. + (Character Sets): Add list-charset-chars. + (Scanning Charsets): Add charset-after. + (Encoding and I/O): Minor fix. + +2005-03-06 Richard M. Stallman + + * windows.texi (Vertical Scrolling): Get rid of "Emacs 21". + (Resizing Windows): Likewise. + + * text.texi (Change Hooks): Get rid of "Emacs 21". + + * strings.texi (Formatting Strings): Get rid of "Emacs 21". + + * streams.texi (Output Variables): Get rid of "Emacs 21". + + * searching.texi (Regexp Special, Char Classes): Get rid of "Emacs 21". + + * os.texi (Translating Input): Replace flow-control example + with a less obsolete example that uses `keyboard-translate'. + + * objects.texi (Hash Table Type, Circular Objects): + Get rid of "Emacs 21". + + * modes.texi (Mode Line Format): Get rid of "Emacs 21". + (Mode Line Data, Properties in Mode, Header Lines): Likewise. + + * minibuf.texi (Minibuffer Misc): Get rid of "Emacs 21". + + * lists.texi (List Elements, Building Lists): Get rid of "Emacs 21". + + * keymaps.texi (Menu Separators, Tool Bar): Get rid of "Emacs 21". + (Menu Bar): Fix when menu-bar-update-hook is called. + + * hash.texi (Hash Tables): Get rid of "Emacs 21". + + * frames.texi (Text Terminal Colors): Get rid of "Emacs 21", + and make it read better. + + * files.texi (Writing to Files): Get rid of "Emacs 21". + (Unique File Names): Likewise. + + * elisp.texi: Update Emacs version to 22. + + * display.texi (Forcing Redisplay): Get rid of "Emacs 21". + (Overlay Properties, Face Attributes): Likewise. + (Managing Overlays): Fix punctuation. + (Attribute Functions): Clarify set-face-font; get rid of + info about old Emacs versions. + (Auto Faces, Font Lookup, Display Property, Images): + Get rid of "Emacs 21". + + * calendar.texi (Calendar Customizing): Get rid of "Emacs 21". + +2005-03-05 Richard M. Stallman + + * debugging.texi (Error Debugging): Remove stack-trace-on-error. + +2005-03-04 Lute Kamstra + + * debugging.texi (Error Debugging): Document stack-trace-on-error. + +2005-03-03 Lute Kamstra + + * edebug.texi (Instrumenting Macro Calls): Fix typo. + +2005-03-01 Lute Kamstra + + * debugging.texi (Debugger Commands): Update `j'. + +2005-02-28 Lute Kamstra + + * debugging.texi (Debugging): Fix typo. + (Error Debugging): Document eval-expression-debug-on-error. + (Function Debugging): Update example. + (Using Debugger): Mention starred stack frames. + (Debugger Commands): Document `j' and `l'. + (Invoking the Debugger): `d' and `j' exit recursive edit too. + Update the messages that the debugger displays. + (Internals of Debugger): Add cross reference. Update example. + (Excess Open): Minor improvement. + (Excess Close): Minor improvement. + +2005-02-26 Richard M. Stallman + + * tips.texi (Coding Conventions): Clarify. + Put all the major mode key reservations together. + Mention the Mouse-1 => Mouse-2 conventions. + + * syntax.texi (Syntax Class Table): Clarify. + (Syntax Table Functions): syntax-after moved from here. + (Syntax Table Internals): syntax-after moved to here. + (Parsing Expressions): Update info on number of values + and what's meaningful in the STATE argument. + (Categories): Fix typo. + + * sequences.texi (Arrays): Cleanup. + (Char-Tables): Clarify. + + * processes.texi (Deleting Processes): Cleanups, add xref. + (Subprocess Creation): Explain nil in exec-path. Cleanup. + (Process Information): set-process-coding-system, some args optional. + (Input to Processes): Explain various types for PROCESS args. + Rename them from PROCESS-NAME to PROCESS. + (Signals to Processes): Likewise. + (Decoding Output): Cleanup. + (Query Before Exit): Clarify. + + * os.texi (Startup Summary): Correct the options; add missing ones. + (Terminal Output, Batch Mode): Clarify. + (Flow Control): Node deleted. + + * markers.texi (The Mark): Clarify. + + * macros.texi (Expansion): Cleanup. + (Indenting Macros): indent-spec allows ints, not floats. + + * keymaps.texi (Keymaps): Clarify. + (Format of Keymaps): Update lisp-mode-map example. + (Active Keymaps, Key Lookup): Clarify. + (Changing Key Bindings): Add xref to `kbd'. + (Key Binding Commands, Simple Menu Items): Clarify. + (Mouse Menus, Menu Bar): Clarify. + (Menu Example): Replace print example with menu-bar-replace-menu. + + * help.texi (Documentation Basics): Add function-documentation prop. + + * elisp.texi (Top): Don't refer to Flow Control node. + + * commands.texi (Command Overview): Improve xrefs. + (Adjusting Point): Adjusting point applies to intangible and invis. + (Key Sequence Input): Doc extra read-key-sequence args. + Likewise for read-key-sequence-vector. + + * backups.texi (Rename or Copy): Minor fix. + (Numbered Backups): For version-control, say the default. + (Auto-Saving): make-auto-save-file-name example is simplified. + + * advice.texi (Advising Functions): Don't imply one part of Emacs + should advise another part. Markup changes. + (Defining Advice): Move transitional para. + (Activation of Advice): Cleanup. + Explain if COMPILE is nil or negative. + + * abbrevs.texi (Abbrev Expansion): Clarify, fix typo. + +2005-02-24 Lute Kamstra + + * modes.texi (Defining Minor Modes): Explain that INIT-VALUE, + LIGHTER, and KEYMAP can be omitted when KEYWORD-ARGS are used. + +2005-02-23 Lute Kamstra + + * modes.texi (Defining Minor Modes): define-minor-mode can be used + to define global minor modes as well. + + * display.texi (Managing Overlays): overlay-buffer returns nil for + deleted overlays. + +2005-02-22 Kim F. Storm + + * minibuf.texi (Basic Completion): Allow symbols in addition to + strings in try-completion and all-completions. + +2005-02-14 Lute Kamstra + + * elisp.texi (Top): Remove reference to deleted node. + + * lists.texi (Lists): Remove reference to deleted node. + (Cons Cells): Fix typo. + + * loading.texi (Where Defined): Fix typo. + +2005-02-14 Richard M. Stallman + + * variables.texi (Creating Buffer-Local): change-major-mode-hook + is useful for discarding some minor modes. + + * symbols.texi (Symbol Components): Reorder examples. + + * streams.texi (Input Functions): State standard-input default. + (Output Variables): State standard-output default. + + * objects.texi (Printed Representation): Clarify read syntax vs print. + (Floating Point Type): Explain meaning better. + (Symbol Type): Explain uniqueness better. + (Cons Cell Type): Explain empty list sooner. CAR and CDR later. + List examples sooner. + (Box Diagrams): New subnode broken out. + Some examples moved from old Lists as Boxes node. + (Dotted Pair Notation): Clarify intro. + (Array Type): Clarify. + (Type Predicates): Add hash-table-p. + + * numbers.texi (Integer Basics): Clarify radix explanation. + (Predicates on Numbers): Minor clarification. + (Comparison of Numbers): Minor clarification. Clarify eql. + Typos in min, max. + (Math Functions): Clarify overflow in expt. + + * minibuf.texi (Text from Minibuffer): Minor clarification. + Mention arrow keys. + + * loading.texi (Autoload): defun's doc string overrides autoload's + doc string. + (Repeated Loading): Modernize "add to list" examples. + (Where Defined): Finish updating table of load-history elts. + + * lists.texi (List-related Predicates): Minor wording improvement. + (Lists as Boxes): Node deleted. + (Building Lists): Explain trivial cases of number-sequence. + + * hash.texi (Hash Tables): Add desc to menu items. + (Creating Hash): Expain "full" means "make larger", + (Hash Access): Any object can be a key. + State value of maphash. + + * functions.texi (What Is a Function): Wording cleanup. + (Function Documentation): Minor cleanup. + Explain purpose of calling convention at end of doc string. + (Function Names): Wording cleanup. + (Calling Functions): Wording cleanup. + Explain better how funcall calls the function. + (Function Cells): Delete example of saving and redefining function. + + * control.texi (Combining Conditions): Wording cleanup. + (Iteration): dolist and dotimes bind VAR locally. + (Cleanups): Xref to Atomic Changes. + + * compile.texi (Byte Compilation): Delete 19.29 info. + (Compilation Functions): Macros' difficulties don't affect defsubst. + (Docs and Compilation): Delete 19.29 info. + +2005-02-10 Richard M. Stallman + + * objects.texi (Symbol Type): Minor correction. + +2005-02-06 Lute Kamstra + + * modes.texi (Example Major Modes): Fix typos. + +2005-02-06 Richard M. Stallman + + * text.texi (Margins): fill-nobreak-predicate can be one function. + + * strings.texi (Modifying Strings): clear-string can make unibyte. + (Formatting Strings): format gives error if values missing. + + * positions.texi (Character Motion): Mention default arg + for forward-char. backward-char refers to forward-char. + (Word Motion): Mention default arg for forward-word. + (Buffer End Motion): Mention default arg for beginning-of-buffer. + Simplify end-of-buffer. + (Text Lines): Mention default arg for forward-line. + (List Motion): Mention default arg for beginning/end-of-defun. + (Skipping Characters): Minor fixes in explaining character-set. + + * modes.texi (Major Mode Conventions): Mention "system abbrevs". + Mode inheritance applies only when default-major-mode is nil. + Clarifications. + (Example Major Modes): Update Text mode and Lisp mode examples. + (Minor Mode Conventions): Mention define-minor-mode at top. + (Defining Minor Modes): In Hungry example, don't define C-M-DEL. + (Mode Line Format): Update mode line face display info. + (Properties in Mode): Mention effect of risky vars. + (Imenu): Define imenu-add-to-menubar. + (Font Lock Mode): Add descriptions to menu lines. + (Faces for Font Lock): Add font-lock-doc-face. + +2005-02-05 Lute Kamstra + + * text.texi (Maintaining Undo): Remove obsolete function. + +2005-02-05 Eli Zaretskii + + * frames.texi (Color Names): Add pointer to the X docs about RGB + color specifications. Improve indexing + (Text Terminal Colors): Replace the description of RGB values by + an xref to "Color Names". + +2005-02-03 Richard M. Stallman + + * windows.texi (Basic Windows): Add cursor-in-non-selected-windows. + Clarify. + (Selecting Windows): Clarify save-selected-window. + (Cyclic Window Ordering): Clarify walk-windows. + (Window Point): Clarify. + (Window Start): Add comment to example. + (Resizing Windows): Add `interactive' specs in examples. + Document fit-window-to-buffer. + + * text.texi (User-Level Deletion): just-one-space takes numeric arg. + (Undo, Maintaining Undo): Clarify last change. + (Sorting): In sort-numeric-fields, explain about octal and hex. + Mention sort-numeric-base. + (Format Properties): Add xref for hard newlines. + + * frames.texi (Window Frame Parameters): Explain pixel=char on tty. + (Pop-Up Menus): Fix typo. + (Color Names): Explain all types of color names. + Explain color-values on B&W terminal. + (Text Terminal Colors): Explain "rgb values" are lists. Fix arg names. + + * files.texi (File Locks): Not supported on MS systems. + (Testing Accessibility): Clarify. + + * edebug.texi (Printing in Edebug): Fix edebug-print-circle. + (Coverage Testing): Fix typo. + + * commands.texi (Misc Events): Remove stray space. + + * buffers.texi (Buffer Names): Clarify generate-new-buffer-name. + (Modification Time): Clarify when visited-file-modtime returns 0. + (The Buffer List): Clarify bury-buffer. + (Killing Buffers): Clarify. + (Indirect Buffers): Add clone-indirect-buffer. + +2005-02-02 Matt Hodges + + * edebug.texi (Printing in Edebug): Fix default value of + edebug-print-circle. + (Coverage Testing): Fix displayed frequency count data. + +2005-02-02 Luc Teirlinck + + * text.texi (Maintaining Undo): Add `undo-outer-limit'. + +2005-02-02 Kim F. Storm + + * text.texi (Undo) : Describe `apply' elements. + +2005-01-29 Eli Zaretskii + + * commands.texi (Misc Events): Describe the help-echo event. + + * text.texi (Special Properties) : Use `pos' + consistently in description of the help-echo property. + Use @code{nil} instead of @var{nil}. + + * display.texi (Overlay Properties): Fix the index entry for + help-echo overlay property. + + * customize.texi (Type Keywords): Uncomment the xref to the + help-echo property documentation. + +2005-01-23 Kim F. Storm + + * windows.texi (Window Start): Fix `pos-visible-in-window-p' + return value. Third element FULLY replaced by PARTIAL which + specifies number of invisible pixels if row is only partially visible. + (Textual Scrolling): Mention auto-window-vscroll. + (Vertical Scrolling): New defvar auto-window-vscroll. + +2005-01-16 Luc Teirlinck + + * keymaps.texi (Changing Key Bindings): `suppress-keymap' now uses + command remapping. + +2005-01-15 Richard M. Stallman + + * display.texi (Defining Images): Mention DATA-P arg of create-image. + +2005-01-14 Kim F. Storm + + * commands.texi (Accessing Events): Add WHOLE arg to posn-at-x-y. + + * text.texi (Links and Mouse-1): Fix string and vector item. + +2005-01-13 Richard M. Stallman + + * keymaps.texi (Active Keymaps): Rewrite the text, and update the + descriptions of overriding-local-map and overriding-terminal-local-map. + + * text.texi (Links and Mouse-1): Clarify text. + +2005-01-13 Kim F. Storm + + * modes.texi (Emulating Mode Line): Update format-mode-line entry. + +2005-01-13 Francis Litterio (tiny change) + + * keymaps.texi (Active Keymaps): Fix overriding-local-map description. + +2005-01-12 Kim F. Storm + + * text.texi (Links and Mouse-1): Rename section from Enabling + Mouse-1 to Following Links. Change xrefs. + Add examples for define-button-type and define-widget. + + * display.texi (Button Properties, Button Buffer Commands): + Clarify mouse-1 and follow-link functionality. + +2005-01-12 Richard M. Stallman + + * text.texi (Enabling Mouse-1 to Follow Links): Redo prev. change. + + * display.texi (Beeping): Fix Texinfo usage. + + * modes.texi (Emulating Mode Line): Doc FACE arg in format-header-line. + +2005-01-11 Kim F. Storm + + * display.texi (Button Properties, Button Buffer Commands): + Mention mouse-1 binding. Add follow-link keyword. + + * text.texi (Text Properties): Add "Enable Mouse-1" to submenu. + (Enabling Mouse-1 to Follow Links): New subsection. + +2005-01-06 Richard M. Stallman + + * text.texi (Special Properties): Minor change. + + * os.texi (Timers): Clarify previous change. + + * modes.texi (Emulating Mode Line): format-mode-line requires 1 arg. + +2005-01-01 Luc Teirlinck + + * display.texi (Face Attributes): Correct xref to renamed node. + +2005-01-01 Richard M. Stallman + + * display.texi (Face Attributes): Describe hex color specs. + +2004-12-31 Richard M. Stallman + + * os.texi (Timers): Update previous change. + +2004-12-30 Kim F. Storm + + * display.texi (Line Height): Total line-height is now specified + in line-height property of form (HEIGHT TOTAL). Swap (FACE . RATIO) + in cons cells. (nil . RATIO) is relative to actual line height. + Use line-height `t' instead of `0' to get minimum height. + +2004-12-29 Richard M. Stallman + + * os.texi (Timers): Discuss timers vs editing the buffer and undo. + +2004-12-28 Richard M. Stallman + + * commands.texi (Quitting): Clarify value of with-local-quit. + + * elisp.texi (Top): Fix previous change. + + * loading.texi (Loading): Fix previous change. + +2004-12-27 Richard M. Stallman + + * Makefile.in (MAKEINFO): Specify --force. + + * buffers.texi (Killing Buffers): Add buffer-save-without-query. + + * modes.texi (Emulating Mode Line): Document format's BUFFER arg. + + * display.texi (Line Height): Further clarify. + + * elisp.texi (Top): Update Loading submenu. + + * loading.texi (Where Defined): New node. + (Unloading): load-history moved to Where Defined. + +2004-12-21 Richard M. Stallman + + * commands.texi (Event Input Misc): Add while-no-input. + +2004-12-11 Richard M. Stallman + + * display.texi (Line Height): Rewrite text for clarity. + +2004-12-11 Kim F. Storm + + * display.texi (Display): Add node "Line Height" to menu. + (Line Height): New node. Move full description of line-spacing + and line-height text properties here from text.texi. + (Scroll Bars): Add vertical-scroll-bar variable. + + * frames.texi (Window Frame Parameters): Remove line-height defvar. + + * locals.texi (Standard Buffer-Local Variables): Fix xref for + line-spacing and vertical-scroll-bar. + + * text.texi (Special Properties): Just mention line-spacing and + line-height here, add xref to new "Line Height" node. + +2004-12-09 Thien-Thi Nguyen + + * frames.texi (Window Frame Parameters): New @defvar for `line-spacing'. + + * locals.texi (Standard Buffer-Local Variables): + Add @xref for `line-spacing'. + +2004-12-05 Richard M. Stallman + + * Makefile.in (maintainer-clean): Remove the info files + in $(infodir) where they are created. + +2004-12-03 Richard M. Stallman + + * windows.texi (Selecting Windows): get-lru-window and + get-largest-window don't consider dedicated windows. + + * text.texi (Undo): Document undo-in-progress. + +2004-11-26 Richard M. Stallman + + * locals.texi (Standard Buffer-Local Variables): Undo prev change. + Remove a few vars that are not always buffer-local. + +2004-11-24 Luc Teirlinck + + * locals.texi (Standard Buffer-Local Variables): Comment out + xref's to non-existent node `Yet to be written'. + +2004-11-24 Richard M. Stallman + + * processes.texi (Synchronous Processes): Grammar fix. + + * numbers.texi (Comparison of Numbers): Add eql. + + * locals.texi (Standard Buffer-Local Variables): Add many vars. + + * intro.texi (Printing Notation): Fix previous change. + + * display.texi (Customizing Bitmaps): Move indicate-buffer-boundaries + and default-indicate-buffer-boundaries from here. + (Usual Display): To here. + (Scroll Bars): Add scroll-bar-mode and scroll-bar-width. + (Usual Display): Move tab-width up. + + * customize.texi (Variable Definitions): Replace + show-paren-mode example with tooltip-mode. + (Simple Types, Composite Types, Defining New Types): + Minor cleanups. + +2004-11-21 Jesper Harder + + * processes.texi (Synchronous Processes, Output from Processes): + Markup fix. + +2004-11-20 Richard M. Stallman + + * positions.texi (Skipping Characters): skip-chars-forward + now handles char classes. + + * intro.texi (Printing Notation): Avoid confusion of `print' + when explaining @print. + + * macros.texi (Argument Evaluation): Fix 1st `for' expansion example. + + * display.texi (Display Table Format): Minor fix. + + * streams.texi (Output Functions): Fix print example. + + * Makefile.in (elisp): New target. + (dist): Depend on $(infodir)/elisp, not elisp. + Copy the info files from $(infodir). + + * minibuf.texi (Text from Minibuffer): Document KEEP-ALL arg in + read-from-minibuffer. + + * searching.texi (Regexp Search): Rename that to search-spaces-regexp. + +2004-11-19 Richard M. Stallman + + * searching.texi (Regexp Search): Add search-whitespace-regexp. + +2004-11-19 CHENG Gao (tiny change) + + * tips.texi (Coding Conventions): Fix typo. + +2004-11-16 Richard M. Stallman + + * tips.texi (Coding Conventions): Separate defvar and require + methods to avoid warnings. Use require only when there are many + functions and variables from that package. + + * minibuf.texi (Minibuffer Completion): When ignoring case, + predicate must not be case-sensitive. + + * debugging.texi (Function Debugging, Explicit Debug): Clarified. + (Test Coverage): Don't talk about "splotches". Clarified. + +2004-11-16 Thien-Thi Nguyen + + * frames.texi (Window Frame Parameters): Fix typo. + +2004-11-15 Kim F. Storm + + * symbols.texi (Other Plists): Note that plist-get may signal error. + Add safe-plist-get. + +2004-11-15 Thien-Thi Nguyen + + * modes.texi (Font Lock Basics): Fix typo. + +2004-11-08 Richard M. Stallman + + * syntax.texi (Syntax Table Functions): Add syntax-after. + +2004-11-06 Lars Brinkhoff + + * os.texi (Processor Run Time): New section documenting + get-internal-run-time. + +2004-11-06 Eli Zaretskii + + * Makefile.in (install, maintainer-clean): Don't use "elisp-*" as + it nukes elisp-cover.texi. + (dist): Change elisp-[0-9] to elisp-[1-9], as there could be no + elisp-0 etc. + +2004-11-05 Luc Teirlinck + + * commands.texi (Keyboard Macros): Document `append' return value + of `defining-kbd-macro'. + +2004-11-01 Richard M. Stallman + + * commands.texi (Interactive Call): Add called-interactively-p. + +2004-10-29 Simon Josefsson + + * minibuf.texi (Reading a Password): Revert. + +2004-10-28 Richard M. Stallman + + * frames.texi (Display Feature Testing): Explain about "vendor". + +2004-10-27 Richard M. Stallman + + * commands.texi (Interactive Codes): `N' uses numeric prefix, + not raw. Clarify `n'. + (Interactive Call): Rewrite interactive-p, focusing on when + and how to use it. + (Misc Events): Clarify previous change. + + * advice.texi (Simple Advice): Clarify what job the example does. + (Around-Advice): Clarify ad-do-it. + (Activation of Advice): An option of ad-default-compilation-action + is `never', not `nil'. + +2004-10-26 Kim F. Storm + + * commands.texi (Interactive Codes): Add U code letter. + +2004-10-25 Simon Josefsson + + * minibuf.texi (Reading a Password): Add. + +2004-10-24 Jason Rumney + + * commands.texi (Misc Events): Remove mouse-wheel. Add wheel-up + and wheel-down. + +2004-10-24 Kai Grossjohann + + * processes.texi (Synchronous Processes): Document process-file. + +2004-10-22 Kenichi Handa + + * text.texi (translate-region): Document that it accepts also a + char-table. + +2004-10-22 David Ponce + + * windows.texi (Resizing Windows): Document the `preserve-before' + argument of the functions `enlarge-window' and `shrink-window'. + +2004-10-19 Jason Rumney + + * makefile.w32-in (elisp): Change order of arguments to makeinfo. + +2004-10-09 Luc Teirlinck + + * text.texi (Filling): Add anchor for definition of + `sentence-end-double-space'. + + * searching.texi (Regexp Example): Update description of how + Emacs currently recognizes the end of a sentence. + (Standard Regexps): Update definition of the variable + `sentence-end'. Add definition of the function `sentence-end'. + +2004-10-08 Paul Pogonyshev + + * display.texi (Progress): New node. + +2004-10-05 Kim F. Storm + + * display.texi (Fringe Bitmaps): Update fringe-bitmaps-at-pos. + +2004-09-29 Kim F. Storm + + * display.texi (Fringe Bitmaps): Use symbols rather than numbers + to identify bitmaps. Remove -fringe-bitmap suffix for standard + fringe bitmap symbols, as they now have their own namespace. + (Customizing Bitmaps) : Clarify bit ordering + vs. pixels. Signal error if no free bitmap slots. + (Pixel Specification): Change IMAGE to @var{image}. + +2004-09-28 Richard M. Stallman + + * text.texi (Special Properties): Clarify line-spacing and line-height. + + * searching.texi (Regexp Search): Add looking-back. + +2004-09-25 Luc Teirlinck + + * display.texi: Correct typos. + (Image Descriptors): Correct xref's. + +2004-09-25 Richard M. Stallman + + * text.texi (Special Properties): Cleanups in `cursor'. + Rewrites in `line-height' and `line-spacing'; exchange them. + + * display.texi (Fringes): Rewrite previous change. + (Fringe Bitmaps): Merge text from Display Fringe Bitmaps. Rewrite. + (Display Fringe Bitmaps): Node deleted, text moved. + (Customizing Bitmaps): Split off from Fringe Bitmaps. Rewrite. + (Scroll Bars): Clarify set-window-scroll-bars. + (Pointer Shape): Rewrite. + (Specified Space): Clarify :align-to, etc. + (Pixel Specification): Use @var. Clarify new text. + (Other Display Specs): Clarify `slice'. + (Image Descriptors): Cleanups. + (Showing Images): Cleanups. + +2004-09-24 Luc Teirlinck + + * hooks.texi (Standard Hooks): Add `after-change-major-mode-hook'. + + * modes.texi: Various minor changes in addition to: + (Major Mode Conventions): Final call to `run-mode-hooks' should + not be inside the `delay-mode-hooks' form. + (Mode Hooks): New node. + (Hooks): Delete obsolete example. + Move definitions of `run-mode-hooks' and `delay-mode-hooks' to new + node "Mode Hooks". + +2004-09-22 Luc Teirlinck + + * display.texi: Correct various typos. + (Display): Rename node "Pointer Shapes" to "Pointer + Shape". (There is already a node called "Pointer Shapes" in + frames.texi.) + (Images): Remove non-existent node "Image Slices" from menu. + +2004-09-23 Kim F. Storm + + * text.texi (Special Properties): Add `cursor', `pointer', + `line-height', and `line-spacing' properties. + + * display.texi (Display): Add 'Fringe Bitmaps' and 'Pointer + Shapes' to menu. + (Standard Faces): Doc fix for fringe face. + (Fringes): Add `overflow-newline-into-fringe' and + 'indicate-buffer-boundaries'. + (Fringe Bitmaps, Pointer Shapes): New nodes. + (Display Property): Add 'Pixel Specification' and 'Display Fringe + Bitmaps' to menu. + (Specified Space): Describe pixel width and height. + (Pixel Specification): New node. + (Other Display Specs): Add `slice' property. + (Display Fringe Bitmaps): New node. + (Images): Add 'Image Slices' to menu. + (Image Descriptors): Add `:pointer' and `:map' properties. + (Showing Images): Add slice arg to `insert-image'. Add + 'insert-sliced-image'. + +2004-09-20 Richard M. Stallman + + * commands.texi (Key Sequence Input): + Clarify downcasing in read-key-sequence. + +2004-09-08 Juri Linkov + + * minibuf.texi (Minibuffer History): Add `history-delete-duplicates'. + +2004-09-07 Luc Teirlinck + + * locals.texi (Standard Buffer-Local Variables): Add + `buffer-auto-save-file-format'. + * internals.texi (Buffer Internals): Describe new + auto_save_file_format field of the buffer structure. + * files.texi (Format Conversion): `auto-save-file-format' has been + renamed `buffer-auto-save-file-format'. + +2004-08-27 Luc Teirlinck + + * abbrevs.texi (Abbrev Expansion): `abbrev-start-location' can be + an integer or a marker. + (Abbrev Expansion): Replace example for `pre-abbrev-expand-hook'. + +2004-08-22 Richard M. Stallman + + * modes.texi (Major Mode Conventions): Discuss rebinding of + standard key bindings. + +2004-08-18 Kim F. Storm + + * processes.texi (Accepting Output): Add `just-this-one' arg to + `accept-process-output'. + (Output from Processes): New var `process-adaptive-read-buffering'. + +2004-08-10 Luc Teirlinck + + * keymaps.texi: Various changes in addition to: + (Keymap Terminology): `kbd' uses same syntax as Edit Macro mode. + Give more varied examples for `kbd'. + (Creating Keymaps): Char tables have slots for all characters + without modifiers. + (Active Keymaps): `overriding-local-map' and + `overriding-terminal-local-map' also override text property and + overlay keymaps. + (Functions for Key Lookup): Mention OLP arg to `current-active-maps'. + (Scanning Keymaps): `accessible-keymaps' uses `[]' instead of `""' + to denote a prefix of no events. + `map-keymap' includes parent's bindings _recursively_. + Clarify and correct description of `where-is-internal'. + Mention BUFFER-OR-NAME arg to `describe-bindings'. + (Menu Example): For menus intended for use with the keyboard, the + menu items should be bound to characters or real function keys. + +2004-08-08 Luc Teirlinck + + * objects.texi (Character Type): Reposition `@anchor' to prevent + double space inside sentence in Info. + + * hooks.texi (Standard Hooks): `disabled-command-hook' has been + renamed to `disabled-command-function'. + * commands.texi (Key Sequence Input): Remove unnecessary anchor. + (Command Loop Info): Replace reference to it. + (Disabling Commands): `disabled-command-hook' has been renamed to + `disabled-command-function'. + +2004-08-07 Luc Teirlinck + + * os.texi (Translating Input): Only non-prefix bindings in + `key-translation-map' override actual key bindings. Warn about + possible indirect effect of actual key bindings on non-prefix + bindings in `key-translation-map'. + +2004-08-06 Luc Teirlinck + + * minibuf.texi (High-Level Completion): Add anchor for definition + of `read-variable'. + + * commands.texi: Various changes in addition to: + (Using Interactive): Clarify description of `interactive-form'. + (Interactive Call): Mention default for KEYS argument to + `call-interactively'. + (Command Loop Info): Clarify description of `this-command-keys'. + Mention KEEP-RECORD argument to `clear-this-command-keys'. + Value of `last-event-frame' can be `macro'. + (Repeat Events): `double-click-fuzz' is also used to distinguish + clicks and drags. + (Classifying Events): Clarify descriptions of `event-modifiers' + `event-basic-type' and `event-convert-list'. + (Accessing Events): `posn-timestamp' takes POSITION argument. + (Quoted Character Input): Clarify description of + `read-quoted-char' and fix example. + (Quitting): Add `with-local-quit'. + (Disabling Commands): Correct and clarify descriptions of + `enable-command' and `disable-command'. + Mention what happens if `disabled-command-hook' is nil. + (Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'. + Describe `executing-kbd-macro' instead of obsolete `executing-macro'. + +2004-07-24 Luc Teirlinck + + * frames.texi: Various changes in addition to: + (Creating Frames): Expand and clarify description of `make-frame'. + (Window Frame Parameters): Either none or both of the `icon-left' + and `icon-top' parameters must be specified. Put descriptions of + `menu-bar-lines' and `toolbar-lines' closer together and change + them accordingly. + (Frame Titles): `multiple-frames' is not guaranteed to be accurate + except while processing `frame-title-format' or `icon-title-format'. + (Deleting Frames): Correct description of `delete-frame'. + Non-nil return values of `frame-live-p' are like those of `framep'. + (Frames and Windows): Mention return value of + `set-frame-selected-window'. + (Visibility of Frames): Mention `force' argument to + `make-frame-invisible'. `frame-visible-p' returns t for all + frames on text-only terminals. + (Frame Configurations): Restoring a frame configuration does not + restore deleted frames. + (Window System Selections): `x-set-selection' returns DATA. + (Resources): Add example. + (Display Feature Testing): Clarify descriptions of + `display-pixel-height', `display-pixel-width', `x-server-version' + and `x-server-vendor'. + + * windows.texi (Choosing Window): Add anchor. + * minibuf.texi (Minibuffer Misc): Add anchor. + +2004-07-23 John Paul Wallington + + * macros.texi (Defining Macros): Declaration keyword for setting + Edebug spec is `debug' not `edebug'. + +2004-07-19 Luc Teirlinck + + * windows.texi: Various small changes in addition to: + (Window Point): Mention return value of `set-window-point'. + (Window Start): `pos-visible-in-window-p' disregards horizontal + scrolling. Explain return value if PARTIALLY is non-nil. + (Vertical Scrolling): Mention PIXELS-P argument to `window-vscroll' + and `set-window-vscroll'. + (Size of Window): The argument WINDOW to `window-inside-edges', + `window-pixel-edges' and `window-inside-pixel-edges' is optional. + (Resizing Windows): Explain return value of + `shrink-window-if-larger-than-buffer'. + `window-size-fixed' automatically becomes buffer local when set. + (Window Configurations): Explain return value of + `set-window-configuration'. + + * minibuf.texi (Minibuffer Misc): Add anchor for + `minibuffer-scroll-window'. + + * positions.texi (Text Lines): Add anchor for `count-lines'. + +2004-07-17 Richard M. Stallman + + * display.texi (Overlay Properties): Adding `evaporate' prop + deletes empty overlay immediately. + + * abbrevs.texi (Abbrev Expansion): Clarify pre-abbrev-expand-hook, + fix example. + +2004-07-16 Jim Blandy + + * searching.texi (Regexp Backslash): Document new \_< and \_> + operators. + +2004-07-16 Juanma Barranquero + + * display.texi (Images): Fix Texinfo usage. + +2004-07-14 Luc Teirlinck + + * buffers.texi (Modification Time): `visited-file-modtime' now + returns a list of two integers, instead of a cons. + +2004-07-13 Luc Teirlinck + + * windows.texi: Various changes in addition to: + (Splitting Windows): Add `split-window-keep-point'. + +2004-07-09 Richard M. Stallman + + * frames.texi (Input Focus): Minor fix. + +2004-07-07 Luc Teirlinck + + * frames.texi (Input Focus): Clarify descriptions of + `select-frame-set-input-focus' and `select-frame'. + +2004-07-06 Luc Teirlinck + + * os.texi: Various small changes in addition to: + (Killing Emacs): Expand and clarify description of + `kill-emacs-query-functions' and `kill-emacs-hook'. + (System Environment): Expand and clarify description of `getenv' + and `setenv'. + (Timers): Clarify description of `run-at-time'. + (Translating Input): Correct description of + `extra-keyboard-modifiers'. + (Flow Control): Correct description of `enable-flow-control'. + +2004-07-06 Thien-Thi Nguyen + + * os.texi: Update copyright. + (Session Management): Grammar fix. + Clarify which Emacs does the restarting. + Use @samp for *scratch* buffer. + +2004-07-04 Alan Mackenzie + + * frames.texi (Input Focus): Add documentation for + `select-frame-set-input-focus'. Replace refs to non-existent + `switch-frame' with `select-frame'. Minor corrections and tidying + up of text-only terminal stuff. + +2004-07-02 Richard M. Stallman + + * files.texi (Saving Buffers): Cleanup write-contents-function. + (Magic File Names): Cleanup file-remote-p. + +2004-07-02 Kai Grossjohann + + * files.texi (Magic File Names): `file-remote-p' returns an + identifier of the remote system, not just t. + +2004-07-02 David Kastrup + + * searching.texi (Entire Match Data): Add explanation about new + match-data behavior when @var{integers} is non-nil. + +2004-06-24 Richard M. Stallman + + * commands.texi (Misc Events): Describe usr1-signal, usr2-signal event. + + * customize.texi (Variable Definitions): Note about doc strings + and :set. + + * keymaps.texi (Keymap Terminology): Document `kbd'. + (Changing Key Bindings, Key Binding Commands): Use kbd in examples. + + * display.texi (Invisible Text): Setting buffer-invisibility-spec + makes it buffer-local. + + * files.texi (Saving Buffers): Correct previous change. + + * commands.texi (Accessing Events): + Clarify posn-col-row and posn-actual-col-row. + +2004-06-24 David Ponce + + * commands.texi (Accessing Events): New functions + posn-at-point and posn-at-x-y. Add example to posn-x-y. + +2004-06-23 Luc Teirlinck + + * lists.texi, files.texi, processes.texi, macros.texi, hash.texi: + * frames.texi, buffers.texi, backups.texi, variables.texi: + * loading.texi, eval.texi, functions.texi, control.texi: + * symbols.texi, minibuf.texi: Reposition @anchor's. + + * help.texi: Various small changes in addition to the following. + (Describing Characters): Describe PREFIX argument to + `key-description'. Correct and clarify definition of + `text-char-description'. Describe NEED-VECTOR argument to + `read-kbd-macro'. + (Help Functions): Clarify definition of `apropos'. + +2004-06-23 Lars Hansen + + * files.texi (Saving Buffers): Correct description of + `write-contents-functions'. + +2004-06-21 Juanma Barranquero + + * display.texi (Images): Remove redundant @vindex directives. + Rewrite `image-library-alist' doc in active voice. + +2004-06-14 Juanma Barranquero + + * display.texi (Images): Document new delayed library loading, + variable `image-library-alist' and (existing but undocumented) + function `image-type-available-p'. + +2004-06-05 Richard M. Stallman + + * minibuf.texi (Minibuffer Completion): For INITIAL arg, + refer the user to the Initial Input node. + (Text from Minibuffer): Likewise. + (Initial Input): New node. Document this feature + and say it is mostly deprecated. + +2004-05-30 Richard M. Stallman + + * loading.texi (Named Features): Clarify return value + and meaning of NOERROR. + + * variables.texi (File Local Variables): Minor cleanup. + +2004-05-30 Michael Albinus + + * files.texi (Magic File Names): Add `file-remote-p' as operation + of file name handlers. + +2004-05-29 Richard M. Stallman + + * modes.texi (Minor Mode Conventions): (-) has no special meaning + as arg to a minor mode command. + +2004-05-22 Richard M. Stallman + + * syntax.texi (Syntax Class Table): Word syntax not just for English. + + * streams.texi (Output Variables): Doc float-output-format. + + * searching.texi (Regexp Special): Nested repetition can be infloop. + + * eval.texi (Eval): Increasing max-lisp-eval-depth can cause + real stack overflow. + + * compile.texi: Minor cleanups. + +2004-05-22 Luc Teirlinck + + * lists.texi (Cons Cells): Explain dotted lists, true lists, + circular lists. + (List Elements): Explain handling of circular and dotted lists. + +2004-05-19 Thien-Thi Nguyen + + * modes.texi (Search-based Fontification): Fix typo. + +2004-05-10 Juanma Barranquero + + * modes.texi (Mode Line Variables): Fix description of + global-mode-string, which is now after which-func-mode, not the + buffer name. + +2004-05-07 Lars Hansen + + * modes.texi (Desktop Save Mode): Add. + (Modes): Add menu entry Desktop Save Mode. + + * hooks.texi: Add desktop-after-read-hook, + desktop-no-desktop-file-hook and desktop-save-hook. + + * locals.texi: Add desktop-save-buffer. + +2004-04-30 Jesper Harder + + * display.texi: emacs -> Emacs. + +2004-04-27 Matthew Mundell + + * files.texi (Changing Files): Document set-file-times. + +2004-04-23 Juanma Barranquero + + * makefile.w32-in: Add "-*- makefile -*-" mode tag. + +2004-04-18 Jesper Harder + + * tips.texi (Coding Conventions): defopt -> defcustom. + +2004-04-16 Luc Teirlinck + + * sequences.texi: Various clarifications. + +2004-04-14 Luc Teirlinck + + * buffers.texi (Read Only Buffers): Mention optional ARG to + `toggle-read-only'. + +2004-04-14 Nick Roberts + + * windows.texi (Selecting Windows): Note that get-lru-window + returns a full-width window if possible. + +2004-04-13 Luc Teirlinck + + * buffers.texi: Various changes in addition to: + (Buffer File Name): Add `find-buffer-visiting'. + (Buffer Modification): Mention optional ARG to `not-modified'. + (Indirect Buffers): Mention optional CLONE argument to + `make-indirect-buffer'. + + * files.texi: Various changes in addition to: + (Visiting Functions): `find-file-hook' is now a normal hook. + (File Name Expansion): Explain difference between the way that + `expand-file-name' and `file-truename' treat `..'. + (Contents of Directories): Mention optional ID-FORMAT argument to + `directory-files-and-attributes'. + (Format Conversion): Mention new optional CONFIRM argument to + `format-write-file'. + +2004-04-12 Miles Bader + + * macros.texi (Expansion): Add description of `macroexpand-all'. + +2004-04-05 Jesper Harder + + * variables.texi (Variable Aliases): Mention + cyclic-variable-indirection. + + * errors.texi (Standard Errors): Ditto. + +2004-04-04 Luc Teirlinck + + * backups.texi: Various small changes in addition to: + (Making Backups): Mention return value of `backup-buffer'. + (Auto-Saving): Mention optional FORCE argument to + `delete-auto-save-file-if-necessary'. + (Reverting): Mention optional PRESERVE-MODES argument to + `revert-buffer'. Correct description of `revert-buffer-function'. + +2004-03-22 Juri Linkov + + * sequences.texi (Sequence Functions): Replace xref to `Vectors' + with `Vector Functions'. + + * text.texi (Sorting): Add missing quote. + +2004-03-14 Luc Teirlinck + + * intro.texi (Lisp History): Replace xref to `cl' manual with + inforef. + +2004-03-12 Richard M. Stallman + + * intro.texi (Version Info): Add arg to emacs-version. + (Lisp History): Change xref to CL manual. + +2004-03-09 Luc Teirlinck + + * minibuf.texi (Completion Commands): Add xref to Emacs manual + for Partial Completion mode. + +2004-03-07 Thien-Thi Nguyen + + * customize.texi: Fix typo. Remove eol whitespace. + +2004-03-04 Richard M. Stallman + + * processes.texi: Fix typos. + + * lists.texi (Building Lists): Minor clarification. + + * hash.texi (Creating Hash): Correct the meaning of t for WEAK + in make-hash-table. + +2004-02-29 Juanma Barranquero + + * makefile.w32-in (clean, maintainer-clean): Use $(DEL) instead of + rm, and ignore exit code. + +2004-02-27 Dan Nicolaescu + + * display.texi (Defining Faces): Add description for min-colors. + Update example. + +2004-02-23 Luc Teirlinck + + * abbrevs.texi: Various corrections and clarifications in addition + to the following: + (Abbrev Tables): Delete add-abbrev (as suggested by RMS). + +2004-02-22 Matthew Mundell (tiny change) + + * calendar.texi (Holiday Customizing): Quote arg of holiday-sexp. + +2004-02-21 Luc Teirlinck + + * text.texi: Various small changes in addition to the following: + (User-Level Deletion): Mention optional BACKWARD-ONLY argument + to delete-horizontal-space. + (Kill Functions, Yanking, Low-Level Kill Ring): Clarify and correct + description of yank-handler text property at various places. + + * frames.texi (Window System Selections): Add anchor. + + * syntax.texi (Syntax Table Functions): Clarify and correct + descriptions of make-syntax-table and copy-syntax-table. + (Motion and Syntax): Clarify SYNTAXES argument to + skip-syntax-forward. + (Parsing Expressions): Mention that the return value of + parse-partial-sexp is currently a list of ten rather than nine + elements. + (Categories): Various corrections and clarifications. + +2004-02-17 Luc Teirlinck + + * markers.texi (Marker Insertion Types): Minor change. + + * locals.texi (Standard Buffer-Local Variables): + * commands.texi (Interactive Codes, Using Interactive): + * functions.texi (Related Topics): Fix xrefs. + +2004-02-16 Luc Teirlinck + + * lists.texi (Sets And Lists): Update description of delete-dups. + +2004-02-16 Jesper Harder (tiny change) + + * keymaps.texi (Tool Bar): tool-bar-item => tool-bar-button. + +2004-02-16 Jan Dj,Ad(Brv + + * frames.texi (Parameter Access): frame-parameters arg is optional. + modify-frame-parameters handles nil for FRAME. + (Window Frame Parameters): menu-bar-lines and tool-bar-lines + are all-or-nothing for certain toolkits. + Mention parameter wait-for-wm. + (Frames and Windows): In frame-first-window and frame-selected-window + the arg is optional. + (Input Focus): In redirect-frame-focus the second arg is optional. + (Window System Selections): Mention selection type CLIPBOARD. + Mention data-type UTF8_STRING. + Mention numbering of cut buffers. + (Resources): Describe x-resource-name. + +2004-02-16 Richard M. Stallman + + * windows.texi (Buffers and Windows): Delete false table + about all-frames. + + * syntax.texi (Parsing Expressions): Delete old caveat + about parse-sexp-ignore-comments. + + * streams.texi (Output Variables): Add print-quoted. + + * lists.texi (Building Lists): Minor cleanup. + + * hash.texi (Creating Hash): Correct and clarify doc of WEAK values. + + * display.texi (Overlays): Explain overlays use markers. + (Managing Overlays): Explain front-advance and rear-advance + in more detail. + + * loading.texi (Unloading): Document unload-feature-special-hooks. + Get rid of fns-NNN.el file. + +2004-02-16 Matthew Mundell (tiny change) + + * help.texi (Describing Characters): Fix text-char-description + example output. + + * edebug.texi (Using Edebug): Fix example. + + * debugging.texi (Internals of Debugger): Fix return value. + + * files.texi (Changing Files): Fix argname. + + * calendar.texi: Fix parens, and default values. + + * display.texi, frames.texi, internals.texi, modes.texi: Minor fixes. + * nonascii.texi, objects.texi, os.texi: Minor fixes. + * searching.texi, text.texi, tips.texi, windows.text: Minor fixes. + + * positions.texi (Text Lines): Don't add -1 in current-line. + +2004-02-16 Richard M. Stallman + + * compile.texi (Compiler Errors): if-boundp feature applies to cond. + +2004-02-16 Jesper Harder (tiny change) + + * processes.texi (Low-Level Network): Fix a typo. + +2004-02-12 Kim F. Storm + + * display.texi (Fringes): Use consistent wording. + Note that window-fringe's window arg is optional. + (Scroll Bars): Use consistent wording. + +2004-02-11 Luc Teirlinck + + * tips.texi (Comment Tips): Document the new conventions for + commenting out code. + +2004-02-07 Jan Dj,Ad(Brv + + * positions.texi (Text Lines): Added missing end defun. + +2004-02-07 Kim F. Storm + + * positions.texi (Text Lines): Add line-number-at-pos. + +2004-02-06 John Paul Wallington + + * display.texi (Button Properties, Button Buffer Commands): + mouse-2 invokes button, not down-mouse-1. + +2004-02-04 Jason Rumney + + * makefile.w32-in: Sync with Makefile.in changes. + +2004-02-03 Luc Teirlinck + + * minibuf.texi (Text from Minibuffer): Various corrections and + clarifications. + (Object from Minibuffer): Correct Lisp description of + read-minibuffer. + (Minibuffer History): Clarify description of cons values for + HISTORY arguments. + (Basic Completion): Various corrections and clarifications. Add + completion-regexp-list. + (Minibuffer Completion): Correct and clarify description of + completing-read. + (Completion Commands): Mention Partial Completion mode. Various + other minor changes. + (High-Level Completion): Various corrections and clarifications. + (Reading File Names): Ditto. + (Minibuffer Misc): Ditto. + +2004-01-26 Luc Teirlinck + + * strings.texi (Text Comparison): assoc-string also matches + elements of alists that are strings instead of conses. + (Formatting Strings): Standardize Texinfo usage. Update index + entries. + +2004-01-20 Luc Teirlinck + + * lists.texi (Sets And Lists): Add delete-dups. + +2004-01-15 Luc Teirlinck + + * edebug.texi (Instrumenting Macro Calls): `declare' is not a + special form. + * macros.texi (Defining Macros): Update description of `declare', + which now is a macro. + (Wrong Time): Fix typos. + +2004-01-14 Luc Teirlinck + + * compile.texi (Compilation Functions): Expand descriptions of + `compile-defun', `byte-compile-file', `byte-recompile-directory' + and `batch-byte-compile'. In particular, mention and describe + all optional arguments. + (Disassembly): Correct and clarify the description of `disassemble'. + +2004-01-11 Luc Teirlinck + + * searching.texi: Various small changes in addition to the + following. + (Regexp Example): Adapt to new value of `sentence-end'. + (Regexp Functions): The PAREN argument to `regexp-opt' can be + `words'. + (Search and Replace): Add usage note for `perform-replace'. + (Entire Match Data): Mention INTEGERS and REUSE arguments to + `match-data'. + (Standard Regexps): Update for new values of `paragraph-start' + and `sentence-end'. + +2004-01-07 Luc Teirlinck + + * files.texi (Saving Buffers): Clarify descriptions of + `write-contents-functions' and `before-save-hook'. + Make the defvar's for `before-save-hook' and `after-save-hook' + into defopt's. + +2004-01-07 Kim F. Storm + + * commands.texi (Click Events): Describe new image and + width/height elements of click events. + (Accessing Events): Add posn-string, posn-image, and + posn-object-width-height. Change posn-object to return either + image or string object. + +2004-01-01 Simon Josefsson + + * hooks.texi (Standard Hooks): Add before-save-hook. + * files.texi (Saving Buffers): Likewise. + +2004-01-03 Richard M. Stallman + + * frames.texi (Frames and Windows): Delete frame-root-window. + +2004-01-03 Luc Teirlinck + + * eval.texi, hash.texi, help.texi, symbols.texi: Add anchors. + + * functions.texi: Various small changes in addition to the + following. + (What Is a Function): `functionp' returns nil for macros. Clarify + behavior of this and following functions for symbol arguments. + (Function Documentation): Add `\' in front of (fn @var{arglist}) + and explain why. + (Defining Functions): Mention DOCSTRING argument to `defalias'. + Add anchor. + (Mapping Functions): Add anchor. Unquote nil in mapcar* example. + +2004-01-01 Miles Bader + + * display.texi (Buttons): New section. + +2003-12-31 Andreas Schwab + + * numbers.texi (Math Functions): sqrt reports a domain-error + error. + (Float Basics): Use `(/ 0.0 0.0)' instead of `(sqrt -1.0)'. + +2003-12-30 Luc Teirlinck + + * tips.texi (Documentation Tips): Update item on hyperlinks in + documentation strings. + + * errors.texi (Standard Errors): Various small corrections and + additions. + + * control.texi: Various small changes in addition to the + following. + (Signaling Errors): Provide some more details on how `signal' + constructs the error message. Add anchor to the definition of + `signal'. + (Error Symbols): Describe special treatment of `quit'. + (Cleanups): Rename BODY argument of `unwind-protect' to BODY-FORM + to emphasize that it has to be a single form. + + * buffers.texi: Add anchor. + +2003-12-29 Richard M. Stallman + + * windows.texi (Choosing Window): Add same-window-p, special-display-p. + (Window Configurations): Add window-configuration-frame. + + * variables.texi (Creating Buffer-Local): Add local-variable-if-set-p. + + * text.texi (Examining Properties): Add get-char-property-and-overlay. + Change arg name in get-char-property. + (Special Properties): Update handling of keymap property. + + * strings.texi (Modifying Strings): Add clear-string. + (Text Comparison): Add assoc-string and remove + assoc-ignore-case, assoc-ignore-representation. + + * os.texi (Time of Day): Add set-time-zone-rule. + + * numbers.texi (Math Functions): asin, acos, log, log10 + report domain-error errors. + + * nonascii.texi (Converting Representations): + Add multibyte-char-to-unibyte and unibyte-char-to-multibyte. + (Encoding and I/O): Add file-name-coding-system. + + * modes.texi (Search-based Fontification): Explain that + face specs are symbols with face names as values. + + * minibuf.texi (Minibuffer Misc): Add set-minibuffer-window. + + * lists.texi (Building Lists): remq moved elsewhere. + (Sets And Lists): remq moved here. + (Association Lists): Refer to assoc-string. + + * internals.texi (Garbage Collection): Add memory-use-counts. + + * frames.texi (Frames and Windows): Add set-frame-selected-window + and frame-root-window. + + * files.texi (Contents of Directories): + Add directory-files-and-attributes. + + * display.texi (Refresh Screen): Add force-window-update. + (Invisible Text): Explain about moving point out of invis text. + (Overlay Properties): Add overlay-properties. + (Managing Overlays): Add overlayp. + (GIF Images): Invalid image number displays a hollow box. + + * buffers.texi (Buffer Modification): Add restore-buffer-modified-p. + (Killing Buffers): Add buffer-live-p. + +2003-12-25 Markus Rost + + * display.texi (Fringes): Fix typo "set-buffer-window". + +2003-12-24 Luc Teirlinck + + * display.texi, eval.texi, help.texi, internals.texi, loading.texi: + * nonascii.texi, processes.texi, tips.texi, variables.texi: + Add or change various xrefs and anchors. + + * commands.texi: Replace all occurrences of @acronym{CAR} with + @sc{car}, for consistency with the rest of the Elisp manual. + `car' and `cdr' are historically acronyms, but are no longer + widely thought of as such. + + * internals.texi (Pure Storage): Mention that `purecopy' does not + copy text properties. + (Object Internals): Now 29 bits are used (in most implementations) + to address Lisp objects. + + * variables.texi (Variables with Restricted Values): New node. + + * objects.texi (Lisp Data Types): Mention that certain variables + can only take on a restricted set of values and add an xref to + the new node "Variables with Restricted Values". + + * eval.texi (Function Indirection): Describe the errors that + `indirect-function' can signal. + (Eval): Clarify the descriptions of `eval-region' and `values'. + Describe `eval-buffer' instead of `eval-current-buffer' and + mention `eval-current-buffer' as an alias for `current-buffer'. + Correct the description and mention all optional arguments. + + * nonascii.texi: Various small changes in addition to the + following. + (Converting Representations): Clarify behavior of + `string-make-multibyte' and `string-to-multibyte' for unibyte all + ASCII arguments. + (Character Sets): Document the variable `charset-list' and adapt + the definition of the function `charset-list' accordingly. + (Translation of Characters): Clarify use of generic characters in + `make-translation-table'. Clarify and correct the description of + the use of translation tables in encoding and decoding. + (User-Chosen Coding Systems): Correct and clarify the description + of `select-safe-coding-system'. + (Default Coding Systems): Clarify description of + `file-coding-system-alist'. + +2003-11-30 Luc Teirlinck + + * strings.texi (Text Comparison): Correctly describe when two + strings are `equal'. Combine and clarify descriptions of + `assoc-ignore-case' and `assoc-ignore-representation'. + + * objects.texi (Non-ASCII in Strings): Clarify description of + when a string is unibyte or multibyte. + (Bool-Vector Type): Update examples. + (Equality Predicates): Correctly describe when two strings are + `equal'. + +2003-11-29 Luc Teirlinck + + * lists.texi (Building Lists): `append' no longer accepts integer + arguments. Update the description of `number-sequence' to reflect + recent changes. + (Sets And Lists): Describe `member-ignore-case' after `member'. + +2003-11-27 Kim F. Storm + + * commands.texi (Click Events): Click object may be an images. + Describe (dx . dy) element of click positions. + (Accessing Events): Remove duplicate posn-timestamp. + New functions posn-object and posn-object-x-y. + +2003-11-23 Kim F. Storm + + * commands.texi (Click Events): Describe enhancements to event + position lists, including new text-pos and (col . row) items. + Mention left-fringe and right-fringe area events. + (Accessing Events): New functions posn-area and + posn-actual-col-row. Mention posn-timestamp. Mention that + posn-point in non-text area still returns buffer position. + Clarify posn-col-row. + +2003-11-21 Lars Hansen + + * files.texi (File Attributes): Describe new parameter ID-FORMAT. + * anti.texi (File Attributes): Describe removed parameter + ID-FORMAT. + +2003-11-20 Luc Teirlinck + + * positions.texi (Positions): Mention that, if a marker is used as + a position, its buffer is ignored. + + * markers.texi (Overview of Markers): Mention it here too. + +2003-11-12 Luc Teirlinck + + * numbers.texi (Numeric Conversions): Not just `floor', but also + `truncate', `ceiling' and `round' accept optional argument DIVISOR. + +2003-11-10 Luc Teirlinck + + * markers.texi (Creating Markers): Specify insertion type of + created markers. Add xref to `Marker Insertion Types'. + Second argument to `copy-marker' is optional. + (Marker Insertion Types): Mention that most markers are created + with insertion type nil. + (The Mark): Correctly describe when `mark' signals an error. + (The Region): Correctly describe when `region-beginning' and + `region-end' signal an error. + +2003-11-08 Luc Teirlinck + + * hash.texi (Creating Hash): Clarify description of `eql'. + `makehash' is obsolete. + (Hash Access): Add Common Lisp notes for `remhash' and `clrhash'. + + * positions.texi (Point): Change description of `buffer-end', so + that it is also correct for floating point arguments. + (List Motion): Correct argument lists of `beginning-of-defun' and + `end-of-defun'. + (Excursions): Add xref to `Marker Insertion Types'. + (Narrowing): Argument to `narrow-to-page' is optional. + +2003-11-06 Luc Teirlinck + + * streams.texi (Output Streams): Clarify behavior of point for + marker output streams. + +2003-11-04 Luc Teirlinck + + * variables.texi (Defining Variables): Second argument to + `defconst' is not optional. + (Setting Variables): Mention optional argument APPEND to + `add-to-list'. + (Creating Buffer-Local): Expand description of + `make-variable-buffer-local'. + (Frame-Local Variables): Expand description of + `make-variable-frame-local'. + (Variable Aliases): Correct description of optional argument + DOCSTRING to `defvaralias'. Mention return value of + `defvaralias'. + (File Local Variables): Add xref to `File variables' in Emacs + Manual. Correct description of `hack-local-variables'. Mention + `safe-local-variable' property. Mention optional second argument + to `risky-local-variable-p'. + +2003-11-03 Luc Teirlinck + + * symbols.texi (Symbol Plists): Mention return value of `setplist'. + +2003-11-02 Jesper Harder (tiny change) + + * lispref/anti.texi, lispref/backups.texi, lispref/commands.texi + lispref/customize.texi, lispref/display.texi, lispref/files.texi, + lispref/internals.texi, lispref/keymaps.texi, lispref/loading.texi, + lispref/modes.texi, lispref/nonascii.texi, lispref/numbers.texi, + lispref/objects.texi, lispref/os.texi, lispref/positions.texi, + lispref/processes.texi, lispref/searching.texi, + lispref/sequences.texi, lispref/streams.texi, lispref/strings.texi, + lispref/syntax.texi, lispref/text.texi: Replace @sc{foo} with + @acronym{FOO}. + +2003-10-27 Luc Teirlinck + + * strings.texi (Creating Strings): Argument START to `substring' + can not be `nil'. Expand description of + `substring-no-properties'. Correct description of `split-string', + especially with respect to empty matches. Prevent very bad line + break in definition of `split-string-default-separators'. + (Text Comparison): `string=' and `string<' also accept symbols as + arguments. + (String Conversion): More completely describe argument BASE in + `string-to-number'. + (Formatting Strings): `%s' and `%S' in `format' do require + corresponding object. Clarify behavior of numeric prefix after + `%' in `format'. + (Case Conversion): The argument to `upcase-initials' can be a + character. + +2003-10-27 Kenichi Handa + + * display.texi (Fontsets): Fix texinfo usage. + +2003-10-25 Kenichi Handa + + * display.texi (Fontsets): Add description of the function + set-fontset-font. + +2003-10-23 Luc Teirlinck + + * display.texi (Temporary Displays): Add xref to `Documentation + Tips'. + + * functions.texi (Function Safety): Use inforef instead of pxref + for SES. + +2003-10-23 Andreas Schwab + + * Makefile.in (TEX, texinputdir): Don't define. + (TEXI2DVI): Define. + (srcs): Remove $(srcdir)/index.perm and $(srcdir)/index.unperm, + add $(srcdir)/index.texi. + ($(infodir)/elisp): Remove index.texi dependency. + (elisp.dvi): Likewise. Use $(TEXI2DVI). + (index.texi): Remove target. + (dist): Don't link $(srcdir)/permute-index. + (clean): Don't remove index.texi. + + * permute-index, index.perm: Remove. + * index.texi: Rename from index.unperm. + +2003-10-22 Luc Teirlinck + + * tips.texi (Documentation Tips): Document new behavior for face + and variable hyperlinks in Help mode. + +2003-10-21 Luc Teirlinck + + * objects.texi (Integer Type): Update for extra bit of integer range. + (Character Type): Ditto. + +2003-10-16 Eli Zaretskii + + * numbers.texi (Integer Basics): Add index entries for reading + numbers in hex, octal, and binary. + +2003-10-16 Lute Kamstra + + * modes.texi (Mode Line Format): Mention force-mode-line-update's + argument. + +2003-10-13 Luc Teirlinck + + * windows.texi (Choosing Window): Fix typo. + * edebug.texi (Edebug Execution Modes): Fix typo. + +2003-10-13 Richard M. Stallman + + * windows.texi (Basic Windows): A window has fringe settings, + display margins and scroll-bar settings. + (Splitting Windows): Doc split-window return value. + Clean up one-window-p. + (Selecting Windows): Fix typo. + (Cyclic Window Ordering): Explain frame as ALL-FRAMES in next-window. + (Buffers and Windows): In set-window-buffer, explain effect + on fringe settings and scroll bar settings. + (Displaying Buffers): In pop-to-buffer, explain nil as buffer arg. + (Choosing Window): Use defopt for pop-up-frame-function. + For special-display-buffer-names, explain same-window and same-frame. + Clarify window-dedicated-p return value. + (Textual Scrolling): scroll-up and scroll-down can get an error. + (Horizontal Scrolling): Clarify auto-hscroll-mode. + Clarify set-window-hscroll. + (Size of Window): Don't mention tool bar in window-height. + (Coordinates and Windows): Explain what coordinates-in-window-p + returns for fringes and display margins. + (Window Configurations): Explain saving fringes, etc. + + * tips.texi (Library Headers): Clean up Documentation. + + * syntax.texi (Parsing Expressions): Clean up forward-comment + and parse-sexp-lookup-properties. + + * sequences.texi (Sequence Functions): sequencep accepts bool-vectors. + + * os.texi (System Environment): Clean up text for load-average errors. + + * modes.texi (Hooks): Don't explain local hook details at front. + Clarify run-hooks and run-hook-with-args a little. + Clean up add-hook and remove-hook. + + * edebug.texi (Edebug Execution Modes): Clarify t. + Document edebug-sit-for-seconds. + (Coverage Testing): Document C-x X = and =. + (Instrumenting Macro Calls): Fix typo. + (Specification List): Don't index the specification keywords. + +2003-10-10 Kim F. Storm + + * processes.texi (Network): Introduce make-network-process. + +2003-10-09 Luc Teirlinck + + * tips.texi (Library Headers): Fix typo. + +2003-10-07 Juri Linkov + + * modes.texi (Imenu): Mention imenu-create-index-function's + default value. Explain submenus better. + +2003-10-07 Lute Kamstra + + * modes.texi (Faces for Font Lock): Fix typo. + (Hooks): Explain how buffer-local hook variables can refer to + global hook variables. + Various minor clarifications. + +2003-10-06 Lute Kamstra + + * tips.texi (Coding Conventions): Mention naming conventions for + hooks. + +2003-10-05 Luc Teirlinck + + * loading.texi (Library Search): Correct default value of + load-suffixes. + (Named Features): Fix typo. + +2003-10-05 Richard M. Stallman + + * loading.texi (Named Features): In `provide', + say how to test for subfeatures. + (Unloading): In unload-feature, use new var name + unload-feature-special-hooks. + +2003-10-03 Lute Kamstra + + * modes.texi (Major Mode Conventions): Mention third way to set up + Imenu. + (Imenu): A number of small fixes. + Delete documentation of internal variable imenu--index-alist. + Document the return value format of imenu-create-index-function + functions. + +2003-09-30 Richard M. Stallman + + * processes.texi (Network): Say what stopped datagram connections do. + + * lists.texi (Association Lists): Clarify `assq-delete-all'. + + * display.texi (Overlay Properties): Clarify `evaporate' property. + +2003-09-29 Lute Kamstra + + * modes.texi (Mode Line Data): Explain when symbols in mode-line + constructs should be marked as risky. + Change cons cell into proper list. + (Mode Line Variables): Change cons cell into proper list. + +2003-09-26 Lute Kamstra + + * modes.texi (Mode Line Data): Document the :propertize construct. + (Mode Line Variables): Reorder the descriptions of the variables + to match their order in the default mode-line-format. + Describe the new variables mode-line-position and mode-line-modes. + Update the default values of mode-line-frame-identification, + minor-mode-alist, and default-mode-line-format. + (Properties in Mode): Mention the :propertize construct. + +2003-09-26 Richard M. Stallman + + * buffers.texi, commands.texi, debugging.texi, eval.texi: + * loading.texi, minibuf.texi, text.texi, variables.texi: + Avoid @strong{Note:}. + +2003-09-26 Richard M. Stallman + + * keymaps.texi (Remapping Commands): Fix typo. + +2003-09-23 Luc Teirlinck + + * processes.texi (Low-Level Network): Fix typo. + +2003-09-23 Kim F. Storm + + * processes.texi (Network, Network Servers): Fix typos. + (Low-Level Network): Add timeout value for :server keyword. + Add new option keywords to make-network-process. + Add set-network-process-options. + Explain how to test availability of network options. + +2003-09-19 Richard M. Stallman + + * text.texi (Motion by Indent): Arg to + backward-to-indentation and forward-to-indentation is optional. + + * strings.texi (Creating Strings): Add substring-no-properties. + + * processes.texi + (Process Information): Add list-processes arg QUERY-ONLY. + Delete process-contact from here. + Add new status values for process-status. + Add process-get, process-put, process-plist, set-process-plist. + (Synchronous Processes): Add call-process-shell-command. + (Signals to Processes): signal-process allows process objects. + (Network): Complete rewrite. + (Network Servers, Datagrams, Low-Level Network): New nodes. + + * positions.texi (Word Motion): forward-word, backward-word + arg is optional. Reword. + + * abbrevs.texi (Defining Abbrevs): Index no-self-insert. + + * variables.texi (Creating Buffer-Local): + Delete duplicate definition of buffer-local-value. + (File Local Variables): Explain about discarding text props. + +2003-09-11 Richard M. Stallman + + * minibuf.texi (Intro to Minibuffers): Explain that the minibuffer + changes variables that record input events. + (Minibuffer Misc): Add minibuffer-selected-window. + + * lists.texi (Building Lists): Add copy-tree. + + * display.texi (Fontsets): Add char-displayable-p. + (Scroll Bars): New node. + +2003-09-08 Lute Kamstra + + * modes.texi (%-Constructs): Document new `%i' and `%I' + constructs. + +2003-09-03 Peter Runestig + + * makefile.w32-in: New file. + +2003-08-29 Richard M. Stallman + + * display.texi (Overlay Properties): Clarify how priorities + affect use of the properties. + +2003-08-19 Luc Teirlinck + + * customize.texi (Type Keywords): Correct the description of + `:help-echo' in the case where `motion-doc' is a function. + +2003-08-14 John Paul Wallington + + * modes.texi (Emulating Mode Line): Subsection, not section. + +2003-08-13 Richard M. Stallman + + * elisp.texi (Top): Update subnode lists in menu. + + * text.texi (Insertion): Add insert-buffer-substring-no-properties. + (Kill Functions): kill-region has new arg yank-handler. + (Yanking): New node. + (Yank Commands): Add yank-undo-function. + (Low-Level Kill Ring): + kill-new and kill-append have new arg yank-handler. + (Changing Properties): Add remove-list-of-text-properties. + (Atomic Changes): New node. + + * symbols.texi (Other Plists): Add lax-plist-get, lax-plist-put. + + * streams.texi (Output Variables): Add eval-expression-print-length + and eval-expression-print-level. + + * os.texi (Time Conversion): For encode-time, explain limits on year. + + * objects.texi (Character Type): Define anchor "modifier bits". + + * modes.texi (Emulating Mode Line): New node. + (Search-based Fontification): Font Lock uses font-lock-face property. + (Other Font Lock Variables): Likewise. + + * keymaps.texi (Format of Keymaps): Keymaps contain char tables, + not vectors. + (Active Keymaps): Add emulation-mode-map-alists. + (Functions for Key Lookup): key-binding has new arg no-remap. + (Remapping Commands): New node. + (Scanning Keymaps): where-is-internal has new arg no-remap. + (Tool Bar): Add tool-bar-local-item-from-menu. + Clarify when to use tool-bar-add-item-from-menu. + + * commands.texi (Interactive Call): commandp has new arg. + (Command Loop Info): Add this-original-command. + +2003-08-06 John Paul Wallington + + * compile.texi (Compiler Errors): Say `@end defmac' after `@defmac'. + + * display.texi (Warning Basics): Fix typo. + (Fringes): Add closing curly bracket and fix typo. + + * elisp.texi (Top): Fix typo. + +2003-08-05 Richard M. Stallman + + * elisp.texi: Update lists of subnodes. + + * windows.texi (Buffers and Windows): set-window-buffer has new arg. + + * variables.texi (Local Variables): Use lc for example variable names. + + * tips.texi (Library Headers): Explain where to put -*-. + + * strings.texi (Creating Strings): Fix xref for vconcat. + + * sequences.texi (Vector Functions): + vconcat no longer allows integer args. + + * 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' + (Indenting Macros): New node. + + * frames.texi (Parameter Access): Add modify-all-frames-parameters. + (Window Frame Parameters): Make separate table of parameters + that are coupled with specific face attributes. + (Deleting Frames): delete-frame-hooks renamed to + delete-frame-functions. + + * files.texi (Magic File Names): Add file-remote-p. + Clarify file-local-copy. + + * edebug.texi (Instrumenting Macro Calls): Don't define `declare' + here; instead xref Defining Macros. + + * display.texi (Warnings): New node, and subnodes. + (Fringes): New node. + + * debugging.texi (Test Coverage): New node. + + * compile.texi (Compiler Errors): Explain with-no-warnings + and other ways to suppress warnings. + + * commands.texi (Interactive Call): Minor clarification. + + * buffers.texi (Buffer File Name): set-visited-file-name + renames the buffer too. + + * abbrevs.texi (Abbrev Tables): Add copy-abbrev-table. + +2003-07-24 Markus Rost + + * abbrevs.texi (Abbrev Expansion): Use \s syntax in example. + +2003-07-22 Markus Rost + + * internals.texi (Garbage Collection): Fix previous change. + +2003-07-22 Richard M. Stallman + + * files.texi (Truenames): Add LIMIT arg to file-chase-links. + + * display.texi (Width): Use \s syntax in example. + (Font Selection): Add face-font-rescale-alist. + + * modes.texi (Imenu): Add xref to Emacs Manual node on Imenu. + Remove spurious indent in example. + + * lists.texi (Building Lists): Add number-sequence. + + * internals.texi (Garbage Collection): Add gcs-done, gc-elapsed. + + * functions.texi (Function Documentation): Explain how to + show calling convention explicitly in the doc string. + + * windows.texi (Selecting Windows): save-selected-window saves + selected window of each frame. + (Window Configurations): Minor change. + + * syntax.texi (Syntax Table Functions): Use \s syntax in examples. + + * streams.texi (Output Variables): Add print-continuous-numbering + and print-number-table. + + * processes.texi (Decoding Output): New node. + + * os.texi (Time Conversion): decode-time arg is optional. + + * objects.texi (Character Type): Don't use space as example for \. + Make list of char names and \-sequences correspond. + Explain that \s is not used in strings. `\ ' needs space after. + + * nonascii.texi (Converting Representations): Add string-to-multibyte. + (Translation of Characters): Add translation-table-for-input. + (Default Coding Systems): Add auto-coding-functions. + (Explicit Encoding): Add decode-coding-inserted-region. + (Locales): Add locale-info. + + * minibuf.texi (Basic Completion): Describe test-completion. + Collections can be lists of strings. + Clean up lazy-completion-table. + (Programmed Completion): Mention test-completion. + Clarify why lambda expressions are not accepted. + (Minibuffer Misc): Describe minibufferp. + +2003-07-14 Richard M. Stallman + + * buffers.texi (Killing Buffers): kill-buffer-hook is perm local. + + * windows.texi (Selecting Windows): New arg to select-window. + (Selecting Windows): Add with-selected-window. + (Size of Window): Add window-inside-edges, etc. + + * internals.texi (Garbage Collection): Add post-gc-hook. + + * processes.texi (Subprocess Creation): Add exec-suffixes. + + * keymaps.texi (Functions for Key Lookup): Add current-active-maps. + (Scanning Keymaps): Add map-keymaps. + (Defining Menus): Add keymap-prompt. + + * numbers.texi (Integer Basics): Add most-positive-fixnum, + most-negative-fixnum. + + * compile.texi (Byte Compilation): Explain no-byte-compile + (Compiler Errors): New node. + + * os.texi (User Identification): user-uid, user-real-uid + can return float. + + * modes.texi (Major Mode Conventions): Explain about run-mode-hooks + and about derived modes. + (Minor Modes): Add minor-mode-list. + (Defining Minor Modes): Keyword args for define-minor-mode. + (Search-based Fontification): Explain managing other properties. + (Other Font Lock Variables): Add font-lock-extra-managed-props. + (Faces for Font Lock): Add font-locl-preprocessor-face. + (Hooks): Add run-mode-hooks and delay-mode-hooks. + + * variables.texi (Creating Buffer-Local): Add buffer-local-value. + (Variable Aliases): Clarify defvaralias. + + * loading.texi (Library Search): Add load-suffixes. + + * minibuf.texi (Basic Completion): Add lazy-completion-table. + (Programmed Completion): Add dynamic-completion-table. + + * files.texi (Changing Files): copy-file allows dir as NEWNAME. + (Magic File Names): Specify precedence order of handlers. + + * commands.texi (Command Overview): Emacs server runs pre-command-hook + and post-command-hook. + (Waiting): New calling convention for sit-for. + + * text.texi (Special Properties): local-map and keymap properties + apply based on their stickiness. + +2003-07-07 Richard M. Stallman + + * modes.texi (Minor Mode Conventions): Specify only some kinds + of list values as args to minor modes. + + * files.texi (File Name Expansion): Warn about iterative use + of substitute-in-file-name. + + * advice.texi (Activation of Advice): Clean up previous change. + +2003-07-06 Markus Rost + + * advice.texi (Activation of Advice): Note that ad-start-advice is + turned on by default. + +2003-06-30 Richard M. Stallman + + * text.texi (Buffer Contents): Document current-word. + (Change Hooks): Not called for *Messages*. + + * functions.texi (Defining Functions): Explain about redefining + primitives. + (Function Safety): Renamed. Minor changes. + Comment out the detailed criteria for what is safe. + +2003-06-22 Andreas Schwab + + * objects.texi (Symbol Type): Fix description of examples. + +2003-06-16 Andreas Schwab + + * hash.texi (Creating Hash): Fix description of :weakness. + +2003-06-13 Kai Gro,A_(Bjohann + + * files.texi (Changing Files): copy-file copies file modes, too. + +2003-05-28 Richard M. Stallman + + * strings.texi (Creating Strings): Clarify split-string. + +2003-05-22 Stephen J. Turnbull + + * strings.texi (Creating Strings): Update split-string specification + and examples. + +2003-05-19 Richard M. Stallman + + * elisp.texi: Correct invariant section names. + +2003-04-20 Richard M. Stallman + + * os.texi (Timers): Explain about timers and quitting. + +2003-04-19 Richard M. Stallman + + * internals.texi (Writing Emacs Primitives): Strings are + no longer special for GCPROs. Mention GCPRO5, GCPRO6. + Explain GCPRO convention for varargs function args. + +2003-04-16 Richard M. Stallman + + * minibuf.texi (Minibuffer Misc): Document fn minibuffer-message. + +2003-04-08 Richard M. Stallman + + * files.texi (Kinds of Files): Correct return value of file-symlink-p. + +2003-02-13 Kim F. Storm + + * objects.texi (Character Type): New \s escape for space. + +2003-01-31 Joe Buehler + + * os.texi (System Environment): Added cygwin system-type. + +2003-01-25 Richard M. Stallman + + * keymaps.texi: Document that a symbol can act as a keymap. + +2003-01-13 Richard M. Stallman + + * text.texi (Changing Properties): Say string indices are origin-0. + + * positions.texi (Screen Lines) : + Correct order of elts in return value. + + * keymaps.texi (Changing Key Bindings) : Mention + how to define a default binding. + +2002-12-07 Markus Rost + + * loading.texi (Unloading): Fix recent change for load-history. + + * customize.texi (Simple Types): Clarify description of custom + type 'number. Describe new custom type 'float. + +2002-12-04 Markus Rost + + * variables.texi (File Local Variables): Fix typo. + +2002-10-23 Kai Gro,A_(Bjohann + + From Michael Albinus . + + * README: Target for Info file is `make info'. + + * files.texi (File Name Components): Fixed typos in + `file-name-sans-extension'. + (Magic File Names): Complete list of operations for magic file + name handlers. + +2002-09-16 Jonathan Yavner + + * variables.texi (File Local Variables): New function + risky-local-variable-p. + +2002-09-15 Jonathan Yavner + + * functions.texi (Function safety): New node about unsafep. + +2002-08-05 Per Abrahamsen + + * customize.texi (Splicing into Lists): Fixed example. + Reported by Fabrice Bauzac + +2002-06-17 Juanma Barranquero + + * frames.texi (Display Feature Testing): Fix typo. + +2002-06-12 Andreas Schwab + + * frames.texi (Initial Parameters, Resources): Fix references to + the Emacs manual. + +2002-05-13 Kim F. Storm + + * variables.texi (Intro to Buffer-Local): Updated warning and + example relating to changing buffer inside let. + +2002-03-10 Jan Dj,Ad(Brv + + * os.texi (Session Management): New node about X Session management. + +2002-01-18 Eli Zaretskii + + * elisp.texi (VERSION): Set to 2.9. Update the version of Emacs + to which the manual corresponds, and the copyright years. + + * Makefile.in (VERSION): Set to 2.9. + +2001-11-29 Eli Zaretskii + + * elisp.texi: Change the category in @dircategory to "Emacs", to + make it consistent with info/dir. + +2001-11-25 Miles Bader + + * text.texi (Fields): Describe new `limit' arg in + field-beginning/field-end. + +2001-11-17 Eli Zaretskii + + * permute-index: Don't depend on csh-specific features. Replace + the interpreter name with /bin/sh. + + * two-volume-cross-refs.txt: New file. + * two.el: New file. + * spellfile: New file. + +2001-11-16 Eli Zaretskii + + * permute-index: New file. + + * vol1.texi, vol2.texi: Renamed from elisp-vol1.texi and + elisp-vol2.texi, respectively, to avoid file-name clashes in DOS + 8+3 restricted namespace. + + * Makefile.in (infodir): Define relative to $(srcdir). + ($(infodir)/elisp): Don't chdir into $(srcdir), but add it to the + include directories list via -I switch to makeinfo. + (index.texi): Use cp if both hard and symbolic links fail. + +2001-11-10 Eli Zaretskii + + * Makefile.in (distclean): Add. + + The following changes make ELisp manual part of the Emacs + distribution: + + * Makefile.in: Add Copyright notice. + (prefix): Remove. + (infodir): Change value to "../info". + (VPATH): New variable. + (MAKE): Don't define. + (texmacrodir): Don't define. + (texinputdir): Append the existing value of TEXINPUTS. + ($(infodir)/elisp): Instead of just "elisp". Reformat the + command to be compatible with man/Makefile.in, and to put the + output into ../info. + (info): Add target. + (installall): Target removed. + +2001-10-31 Pavel Jan,Am(Bk + + * tips.texi (Coding Conventions): Fix typo. + +2001-10-23 Gerd Moellmann + + * Makefile.in (srcs): Add gpl.texi and doclicense.texi. + +2001-10-22 Eli Zaretskii + + * files.texi (File Name Components): Update the description of + file-name-sans-extension and file-name-extension, as they now + ignore leading dots. + +2001-10-20 Gerd Moellmann + + * (Version 21.1 released.) + +2001-10-19 Miles Bader + + * positions.texi (Text Lines): Describe behavior of + `beginning-of-line'/`end-of-line' in the presence of field properties. + +2001-10-17 Gerd Moellmann + + * Makefile.in (VERSION): Set to 2.8. + (manual): Use `manual-21'. + + * elisp.texi (VERSION): Add and use it where the version + number was used. Set it to 2.8. + + * intro.texi: Likewise. + +2001-10-13 Eli Zaretskii + + * files.texi (File Name Completion): Document the significance of + a trailing slash in elements of completion-ignored-extensions. + +2001-10-06 Miles Bader + + * variables.texi (Variable Aliases): It's `@defmac', not `@defmacro'. + +2001-10-04 Gerd Moellmann + + * variables.texi (Variable Aliases): New node. + +2001-10-04 Gerd Moellmann + + * Branch for 21.1. + +2001-10-02 Miles Bader + + * minibuf.texi (Minibuffer Misc): Add entries for + `minibuffer-contents', `minibuffer-contents-no-properties', and + `delete-minibuffer-contents'. + Correct description for `minibuffer-prompt-end'. + + * text.texi (Property Search): Correct descriptions of + `next-char-property-change' and `previous-char-property-change'. + Add entries for `next-single-char-property-change' and + `previous-single-char-property-change'. + Make operand names a bit more consistent. + +2001-09-30 Eli Zaretskii + + * frames.texi (Finding All Frames): Document that next-frame and + previous-frame are local to current terminal. + +2001-09-26 Eli Zaretskii + + * keymaps.texi (Creating Keymaps): Fix the description of the + result of make-keymap. + +2001-09-23 Eli Zaretskii + + * display.texi (Font Lookup, Attribute Functions) + (Image Descriptors): Add cross-references to the definition of + selected frame. + + * buffers.texi (The Buffer List): Add cross-references to the + definition of selected frame. + + * frames.texi (Input Focus): Clarify which frame is _the_ selected + frame at any given time. + (Multiple Displays, Size and Position): Add a cross-reference to + the definition of the selected frame. + +2001-09-08 Eli Zaretskii + + * strings.texi (String Conversion) : Document + that a float is returned for integers that are too large. + + * frames.texi (Mouse Position): Document mouse-position-function. + (Display Feature Testing): Document display-images-p. + (Window Frame Parameters): Document the cursor-type variable. + + * numbers.texi (Integer Basics): Document CL style read syntax for + integers in bases other than 10. + + * positions.texi (List Motion): Document + open-paren-in-column-0-is-defun-start. + + * lists.texi (Sets And Lists): Document member-ignore-case. + + * internals.texi (Garbage Collection): Document the used and free + strings report. + (Memory Usage): Document strings-consed. + + * os.texi (Time of Day): Document float-time. + (Recording Input): Document that clear-this-command-keys clears + the vector to be returned by recent-keys. + + * keymaps.texi (Scanning Keymaps) : The + argument keymap can be a list. + + * nonascii.texi (User-Chosen Coding Systems) + : Document the new argument + accept-default-p and the variable + select-safe-coding-system-accept-default-p. Tell what happens if + buffer-file-coding-system is undecided. + (Default Coding Systems): Document auto-coding-regexp-alist. + + * display.texi (The Echo Area) : Document + message-truncate-lines. + (Glyphs): Document that the glyph table is unused on windowed + displays. + + * help.texi (Describing Characters) : + Document the new argument no-angles. + (Accessing Documentation) : Document that + a non-string property is evaluated. + : Document that the function-documentation property + is looked for. + + * windows.texi (Selecting Windows): Document some-window. + + * text.texi (MD5 Checksum): New node, documents the md5 primitive. + + * hooks.texi (Standard Hooks): Add kbd-macro-termination-hook and + apropos-mode-hook. + + * commands.texi (Using Interactive): Document interactive-form. + (Keyboard Macros): Document kbd-macro-termination-hook. + (Command Loop Info): Document that clear-this-command-keys clears + the vector to be returned by recent-keys. + +2001-09-04 Werner LEMBERG + + * Makefile.in (srcdir, texinputdir): New variables. + (srcs, index.texi, install): Use $(srcdir). + (.PHONY): Remove elisp.dvi. + (elisp): Use -I switch for makeinfo. + (elisp.dvi): Use $(srcdir) and $(texinputdir). + (installall, dist): Use $(srcdir). + Fix path to texinfo.tex. + (maintainer-clean): Add elisp.dvi and elisp.oaux. + +2001-08-30 Gerd Moellmann + + * display.texi (Conditional Display): Adjust to API change. + + * configure: New file. + +2001-07-30 Gerd Moellmann + + * commands.texi (Repeat Events): Add description of + double-click-fuzz. + +2001-05-08 Stefan Monnier + + * syntax.texi (Syntax Class Table): Add the missing designator for + comment and string fences. + (Syntax Properties): Add a xref to syntax table internals. + (Syntax Table Internals): Document string-to-syntax. + +2001-05-07 Gerd Moellmann + + * Makefile.in (install): Use install-info command line options + like in Emacs' Makefile.in. + +2000-12-09 Miles Bader + + * windows.texi (Window Start): Update documentation for + `pos-visible-in-window-p'. + +2000-11-12 Stefan Monnier + + * lists.texi (Building Lists): Add footnote to explain how to add + to the end of a list. + +2000-10-25 Gerd Moellmann + + * files.texi (Visiting Functions): Typos. + +2000-10-25 Kenichi Handa + + * files.texi (Visiting Functions): Return value of + find-file-noselect may be a list of buffers if wildcards are used. + +2000-10-24 Miles Bader + + * display.texi (Defining Faces): Document `graphic' display type + in face specs. + +2000-10-18 Kai Grossjohann + + * hooks.texi (Standard Hooks): Replace obsolete + `after-make-frame-hook' with `after-make-frame-functions'. + + * frames.texi (Creating Frames): Ditto. + + * variables.texi (Future Local Variables): Ditto. + +2000-10-16 Gerd Moellmann + + * display.texi (Other Image Types): Add description of :foreground + and :background properties of mono PBM images. + +2000-08-17 Werner LEMBERG + + * .cvsignore: New file. + +2000-01-05 Gerd Moellmann + + * tindex.pl: New script. + +1999-12-03 Dave Love + + * Makefile.in (MAKEINFO): New parameter. + +1999-09-17 Richard Stallman + + * Makefile.in (srcs): Add hash.texi. + (VERSION): Update to 20.6. + +1999-09-13 Richard Stallman + + * Makefile.in (index.texi): If cannot make a symlink, make a hard link. + +1998-08-29 Karl Heuer + + * configure.in: New file. + * Makefile.in: Renamed from Makefile. + (prefix, infodir): Use value obtained from configure. + (emacslibdir): Obsolete variable deleted. + (dist): Distribute configure.in, configure, Makefile.in. + +1998-06-12 Richard Stallman + + * Makefile (INSTALL_INFO): New variable. + (install): Run install-info. + +1998-05-09 Richard Stallman + + * Makefile (elisp.dvi): Add missing backslash. + +1998-05-02 Richard Stallman + + * Makefile (elisp.dvi): Don't depend on texindex or on elisp.tps. + Run texindex without `./'. Always run texindex on elisp.tp. + (elisp.tps): Target deleted. + +1998-04-05 Richard Stallman + + * Makefile (srcs): Add nonascii.texi and customize.texi. + (dist): Start by deleting `temp'. + +1998-02-17 Richard Stallman + + * Makefile (makeinfo, texindex): Targets deleted. + (makeinfo.o, texindex.o): Targets deleted. + (clean, dist): Don't do anything with them or with getopt*. + +1998-01-30 Richard Stallman + + * Makefile (SHELL): Defined. + +1998-01-27 Richard Stallman + + * Makefile (elisp.tps): New target. + (elisp.dvi): Depend on elisp.tps. + +Wed Apr 3 15:24:25 1996 Karl Heuer + + * README: Update phone number. + + * Makefile (elisp): Make this be the default target. + Depend on makeinfo.c instead of makeinfo. + (install): Don't depend on elisp.dvi, since we don't install that. + Use mkinstalldirs. + (dist): Add mkinstalldirs. + +Mon Jun 19 14:35:26 1995 Richard Stallman + + * Makefile (VERSION): Update version number. + (maintainer-clean): Renamed from realclean. + +Wed Jun 7 17:04:59 1995 Karl Heuer + + * Makefile (realclean): New target. + (elisp): Remove any old elisp-* files first. + +Tue Nov 23 19:59:40 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) + + * Makefile (VERSION): New variable. + (dist): Make packaged directory name `elisp-manual-19-$(VERSION)'. + Compressed file suffix should be `.gz', not `.z'. + +Mon Nov 22 15:06:19 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile (elisp): Depend on makeinfo. + +Fri Nov 19 02:29:33 1993 Noah Friedman (friedman@gnu.ai.mit.edu) + + * Makefile (srcs): Add anti.texi. + +Fri May 28 18:04:53 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile (infodir, prefix): New vars. + (install): Use infodir. + (emacsinfodir): Deleted. + +Thu May 27 02:11:25 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile (srcs): Add calendar.texi. + + * Makefile (dist): Copy texindex.c and makeinfo.c. + Limit elisp-* files to those with one or two digits. + +Sun May 16 17:58:21 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile (dist): Changed to use Gzip instead of compress. + +Fri Apr 23 01:05:23 1993 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * loading.texi (Unloading): define-function changed back to + defalias. It may not stay this way, but at least it's + consistent with the known-good version of the code patch. + +Fri Mar 26 21:14:54 1993 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) + + * modes.texi (Hooks): Document new optional arg of add-hook. + +Wed Mar 17 08:48:24 1993 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) + + * variables.texi: Document nil initial value of buffer-local variables. + + * tips.texi: Add new section on standard library headers. + +Sat Feb 27 18:00:25 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile (srcs): Add frame.texi to the list of sources. + +Tue Feb 23 10:50:25 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile (dist): Don't bother excluding autosave files; they'll + never make it into the temp directory anyway, and the hash marks + in the name are problematic for make and the Bourne shell. + (srcs): + +Fri Feb 12 16:54:38 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) + + * Makefile (dist): Don't include backup files or autosave files in + the distribution tar file. + +Tue Nov 26 21:10:34 1991 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile (srcs): Added index.perm. + (elisp.dvi): Remove erroneous shell comment. + Expect output of permute-index in permuted.fns. + Save old elisp.aux in elisp.oaux. + (clean): Added index.texi to be deleted. + +Sat Aug 11 17:39:10 1990 Richard Stallman (rms@sugar-bombs.ai.mit.edu) + + * Makefile (elisp.dvi, index.texi): Use shell if instead of ifdef. + +Tue Jun 26 09:57:26 1990 David Lawrence (tale@geech) + + * files.texi: Noted that completion-ignored-extensions is ignored + when making *Completions*. + +Fri Jun 8 16:44:44 EDT 1990 Jay Fenlason (hack@ai.mit.edu) + + * Makefile make dist now depends on elisp.dvi, since it tries + to include it in the dist file. + +Wed Mar 28 22:57:35 1990 Jim Kingdon (kingdon@mole.ai.mit.edu) + + * functions.texinfo (Mapping Functions): Add missing quote + +Mon Jun 19 18:09:24 1989 Richard Stallman (rms@sugar-bombs.ai.mit.edu) + + * texinfo.tex (frenchspacing): Use decimal codes for char to be set. + (defunargs): Turn off \hyphenchar of \sl font temporarily. + +Wed May 10 18:01:17 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) + + * @result{}, @expansion{}, @print{}, @quiv{}, @point{}, + and @error{} are the terms now being used. The files in the + directory have been changed to reflect this. + + * All instances of @indentedresultt{} have been changed to + ` @result{}', using 5 spaces at the begining of the line. + +Mon Apr 24 21:02:55 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) + + * @result{}, @expandsto{}, @prints{}, @quiv{}, @error{}, and the + experimental @indentedresult{}, @indentedexpandsto{} are part of + the texinfo.tex in this directory. These TeX macros are not + stable yet. + +Mon Apr 17 18:56:50 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) + + * texinfo.tex: Temporarily added + \let\result=\dblarrow + \def\error{{\it ERROR} \longdblarrow} + We need to do this better soon. + +Tue Apr 11 12:23:28 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) + + * Applied Karl Berry's patches to *.texinfo files, but not to + texinfo.tex; those diffs are in `berry-texinfo-tex-diffs'. (Karl's + new title page format is also not applied, since it requires + texinfo.tex changes.) + + * Cleaned up `Makefile' and defined the `emacslibdir' directory + for the Project GNU development environment. + +;; Local Variables: +;; coding: iso-2022-7bit +;; add-log-time-zone-rule: t +;; End: + + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + +;;; arch-tag: 985ae0ce-df29-475b-b3f8-4bbcbf6f7fda diff --cc doc/lispref/commands.texi index cdd627f6b52,00000000000..aef7e4d9a43 mode 100644,000000..100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@@ -1,3316 -1,0 +1,3321 @@@ +@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 Free Software Foundation, Inc. +@c See the file elisp.texi for copying conditions. +@setfilename ../../info/commands +@node Command Loop, Keymaps, Minibuffers, Top +@chapter Command Loop +@cindex editor command loop +@cindex command loop + + When you run Emacs, it enters the @dfn{editor command loop} almost +immediately. This loop reads key sequences, executes their definitions, +and displays the results. In this chapter, we describe how these things +are done, and the subroutines that allow Lisp programs to do them. + +@menu +* Command Overview:: How the command loop reads commands. +* Defining Commands:: Specifying how a function should read arguments. +* Interactive Call:: Calling a command, so that it will read arguments. +* Distinguish Interactive:: Making a command distinguish interactive calls. +* Command Loop Info:: Variables set by the command loop for you to examine. +* Adjusting Point:: Adjustment of point after a command. +* Input Events:: What input looks like when you read it. +* Reading Input:: How to read input events from the keyboard or mouse. +* Special Events:: Events processed immediately and individually. +* Waiting:: Waiting for user input or elapsed time. +* Quitting:: How @kbd{C-g} works. How to catch or defer quitting. +* Prefix Command Arguments:: How the commands to set prefix args work. +* Recursive Editing:: Entering a recursive edit, + and why you usually shouldn't. +* Disabling Commands:: How the command loop handles disabled commands. +* Command History:: How the command history is set up, and how accessed. +* Keyboard Macros:: How keyboard macros are implemented. +@end menu + +@node Command Overview +@section Command Loop Overview + + The first thing the command loop must do is read a key sequence, which +is a sequence of events that translates into a command. It does this by +calling the function @code{read-key-sequence}. Your Lisp code can also +call this function (@pxref{Key Sequence Input}). Lisp programs can also +do input at a lower level with @code{read-event} (@pxref{Reading One +Event}) or discard pending input with @code{discard-input} +(@pxref{Event Input Misc}). + + The key sequence is translated into a command through the currently +active keymaps. @xref{Key Lookup}, for information on how this is done. +The result should be a keyboard macro or an interactively callable +function. If the key is @kbd{M-x}, then it reads the name of another +command, which it then calls. This is done by the command +@code{execute-extended-command} (@pxref{Interactive Call}). + + To execute a command requires first reading the arguments for it. +This is done by calling @code{command-execute} (@pxref{Interactive +Call}). For commands written in Lisp, the @code{interactive} +specification says how to read the arguments. This may use the prefix +argument (@pxref{Prefix Command Arguments}) or may read with prompting +in the minibuffer (@pxref{Minibuffers}). For example, the command +@code{find-file} has an @code{interactive} specification which says to +read a file name using the minibuffer. The command's function body does +not use the minibuffer; if you call this command from Lisp code as a +function, you must supply the file name string as an ordinary Lisp +function argument. + + If the command is a string or vector (i.e., a keyboard macro) then +@code{execute-kbd-macro} is used to execute it. You can call this +function yourself (@pxref{Keyboard Macros}). + + To terminate the execution of a running command, type @kbd{C-g}. This +character causes @dfn{quitting} (@pxref{Quitting}). + +@defvar pre-command-hook +The editor command loop runs this normal hook before each command. At +that time, @code{this-command} contains the command that is about to +run, and @code{last-command} describes the previous command. +@xref{Command Loop Info}. +@end defvar + +@defvar post-command-hook +The editor command loop runs this normal hook after each command +(including commands terminated prematurely by quitting or by errors), +and also when the command loop is first entered. At that time, +@code{this-command} refers to the command that just ran, and +@code{last-command} refers to the command before that. +@end defvar + + Quitting is suppressed while running @code{pre-command-hook} and +@code{post-command-hook}. If an error happens while executing one of +these hooks, it terminates execution of the hook, and clears the hook +variable to @code{nil} so as to prevent an infinite loop of errors. + + A request coming into the Emacs server (@pxref{Emacs Server,,, +emacs, The GNU Emacs Manual}) runs these two hooks just as a keyboard +command does. + +@node Defining Commands +@section Defining Commands +@cindex defining commands +@cindex commands, defining +@cindex functions, making them interactive +@cindex interactive function + + A Lisp function becomes a command when its body contains, at top +level, a form that calls the special form @code{interactive}. This +form does nothing when actually executed, but its presence serves as a +flag to indicate that interactive calling is permitted. Its argument +controls the reading of arguments for an interactive call. + +@menu +* Using Interactive:: General rules for @code{interactive}. +* Interactive Codes:: The standard letter-codes for reading arguments + in various ways. +* Interactive Examples:: Examples of how to read interactive arguments. +@end menu + +@node Using Interactive +@subsection Using @code{interactive} +@cindex arguments, interactive entry + + This section describes how to write the @code{interactive} form that +makes a Lisp function an interactively-callable command, and how to +examine a command's @code{interactive} form. + +@defspec interactive arg-descriptor +This special form declares that the function in which it appears is a +command, and that it may therefore be called interactively (via +@kbd{M-x} or by entering a key sequence bound to it). The argument +@var{arg-descriptor} declares how to compute the arguments to the +command when the command is called interactively. + +A command may be called from Lisp programs like any other function, but +then the caller supplies the arguments and @var{arg-descriptor} has no +effect. + +The @code{interactive} form has its effect because the command loop +(actually, its subroutine @code{call-interactively}) scans through the +function definition looking for it, before calling the function. Once +the function is called, all its body forms including the +@code{interactive} form are executed, but at this time +@code{interactive} simply returns @code{nil} without even evaluating its +argument. +@end defspec + +There are three possibilities for the argument @var{arg-descriptor}: + +@itemize @bullet +@item +It may be omitted or @code{nil}; then the command is called with no +arguments. This leads quickly to an error if the command requires one +or more arguments. + +@item +It may be a string; then its contents should consist of a code character +followed by a prompt (which some code characters use and some ignore). +The prompt ends either with the end of the string or with a newline. +Here is a simple example: + +@smallexample +(interactive "bFrobnicate buffer: ") +@end smallexample + +@noindent +The code letter @samp{b} says to read the name of an existing buffer, +with completion. The buffer name is the sole argument passed to the +command. The rest of the string is a prompt. + +If there is a newline character in the string, it terminates the prompt. +If the string does not end there, then the rest of the string should +contain another code character and prompt, specifying another argument. +You can specify any number of arguments in this way. + +@c Emacs 19 feature +The prompt string can use @samp{%} to include previous argument values +(starting with the first argument) in the prompt. This is done using +@code{format} (@pxref{Formatting Strings}). For example, here is how +you could read the name of an existing buffer followed by a new name to +give to that buffer: + +@smallexample +@group +(interactive "bBuffer to rename: \nsRename buffer %s to: ") +@end group +@end smallexample + +@cindex @samp{*} in @code{interactive} +@cindex read-only buffers in interactive +If the first character in the string is @samp{*}, then an error is +signaled if the buffer is read-only. + +@cindex @samp{@@} in @code{interactive} +@c Emacs 19 feature +If the first character in the string is @samp{@@}, and if the key +sequence used to invoke the command includes any mouse events, then +the window associated with the first of those events is selected +before the command is run. + +You can use @samp{*} and @samp{@@} together; the order does not matter. +Actual reading of arguments is controlled by the rest of the prompt +string (starting with the first character that is not @samp{*} or +@samp{@@}). + +@item +It may be a Lisp expression that is not a string; then it should be a +form that is evaluated to get a list of arguments to pass to the +command. Usually this form will call various functions to read input +from the user, most often through the minibuffer (@pxref{Minibuffers}) +or directly from the keyboard (@pxref{Reading Input}). + +Providing point or the mark as an argument value is also common, but +if you do this @emph{and} read input (whether using the minibuffer or +not), be sure to get the integer values of point or the mark after +reading. The current buffer may be receiving subprocess output; if +subprocess output arrives while the command is waiting for input, it +could relocate point and the mark. + +Here's an example of what @emph{not} to do: + +@smallexample +(interactive + (list (region-beginning) (region-end) + (read-string "Foo: " nil 'my-history))) +@end smallexample + +@noindent +Here's how to avoid the problem, by examining point and the mark after +reading the keyboard input: + +@smallexample +(interactive + (let ((string (read-string "Foo: " nil 'my-history))) + (list (region-beginning) (region-end) string))) +@end smallexample + +@strong{Warning:} the argument values should not include any data +types that can't be printed and then read. Some facilities save +@code{command-history} in a file to be read in the subsequent +sessions; if a command's arguments contain a data type that prints +using @samp{#<@dots{}>} syntax, those facilities won't work. + +There are, however, a few exceptions: it is ok to use a limited set of +expressions such as @code{(point)}, @code{(mark)}, +@code{(region-beginning)}, and @code{(region-end)}, because Emacs +recognizes them specially and puts the expression (rather than its +value) into the command history. To see whether the expression you +wrote is one of these exceptions, run the command, then examine +@code{(car command-history)}. +@end itemize + +@cindex examining the @code{interactive} form +@defun interactive-form function +This function returns the @code{interactive} form of @var{function}. +If @var{function} is an interactively callable function +(@pxref{Interactive Call}), the value is the command's +@code{interactive} form @code{(interactive @var{spec})}, which +specifies how to compute its arguments. Otherwise, the value is +@code{nil}. If @var{function} is a symbol, its function definition is +used. +@end defun + +@node Interactive Codes +@comment node-name, next, previous, up +@subsection Code Characters for @code{interactive} +@cindex interactive code description +@cindex description for interactive codes +@cindex codes, interactive, description of +@cindex characters for interactive codes + + The code character descriptions below contain a number of key words, +defined here as follows: + +@table @b +@item Completion +@cindex interactive completion +Provide completion. @key{TAB}, @key{SPC}, and @key{RET} perform name +completion because the argument is read using @code{completing-read} +(@pxref{Completion}). @kbd{?} displays a list of possible completions. + +@item Existing +Require the name of an existing object. An invalid name is not +accepted; the commands to exit the minibuffer do not exit if the current +input is not valid. + +@item Default +@cindex default argument string +A default value of some sort is used if the user enters no text in the +minibuffer. The default depends on the code character. + +@item No I/O +This code letter computes an argument without reading any input. +Therefore, it does not use a prompt string, and any prompt string you +supply is ignored. + +Even though the code letter doesn't use a prompt string, you must follow +it with a newline if it is not the last code character in the string. + +@item Prompt +A prompt immediately follows the code character. The prompt ends either +with the end of the string or with a newline. + +@item Special +This code character is meaningful only at the beginning of the +interactive string, and it does not look for a prompt or a newline. +It is a single, isolated character. +@end table + +@cindex reading interactive arguments + Here are the code character descriptions for use with @code{interactive}: + +@table @samp +@item * +Signal an error if the current buffer is read-only. Special. + +@item @@ +Select the window mentioned in the first mouse event in the key +sequence that invoked this command. Special. + +@item a +A function name (i.e., a symbol satisfying @code{fboundp}). Existing, +Completion, Prompt. + +@item b +The name of an existing buffer. By default, uses the name of the +current buffer (@pxref{Buffers}). Existing, Completion, Default, +Prompt. + +@item B +A buffer name. The buffer need not exist. By default, uses the name of +a recently used buffer other than the current buffer. Completion, +Default, Prompt. + +@item c +A character. The cursor does not move into the echo area. Prompt. + +@item C +A command name (i.e., a symbol satisfying @code{commandp}). Existing, +Completion, Prompt. + +@item d +@cindex position argument +The position of point, as an integer (@pxref{Point}). No I/O. + +@item D +A directory name. The default is the current default directory of the +current buffer, @code{default-directory} (@pxref{File Name Expansion}). +Existing, Completion, Default, Prompt. + +@item e +The first or next mouse event in the key sequence that invoked the command. +More precisely, @samp{e} gets events that are lists, so you can look at +the data in the lists. @xref{Input Events}. No I/O. + +You can use @samp{e} more than once in a single command's interactive +specification. If the key sequence that invoked the command has +@var{n} events that are lists, the @var{n}th @samp{e} provides the +@var{n}th such event. Events that are not lists, such as function keys +and @acronym{ASCII} characters, do not count where @samp{e} is concerned. + +@item f +A file name of an existing file (@pxref{File Names}). The default +directory is @code{default-directory}. Existing, Completion, Default, +Prompt. + +@item F +A file name. The file need not exist. Completion, Default, Prompt. + +@item G +A file name. The file need not exist. If the user enters just a +directory name, then the value is just that directory name, with no +file name within the directory added. Completion, Default, Prompt. + +@item i +An irrelevant argument. This code always supplies @code{nil} as +the argument's value. No I/O. + +@item k +A key sequence (@pxref{Key Sequences}). This keeps reading events +until a command (or undefined command) is found in the current key +maps. The key sequence argument is represented as a string or vector. +The cursor does not move into the echo area. Prompt. + +If @samp{k} reads a key sequence that ends with a down-event, it also +reads and discards the following up-event. You can get access to that +up-event with the @samp{U} code character. + +This kind of input is used by commands such as @code{describe-key} and +@code{global-set-key}. + +@item K +A key sequence, whose definition you intend to change. This works like +@samp{k}, except that it suppresses, for the last input event in the key +sequence, the conversions that are normally used (when necessary) to +convert an undefined key into a defined one. + +@item m +@cindex marker argument +The position of the mark, as an integer. No I/O. + +@item M +Arbitrary text, read in the minibuffer using the current buffer's input +method, and returned as a string (@pxref{Input Methods,,, emacs, The GNU +Emacs Manual}). Prompt. + +@item n +A number, read with the minibuffer. If the input is not a number, the +user has to try again. @samp{n} never uses the prefix argument. +Prompt. + +@item N +The numeric prefix argument; but if there is no prefix argument, read +a number as with @kbd{n}. The value is always a number. @xref{Prefix +Command Arguments}. Prompt. + +@item p +@cindex numeric prefix argument usage +The numeric prefix argument. (Note that this @samp{p} is lower case.) +No I/O. + +@item P +@cindex raw prefix argument usage +The raw prefix argument. (Note that this @samp{P} is upper case.) No +I/O. + +@item r +@cindex region argument +Point and the mark, as two numeric arguments, smallest first. This is +the only code letter that specifies two successive arguments rather than +one. No I/O. + +@item s +Arbitrary text, read in the minibuffer and returned as a string +(@pxref{Text from Minibuffer}). Terminate the input with either +@kbd{C-j} or @key{RET}. (@kbd{C-q} may be used to include either of +these characters in the input.) Prompt. + +@item S +An interned symbol whose name is read in the minibuffer. Any whitespace +character terminates the input. (Use @kbd{C-q} to include whitespace in +the string.) Other characters that normally terminate a symbol (e.g., +parentheses and brackets) do not do so here. Prompt. + +@item U +A key sequence or @code{nil}. Can be used after a @samp{k} or +@samp{K} argument to get the up-event that was discarded (if any) +after @samp{k} or @samp{K} read a down-event. If no up-event has been +discarded, @samp{U} provides @code{nil} as the argument. No I/O. + +@item v +A variable declared to be a user option (i.e., satisfying the +predicate @code{user-variable-p}). This reads the variable using +@code{read-variable}. @xref{Definition of read-variable}. Existing, +Completion, Prompt. + +@item x +A Lisp object, specified with its read syntax, terminated with a +@kbd{C-j} or @key{RET}. The object is not evaluated. @xref{Object from +Minibuffer}. Prompt. + +@item X +@cindex evaluated expression argument +A Lisp form's value. @samp{X} reads as @samp{x} does, then evaluates +the form so that its value becomes the argument for the command. +Prompt. + +@item z +A coding system name (a symbol). If the user enters null input, the +argument value is @code{nil}. @xref{Coding Systems}. Completion, +Existing, Prompt. + +@item Z +A coding system name (a symbol)---but only if this command has a prefix +argument. With no prefix argument, @samp{Z} provides @code{nil} as the +argument value. Completion, Existing, Prompt. +@end table + +@node Interactive Examples +@comment node-name, next, previous, up +@subsection Examples of Using @code{interactive} +@cindex examples of using @code{interactive} +@cindex @code{interactive}, examples of using + + Here are some examples of @code{interactive}: + +@example +@group +(defun foo1 () ; @r{@code{foo1} takes no arguments,} + (interactive) ; @r{just moves forward two words.} + (forward-word 2)) + @result{} foo1 +@end group + +@group +(defun foo2 (n) ; @r{@code{foo2} takes one argument,} + (interactive "p") ; @r{which is the numeric prefix.} + (forward-word (* 2 n))) + @result{} foo2 +@end group + +@group +(defun foo3 (n) ; @r{@code{foo3} takes one argument,} + (interactive "nCount:") ; @r{which is read with the Minibuffer.} + (forward-word (* 2 n))) + @result{} foo3 +@end group + +@group +(defun three-b (b1 b2 b3) + "Select three existing buffers. +Put them into three windows, selecting the last one." +@end group + (interactive "bBuffer1:\nbBuffer2:\nbBuffer3:") + (delete-other-windows) + (split-window (selected-window) 8) + (switch-to-buffer b1) + (other-window 1) + (split-window (selected-window) 8) + (switch-to-buffer b2) + (other-window 1) + (switch-to-buffer b3)) + @result{} three-b +@group +(three-b "*scratch*" "declarations.texi" "*mail*") + @result{} nil +@end group +@end example + +@node Interactive Call +@section Interactive Call +@cindex interactive call + + After the command loop has translated a key sequence into a command it +invokes that command using the function @code{command-execute}. If the +command is a function, @code{command-execute} calls +@code{call-interactively}, which reads the arguments and calls the +command. You can also call these functions yourself. + +@defun commandp object &optional for-call-interactively +Returns @code{t} if @var{object} is suitable for calling interactively; +that is, if @var{object} is a command. Otherwise, returns @code{nil}. + +The interactively callable objects include strings and vectors (treated +as keyboard macros), lambda expressions that contain a top-level call to +@code{interactive}, byte-code function objects made from such lambda +expressions, autoload objects that are declared as interactive +(non-@code{nil} fourth argument to @code{autoload}), and some of the +primitive functions. + +A symbol satisfies @code{commandp} if its function definition +satisfies @code{commandp}. Keys and keymaps are not commands. +Rather, they are used to look up commands (@pxref{Keymaps}). + +If @var{for-call-interactively} is non-@code{nil}, then +@code{commandp} returns @code{t} only for objects that +@code{call-interactively} could call---thus, not for keyboard macros. + +See @code{documentation} in @ref{Accessing Documentation}, for a +realistic example of using @code{commandp}. +@end defun + +@defun call-interactively command &optional record-flag keys +This function calls the interactively callable function @var{command}, +reading arguments according to its interactive calling specifications. +It returns whatever @var{command} returns. An error is signaled if +@var{command} is not a function or if it cannot be called +interactively (i.e., is not a command). Note that keyboard macros +(strings and vectors) are not accepted, even though they are +considered commands, because they are not functions. If @var{command} +is a symbol, then @code{call-interactively} uses its function definition. + +@cindex record command history +If @var{record-flag} is non-@code{nil}, then this command and its +arguments are unconditionally added to the list @code{command-history}. +Otherwise, the command is added only if it uses the minibuffer to read +an argument. @xref{Command History}. + +The argument @var{keys}, if given, should be a vector which specifies +the sequence of events to supply if the command inquires which events +were used to invoke it. If @var{keys} is omitted or @code{nil}, the +default is the return value of @code{this-command-keys-vector}. +@xref{Definition of this-command-keys-vector}. +@end defun + +@defun command-execute command &optional record-flag keys special +@cindex keyboard macro execution +This function executes @var{command}. The argument @var{command} must +satisfy the @code{commandp} predicate; i.e., it must be an interactively +callable function or a keyboard macro. + +A string or vector as @var{command} is executed with +@code{execute-kbd-macro}. A function is passed to +@code{call-interactively}, along with the optional @var{record-flag} +and @var{keys}. + +A symbol is handled by using its function definition in its place. A +symbol with an @code{autoload} definition counts as a command if it was +declared to stand for an interactively callable function. Such a +definition is handled by loading the specified library and then +rechecking the definition of the symbol. + +The argument @var{special}, if given, means to ignore the prefix +argument and not clear it. This is used for executing special events +(@pxref{Special Events}). +@end defun + +@deffn Command execute-extended-command prefix-argument +@cindex read command name +This function reads a command name from the minibuffer using +@code{completing-read} (@pxref{Completion}). Then it uses +@code{command-execute} to call the specified command. Whatever that +command returns becomes the value of @code{execute-extended-command}. + +@cindex execute with prefix argument +If the command asks for a prefix argument, it receives the value +@var{prefix-argument}. If @code{execute-extended-command} is called +interactively, the current raw prefix argument is used for +@var{prefix-argument}, and thus passed on to whatever command is run. + +@c !!! Should this be @kindex? +@cindex @kbd{M-x} +@code{execute-extended-command} is the normal definition of @kbd{M-x}, +so it uses the string @w{@samp{M-x }} as a prompt. (It would be better +to take the prompt from the events used to invoke +@code{execute-extended-command}, but that is painful to implement.) A +description of the value of the prefix argument, if any, also becomes +part of the prompt. + +@example +@group +(execute-extended-command 3) +---------- Buffer: Minibuffer ---------- +3 M-x forward-word RET +---------- Buffer: Minibuffer ---------- + @result{} t +@end group +@end example +@end deffn + +@node Distinguish Interactive +@section Distinguish Interactive Calls + + Sometimes a command should display additional visual feedback (such +as an informative message in the echo area) for interactive calls +only. There are three ways to do this. The recommended way to test +whether the function was called using @code{call-interactively} is to +give it an optional argument @code{print-message} and use the +@code{interactive} spec to make it non-@code{nil} in interactive +calls. Here's an example: + +@example +(defun foo (&optional print-message) + (interactive "p") + (when print-message + (message "foo"))) +@end example + +@noindent +We use @code{"p"} because the numeric prefix argument is never +@code{nil}. Defined in this way, the function does display the +message when called from a keyboard macro. + + The above method with the additional argument is usually best, +because it allows callers to say ``treat this call as interactive.'' +But you can also do the job in a simpler way by testing +@code{called-interactively-p}. + +@defun called-interactively-p +This function returns @code{t} when the calling function was called +using @code{call-interactively}. + +If the containing function was called by Lisp evaluation (or with +@code{apply} or @code{funcall}), then it was not called interactively. +@end defun + + Here's an example of using @code{called-interactively-p}: + +@example +@group +(defun foo () + (interactive) + (when (called-interactively-p) + (message "foo")) + 'haha) + @result{} foo +@end group + +@group +;; @r{Type @kbd{M-x foo}.} + @print{} foo +@end group + +@group +(foo) + @result{} haha +@end group +@end example + + Here is another example that contrasts direct and indirect +calls to @code{called-interactively-p}. + +@example +@group +(defun bar () + (interactive) + (setq foobar (list (foo) (called-interactively-p)))) + @result{} bar +@end group + +@group +;; @r{Type @kbd{M-x bar}.} +;; @r{This does not display a message.} +@end group + +@group +foobar + @result{} (nil t) +@end group +@end example + + If you want to treat commands run in keyboard macros just like calls +from Lisp programs, test @code{interactive-p} instead of +@code{called-interactively-p}. + +@defun interactive-p +This function returns @code{t} if the containing function (the one +whose code includes the call to @code{interactive-p}) was called in +direct response to user input. This means that it was called with the +function @code{call-interactively}, and that a keyboard macro is +not running, and that Emacs is not running in batch mode. +@end defun + +@node Command Loop Info +@comment node-name, next, previous, up +@section Information from the Command Loop + +The editor command loop sets several Lisp variables to keep status +records for itself and for commands that are run. With the exception of +@code{this-command} and @code{last-command} it's generally a bad idea to +change any of these variables in a Lisp program. + +@defvar last-command +This variable records the name of the previous command executed by the +command loop (the one before the current command). Normally the value +is a symbol with a function definition, but this is not guaranteed. + +The value is copied from @code{this-command} when a command returns to +the command loop, except when the command has specified a prefix +argument for the following command. + +This variable is always local to the current terminal and cannot be +buffer-local. @xref{Multiple Displays}. +@end defvar + +@defvar real-last-command +This variable is set up by Emacs just like @code{last-command}, +but never altered by Lisp programs. +@end defvar + +@defvar last-repeatable-command +This variable stores the most recently executed command that was not +part of an input event. This is the command @code{repeat} will try to +repeat, @xref{Repeating,,, emacs, The GNU Emacs Manual}. +@end defvar + +@defvar this-command +@cindex current command +This variable records the name of the command now being executed by +the editor command loop. Like @code{last-command}, it is normally a symbol +with a function definition. + +The command loop sets this variable just before running a command, and +copies its value into @code{last-command} when the command finishes +(unless the command specified a prefix argument for the following +command). + +@cindex kill command repetition +Some commands set this variable during their execution, as a flag for +whatever command runs next. In particular, the functions for killing text +set @code{this-command} to @code{kill-region} so that any kill commands +immediately following will know to append the killed text to the +previous kill. +@end defvar + +If you do not want a particular command to be recognized as the previous +command in the case where it got an error, you must code that command to +prevent this. One way is to set @code{this-command} to @code{t} at the +beginning of the command, and set @code{this-command} back to its proper +value at the end, like this: + +@example +(defun foo (args@dots{}) + (interactive @dots{}) + (let ((old-this-command this-command)) + (setq this-command t) + @r{@dots{}do the work@dots{}} + (setq this-command old-this-command))) +@end example + +@noindent +We do not bind @code{this-command} with @code{let} because that would +restore the old value in case of error---a feature of @code{let} which +in this case does precisely what we want to avoid. + +@defvar this-original-command +This has the same value as @code{this-command} except when command +remapping occurs (@pxref{Remapping Commands}). In that case, +@code{this-command} gives the command actually run (the result of +remapping), and @code{this-original-command} gives the command that +was specified to run but remapped into another command. +@end defvar + +@defun this-command-keys +This function returns a string or vector containing the key sequence +that invoked the present command, plus any previous commands that +generated the prefix argument for this command. Any events read by the +command using @code{read-event} without a timeout get tacked on to the end. + +However, if the command has called @code{read-key-sequence}, it +returns the last read key sequence. @xref{Key Sequence Input}. The +value is a string if all events in the sequence were characters that +fit in a string. @xref{Input Events}. + +@example +@group +(this-command-keys) +;; @r{Now use @kbd{C-u C-x C-e} to evaluate that.} + @result{} "^U^X^E" +@end group +@end example +@end defun + +@defun this-command-keys-vector +@anchor{Definition of this-command-keys-vector} +Like @code{this-command-keys}, except that it always returns the events +in a vector, so you don't need to deal with the complexities of storing +input events in a string (@pxref{Strings of Events}). +@end defun + +@defun clear-this-command-keys &optional keep-record +This function empties out the table of events for +@code{this-command-keys} to return. Unless @var{keep-record} is +non-@code{nil}, it also empties the records that the function +@code{recent-keys} (@pxref{Recording Input}) will subsequently return. +This is useful after reading a password, to prevent the password from +echoing inadvertently as part of the next command in certain cases. +@end defun + +@defvar last-nonmenu-event +This variable holds the last input event read as part of a key sequence, +not counting events resulting from mouse menus. + +One use of this variable is for telling @code{x-popup-menu} where to pop +up a menu. It is also used internally by @code{y-or-n-p} +(@pxref{Yes-or-No Queries}). +@end defvar + +@defvar last-command-event +@defvarx last-command-char +This variable is set to the last input event that was read by the +command loop as part of a command. The principal use of this variable +is in @code{self-insert-command}, which uses it to decide which +character to insert. + +@example +@group +last-command-event +;; @r{Now use @kbd{C-u C-x C-e} to evaluate that.} + @result{} 5 +@end group +@end example + +@noindent +The value is 5 because that is the @acronym{ASCII} code for @kbd{C-e}. + +The alias @code{last-command-char} exists for compatibility with +Emacs version 18. +@end defvar + +@c Emacs 19 feature +@defvar last-event-frame +This variable records which frame the last input event was directed to. +Usually this is the frame that was selected when the event was +generated, but if that frame has redirected input focus to another +frame, the value is the frame to which the event was redirected. +@xref{Input Focus}. + +If the last event came from a keyboard macro, the value is @code{macro}. +@end defvar + +@node Adjusting Point +@section Adjusting Point After Commands +@cindex adjusting point +@cindex invisible/intangible text, and point +@cindex @code{display} property, and point display +@cindex @code{composition} property, and point display + + It is not easy to display a value of point in the middle of a +sequence of text that has the @code{display}, @code{composition} or +@code{intangible} property, or is invisible. Therefore, after a +command finishes and returns to the command loop, if point is within +such a sequence, the command loop normally moves point to the edge of +the sequence. + + A command can inhibit this feature by setting the variable +@code{disable-point-adjustment}: + +@defvar disable-point-adjustment +If this variable is non-@code{nil} when a command returns to the +command loop, then the command loop does not check for those text +properties, and does not move point out of sequences that have them. + +The command loop sets this variable to @code{nil} before each command, +so if a command sets it, the effect applies only to that command. +@end defvar + +@defvar global-disable-point-adjustment +If you set this variable to a non-@code{nil} value, the feature of +moving point out of these sequences is completely turned off. +@end defvar + +@node Input Events +@section Input Events +@cindex events +@cindex input events + +The Emacs command loop reads a sequence of @dfn{input events} that +represent keyboard or mouse activity. The events for keyboard activity +are characters or symbols; mouse events are always lists. This section +describes the representation and meaning of input events in detail. + +@defun eventp object +This function returns non-@code{nil} if @var{object} is an input event +or event type. + +Note that any symbol might be used as an event or an event type. +@code{eventp} cannot distinguish whether a symbol is intended by Lisp +code to be used as an event. Instead, it distinguishes whether the +symbol has actually been used in an event that has been read as input in +the current Emacs session. If a symbol has not yet been so used, +@code{eventp} returns @code{nil}. +@end defun + +@menu +* Keyboard Events:: Ordinary characters--keys with symbols on them. +* Function Keys:: Function keys--keys with names, not symbols. +* Mouse Events:: Overview of mouse events. +* Click Events:: Pushing and releasing a mouse button. +* Drag Events:: Moving the mouse before releasing the button. +* Button-Down Events:: A button was pushed and not yet released. +* Repeat Events:: Double and triple click (or drag, or down). +* Motion Events:: Just moving the mouse, not pushing a button. +* Focus Events:: Moving the mouse between frames. +* Misc Events:: Other events the system can generate. +* Event Examples:: Examples of the lists for mouse events. +* Classifying Events:: Finding the modifier keys in an event symbol. + Event types. - * Accessing Events:: Functions to extract info from events. ++* Accessing Mouse:: Functions to extract info from mouse events. ++* Accessing Scroll:: Functions to get info from scroll bar events. +* Strings of Events:: Special considerations for putting + keyboard character events in a string. +@end menu + +@node Keyboard Events +@subsection Keyboard Events +@cindex keyboard events + +There are two kinds of input you can get from the keyboard: ordinary +keys, and function keys. Ordinary keys correspond to characters; the +events they generate are represented in Lisp as characters. The event +type of a character event is the character itself (an integer); see +@ref{Classifying Events}. + +@cindex modifier bits (of input character) +@cindex basic code (of input character) +An input character event consists of a @dfn{basic code} between 0 and +524287, plus any or all of these @dfn{modifier bits}: + +@table @asis +@item meta +The +@tex +@math{2^{27}} +@end tex +@ifnottex +2**27 +@end ifnottex +bit in the character code indicates a character +typed with the meta key held down. + +@item control +The +@tex +@math{2^{26}} +@end tex +@ifnottex +2**26 +@end ifnottex +bit in the character code indicates a non-@acronym{ASCII} +control character. + +@sc{ascii} control characters such as @kbd{C-a} have special basic +codes of their own, so Emacs needs no special bit to indicate them. +Thus, the code for @kbd{C-a} is just 1. + +But if you type a control combination not in @acronym{ASCII}, such as +@kbd{%} with the control key, the numeric value you get is the code +for @kbd{%} plus +@tex +@math{2^{26}} +@end tex +@ifnottex +2**26 +@end ifnottex +(assuming the terminal supports non-@acronym{ASCII} +control characters). + +@item shift +The +@tex +@math{2^{25}} +@end tex +@ifnottex +2**25 +@end ifnottex +bit in the character code indicates an @acronym{ASCII} control +character typed with the shift key held down. + +For letters, the basic code itself indicates upper versus lower case; +for digits and punctuation, the shift key selects an entirely different +character with a different basic code. In order to keep within the +@acronym{ASCII} character set whenever possible, Emacs avoids using the +@tex +@math{2^{25}} +@end tex +@ifnottex +2**25 +@end ifnottex +bit for those characters. + +However, @acronym{ASCII} provides no way to distinguish @kbd{C-A} from +@kbd{C-a}, so Emacs uses the +@tex +@math{2^{25}} +@end tex +@ifnottex +2**25 +@end ifnottex +bit in @kbd{C-A} and not in +@kbd{C-a}. + +@item hyper +The +@tex +@math{2^{24}} +@end tex +@ifnottex +2**24 +@end ifnottex +bit in the character code indicates a character +typed with the hyper key held down. + +@item super +The +@tex +@math{2^{23}} +@end tex +@ifnottex +2**23 +@end ifnottex +bit in the character code indicates a character +typed with the super key held down. + +@item alt +The +@tex +@math{2^{22}} +@end tex +@ifnottex +2**22 +@end ifnottex +bit in the character code indicates a character typed with +the alt key held down. (On some terminals, the key labeled @key{ALT} +is actually the meta key.) +@end table + + It is best to avoid mentioning specific bit numbers in your program. +To test the modifier bits of a character, use the function +@code{event-modifiers} (@pxref{Classifying Events}). When making key +bindings, you can use the read syntax for characters with modifier bits +(@samp{\C-}, @samp{\M-}, and so on). For making key bindings with +@code{define-key}, you can use lists such as @code{(control hyper ?x)} to +specify the characters (@pxref{Changing Key Bindings}). The function +@code{event-convert-list} converts such a list into an event type +(@pxref{Classifying Events}). + +@node Function Keys +@subsection Function Keys + +@cindex function keys +Most keyboards also have @dfn{function keys}---keys that have names or +symbols that are not characters. Function keys are represented in Emacs +Lisp as symbols; the symbol's name is the function key's label, in lower +case. For example, pressing a key labeled @key{F1} places the symbol +@code{f1} in the input stream. + +The event type of a function key event is the event symbol itself. +@xref{Classifying Events}. + +Here are a few special cases in the symbol-naming convention for +function keys: + +@table @asis +@item @code{backspace}, @code{tab}, @code{newline}, @code{return}, @code{delete} +These keys correspond to common @acronym{ASCII} control characters that have +special keys on most keyboards. + +In @acronym{ASCII}, @kbd{C-i} and @key{TAB} are the same character. If the +terminal can distinguish between them, Emacs conveys the distinction to +Lisp programs by representing the former as the integer 9, and the +latter as the symbol @code{tab}. + +Most of the time, it's not useful to distinguish the two. So normally +@code{function-key-map} (@pxref{Translation Keymaps}) is set up to map +@code{tab} into 9. Thus, a key binding for character code 9 (the +character @kbd{C-i}) also applies to @code{tab}. Likewise for the other +symbols in this group. The function @code{read-char} likewise converts +these events into characters. + +In @acronym{ASCII}, @key{BS} is really @kbd{C-h}. But @code{backspace} +converts into the character code 127 (@key{DEL}), not into code 8 +(@key{BS}). This is what most users prefer. + +@item @code{left}, @code{up}, @code{right}, @code{down} +Cursor arrow keys +@item @code{kp-add}, @code{kp-decimal}, @code{kp-divide}, @dots{} +Keypad keys (to the right of the regular keyboard). +@item @code{kp-0}, @code{kp-1}, @dots{} +Keypad keys with digits. +@item @code{kp-f1}, @code{kp-f2}, @code{kp-f3}, @code{kp-f4} +Keypad PF keys. +@item @code{kp-home}, @code{kp-left}, @code{kp-up}, @code{kp-right}, @code{kp-down} +Keypad arrow keys. Emacs normally translates these into the +corresponding non-keypad keys @code{home}, @code{left}, @dots{} +@item @code{kp-prior}, @code{kp-next}, @code{kp-end}, @code{kp-begin}, @code{kp-insert}, @code{kp-delete} +Additional keypad duplicates of keys ordinarily found elsewhere. Emacs +normally translates these into the like-named non-keypad keys. +@end table + +You can use the modifier keys @key{ALT}, @key{CTRL}, @key{HYPER}, +@key{META}, @key{SHIFT}, and @key{SUPER} with function keys. The way to +represent them is with prefixes in the symbol name: + +@table @samp +@item A- +The alt modifier. +@item C- +The control modifier. +@item H- +The hyper modifier. +@item M- +The meta modifier. +@item S- +The shift modifier. +@item s- +The super modifier. +@end table + +Thus, the symbol for the key @key{F3} with @key{META} held down is +@code{M-f3}. When you use more than one prefix, we recommend you +write them in alphabetical order; but the order does not matter in +arguments to the key-binding lookup and modification functions. + +@node Mouse Events +@subsection Mouse Events + +Emacs supports four kinds of mouse events: click events, drag events, +button-down events, and motion events. All mouse events are represented +as lists. The @sc{car} of the list is the event type; this says which +mouse button was involved, and which modifier keys were used with it. +The event type can also distinguish double or triple button presses +(@pxref{Repeat Events}). The rest of the list elements give position +and time information. + +For key lookup, only the event type matters: two events of the same type +necessarily run the same command. The command can access the full +values of these events using the @samp{e} interactive code. +@xref{Interactive Codes}. + +A key sequence that starts with a mouse event is read using the keymaps +of the buffer in the window that the mouse was in, not the current +buffer. This does not imply that clicking in a window selects that +window or its buffer---that is entirely under the control of the command +binding of the key sequence. + +@node Click Events +@subsection Click Events +@cindex click event +@cindex mouse click event + +When the user presses a mouse button and releases it at the same +location, that generates a @dfn{click} event. All mouse click event +share the same format: + +@example +(@var{event-type} @var{position} @var{click-count}) +@end example + +@table @asis +@item @var{event-type} +This is a symbol that indicates which mouse button was used. It is +one of the symbols @code{mouse-1}, @code{mouse-2}, @dots{}, where the +buttons are numbered left to right. + +You can also use prefixes @samp{A-}, @samp{C-}, @samp{H-}, @samp{M-}, +@samp{S-} and @samp{s-} for modifiers alt, control, hyper, meta, shift +and super, just as you would with function keys. + +This symbol also serves as the event type of the event. Key bindings +describe events by their types; thus, if there is a key binding for +@code{mouse-1}, that binding would apply to all events whose +@var{event-type} is @code{mouse-1}. + +@item @var{position} +This is the position where the mouse click occurred. The actual +format of @var{position} depends on what part of a window was clicked +on. + +For mouse click events in the text area, mode line, header line, or in +the marginal areas, @var{position} has this form: + +@example +(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp} + @var{object} @var{text-pos} (@var{col} . @var{row}) + @var{image} (@var{dx} . @var{dy}) (@var{width} . @var{height})) +@end example + +@table @asis +@item @var{window} +This is the window in which the click occurred. + +@item @var{pos-or-area} +This is the buffer position of the character clicked on in the text +area, or if clicked outside the text area, it is the window area in +which the click occurred. It is one of the symbols @code{mode-line}, +@code{header-line}, @code{vertical-line}, @code{left-margin}, +@code{right-margin}, @code{left-fringe}, or @code{right-fringe}. + +In one special case, @var{pos-or-area} is a list containing a symbol (one +of the symbols listed above) instead of just the symbol. This happens +after the imaginary prefix keys for the event are inserted into the +input stream. @xref{Key Sequence Input}. + + +@item @var{x}, @var{y} +These are the pixel coordinates of the click, relative to +the top left corner of @var{window}, which is @code{(0 . 0)}. +For the mode or header line, @var{y} does not have meaningful data. +For the vertical line, @var{x} does not have meaningful data. + +@item @var{timestamp} +This is the time at which the event occurred, in milliseconds. + +@item @var{object} +This is the object on which the click occurred. It is either +@code{nil} if there is no string property, or it has the form +(@var{string} . @var{string-pos}) when there is a string-type text +property at the click position. + +@table @asis +@item @var{string} +This is the string on which the click occurred, including any +properties. + +@item @var{string-pos} +This is the position in the string on which the click occurred, +relevant if properties at the click need to be looked up. +@end table + +@item @var{text-pos} +For clicks on a marginal area or on a fringe, this is the buffer +position of the first visible character in the corresponding line in +the window. For other events, it is the current buffer position in +the window. + +@item @var{col}, @var{row} +These are the actual coordinates of the glyph under the @var{x}, +@var{y} position, possibly padded with default character width +glyphs if @var{x} is beyond the last glyph on the line. + +@item @var{image} +This is the image object on which the click occurred. It is either +@code{nil} if there is no image at the position clicked on, or it is +an image object as returned by @code{find-image} if click was in an image. + +@item @var{dx}, @var{dy} +These are the pixel coordinates of the click, relative to +the top left corner of @var{object}, which is @code{(0 . 0)}. If +@var{object} is @code{nil}, the coordinates are relative to the top +left corner of the character glyph clicked on. + +@item @var{width}, @var{height} +These are the pixel width and height of @var{object} or, if this is +@code{nil}, those of the character glyph clicked on. +@end table + +@sp 1 +For mouse clicks on a scroll-bar, @var{position} has this form: + +@example +(@var{window} @var{area} (@var{portion} . @var{whole}) @var{timestamp} @var{part}) +@end example + +@table @asis +@item @var{window} +This is the window whose scroll-bar was clicked on. + +@item @var{area} +This is the scroll bar where the click occurred. It is one of the +symbols @code{vertical-scroll-bar} or @code{horizontal-scroll-bar}. + +@item @var{portion} +This is the distance of the click from the top or left end of +the scroll bar. + +@item @var{whole} +This is the length of the entire scroll bar. + +@item @var{timestamp} +This is the time at which the event occurred, in milliseconds. + +@item @var{part} +This is the part of the scroll-bar which was clicked on. It is one +of the symbols @code{above-handle}, @code{handle}, @code{below-handle}, +@code{up}, @code{down}, @code{top}, @code{bottom}, and @code{end-scroll}. +@end table + +@item @var{click-count} +This is the number of rapid repeated presses so far of the same mouse +button. @xref{Repeat Events}. +@end table + +@node Drag Events +@subsection Drag Events +@cindex drag event +@cindex mouse drag event + +With Emacs, you can have a drag event without even changing your +clothes. A @dfn{drag event} happens every time the user presses a mouse +button and then moves the mouse to a different character position before +releasing the button. Like all mouse events, drag events are +represented in Lisp as lists. The lists record both the starting mouse +position and the final position, like this: + +@example +(@var{event-type} + (@var{window1} START-POSITION) + (@var{window2} END-POSITION)) +@end example + +For a drag event, the name of the symbol @var{event-type} contains the +prefix @samp{drag-}. For example, dragging the mouse with button 2 +held down generates a @code{drag-mouse-2} event. The second and third +elements of the event give the starting and ending position of the +drag. They have the same form as @var{position} in a click event +(@pxref{Click Events}) that is not on the scroll bar part of the +window. You can access the second element of any mouse event in the +same way, with no need to distinguish drag events from others. + +The @samp{drag-} prefix follows the modifier key prefixes such as +@samp{C-} and @samp{M-}. + +If @code{read-key-sequence} receives a drag event that has no key +binding, and the corresponding click event does have a binding, it +changes the drag event into a click event at the drag's starting +position. This means that you don't have to distinguish between click +and drag events unless you want to. + +@node Button-Down Events +@subsection Button-Down Events +@cindex button-down event + +Click and drag events happen when the user releases a mouse button. +They cannot happen earlier, because there is no way to distinguish a +click from a drag until the button is released. + +If you want to take action as soon as a button is pressed, you need to +handle @dfn{button-down} events.@footnote{Button-down is the +conservative antithesis of drag.} These occur as soon as a button is +pressed. They are represented by lists that look exactly like click +events (@pxref{Click Events}), except that the @var{event-type} symbol +name contains the prefix @samp{down-}. The @samp{down-} prefix follows +modifier key prefixes such as @samp{C-} and @samp{M-}. + +The function @code{read-key-sequence} ignores any button-down events +that don't have command bindings; therefore, the Emacs command loop +ignores them too. This means that you need not worry about defining +button-down events unless you want them to do something. The usual +reason to define a button-down event is so that you can track mouse +motion (by reading motion events) until the button is released. +@xref{Motion Events}. + +@node Repeat Events +@subsection Repeat Events +@cindex repeat events +@cindex double-click events +@cindex triple-click events +@cindex mouse events, repeated + +If you press the same mouse button more than once in quick succession +without moving the mouse, Emacs generates special @dfn{repeat} mouse +events for the second and subsequent presses. + +The most common repeat events are @dfn{double-click} events. Emacs +generates a double-click event when you click a button twice; the event +happens when you release the button (as is normal for all click +events). + +The event type of a double-click event contains the prefix +@samp{double-}. Thus, a double click on the second mouse button with +@key{meta} held down comes to the Lisp program as +@code{M-double-mouse-2}. If a double-click event has no binding, the +binding of the corresponding ordinary click event is used to execute +it. Thus, you need not pay attention to the double click feature +unless you really want to. + +When the user performs a double click, Emacs generates first an ordinary +click event, and then a double-click event. Therefore, you must design +the command binding of the double click event to assume that the +single-click command has already run. It must produce the desired +results of a double click, starting from the results of a single click. + +This is convenient, if the meaning of a double click somehow ``builds +on'' the meaning of a single click---which is recommended user interface +design practice for double clicks. + +If you click a button, then press it down again and start moving the +mouse with the button held down, then you get a @dfn{double-drag} event +when you ultimately release the button. Its event type contains +@samp{double-drag} instead of just @samp{drag}. If a double-drag event +has no binding, Emacs looks for an alternate binding as if the event +were an ordinary drag. + +Before the double-click or double-drag event, Emacs generates a +@dfn{double-down} event when the user presses the button down for the +second time. Its event type contains @samp{double-down} instead of just +@samp{down}. If a double-down event has no binding, Emacs looks for an +alternate binding as if the event were an ordinary button-down event. +If it finds no binding that way either, the double-down event is +ignored. + +To summarize, when you click a button and then press it again right +away, Emacs generates a down event and a click event for the first +click, a double-down event when you press the button again, and finally +either a double-click or a double-drag event. + +If you click a button twice and then press it again, all in quick +succession, Emacs generates a @dfn{triple-down} event, followed by +either a @dfn{triple-click} or a @dfn{triple-drag}. The event types of +these events contain @samp{triple} instead of @samp{double}. If any +triple event has no binding, Emacs uses the binding that it would use +for the corresponding double event. + +If you click a button three or more times and then press it again, the +events for the presses beyond the third are all triple events. Emacs +does not have separate event types for quadruple, quintuple, etc.@: +events. However, you can look at the event list to find out precisely +how many times the button was pressed. + +@defun event-click-count event +This function returns the number of consecutive button presses that led +up to @var{event}. If @var{event} is a double-down, double-click or +double-drag event, the value is 2. If @var{event} is a triple event, +the value is 3 or greater. If @var{event} is an ordinary mouse event +(not a repeat event), the value is 1. +@end defun + +@defopt double-click-fuzz +To generate repeat events, successive mouse button presses must be at +approximately the same screen position. The value of +@code{double-click-fuzz} specifies the maximum number of pixels the +mouse may be moved (horizontally or vertically) between two successive +clicks to make a double-click. + +This variable is also the threshold for motion of the mouse to count +as a drag. +@end defopt + +@defopt double-click-time +To generate repeat events, the number of milliseconds between +successive button presses must be less than the value of +@code{double-click-time}. Setting @code{double-click-time} to +@code{nil} disables multi-click detection entirely. Setting it to +@code{t} removes the time limit; Emacs then detects multi-clicks by +position only. +@end defopt + +@node Motion Events +@subsection Motion Events +@cindex motion event +@cindex mouse motion events + +Emacs sometimes generates @dfn{mouse motion} events to describe motion +of the mouse without any button activity. Mouse motion events are +represented by lists that look like this: + +@example +(mouse-movement (POSITION)) +@end example + +The second element of the list describes the current position of the +mouse, just as in a click event (@pxref{Click Events}). + +The special form @code{track-mouse} enables generation of motion events +within its body. Outside of @code{track-mouse} forms, Emacs does not +generate events for mere motion of the mouse, and these events do not +appear. @xref{Mouse Tracking}. + +@node Focus Events +@subsection Focus Events +@cindex focus event + +Window systems provide general ways for the user to control which window +gets keyboard input. This choice of window is called the @dfn{focus}. +When the user does something to switch between Emacs frames, that +generates a @dfn{focus event}. The normal definition of a focus event, +in the global keymap, is to select a new frame within Emacs, as the user +would expect. @xref{Input Focus}. + +Focus events are represented in Lisp as lists that look like this: + +@example +(switch-frame @var{new-frame}) +@end example + +@noindent +where @var{new-frame} is the frame switched to. + +Most X window managers are set up so that just moving the mouse into a +window is enough to set the focus there. Emacs appears to do this, +because it changes the cursor to solid in the new frame. However, there +is no need for the Lisp program to know about the focus change until +some other kind of input arrives. So Emacs generates a focus event only +when the user actually types a keyboard key or presses a mouse button in +the new frame; just moving the mouse between frames does not generate a +focus event. + +A focus event in the middle of a key sequence would garble the +sequence. So Emacs never generates a focus event in the middle of a key +sequence. If the user changes focus in the middle of a key +sequence---that is, after a prefix key---then Emacs reorders the events +so that the focus event comes either before or after the multi-event key +sequence, and not within it. + +@node Misc Events +@subsection Miscellaneous System Events + +A few other event types represent occurrences within the system. + +@table @code +@cindex @code{delete-frame} event +@item (delete-frame (@var{frame})) +This kind of event indicates that the user gave the window manager +a command to delete a particular window, which happens to be an Emacs frame. + +The standard definition of the @code{delete-frame} event is to delete @var{frame}. + +@cindex @code{iconify-frame} event +@item (iconify-frame (@var{frame})) +This kind of event indicates that the user iconified @var{frame} using +the window manager. Its standard definition is @code{ignore}; since the +frame has already been iconified, Emacs has no work to do. The purpose +of this event type is so that you can keep track of such events if you +want to. + +@cindex @code{make-frame-visible} event +@item (make-frame-visible (@var{frame})) +This kind of event indicates that the user deiconified @var{frame} using +the window manager. Its standard definition is @code{ignore}; since the +frame has already been made visible, Emacs has no work to do. + +@cindex @code{wheel-up} event +@cindex @code{wheel-down} event +@item (wheel-up @var{position}) +@item (wheel-down @var{position}) +These kinds of event are generated by moving a mouse wheel. Their +usual meaning is a kind of scroll or zoom. + +The element @var{position} is a list describing the position of the +event, in the same format as used in a mouse-click event. + +This kind of event is generated only on some kinds of systems. On some +systems, @code{mouse-4} and @code{mouse-5} are used instead. For +portable code, use the variables @code{mouse-wheel-up-event} and +@code{mouse-wheel-down-event} defined in @file{mwheel.el} to determine +what event types to expect for the mouse wheel. + +@cindex @code{drag-n-drop} event +@item (drag-n-drop @var{position} @var{files}) +This kind of event is generated when a group of files is +selected in an application outside of Emacs, and then dragged and +dropped onto an Emacs frame. + +The element @var{position} is a list describing the position of the +event, in the same format as used in a mouse-click event, and +@var{files} is the list of file names that were dragged and dropped. +The usual way to handle this event is by visiting these files. + +This kind of event is generated, at present, only on some kinds of +systems. + +@cindex @code{help-echo} event +@item help-echo +This kind of event is generated when a mouse pointer moves onto a +portion of buffer text which has a @code{help-echo} text property. +The generated event has this form: + +@example +(help-echo @var{frame} @var{help} @var{window} @var{object} @var{pos}) +@end example + +@noindent +The precise meaning of the event parameters and the way these +parameters are used to display the help-echo text are described in +@ref{Text help-echo}. + +@cindex @code{sigusr1} event +@cindex @code{sigusr2} event +@cindex user signals +@item sigusr1 +@itemx sigusr2 +These events are generated when the Emacs process receives +the signals @code{SIGUSR1} and @code{SIGUSR2}. They contain no +additional data because signals do not carry additional information. + +To catch a user signal, bind the corresponding event to an interactive +command in the @code{special-event-map} (@pxref{Active Keymaps}). +The command is called with no arguments, and the specific signal event is +available in @code{last-input-event}. For example: + +@smallexample +(defun sigusr-handler () + (interactive) + (message "Caught signal %S" last-input-event)) + +(define-key special-event-map [sigusr1] 'sigusr-handler) +@end smallexample + +To test the signal handler, you can make Emacs send a signal to itself: + +@smallexample +(signal-process (emacs-pid) 'sigusr1) +@end smallexample +@end table + + If one of these events arrives in the middle of a key sequence---that +is, after a prefix key---then Emacs reorders the events so that this +event comes either before or after the multi-event key sequence, not +within it. + +@node Event Examples +@subsection Event Examples + +If the user presses and releases the left mouse button over the same +location, that generates a sequence of events like this: + +@smallexample +(down-mouse-1 (# 2613 (0 . 38) -864320)) +(mouse-1 (# 2613 (0 . 38) -864180)) +@end smallexample + +While holding the control key down, the user might hold down the +second mouse button, and drag the mouse from one line to the next. +That produces two events, as shown here: + +@smallexample +(C-down-mouse-2 (# 3440 (0 . 27) -731219)) +(C-drag-mouse-2 (# 3440 (0 . 27) -731219) + (# 3510 (0 . 28) -729648)) +@end smallexample + +While holding down the meta and shift keys, the user might press the +second mouse button on the window's mode line, and then drag the mouse +into another window. That produces a pair of events like these: + +@smallexample +(M-S-down-mouse-2 (# mode-line (33 . 31) -457844)) +(M-S-drag-mouse-2 (# mode-line (33 . 31) -457844) + (# 161 (33 . 3) + -453816)) +@end smallexample + +To handle a SIGUSR1 signal, define an interactive function, and +bind it to the @code{signal usr1} event sequence: + +@smallexample +(defun usr1-handler () + (interactive) + (message "Got USR1 signal")) +(global-set-key [signal usr1] 'usr1-handler) +@end smallexample + +@node Classifying Events +@subsection Classifying Events +@cindex event type + + Every event has an @dfn{event type}, which classifies the event for +key binding purposes. For a keyboard event, the event type equals the +event value; thus, the event type for a character is the character, and +the event type for a function key symbol is the symbol itself. For +events that are lists, the event type is the symbol in the @sc{car} of +the list. Thus, the event type is always a symbol or a character. + + Two events of the same type are equivalent where key bindings are +concerned; thus, they always run the same command. That does not +necessarily mean they do the same things, however, as some commands look +at the whole event to decide what to do. For example, some commands use +the location of a mouse event to decide where in the buffer to act. + + Sometimes broader classifications of events are useful. For example, +you might want to ask whether an event involved the @key{META} key, +regardless of which other key or mouse button was used. + + The functions @code{event-modifiers} and @code{event-basic-type} are +provided to get such information conveniently. + +@defun event-modifiers event +This function returns a list of the modifiers that @var{event} has. The +modifiers are symbols; they include @code{shift}, @code{control}, +@code{meta}, @code{alt}, @code{hyper} and @code{super}. In addition, +the modifiers list of a mouse event symbol always contains one of +@code{click}, @code{drag}, and @code{down}. For double or triple +events, it also contains @code{double} or @code{triple}. + +The argument @var{event} may be an entire event object, or just an +event type. If @var{event} is a symbol that has never been used in an +event that has been read as input in the current Emacs session, then +@code{event-modifiers} can return @code{nil}, even when @var{event} +actually has modifiers. + +Here are some examples: + +@example +(event-modifiers ?a) + @result{} nil +(event-modifiers ?A) + @result{} (shift) +(event-modifiers ?\C-a) + @result{} (control) +(event-modifiers ?\C-%) + @result{} (control) +(event-modifiers ?\C-\S-a) + @result{} (control shift) +(event-modifiers 'f5) + @result{} nil +(event-modifiers 's-f5) + @result{} (super) +(event-modifiers 'M-S-f5) + @result{} (meta shift) +(event-modifiers 'mouse-1) + @result{} (click) +(event-modifiers 'down-mouse-1) + @result{} (down) +@end example + +The modifiers list for a click event explicitly contains @code{click}, +but the event symbol name itself does not contain @samp{click}. +@end defun + +@defun event-basic-type event +This function returns the key or mouse button that @var{event} +describes, with all modifiers removed. The @var{event} argument is as +in @code{event-modifiers}. For example: + +@example +(event-basic-type ?a) + @result{} 97 +(event-basic-type ?A) + @result{} 97 +(event-basic-type ?\C-a) + @result{} 97 +(event-basic-type ?\C-\S-a) + @result{} 97 +(event-basic-type 'f5) + @result{} f5 +(event-basic-type 's-f5) + @result{} f5 +(event-basic-type 'M-S-f5) + @result{} f5 +(event-basic-type 'down-mouse-1) + @result{} mouse-1 +@end example +@end defun + +@defun mouse-movement-p object +This function returns non-@code{nil} if @var{object} is a mouse movement +event. +@end defun + +@defun event-convert-list list +This function converts a list of modifier names and a basic event type +to an event type which specifies all of them. The basic event type +must be the last element of the list. For example, + +@example +(event-convert-list '(control ?a)) + @result{} 1 +(event-convert-list '(control meta ?a)) + @result{} -134217727 +(event-convert-list '(control super f1)) + @result{} C-s-f1 +@end example +@end defun + - @node Accessing Events - @subsection Accessing Events ++@node Accessing Mouse ++@subsection Accessing Mouse Events +@cindex mouse events, data in + + This section describes convenient functions for accessing the data in +a mouse button or motion event. + + These two functions return the starting or ending position of a +mouse-button event, as a list of this form: + +@example +(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp} + @var{object} @var{text-pos} (@var{col} . @var{row}) + @var{image} (@var{dx} . @var{dy}) (@var{width} . @var{height})) +@end example + +@defun event-start event +This returns the starting position of @var{event}. + +If @var{event} is a click or button-down event, this returns the +location of the event. If @var{event} is a drag event, this returns the +drag's starting position. +@end defun + +@defun event-end event +This returns the ending position of @var{event}. + +If @var{event} is a drag event, this returns the position where the user +released the mouse button. If @var{event} is a click or button-down +event, the value is actually the starting position, which is the only +position such events have. +@end defun + +@cindex mouse position list, accessing + These functions take a position list as described above, and +return various parts of it. + +@defun posn-window position +Return the window that @var{position} is in. +@end defun + +@defun posn-area position +Return the window area recorded in @var{position}. It returns @code{nil} +when the event occurred in the text area of the window; otherwise, it +is a symbol identifying the area in which the event occurred. +@end defun + +@defun posn-point position +Return the buffer position in @var{position}. When the event occurred +in the text area of the window, in a marginal area, or on a fringe, +this is an integer specifying a buffer position. Otherwise, the value +is undefined. +@end defun + +@defun posn-x-y position +Return the pixel-based x and y coordinates in @var{position}, as a +cons cell @code{(@var{x} . @var{y})}. These coordinates are relative +to the window given by @code{posn-window}. + +This example shows how to convert these window-relative coordinates +into frame-relative coordinates: + +@example +(defun frame-relative-coordinates (position) + "Return frame-relative coordinates from POSITION." + (let* ((x-y (posn-x-y position)) + (window (posn-window position)) + (edges (window-inside-pixel-edges window))) + (cons (+ (car x-y) (car edges)) + (+ (cdr x-y) (cadr edges))))) +@end example +@end defun + +@defun posn-col-row position +Return the row and column (in units of the frame's default character +height and width) of @var{position}, as a cons cell @code{(@var{col} . +@var{row})}. These are computed from the @var{x} and @var{y} values +actually found in @var{position}. +@end defun + +@defun posn-actual-col-row position +Return the actual row and column in @var{position}, as a cons cell +@code{(@var{col} . @var{row})}. The values are the actual row number +in the window, and the actual character number in that row. It returns +@code{nil} if @var{position} does not include actual positions values. +You can use @code{posn-col-row} to get approximate values. +@end defun + +@defun posn-string position +Return the string object in @var{position}, either @code{nil}, or a +cons cell @code{(@var{string} . @var{string-pos})}. +@end defun + +@defun posn-image position +Return the image object in @var{position}, either @code{nil}, or an +image @code{(image ...)}. +@end defun + +@defun posn-object position +Return the image or string object in @var{position}, either +@code{nil}, an image @code{(image ...)}, or a cons cell +@code{(@var{string} . @var{string-pos})}. +@end defun + +@defun posn-object-x-y position +Return the pixel-based x and y coordinates relative to the upper left +corner of the object in @var{position} as a cons cell @code{(@var{dx} +. @var{dy})}. If the @var{position} is a buffer position, return the +relative position in the character at that position. +@end defun + +@defun posn-object-width-height position +Return the pixel width and height of the object in @var{position} as a +cons cell @code{(@var{width} . @var{height})}. If the @var{position} +is a buffer position, return the size of the character at that position. +@end defun + +@cindex timestamp of a mouse event +@defun posn-timestamp position +Return the timestamp in @var{position}. This is the time at which the +event occurred, in milliseconds. +@end defun + + These functions compute a position list given particular buffer +position or screen position. You can access the data in this position +list with the functions described above. + +@defun posn-at-point &optional pos window +This function returns a position list for position @var{pos} in +@var{window}. @var{pos} defaults to point in @var{window}; +@var{window} defaults to the selected window. + +@code{posn-at-point} returns @code{nil} if @var{pos} is not visible in +@var{window}. +@end defun + +@defun posn-at-x-y x y &optional frame-or-window whole +This function returns position information corresponding to pixel +coordinates @var{x} and @var{y} in a specified frame or window, +@var{frame-or-window}, which defaults to the selected window. +The coordinates @var{x} and @var{y} are relative to the +frame or window used. +If @var{whole} is @code{nil}, the coordinates are relative +to the window text area, otherwise they are relative to +the entire window area including scroll bars, margins and fringes. +@end defun + ++@node Accessing Scroll ++@subsection Accessing Scroll Bar Events ++@cindex scroll bar events, data in ++ + These functions are useful for decoding scroll bar events. + +@defun scroll-bar-event-ratio event +This function returns the fractional vertical position of a scroll bar +event within the scroll bar. The value is a cons cell +@code{(@var{portion} . @var{whole})} containing two integers whose ratio +is the fractional position. +@end defun + +@defun scroll-bar-scale ratio total +This function multiplies (in effect) @var{ratio} by @var{total}, +rounding the result to an integer. The argument @var{ratio} is not a +number, but rather a pair @code{(@var{num} . @var{denom})}---typically a +value returned by @code{scroll-bar-event-ratio}. + +This function is handy for scaling a position on a scroll bar into a +buffer position. Here's how to do that: + +@example +(+ (point-min) + (scroll-bar-scale + (posn-x-y (event-start event)) + (- (point-max) (point-min)))) +@end example + +Recall that scroll bar events have two integers forming a ratio, in place +of a pair of x and y coordinates. +@end defun + +@node Strings of Events +@subsection Putting Keyboard Events in Strings +@cindex keyboard events in strings +@cindex strings with keyboard events + + In most of the places where strings are used, we conceptualize the +string as containing text characters---the same kind of characters found +in buffers or files. Occasionally Lisp programs use strings that +conceptually contain keyboard characters; for example, they may be key +sequences or keyboard macro definitions. However, storing keyboard +characters in a string is a complex matter, for reasons of historical +compatibility, and it is not always possible. + + We recommend that new programs avoid dealing with these complexities +by not storing keyboard events in strings. Here is how to do that: + +@itemize @bullet +@item +Use vectors instead of strings for key sequences, when you plan to use +them for anything other than as arguments to @code{lookup-key} and +@code{define-key}. For example, you can use +@code{read-key-sequence-vector} instead of @code{read-key-sequence}, and +@code{this-command-keys-vector} instead of @code{this-command-keys}. + +@item +Use vectors to write key sequence constants containing meta characters, +even when passing them directly to @code{define-key}. + +@item +When you have to look at the contents of a key sequence that might be a +string, use @code{listify-key-sequence} (@pxref{Event Input Misc}) +first, to convert it to a list. +@end itemize + + The complexities stem from the modifier bits that keyboard input +characters can include. Aside from the Meta modifier, none of these +modifier bits can be included in a string, and the Meta modifier is +allowed only in special cases. + + The earliest GNU Emacs versions represented meta characters as codes +in the range of 128 to 255. At that time, the basic character codes +ranged from 0 to 127, so all keyboard character codes did fit in a +string. Many Lisp programs used @samp{\M-} in string constants to stand +for meta characters, especially in arguments to @code{define-key} and +similar functions, and key sequences and sequences of events were always +represented as strings. + + When we added support for larger basic character codes beyond 127, and +additional modifier bits, we had to change the representation of meta +characters. Now the flag that represents the Meta modifier in a +character is +@tex +@math{2^{27}} +@end tex +@ifnottex +2**27 +@end ifnottex +and such numbers cannot be included in a string. + + To support programs with @samp{\M-} in string constants, there are +special rules for including certain meta characters in a string. +Here are the rules for interpreting a string as a sequence of input +characters: + +@itemize @bullet +@item +If the keyboard character value is in the range of 0 to 127, it can go +in the string unchanged. + +@item +The meta variants of those characters, with codes in the range of +@tex +@math{2^{27}} +@end tex +@ifnottex +2**27 +@end ifnottex +to +@tex +@math{2^{27} + 127}, +@end tex +@ifnottex +2**27+127, +@end ifnottex +can also go in the string, but you must change their +numeric values. You must set the +@tex +@math{2^{7}} +@end tex +@ifnottex +2**7 +@end ifnottex +bit instead of the +@tex +@math{2^{27}} +@end tex +@ifnottex +2**27 +@end ifnottex +bit, resulting in a value between 128 and 255. Only a unibyte string +can include these codes. + +@item +Non-@acronym{ASCII} characters above 256 can be included in a multibyte string. + +@item +Other keyboard character events cannot fit in a string. This includes +keyboard events in the range of 128 to 255. +@end itemize + + Functions such as @code{read-key-sequence} that construct strings of +keyboard input characters follow these rules: they construct vectors +instead of strings, when the events won't fit in a string. + + When you use the read syntax @samp{\M-} in a string, it produces a +code in the range of 128 to 255---the same code that you get if you +modify the corresponding keyboard event to put it in the string. Thus, +meta events in strings work consistently regardless of how they get into +the strings. + + However, most programs would do well to avoid these issues by +following the recommendations at the beginning of this section. + +@node Reading Input +@section Reading Input +@cindex read input +@cindex keyboard input + + The editor command loop reads key sequences using the function +@code{read-key-sequence}, which uses @code{read-event}. These and other +functions for event input are also available for use in Lisp programs. +See also @code{momentary-string-display} in @ref{Temporary Displays}, +and @code{sit-for} in @ref{Waiting}. @xref{Terminal Input}, for +functions and variables for controlling terminal input modes and +debugging terminal input. + + For higher-level input facilities, see @ref{Minibuffers}. + +@menu +* Key Sequence Input:: How to read one key sequence. +* Reading One Event:: How to read just one event. +* Event Mod:: How Emacs modifies events as they are read. +* Invoking the Input Method:: How reading an event uses the input method. +* Quoted Character Input:: Asking the user to specify a character. +* Event Input Misc:: How to reread or throw away input events. +@end menu + +@node Key Sequence Input +@subsection Key Sequence Input +@cindex key sequence input + + The command loop reads input a key sequence at a time, by calling +@code{read-key-sequence}. Lisp programs can also call this function; +for example, @code{describe-key} uses it to read the key to describe. + +@defun read-key-sequence prompt &optional continue-echo dont-downcase-last switch-frame-ok command-loop +This function reads a key sequence and returns it as a string or +vector. It keeps reading events until it has accumulated a complete key +sequence; that is, enough to specify a non-prefix command using the +currently active keymaps. (Remember that a key sequence that starts +with a mouse event is read using the keymaps of the buffer in the +window that the mouse was in, not the current buffer.) + +If the events are all characters and all can fit in a string, then +@code{read-key-sequence} returns a string (@pxref{Strings of Events}). +Otherwise, it returns a vector, since a vector can hold all kinds of +events---characters, symbols, and lists. The elements of the string or +vector are the events in the key sequence. + +Reading a key sequence includes translating the events in various +ways. @xref{Translation Keymaps}. + +The argument @var{prompt} is either a string to be displayed in the +echo area as a prompt, or @code{nil}, meaning not to display a prompt. +The argument @var{continue-echo}, if non-@code{nil}, means to echo +this key as a continuation of the previous key. + +Normally any upper case event is converted to lower case if the +original event is undefined and the lower case equivalent is defined. +The argument @var{dont-downcase-last}, if non-@code{nil}, means do not +convert the last event to lower case. This is appropriate for reading +a key sequence to be defined. + +The argument @var{switch-frame-ok}, if non-@code{nil}, means that this +function should process a @code{switch-frame} event if the user +switches frames before typing anything. If the user switches frames +in the middle of a key sequence, or at the start of the sequence but +@var{switch-frame-ok} is @code{nil}, then the event will be put off +until after the current key sequence. + +The argument @var{command-loop}, if non-@code{nil}, means that this +key sequence is being read by something that will read commands one +after another. It should be @code{nil} if the caller will read just +one key sequence. + +In the following example, Emacs displays the prompt @samp{?} in the +echo area, and then the user types @kbd{C-x C-f}. + +@example +(read-key-sequence "?") + +@group +---------- Echo Area ---------- +?@kbd{C-x C-f} +---------- Echo Area ---------- + + @result{} "^X^F" +@end group +@end example + +The function @code{read-key-sequence} suppresses quitting: @kbd{C-g} +typed while reading with this function works like any other character, +and does not set @code{quit-flag}. @xref{Quitting}. +@end defun + +@defun read-key-sequence-vector prompt &optional continue-echo dont-downcase-last switch-frame-ok command-loop +This is like @code{read-key-sequence} except that it always +returns the key sequence as a vector, never as a string. +@xref{Strings of Events}. +@end defun + +@cindex upper case key sequence +@cindex downcasing in @code{lookup-key} +If an input character is upper-case (or has the shift modifier) and +has no key binding, but its lower-case equivalent has one, then +@code{read-key-sequence} converts the character to lower case. Note +that @code{lookup-key} does not perform case conversion in this way. + +The function @code{read-key-sequence} also transforms some mouse events. +It converts unbound drag events into click events, and discards unbound +button-down events entirely. It also reshuffles focus events and +miscellaneous window events so that they never appear in a key sequence +with any other events. + +@cindex @code{header-line} prefix key +@cindex @code{mode-line} prefix key +@cindex @code{vertical-line} prefix key +@cindex @code{horizontal-scroll-bar} prefix key +@cindex @code{vertical-scroll-bar} prefix key +@cindex @code{menu-bar} prefix key +@cindex mouse events, in special parts of frame +When mouse events occur in special parts of a window, such as a mode +line or a scroll bar, the event type shows nothing special---it is the +same symbol that would normally represent that combination of mouse +button and modifier keys. The information about the window part is kept +elsewhere in the event---in the coordinates. But +@code{read-key-sequence} translates this information into imaginary +``prefix keys,'' all of which are symbols: @code{header-line}, +@code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line}, +@code{vertical-line}, and @code{vertical-scroll-bar}. You can define +meanings for mouse clicks in special window parts by defining key +sequences using these imaginary prefix keys. + +For example, if you call @code{read-key-sequence} and then click the +mouse on the window's mode line, you get two events, like this: + +@example +(read-key-sequence "Click on the mode line: ") + @result{} [mode-line + (mouse-1 + (# mode-line + (40 . 63) 5959987))] +@end example + +@defvar num-input-keys +@c Emacs 19 feature +This variable's value is the number of key sequences processed so far in +this Emacs session. This includes key sequences read from the terminal +and key sequences read from keyboard macros being executed. +@end defvar + +@node Reading One Event +@subsection Reading One Event +@cindex reading a single event +@cindex event, reading only one + + The lowest level functions for command input are those that read a +single event. + +None of the three functions below suppresses quitting. + +@defun read-event &optional prompt inherit-input-method seconds +This function reads and returns the next event of command input, waiting +if necessary until an event is available. Events can come directly from +the user or from a keyboard macro. + +If the optional argument @var{prompt} is non-@code{nil}, it should be a +string to display in the echo area as a prompt. Otherwise, +@code{read-event} does not display any message to indicate it is waiting +for input; instead, it prompts by echoing: it displays descriptions of +the events that led to or were read by the current command. @xref{The +Echo Area}. + +If @var{inherit-input-method} is non-@code{nil}, then the current input +method (if any) is employed to make it possible to enter a +non-@acronym{ASCII} character. Otherwise, input method handling is disabled +for reading this event. + +If @code{cursor-in-echo-area} is non-@code{nil}, then @code{read-event} +moves the cursor temporarily to the echo area, to the end of any message +displayed there. Otherwise @code{read-event} does not move the cursor. + +If @var{seconds} is non-@code{nil}, it should be a number specifying +the maximum time to wait for input, in seconds. If no input arrives +within that time, @code{read-event} stops waiting and returns +@code{nil}. A floating-point value for @var{seconds} means to wait +for a fractional number of seconds. Some systems support only a whole +number of seconds; on these systems, @var{seconds} is rounded down. +If @var{seconds} is @code{nil}, @code{read-event} waits as long as +necessary for input to arrive. + +If @var{seconds} is @code{nil}, Emacs is considered idle while waiting +for user input to arrive. Idle timers---those created with +@code{run-with-idle-timer} (@pxref{Idle Timers})---can run during this +period. However, if @var{seconds} is non-@code{nil}, the state of +idleness remains unchanged. If Emacs is non-idle when +@code{read-event} is called, it remains non-idle throughout the +operation of @code{read-event}; if Emacs is idle (which can happen if +the call happens inside an idle timer), it remains idle. + +If @code{read-event} gets an event that is defined as a help character, +then in some cases @code{read-event} processes the event directly without +returning. @xref{Help Functions}. Certain other events, called +@dfn{special events}, are also processed directly within +@code{read-event} (@pxref{Special Events}). + +Here is what happens if you call @code{read-event} and then press the +right-arrow function key: + +@example +@group +(read-event) + @result{} right +@end group +@end example +@end defun + +@defun read-char &optional prompt inherit-input-method seconds +This function reads and returns a character of command input. If the +user generates an event which is not a character (i.e. a mouse click or +function key event), @code{read-char} signals an error. The arguments +work as in @code{read-event}. + +In the first example, the user types the character @kbd{1} (@acronym{ASCII} +code 49). The second example shows a keyboard macro definition that +calls @code{read-char} from the minibuffer using @code{eval-expression}. +@code{read-char} reads the keyboard macro's very next character, which +is @kbd{1}. Then @code{eval-expression} displays its return value in +the echo area. + +@example +@group +(read-char) + @result{} 49 +@end group + +@group +;; @r{We assume here you use @kbd{M-:} to evaluate this.} +(symbol-function 'foo) + @result{} "^[:(read-char)^M1" +@end group +@group +(execute-kbd-macro 'foo) + @print{} 49 + @result{} nil +@end group +@end example +@end defun + +@defun read-char-exclusive &optional prompt inherit-input-method seconds +This function reads and returns a character of command input. If the +user generates an event which is not a character, +@code{read-char-exclusive} ignores it and reads another event, until it +gets a character. The arguments work as in @code{read-event}. +@end defun + +@defvar num-nonmacro-input-events +This variable holds the total number of input events received so far +from the terminal---not counting those generated by keyboard macros. +@end defvar + +@node Event Mod +@subsection Modifying and Translating Input Events + + Emacs modifies every event it reads according to +@code{extra-keyboard-modifiers}, then translates it through +@code{keyboard-translate-table} (if applicable), before returning it +from @code{read-event}. + +@c Emacs 19 feature +@defvar extra-keyboard-modifiers +This variable lets Lisp programs ``press'' the modifier keys on the +keyboard. The value is a character. Only the modifiers of the +character matter. Each time the user types a keyboard key, it is +altered as if those modifier keys were held down. For instance, if +you bind @code{extra-keyboard-modifiers} to @code{?\C-\M-a}, then all +keyboard input characters typed during the scope of the binding will +have the control and meta modifiers applied to them. The character +@code{?\C-@@}, equivalent to the integer 0, does not count as a control +character for this purpose, but as a character with no modifiers. +Thus, setting @code{extra-keyboard-modifiers} to zero cancels any +modification. + +When using a window system, the program can ``press'' any of the +modifier keys in this way. Otherwise, only the @key{CTL} and @key{META} +keys can be virtually pressed. + +Note that this variable applies only to events that really come from +the keyboard, and has no effect on mouse events or any other events. +@end defvar + +@defvar keyboard-translate-table +This variable is the translate table for keyboard characters. It lets +you reshuffle the keys on the keyboard without changing any command +bindings. Its value is normally a char-table, or else @code{nil}. +(It can also be a string or vector, but this is considered obsolete.) + +If @code{keyboard-translate-table} is a char-table +(@pxref{Char-Tables}), then each character read from the keyboard is +looked up in this char-table. If the value found there is +non-@code{nil}, then it is used instead of the actual input character. + +Note that this translation is the first thing that happens to a +character after it is read from the terminal. Record-keeping features +such as @code{recent-keys} and dribble files record the characters after +translation. + +Note also that this translation is done before the characters are +supplied to input methods (@pxref{Input Methods}). Use +@code{translation-table-for-input} (@pxref{Translation of Characters}), +if you want to translate characters after input methods operate. +@end defvar + +@defun keyboard-translate from to +This function modifies @code{keyboard-translate-table} to translate +character code @var{from} into character code @var{to}. It creates +the keyboard translate table if necessary. +@end defun + + Here's an example of using the @code{keyboard-translate-table} to +make @kbd{C-x}, @kbd{C-c} and @kbd{C-v} perform the cut, copy and paste +operations: + +@example +(keyboard-translate ?\C-x 'control-x) +(keyboard-translate ?\C-c 'control-c) +(keyboard-translate ?\C-v 'control-v) +(global-set-key [control-x] 'kill-region) +(global-set-key [control-c] 'kill-ring-save) +(global-set-key [control-v] 'yank) +@end example + +@noindent +On a graphical terminal that supports extended @acronym{ASCII} input, +you can still get the standard Emacs meanings of one of those +characters by typing it with the shift key. That makes it a different +character as far as keyboard translation is concerned, but it has the +same usual meaning. + + @xref{Translation Keymaps}, for mechanisms that translate event sequences +at the level of @code{read-key-sequence}. + +@node Invoking the Input Method +@subsection Invoking the Input Method + + The event-reading functions invoke the current input method, if any +(@pxref{Input Methods}). If the value of @code{input-method-function} +is non-@code{nil}, it should be a function; when @code{read-event} reads +a printing character (including @key{SPC}) with no modifier bits, it +calls that function, passing the character as an argument. + +@defvar input-method-function +If this is non-@code{nil}, its value specifies the current input method +function. + +@strong{Warning:} don't bind this variable with @code{let}. It is often +buffer-local, and if you bind it around reading input (which is exactly +when you @emph{would} bind it), switching buffers asynchronously while +Emacs is waiting will cause the value to be restored in the wrong +buffer. +@end defvar + + The input method function should return a list of events which should +be used as input. (If the list is @code{nil}, that means there is no +input, so @code{read-event} waits for another event.) These events are +processed before the events in @code{unread-command-events} +(@pxref{Event Input Misc}). Events +returned by the input method function are not passed to the input method +function again, even if they are printing characters with no modifier +bits. + + If the input method function calls @code{read-event} or +@code{read-key-sequence}, it should bind @code{input-method-function} to +@code{nil} first, to prevent recursion. + + The input method function is not called when reading the second and +subsequent events of a key sequence. Thus, these characters are not +subject to input method processing. The input method function should +test the values of @code{overriding-local-map} and +@code{overriding-terminal-local-map}; if either of these variables is +non-@code{nil}, the input method should put its argument into a list and +return that list with no further processing. + +@node Quoted Character Input +@subsection Quoted Character Input +@cindex quoted character input + + You can use the function @code{read-quoted-char} to ask the user to +specify a character, and allow the user to specify a control or meta +character conveniently, either literally or as an octal character code. +The command @code{quoted-insert} uses this function. + +@defun read-quoted-char &optional prompt +@cindex octal character input +@cindex control characters, reading +@cindex nonprinting characters, reading +This function is like @code{read-char}, except that if the first +character read is an octal digit (0-7), it reads any number of octal +digits (but stopping if a non-octal digit is found), and returns the +character represented by that numeric character code. If the +character that terminates the sequence of octal digits is @key{RET}, +it is discarded. Any other terminating character is used as input +after this function returns. + +Quitting is suppressed when the first character is read, so that the +user can enter a @kbd{C-g}. @xref{Quitting}. + +If @var{prompt} is supplied, it specifies a string for prompting the +user. The prompt string is always displayed in the echo area, followed +by a single @samp{-}. + +In the following example, the user types in the octal number 177 (which +is 127 in decimal). + +@example +(read-quoted-char "What character") + +@group +---------- Echo Area ---------- +What character @kbd{1 7 7}- +---------- Echo Area ---------- + + @result{} 127 +@end group +@end example +@end defun + +@need 2000 +@node Event Input Misc +@subsection Miscellaneous Event Input Features + +This section describes how to ``peek ahead'' at events without using +them up, how to check for pending input, and how to discard pending +input. See also the function @code{read-passwd} (@pxref{Reading a +Password}). + +@defvar unread-command-events +@cindex next input +@cindex peeking at input +This variable holds a list of events waiting to be read as command +input. The events are used in the order they appear in the list, and +removed one by one as they are used. + +The variable is needed because in some cases a function reads an event +and then decides not to use it. Storing the event in this variable +causes it to be processed normally, by the command loop or by the +functions to read command input. + +@cindex prefix argument unreading +For example, the function that implements numeric prefix arguments reads +any number of digits. When it finds a non-digit event, it must unread +the event so that it can be read normally by the command loop. +Likewise, incremental search uses this feature to unread events with no +special meaning in a search, because these events should exit the search +and then execute normally. + +The reliable and easy way to extract events from a key sequence so as to +put them in @code{unread-command-events} is to use +@code{listify-key-sequence} (@pxref{Strings of Events}). + +Normally you add events to the front of this list, so that the events +most recently unread will be reread first. + +Events read from this list are not normally added to the current +command's key sequence (as returned by e.g. @code{this-command-keys}), +as the events will already have been added once as they were read for +the first time. An element of the form @code{(@code{t} . @var{event})} +forces @var{event} to be added to the current command's key sequence. +@end defvar + +@defun listify-key-sequence key +This function converts the string or vector @var{key} to a list of +individual events, which you can put in @code{unread-command-events}. +@end defun + +@defvar unread-command-char +This variable holds a character to be read as command input. +A value of -1 means ``empty.'' + +This variable is mostly obsolete now that you can use +@code{unread-command-events} instead; it exists only to support programs +written for Emacs versions 18 and earlier. +@end defvar + +@defun input-pending-p +@cindex waiting for command key input +This function determines whether any command input is currently +available to be read. It returns immediately, with value @code{t} if +there is available input, @code{nil} otherwise. On rare occasions it +may return @code{t} when no input is available. +@end defun + +@defvar last-input-event +@defvarx last-input-char +This variable records the last terminal input event read, whether +as part of a command or explicitly by a Lisp program. + +In the example below, the Lisp program reads the character @kbd{1}, +@acronym{ASCII} code 49. It becomes the value of @code{last-input-event}, +while @kbd{C-e} (we assume @kbd{C-x C-e} command is used to evaluate +this expression) remains the value of @code{last-command-event}. + +@example +@group +(progn (print (read-char)) + (print last-command-event) + last-input-event) + @print{} 49 + @print{} 5 + @result{} 49 +@end group +@end example + +The alias @code{last-input-char} exists for compatibility with +Emacs version 18. +@end defvar + +@defmac while-no-input body@dots{} +This construct runs the @var{body} forms and returns the value of the +last one---but only if no input arrives. If any input arrives during +the execution of the @var{body} forms, it aborts them (working much +like a quit). The @code{while-no-input} form returns @code{nil} if +aborted by a real quit, and returns @code{t} if aborted by arrival of +other input. + +If a part of @var{body} binds @code{inhibit-quit} to non-@code{nil}, +arrival of input during those parts won't cause an abort until +the end of that part. + +If you want to be able to distinguish all possible values computed +by @var{body} from both kinds of abort conditions, write the code +like this: + +@example +(while-no-input + (list + (progn . @var{body}))) +@end example +@end defmac + +@defun discard-input +@cindex flushing input +@cindex discarding input +@cindex keyboard macro, terminating +This function discards the contents of the terminal input buffer and +cancels any keyboard macro that might be in the process of definition. +It returns @code{nil}. + +In the following example, the user may type a number of characters right +after starting the evaluation of the form. After the @code{sleep-for} +finishes sleeping, @code{discard-input} discards any characters typed +during the sleep. + +@example +(progn (sleep-for 2) + (discard-input)) + @result{} nil +@end example +@end defun + +@node Special Events +@section Special Events + +@cindex special events +Special events are handled at a very low level---as soon as they are +read. The @code{read-event} function processes these events itself, and +never returns them. Instead, it keeps waiting for the first event +that is not special and returns that one. + +Events that are handled in this way do not echo, they are never grouped +into key sequences, and they never appear in the value of +@code{last-command-event} or @code{(this-command-keys)}. They do not +discard a numeric argument, they cannot be unread with +@code{unread-command-events}, they may not appear in a keyboard macro, +and they are not recorded in a keyboard macro while you are defining +one. + +These events do, however, appear in @code{last-input-event} immediately +after they are read, and this is the way for the event's definition to +find the actual event. + +The events types @code{iconify-frame}, @code{make-frame-visible}, +@code{delete-frame}, @code{drag-n-drop}, and user signals like +@code{sigusr1} are normally handled in this way. The keymap which +defines how to handle special events---and which events are special---is +in the variable @code{special-event-map} (@pxref{Active Keymaps}). + +@node Waiting +@section Waiting for Elapsed Time or Input +@cindex waiting + + The wait functions are designed to wait for a certain amount of time +to pass or until there is input. For example, you may wish to pause in +the middle of a computation to allow the user time to view the display. +@code{sit-for} pauses and updates the screen, and returns immediately if +input comes in, while @code{sleep-for} pauses without updating the +screen. + +@defun sit-for seconds &optional nodisp +This function performs redisplay (provided there is no pending input +from the user), then waits @var{seconds} seconds, or until input is +available. The usual purpose of @code{sit-for} is to give the user +time to read text that you display. The value is @code{t} if +@code{sit-for} waited the full time with no input arriving +(@pxref{Event Input Misc}). Otherwise, the value is @code{nil}. + +The argument @var{seconds} need not be an integer. If it is a floating +point number, @code{sit-for} waits for a fractional number of seconds. +Some systems support only a whole number of seconds; on these systems, +@var{seconds} is rounded down. + +The expression @code{(sit-for 0)} is equivalent to @code{(redisplay)}, +i.e. it requests a redisplay, without any delay, if there is no pending input. +@xref{Forcing Redisplay}. + +If @var{nodisp} is non-@code{nil}, then @code{sit-for} does not +redisplay, but it still returns as soon as input is available (or when +the timeout elapses). + +In batch mode (@pxref{Batch Mode}), @code{sit-for} cannot be +interrupted, even by input from the standard input descriptor. It is +thus equivalent to @code{sleep-for}, which is described below. + +It is also possible to call @code{sit-for} with three arguments, +as @code{(sit-for @var{seconds} @var{millisec} @var{nodisp})}, +but that is considered obsolete. +@end defun + +@defun sleep-for seconds &optional millisec +This function simply pauses for @var{seconds} seconds without updating +the display. It pays no attention to available input. It returns +@code{nil}. + +The argument @var{seconds} need not be an integer. If it is a floating +point number, @code{sleep-for} waits for a fractional number of seconds. +Some systems support only a whole number of seconds; on these systems, +@var{seconds} is rounded down. + +The optional argument @var{millisec} specifies an additional waiting +period measured in milliseconds. This adds to the period specified by +@var{seconds}. If the system doesn't support waiting fractions of a +second, you get an error if you specify nonzero @var{millisec}. + +Use @code{sleep-for} when you wish to guarantee a delay. +@end defun + + @xref{Time of Day}, for functions to get the current time. + +@node Quitting +@section Quitting +@cindex @kbd{C-g} +@cindex quitting +@cindex interrupt Lisp functions + + Typing @kbd{C-g} while a Lisp function is running causes Emacs to +@dfn{quit} whatever it is doing. This means that control returns to the +innermost active command loop. + + Typing @kbd{C-g} while the command loop is waiting for keyboard input +does not cause a quit; it acts as an ordinary input character. In the +simplest case, you cannot tell the difference, because @kbd{C-g} +normally runs the command @code{keyboard-quit}, whose effect is to quit. +However, when @kbd{C-g} follows a prefix key, they combine to form an +undefined key. The effect is to cancel the prefix key as well as any +prefix argument. + + In the minibuffer, @kbd{C-g} has a different definition: it aborts out +of the minibuffer. This means, in effect, that it exits the minibuffer +and then quits. (Simply quitting would return to the command loop +@emph{within} the minibuffer.) The reason why @kbd{C-g} does not quit +directly when the command reader is reading input is so that its meaning +can be redefined in the minibuffer in this way. @kbd{C-g} following a +prefix key is not redefined in the minibuffer, and it has its normal +effect of canceling the prefix key and prefix argument. This too +would not be possible if @kbd{C-g} always quit directly. + + When @kbd{C-g} does directly quit, it does so by setting the variable +@code{quit-flag} to @code{t}. Emacs checks this variable at appropriate +times and quits if it is not @code{nil}. Setting @code{quit-flag} +non-@code{nil} in any way thus causes a quit. + + At the level of C code, quitting cannot happen just anywhere; only at the +special places that check @code{quit-flag}. The reason for this is +that quitting at other places might leave an inconsistency in Emacs's +internal state. Because quitting is delayed until a safe place, quitting +cannot make Emacs crash. + + Certain functions such as @code{read-key-sequence} or +@code{read-quoted-char} prevent quitting entirely even though they wait +for input. Instead of quitting, @kbd{C-g} serves as the requested +input. In the case of @code{read-key-sequence}, this serves to bring +about the special behavior of @kbd{C-g} in the command loop. In the +case of @code{read-quoted-char}, this is so that @kbd{C-q} can be used +to quote a @kbd{C-g}. + +@cindex preventing quitting + You can prevent quitting for a portion of a Lisp function by binding +the variable @code{inhibit-quit} to a non-@code{nil} value. Then, +although @kbd{C-g} still sets @code{quit-flag} to @code{t} as usual, the +usual result of this---a quit---is prevented. Eventually, +@code{inhibit-quit} will become @code{nil} again, such as when its +binding is unwound at the end of a @code{let} form. At that time, if +@code{quit-flag} is still non-@code{nil}, the requested quit happens +immediately. This behavior is ideal when you wish to make sure that +quitting does not happen within a ``critical section'' of the program. + +@cindex @code{read-quoted-char} quitting + In some functions (such as @code{read-quoted-char}), @kbd{C-g} is +handled in a special way that does not involve quitting. This is done +by reading the input with @code{inhibit-quit} bound to @code{t}, and +setting @code{quit-flag} to @code{nil} before @code{inhibit-quit} +becomes @code{nil} again. This excerpt from the definition of +@code{read-quoted-char} shows how this is done; it also shows that +normal quitting is permitted after the first character of input. + +@example +(defun read-quoted-char (&optional prompt) + "@dots{}@var{documentation}@dots{}" + (let ((message-log-max nil) done (first t) (code 0) char) + (while (not done) + (let ((inhibit-quit first) + @dots{}) + (and prompt (message "%s-" prompt)) + (setq char (read-event)) + (if inhibit-quit (setq quit-flag nil))) + @r{@dots{}set the variable @code{code}@dots{}}) + code)) +@end example + +@defvar quit-flag +If this variable is non-@code{nil}, then Emacs quits immediately, unless +@code{inhibit-quit} is non-@code{nil}. Typing @kbd{C-g} ordinarily sets +@code{quit-flag} non-@code{nil}, regardless of @code{inhibit-quit}. +@end defvar + +@defvar inhibit-quit +This variable determines whether Emacs should quit when @code{quit-flag} +is set to a value other than @code{nil}. If @code{inhibit-quit} is +non-@code{nil}, then @code{quit-flag} has no special effect. +@end defvar + +@defmac with-local-quit body@dots{} +This macro executes @var{body} forms in sequence, but allows quitting, at +least locally, within @var{body} even if @code{inhibit-quit} was +non-@code{nil} outside this construct. It returns the value of the +last form in @var{body}, unless exited by quitting, in which case +it returns @code{nil}. + +If @code{inhibit-quit} is @code{nil} on entry to @code{with-local-quit}, +it only executes the @var{body}, and setting @code{quit-flag} causes +a normal quit. However, if @code{inhibit-quit} is non-@code{nil} so +that ordinary quitting is delayed, a non-@code{nil} @code{quit-flag} +triggers a special kind of local quit. This ends the execution of +@var{body} and exits the @code{with-local-quit} body with +@code{quit-flag} still non-@code{nil}, so that another (ordinary) quit +will happen as soon as that is allowed. If @code{quit-flag} is +already non-@code{nil} at the beginning of @var{body}, the local quit +happens immediately and the body doesn't execute at all. + +This macro is mainly useful in functions that can be called from +timers, process filters, process sentinels, @code{pre-command-hook}, +@code{post-command-hook}, and other places where @code{inhibit-quit} is +normally bound to @code{t}. +@end defmac + +@deffn Command keyboard-quit +This function signals the @code{quit} condition with @code{(signal 'quit +nil)}. This is the same thing that quitting does. (See @code{signal} +in @ref{Errors}.) +@end deffn + + You can specify a character other than @kbd{C-g} to use for quitting. +See the function @code{set-input-mode} in @ref{Terminal Input}. + +@node Prefix Command Arguments +@section Prefix Command Arguments +@cindex prefix argument +@cindex raw prefix argument +@cindex numeric prefix argument + + Most Emacs commands can use a @dfn{prefix argument}, a number +specified before the command itself. (Don't confuse prefix arguments +with prefix keys.) The prefix argument is at all times represented by a +value, which may be @code{nil}, meaning there is currently no prefix +argument. Each command may use the prefix argument or ignore it. + + There are two representations of the prefix argument: @dfn{raw} and +@dfn{numeric}. The editor command loop uses the raw representation +internally, and so do the Lisp variables that store the information, but +commands can request either representation. + + Here are the possible values of a raw prefix argument: + +@itemize @bullet +@item +@code{nil}, meaning there is no prefix argument. Its numeric value is +1, but numerous commands make a distinction between @code{nil} and the +integer 1. + +@item +An integer, which stands for itself. + +@item +A list of one element, which is an integer. This form of prefix +argument results from one or a succession of @kbd{C-u}'s with no +digits. The numeric value is the integer in the list, but some +commands make a distinction between such a list and an integer alone. + +@item +The symbol @code{-}. This indicates that @kbd{M--} or @kbd{C-u -} was +typed, without following digits. The equivalent numeric value is +@minus{}1, but some commands make a distinction between the integer +@minus{}1 and the symbol @code{-}. +@end itemize + +We illustrate these possibilities by calling the following function with +various prefixes: + +@example +@group +(defun display-prefix (arg) + "Display the value of the raw prefix arg." + (interactive "P") + (message "%s" arg)) +@end group +@end example + +@noindent +Here are the results of calling @code{display-prefix} with various +raw prefix arguments: + +@example + M-x display-prefix @print{} nil + +C-u M-x display-prefix @print{} (4) + +C-u C-u M-x display-prefix @print{} (16) + +C-u 3 M-x display-prefix @print{} 3 + +M-3 M-x display-prefix @print{} 3 ; @r{(Same as @code{C-u 3}.)} + +C-u - M-x display-prefix @print{} - + +M-- M-x display-prefix @print{} - ; @r{(Same as @code{C-u -}.)} + +C-u - 7 M-x display-prefix @print{} -7 + +M-- 7 M-x display-prefix @print{} -7 ; @r{(Same as @code{C-u -7}.)} +@end example + + Emacs uses two variables to store the prefix argument: +@code{prefix-arg} and @code{current-prefix-arg}. Commands such as +@code{universal-argument} that set up prefix arguments for other +commands store them in @code{prefix-arg}. In contrast, +@code{current-prefix-arg} conveys the prefix argument to the current +command, so setting it has no effect on the prefix arguments for future +commands. + + Normally, commands specify which representation to use for the prefix +argument, either numeric or raw, in the @code{interactive} specification. +(@xref{Using Interactive}.) Alternatively, functions may look at the +value of the prefix argument directly in the variable +@code{current-prefix-arg}, but this is less clean. + +@defun prefix-numeric-value arg +This function returns the numeric meaning of a valid raw prefix argument +value, @var{arg}. The argument may be a symbol, a number, or a list. +If it is @code{nil}, the value 1 is returned; if it is @code{-}, the +value @minus{}1 is returned; if it is a number, that number is returned; +if it is a list, the @sc{car} of that list (which should be a number) is +returned. +@end defun + +@defvar current-prefix-arg +This variable holds the raw prefix argument for the @emph{current} +command. Commands may examine it directly, but the usual method for +accessing it is with @code{(interactive "P")}. +@end defvar + +@defvar prefix-arg +The value of this variable is the raw prefix argument for the +@emph{next} editing command. Commands such as @code{universal-argument} +that specify prefix arguments for the following command work by setting +this variable. +@end defvar + +@defvar last-prefix-arg +The raw prefix argument value used by the previous command. +@end defvar + + The following commands exist to set up prefix arguments for the +following command. Do not call them for any other reason. + +@deffn Command universal-argument +This command reads input and specifies a prefix argument for the +following command. Don't call this command yourself unless you know +what you are doing. +@end deffn + +@deffn Command digit-argument arg +This command adds to the prefix argument for the following command. The +argument @var{arg} is the raw prefix argument as it was before this +command; it is used to compute the updated prefix argument. Don't call +this command yourself unless you know what you are doing. +@end deffn + +@deffn Command negative-argument arg +This command adds to the numeric argument for the next command. The +argument @var{arg} is the raw prefix argument as it was before this +command; its value is negated to form the new prefix argument. Don't +call this command yourself unless you know what you are doing. +@end deffn + +@node Recursive Editing +@section Recursive Editing +@cindex recursive command loop +@cindex recursive editing level +@cindex command loop, recursive + + The Emacs command loop is entered automatically when Emacs starts up. +This top-level invocation of the command loop never exits; it keeps +running as long as Emacs does. Lisp programs can also invoke the +command loop. Since this makes more than one activation of the command +loop, we call it @dfn{recursive editing}. A recursive editing level has +the effect of suspending whatever command invoked it and permitting the +user to do arbitrary editing before resuming that command. + + The commands available during recursive editing are the same ones +available in the top-level editing loop and defined in the keymaps. +Only a few special commands exit the recursive editing level; the others +return to the recursive editing level when they finish. (The special +commands for exiting are always available, but they do nothing when +recursive editing is not in progress.) + + All command loops, including recursive ones, set up all-purpose error +handlers so that an error in a command run from the command loop will +not exit the loop. + +@cindex minibuffer input + Minibuffer input is a special kind of recursive editing. It has a few +special wrinkles, such as enabling display of the minibuffer and the +minibuffer window, but fewer than you might suppose. Certain keys +behave differently in the minibuffer, but that is only because of the +minibuffer's local map; if you switch windows, you get the usual Emacs +commands. + +@cindex @code{throw} example +@kindex exit +@cindex exit recursive editing +@cindex aborting + To invoke a recursive editing level, call the function +@code{recursive-edit}. This function contains the command loop; it also +contains a call to @code{catch} with tag @code{exit}, which makes it +possible to exit the recursive editing level by throwing to @code{exit} +(@pxref{Catch and Throw}). If you throw a value other than @code{t}, +then @code{recursive-edit} returns normally to the function that called +it. The command @kbd{C-M-c} (@code{exit-recursive-edit}) does this. +Throwing a @code{t} value causes @code{recursive-edit} to quit, so that +control returns to the command loop one level up. This is called +@dfn{aborting}, and is done by @kbd{C-]} (@code{abort-recursive-edit}). + + Most applications should not use recursive editing, except as part of +using the minibuffer. Usually it is more convenient for the user if you +change the major mode of the current buffer temporarily to a special +major mode, which should have a command to go back to the previous mode. +(The @kbd{e} command in Rmail uses this technique.) Or, if you wish to +give the user different text to edit ``recursively,'' create and select +a new buffer in a special mode. In this mode, define a command to +complete the processing and go back to the previous buffer. (The +@kbd{m} command in Rmail does this.) + + Recursive edits are useful in debugging. You can insert a call to +@code{debug} into a function definition as a sort of breakpoint, so that +you can look around when the function gets there. @code{debug} invokes +a recursive edit but also provides the other features of the debugger. + + Recursive editing levels are also used when you type @kbd{C-r} in +@code{query-replace} or use @kbd{C-x q} (@code{kbd-macro-query}). + +@defun recursive-edit +@cindex suspend evaluation +This function invokes the editor command loop. It is called +automatically by the initialization of Emacs, to let the user begin +editing. When called from a Lisp program, it enters a recursive editing +level. + +If the current buffer is not the same as the selected window's buffer, +@code{recursive-edit} saves and restores the current buffer. Otherwise, +if you switch buffers, the buffer you switched to is current after +@code{recursive-edit} returns. + +In the following example, the function @code{simple-rec} first +advances point one word, then enters a recursive edit, printing out a +message in the echo area. The user can then do any editing desired, and +then type @kbd{C-M-c} to exit and continue executing @code{simple-rec}. + +@example +(defun simple-rec () + (forward-word 1) + (message "Recursive edit in progress") + (recursive-edit) + (forward-word 1)) + @result{} simple-rec +(simple-rec) + @result{} nil +@end example +@end defun + +@deffn Command exit-recursive-edit +This function exits from the innermost recursive edit (including +minibuffer input). Its definition is effectively @code{(throw 'exit +nil)}. +@end deffn + +@deffn Command abort-recursive-edit +This function aborts the command that requested the innermost recursive +edit (including minibuffer input), by signaling @code{quit} +after exiting the recursive edit. Its definition is effectively +@code{(throw 'exit t)}. @xref{Quitting}. +@end deffn + +@deffn Command top-level +This function exits all recursive editing levels; it does not return a +value, as it jumps completely out of any computation directly back to +the main command loop. +@end deffn + +@defun recursion-depth +This function returns the current depth of recursive edits. When no +recursive edit is active, it returns 0. +@end defun + +@node Disabling Commands +@section Disabling Commands +@cindex disabled command + + @dfn{Disabling a command} marks the command as requiring user +confirmation before it can be executed. Disabling is used for commands +which might be confusing to beginning users, to prevent them from using +the commands by accident. + +@kindex disabled + The low-level mechanism for disabling a command is to put a +non-@code{nil} @code{disabled} property on the Lisp symbol for the +command. These properties are normally set up by the user's +init file (@pxref{Init File}) with Lisp expressions such as this: + +@example +(put 'upcase-region 'disabled t) +@end example + +@noindent +For a few commands, these properties are present by default (you can +remove them in your init file if you wish). + + If the value of the @code{disabled} property is a string, the message +saying the command is disabled includes that string. For example: + +@example +(put 'delete-region 'disabled + "Text deleted this way cannot be yanked back!\n") +@end example + + @xref{Disabling,,, emacs, The GNU Emacs Manual}, for the details on +what happens when a disabled command is invoked interactively. +Disabling a command has no effect on calling it as a function from Lisp +programs. + +@deffn Command enable-command command +Allow @var{command} (a symbol) to be executed without special +confirmation from now on, and alter the user's init file (@pxref{Init +File}) so that this will apply to future sessions. +@end deffn + +@deffn Command disable-command command +Require special confirmation to execute @var{command} from now on, and +alter the user's init file so that this will apply to future sessions. +@end deffn + +@defvar disabled-command-function +The value of this variable should be a function. When the user +invokes a disabled command interactively, this function is called +instead of the disabled command. It can use @code{this-command-keys} +to determine what the user typed to run the command, and thus find the +command itself. + +The value may also be @code{nil}. Then all commands work normally, +even disabled ones. + +By default, the value is a function that asks the user whether to +proceed. +@end defvar + +@node Command History +@section Command History +@cindex command history +@cindex complex command +@cindex history of commands + + The command loop keeps a history of the complex commands that have +been executed, to make it convenient to repeat these commands. A +@dfn{complex command} is one for which the interactive argument reading +uses the minibuffer. This includes any @kbd{M-x} command, any +@kbd{M-:} command, and any command whose @code{interactive} +specification reads an argument from the minibuffer. Explicit use of +the minibuffer during the execution of the command itself does not cause +the command to be considered complex. + +@defvar command-history +This variable's value is a list of recent complex commands, each +represented as a form to evaluate. It continues to accumulate all +complex commands for the duration of the editing session, but when it +reaches the maximum size (@pxref{Minibuffer History}), the oldest +elements are deleted as new ones are added. + +@example +@group +command-history +@result{} ((switch-to-buffer "chistory.texi") + (describe-key "^X^[") + (visit-tags-table "~/emacs/src/") + (find-tag "repeat-complex-command")) +@end group +@end example +@end defvar + + This history list is actually a special case of minibuffer history +(@pxref{Minibuffer History}), with one special twist: the elements are +expressions rather than strings. + + There are a number of commands devoted to the editing and recall of +previous commands. The commands @code{repeat-complex-command}, and +@code{list-command-history} are described in the user manual +(@pxref{Repetition,,, emacs, The GNU Emacs Manual}). Within the +minibuffer, the usual minibuffer history commands are available. + +@node Keyboard Macros +@section Keyboard Macros +@cindex keyboard macros + + A @dfn{keyboard macro} is a canned sequence of input events that can +be considered a command and made the definition of a key. The Lisp +representation of a keyboard macro is a string or vector containing the +events. Don't confuse keyboard macros with Lisp macros +(@pxref{Macros}). + +@defun execute-kbd-macro kbdmacro &optional count loopfunc +This function executes @var{kbdmacro} as a sequence of events. If +@var{kbdmacro} is a string or vector, then the events in it are executed +exactly as if they had been input by the user. The sequence is +@emph{not} expected to be a single key sequence; normally a keyboard +macro definition consists of several key sequences concatenated. + +If @var{kbdmacro} is a symbol, then its function definition is used in +place of @var{kbdmacro}. If that is another symbol, this process repeats. +Eventually the result should be a string or vector. If the result is +not a symbol, string, or vector, an error is signaled. + +The argument @var{count} is a repeat count; @var{kbdmacro} is executed that +many times. If @var{count} is omitted or @code{nil}, @var{kbdmacro} is +executed once. If it is 0, @var{kbdmacro} is executed over and over until it +encounters an error or a failing search. + +If @var{loopfunc} is non-@code{nil}, it is a function that is called, +without arguments, prior to each iteration of the macro. If +@var{loopfunc} returns @code{nil}, then this stops execution of the macro. + +@xref{Reading One Event}, for an example of using @code{execute-kbd-macro}. +@end defun + +@defvar executing-kbd-macro +This variable contains the string or vector that defines the keyboard +macro that is currently executing. It is @code{nil} if no macro is +currently executing. A command can test this variable so as to behave +differently when run from an executing macro. Do not set this variable +yourself. +@end defvar + +@defvar defining-kbd-macro +This variable is non-@code{nil} if and only if a keyboard macro is +being defined. A command can test this variable so as to behave +differently while a macro is being defined. The value is +@code{append} while appending to the definition of an existing macro. +The commands @code{start-kbd-macro}, @code{kmacro-start-macro} and +@code{end-kbd-macro} set this variable---do not set it yourself. + +The variable is always local to the current terminal and cannot be +buffer-local. @xref{Multiple Displays}. +@end defvar + +@defvar last-kbd-macro +This variable is the definition of the most recently defined keyboard +macro. Its value is a string or vector, or @code{nil}. + +The variable is always local to the current terminal and cannot be +buffer-local. @xref{Multiple Displays}. +@end defvar + +@defvar kbd-macro-termination-hook +This normal hook (@pxref{Standard Hooks}) is run when a keyboard +macro terminates, regardless of what caused it to terminate (reaching +the macro end or an error which ended the macro prematurely). +@end defvar + +@ignore + arch-tag: e34944ad-7d5c-4980-be00-36a5fe54d4b1 +@end ignore diff --cc lisp/ChangeLog index ac027b954c2,2e4ff332ce6..fc4e3046931 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,162 -1,33 +1,187 @@@ + 2007-12-29 Richard Stallman + + * font-lock.el (font-lock-prepend-text-property) + (font-lock-append-text-property): Canonicalize the face and + font-lock-face properties. + + * faces.el (facep): Doc fix. + + * startup.el (fancy-startup-tail, fancy-about-text) + (fancy-startup-text): Regularize format of face property. + + * facemenu.el (list-colors-print): Use :background and :foreground + instead of background-color and foreground-color. + + 2007-12-29 Drew Adams + + * cus-edit.el (custom-add-parent-links): + Fill the "Parent documentation" text. - ++ + 2007-12-29 Eli Zaretskii + + * textmodes/ispell.el (ispell-grep-command): Use "grep" on + MS-Windows and MS-DOS. + (ispell-grep-options): Use "-Ei" on MS-Windows and MS-DOS. + -2007-12-28 YAMAMOTO Mitsuharu +2008-01-02 Eric S. Raymond + + * vc-svn.el (vc-svn-modify-change comment): New function. + +2008-01-01 Dan Nicolaescu + + * vc-git.el (vc-git-dir-state): Set the vc-backend property. Do + not disable undo, with-temp-buffer does it by default. + +2008-01-01 Eric S. Raymond + + * vc-svn.el (vc-svn-parse-status): Set the 'unregisted property + correctly. + + * vc.el (vc-dired-hook): Speed tuning. Replace a vc-backend call + with vc-state. + (vc-next-action): Fix vc-transfer-file call. + +2007-12-31 Tom Tromey + + * emacs-lisp/elp.el (elp-results): Use header-line-format for + header. Move point to the start of the buffer. + +2007-12-31 Dan Nicolaescu + + * vc-cvs.el (vc-cvs-parse-entry): Set the vc-backend property. + + * vc.el: State that dir-state is required to set the vc-state and + vc-backend properties. + +2007-12-31 Martin Rudalics + + * man.el (Man-default-man-entry): Make this a defun. Improve + guessing mechanism and handling of section numbers. + +2007-12-31 Richard Stallman + + * faces.el (face-all-attributes): If FRAME is nil, return defaults. + +2007-12-31 Jay Belanger + + * calc/calc-units.el (calc-convert-temperature): Ensure that units + are on the result even when the result is zero. + +2007-12-30 Michael Albinus + + * net/dbus.el (dbus-name-owner-changed-handler): Make the function + resistent towards wrong parameters. + (dbus-handle-event): Propagate D-Bus errors only in the debug case. + +2007-12-30 Richard Stallman + + * faces.el (face-all-attributes): New function. + + * faces.el (face-differs-from-default-p): Compute list of attr names + from face-attribute-name-alist. + + * cus-edit.el (custom-face-set): Call `face-spec-set' with FOR-DEFFACE. + (custom-face-save): Likewise. + (custom-face-reset-saved, custom-face-reset-standard): Likewise. + + * cus-face.el (custom-declare-face): Per frame, use `face-spec-set-2'. + (custom-theme-set-faces): Clear `face-override-spec' property. + Call `face-spec-set' with FOR-DEFFACE. + + * custom.el (custom-theme-recalc-face): + Simply call `face-spec-recalc'. + + * faces.el (face-spec-set): Third arg is now FOR-DEFFACE. + Use of frame as third arg is deprecated. + Handle `face-override-spec' property. + (face-spec-recalc): New function. + (face-spec-set-2): New function. + (frame-set-background-mode): Handle `face-override-spec' property. + Use `face-spec-recalc'. + (face-set-after-frame-default): Use `face-spec-recalc'. + +2007-12-29 Nick Roberts + + * thumbs.el (thumbs-conversion-program): Add comment for Windows XP. + +2007-12-29 Dan Nicolaescu + + * vc-hg.el (vc-hg-dir-state): Set the vc-backend property. - * progmodes/grep.el (rgrep): Fix last change. +2007-12-29 Eric S. Raymond -2007-12-27 Richard Stallman + * vc-svn.el (vc-svn-parse-status): Recognize 'unregistered, + 'added, 'removed. + + * vc.el (header coment): Better description of dir-state. + (vc-compatible-state): New function. Checks whether two states + can be in the same changeset; used with 'edited it can test whether + the next action for a state should be commit. + (vc-default-dired-format0info): Display 'added state. + (vc-dired-hook): Turn off undo, this is a speed tweak. + + * vc-bzr.el (vc-bzr-dir-state): Recognize 'added. + + * vc-hg.el (vc-bzr-hg-state): Recognize 'added and 'removed. + Cope with the possibility that the 'C' status flag might change + in 0.9,6. + + * vc-git.el (vc-bzr-dir-state): Recognize 'removed. + +2007-12-29 Thien-Thi Nguyen + + * files.el (cd-absolute): Fix omission bug: + Make `list-buffers-directory' buffer-local. + +2007-12-29 Dan Nicolaescu + + * vc-hg.el (vc-hg-dir-state): Deal with the up-to-date state. + +2007-12-29 Jay Belanger + + * calc/calc-aent.el (math-read-token): Fix misplaced + parentheses. + + * calc/calc-lang.el (calc-yacas-language, calc-maxima-language) + (calc-giac-language, math-yacas-parse-Sum, math-yacas-compose-sum) + (math-yacas-compose-deriv, math-yacas-compose-taylor) + (math-maxima-parse-subst, math-maxima-parse-taylor) + (math-maxima-compose-taylor, math-maxima-compose-subst) + (math-maxima-compose-if, math-lang-switch-args) + (math-lang-compose-switch-args, math-read-giac-subscr): + New functions. + (calc-lang-allow-underscores, calc-lang-allow-percentsigns) + (calc-lang-brackets-are-subscripts, calc-lang-c-type-hex): + Add languages. + (math-vector-brackets, math-complex-format, math-variable-table) + (math-parse-table, math-oper-table, math-function-table) + (math-special-function-table, math-compose-subscr): + Add values for new languages. + + * calc/calccomp.el (math-compose-expr): Add new languages. + + * calc/calc.el (calc-language): Add languages to docstring. + + * calc/calc-ext.el (calc-init-extensions): Add keybindings + for new languages. Autoload commands to change languages. + + * calc/calc-help.el (calc-d-prefix-help): Add new languages. + + * calc/calc-menu.el (calc-modes-menu): Add new languages. + (calc-arithmetic-menu, calc-scientific-function-menu) + (calc-algebra-menu, calc-graphics-menu, calc-vectors-menu) + (calc-units-menu, calc-variables-menu, calc-stack-menu): + Add :active keywords. + +2007-12-28 Dan Nicolaescu + + * vc-hg.el (vc-hg-registered): Return the false when vc-hg-state + returns 'ignored or 'unregistered. + (vc-hg-state): Pass "-A" to the status command and deal with the + output. + (vc-hg-dir-state): Pass "-A" to the status command. + +2007-12-29 Richard Stallman * progmodes/compile.el (compilation-start): Set initial visible point properly even when compilation buffer already current.