From a89fabe96396b2197cffc5a9e694004e1c691fa9 Mon Sep 17 00:00:00 2001 From: Basil L. Contovounesios Date: Tue, 26 Feb 2019 11:57:53 +0000 Subject: Update example major mode code in Elisp manual * doc/lispref/modes.texi (Example Major Modes): Update code examples to reflect current state of lisp/textmodes/text-mode.el and lisp/emacs-lisp/lisp-mode.el. (bug#34671) --- doc/lispref/modes.texi | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'doc') diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 13430243298..919816f3dee 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -1217,6 +1217,7 @@ the conventions listed above: (modify-syntax-entry ?\\ ". " st) ;; Add 'p' so M-c on 'hello' leads to 'Hello', not 'hello'. (modify-syntax-entry ?' "w p" st) + @dots{} st) "Syntax table used while in `text-mode'.") @end group @@ -1226,6 +1227,7 @@ the conventions listed above: (defvar text-mode-map (let ((map (make-sparse-keymap))) (define-key map "\e\t" 'ispell-complete-word) + @dots{} map) "Keymap for `text-mode'. Many other modes, such as `mail-mode', `outline-mode' and @@ -1269,11 +1271,11 @@ illustrate how these modes are written. @smallexample @group ;; @r{Create mode-specific table variables.} -(defvar lisp-mode-abbrev-table nil) -(define-abbrev-table 'lisp-mode-abbrev-table ()) +(define-abbrev-table 'lisp-mode-abbrev-table () + "Abbrev table for Lisp mode.") (defvar lisp-mode-syntax-table - (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) + (let ((table (make-syntax-table lisp--mode-syntax-table))) (modify-syntax-entry ?\[ "_ " table) (modify-syntax-entry ?\] "_ " table) (modify-syntax-entry ?# "' 14" table) @@ -1288,10 +1290,9 @@ each calls the following function to set various variables: @smallexample @group -(defun lisp-mode-variables (&optional syntax keywords-case-insensitive) +(defun lisp-mode-variables (&optional syntax keywords-case-insensitive elisp) (when syntax (set-syntax-table lisp-mode-syntax-table)) - (setq local-abbrev-table lisp-mode-abbrev-table) @dots{} @end group @end smallexample @@ -1302,8 +1303,7 @@ variable to handle Lisp comments: @smallexample @group - (make-local-variable 'comment-start) - (setq comment-start ";") + (setq-local comment-start ";") @dots{} @end group @end smallexample @@ -1317,6 +1317,7 @@ common. The following code sets up the common commands: @group (defvar lisp-mode-shared-map (let ((map (make-sparse-keymap))) + (set-keymap-parent map prog-mode-map) (define-key map "\e\C-q" 'indent-sexp) (define-key map "\177" 'backward-delete-char-untabify) map) @@ -1331,7 +1332,7 @@ And here is the code to set up the keymap for Lisp mode: @group (defvar lisp-mode-map (let ((map (make-sparse-keymap)) - (menu-map (make-sparse-keymap "Lisp"))) + (menu-map (make-sparse-keymap "Lisp"))) (set-keymap-parent map lisp-mode-shared-map) (define-key map "\e\C-x" 'lisp-eval-defun) (define-key map "\C-c\C-z" 'run-lisp) @@ -1355,17 +1356,13 @@ Blank lines separate paragraphs. Semicolons start comments. \\@{lisp-mode-map@} Note that `run-lisp' may be used either to start an inferior Lisp job -or to switch back to an existing one. +or to switch back to an existing one." @end group - @group -Entry to this mode calls the value of `lisp-mode-hook' -if that value is non-nil." (lisp-mode-variables nil t) - (set (make-local-variable 'find-tag-default-function) - 'lisp-find-tag-default) - (set (make-local-variable 'comment-start-skip) - "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") + (setq-local find-tag-default-function 'lisp-find-tag-default) + (setq-local comment-start-skip + "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") (setq imenu-case-fold-search t)) @end group @end smallexample -- cgit v1.2.1 From f872b65b2f6b83f3cee2eb0e80cb296d1de99505 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 2 Mar 2019 10:42:29 +0200 Subject: Improve documentation of 'auto-coding-functions' * doc/lispref/nonascii.texi (Default Coding Systems): Clarify that the functions in 'auto-coding-functions' are called both for decoding and for encoding. * lisp/international/mule.el (auto-coding-functions): Doc fix. --- doc/lispref/nonascii.texi | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index 66d12033d82..d58041b279b 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -1632,11 +1632,16 @@ coding system for a file based on its undecoded contents. Each function in this list should be written to look at text in the current buffer, but should not modify it in any way. The buffer will -contain undecoded text of parts of the file. Each function should -take one argument, @var{size}, which tells it how many characters to -look at, starting from point. If the function succeeds in determining -a coding system for the file, it should return that coding system. -Otherwise, it should return @code{nil}. +contain the text of parts of the file. Each function should take one +argument, @var{size}, which tells it how many characters to look at, +starting from point. If the function succeeds in determining a coding +system for the file, it should return that coding system. Otherwise, +it should return @code{nil}. + +The functions in this list could be called either when the file is +visited and Emacs wants to decode its contents, and/or when the file's +buffer is about to be saved and Emacs wants to determine how to encode +its contents. If a file has a @samp{coding:} tag, that takes precedence, so these functions won't be called. -- cgit v1.2.1 From 52fd40068e0f8b41bd29eaec1334299eb86d0bff Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 4 Mar 2019 19:49:47 +0200 Subject: Minor improvement of documentation of '(when CONDITION . SPEC)' * doc/lispref/display.texi (Other Display Specs): Add a caveat to using the '(when CONDITION . SPEC)' display specs. --- doc/lispref/display.texi | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc') diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 921d58a1f3a..7892c15b462 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -4853,6 +4853,16 @@ and the buffer position where the @code{display} property was found, respectively. Both positions can be different when @code{object} is a string. +Note that @var{condition} will only be evaluated when redisplay +examines the text where this display spec is located, so this feature +is best suited for conditions that are relatively stable, i.e.@: +yield, for each particular buffer position, the same results on every +evaluation. If the results change for the same text location, e.g., +if the result depends on the position of point, then the conditional +specification might not do what you want, because redisplay examines +only those parts of buffer text where it has reasons to assume that +something changed since the last display cycle. + @node Display Margins @subsection Displaying in the Margins @cindex display margins -- cgit v1.2.1 From 099ef446c2c1014727cfe98268fe468eb2e8828b Mon Sep 17 00:00:00 2001 From: Basil L. Contovounesios Date: Tue, 5 Mar 2019 20:24:41 +0000 Subject: Minor spelling and grammar fixes (bug#34756) doc/misc/cc-mode.texi (Style Variables, Customizing Indentation): doc/misc/ede.texi (Extending EDE, ede-project-placeholder) (ede-target, ede-proj-target, ede-compilation-program, ede-compiler) (ede-linker): Remove apostrophe from possessive "it's". doc/lispintro/emacs-lisp-intro.texi (Find a File): doc/misc/gnus-faq.texi (FAQ 2-2): Write "an other" as a single word. doc/misc/gnus.texi (Article Buttons): lisp/gnus/gnus-art.el (gnus-button-mid-or-mail-heuristic-alist) (gnus-button-mid-or-mail-heuristic): Write singular number of Message-IDs, rather than plural. lisp/gnus/message.el (message-user-fqdn): Capitalize initialism. --- doc/lispintro/emacs-lisp-intro.texi | 2 +- doc/misc/cc-mode.texi | 4 ++-- doc/misc/ede.texi | 16 ++++++++-------- doc/misc/gnus-faq.texi | 2 +- doc/misc/gnus.texi | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) (limited to 'doc') diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 3305f5b3add..c4b19a4e50a 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -14824,7 +14824,7 @@ According to its documentation as shown by @kbd{C-h f} (the @code{describe-function} command), the @code{find-file-noselect} function reads the named file into a buffer and returns the buffer. (Its most recent version includes an optional @var{wildcards} argument, -too, as well as another to read a file literally and an other you +too, as well as another to read a file literally and another to suppress warning messages. These optional arguments are irrelevant.) However, the @code{find-file-noselect} function does not select the diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 1a77a64e01c..47ae83ab396 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -2548,7 +2548,7 @@ Basics}). @item The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is an association list with an element for each syntactic symbol. It's -handled a little differently from the other style variables. It's +handled a little differently from the other style variables. Its default global binding is the empty list @code{nil}, rather than @code{set-from-style}. Before the style system is initialized, you can add individual elements to @code{c-offsets-alist} by calling @@ -5286,7 +5286,7 @@ The simplest and most used kind of ``offset'' setting in @defopt c-basic-offset @vindex basic-offset @r{(c-)} This style variable holds the basic offset between indentation levels. -It's factory default is 4, but all the built-in styles set it +Its factory default is 4, but all the built-in styles set it themselves, to some value between 2 (for @code{gnu} style) and 8 (for @code{bsd}, @code{linux}, and @code{python} styles). @end defopt diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index 513461d0e0f..4edb53d9533 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi @@ -1038,7 +1038,7 @@ details on using @eieio{} to extending classes, and writing methods. If you intend to extend @ede{}, it is most likely that a new target type is needed in one of the existing project types. The rest of this chapter -will discuss extending the @code{ede-project} class, and it's targets. +will discuss extending the @code{ede-project} class, and its targets. See @file{project-am.el} for basic details on adding targets to it. For the @code{ede-project} type, the core target class is called @@ -1477,7 +1477,7 @@ Get the inode of the directory project @var{PROJ} is in. @end deffn @deffn Method ede-project-root :AFTER this -If a project knows it's root, return it here. +If a project knows its root, return it here. Allows for one-project-object-for-a-tree type systems. @end deffn @@ -1486,7 +1486,7 @@ Find a subproject of @var{PROJ} that corresponds to @var{DIR}. @end deffn @deffn Method ede-project-root-directory :AFTER this &optional file -If a project knows it's root, return it here. +If a project knows its root, return it here. Allows for one-project-object-for-a-tree type systems. Optional @var{FILE} is the file to test. It is ignored in preference of the anchor file for the project. @@ -2516,7 +2516,7 @@ In sources for @var{THIS}, change version numbers to @var{VERSION}. @end deffn @deffn Method project-delete-target :AFTER ot -Delete the current target @var{OT} from it's parent project. +Delete the current target @var{OT} from its parent project. @end deffn @deffn Method ede-target-sourcecode :AFTER this @@ -2715,7 +2715,7 @@ Converts all symbols into the objects to be used. @end deffn @deffn Method project-delete-target :AFTER this -Delete the current target @var{THIS} from it's parent project. +Delete the current target @var{THIS} from its parent project. @end deffn @deffn Method ede-proj-makefile-target-name :AFTER this @@ -4013,7 +4013,7 @@ Type: @code{list} The commands used to execute this compiler. The object which uses this compiler will place these commands after -it's rule definition. +its rule definition. @item :autoconf Type: @code{list} @* @@ -4125,7 +4125,7 @@ Type: @code{list} The commands used to execute this compiler. The object which uses this compiler will place these commands after -it's rule definition. +its rule definition. @item :objectextention Type: @code{string} @@ -4265,7 +4265,7 @@ Type: @code{list} The commands used to execute this compiler. The object which uses this compiler will place these commands after -it's rule definition. +its rule definition. @item :objectextention Type: @code{string} diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 55010d4e430..d4be7b1f0ce 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -284,7 +284,7 @@ what's this? @subsubheading Answer You get the message described in the q/a pair above while -starting Gnus, right? It's an other symptom for the same +starting Gnus, right? It's another symptom for the same problem, so read the answer above. @node FAQ 2-3 diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index a0c57329433..4ee80eacb2e 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -9394,7 +9394,7 @@ function must return @code{mid}, @code{mail}, @code{invalid} or @item gnus-button-mid-or-mail-heuristic @findex gnus-button-mid-or-mail-heuristic Function that guesses whether its argument is a message ID or a mail -address. Returns @code{mid} if it's a message IDs, @code{mail} if +address. Returns @code{mid} if it's a message ID, @code{mail} if it's a mail address, @code{ask} if unsure and @code{invalid} if the string is invalid. -- cgit v1.2.1 From f0be0f1bed9949fab2773d352917a6a610045795 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 8 Mar 2019 12:21:29 +0200 Subject: Improve documentation of 'delete-windows-on' * doc/emacs/windows.texi (Change Window): Document 'delete-windows-on'. * lisp/window.el (delete-windows-on): Doc fix. (Bug#34749) --- doc/emacs/windows.texi | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'doc') diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index 27077ff9ec1..c4c724e6bc2 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -255,6 +255,8 @@ Delete all windows in the selected frame except the selected window Delete the selected window and kill the buffer that was showing in it (@code{kill-buffer-and-window}). The last character in this key sequence is a zero. +@item M-x delete-windows-on @key{RET} @var{buffer} @key{RET} +Delete windows showing the specified @var{buffer}. @item C-x ^ Make selected window taller (@code{enlarge-window}). @item C-x @} @@ -290,6 +292,11 @@ selected window. whole frame. (This command cannot be used while the minibuffer window is active; attempting to do so signals an error.) + @kbd{M-x delete-windows-on} deletes windows that show a specific +buffer. It prompts for the buffer, defaulting to the current buffer. +With prefix argument of zero, @kbd{C-u 0}, this command deletes +windows only on the current display's frames. + @cindex resize window @cindex resizing windows @kindex C-x ^ -- cgit v1.2.1 From 464ee80eac364e5febca88a7ded46cdd9c3a4f10 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Fri, 8 Mar 2019 19:10:27 +0100 Subject: Warn against recursive invocations of 'buffer-list-update-hook' (Bug#34765) * src/buffer.c (Vbuffer_list_update_hook): * doc/lispref/buffers.texi (Buffer List): Warn against recursive invocations of 'buffer-list-update-hook' (Bug#34765). --- doc/lispref/buffers.texi | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index d97a095f686..6ad1fb1824a 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -940,6 +940,10 @@ This is a normal hook run whenever the buffer list changes. Functions (@pxref{Creating Buffers}), @code{rename-buffer} (@pxref{Buffer Names}), @code{kill-buffer} (@pxref{Killing Buffers}), @code{bury-buffer} (see above) and @code{select-window} (@pxref{Selecting Windows}). + +Functions run by this hook should avoid calling @code{select-window} +with a nil @var{norecord} argument or @code{with-temp-buffer} since +either may lead to infinite recursion. @end defvar @node Creating Buffers -- cgit v1.2.1 From a38da0d4e532c7a8ce8f20ee5e95a50fce162469 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Fri, 8 Mar 2019 18:07:48 +0000 Subject: cc-mode.texi: Work around makeinfo alignment bug. Fix problem with ss index * doc/misc/cc-mode.texi (top level): Using txicommandconditionals to differentiate between the C and perl versions of Texinfo, create an "ss index" unless we are both using the C Texinfo and are building the .dvi output format. (Config Basics): Work around a perl Texinfo alignment bug by writing a separate version of an item list structure for this version, simplifying it considerably. --- doc/misc/cc-mode.texi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'doc') diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 47ae83ab396..0c77cc0ee61 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -148,7 +148,17 @@ CC Mode @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @comment Define an index for syntactic symbols. +@c Version for Texinfo <= 4.x +@ifclear txicommandconditionals +@ifnottex @c In texi2dvi, the @defindex would create an empty cc-mode.ss + @c For Info, unlike tex, @syncodeindex needs a matching @defindex. @defindex ss +@end ifnottex +@end ifclear +@c Version for Texinfo >= 5.x +@ifset txicommandconditionals +@defindex ss +@end ifset @comment Combine key, syntactic symbol and concept indices into one. @syncodeindex ss cp @@ -2282,6 +2292,8 @@ method, ``Top-level commands or the customization interface''. If you make conflicting settings in several of these ways, the way that takes precedence is the one that appears latest in this list: +@c Version of list for Texinfo <= 4.x +@ifclear txicommandconditionals @itemize @w{} @item @table @asis @@ -2292,6 +2304,18 @@ that takes precedence is the one that appears latest in this list: @itemx File Local Variable setting @end table @end itemize +@end ifclear +@c Version of list for Texinfo >= 5.x +@ifset txicommandconditionals +@itemize @asis +@item Style +@item File Style@footnote{In earlier versions of @ccmode{}, a File Style setting took precedence over any other setting apart from a File Local Variable setting.} +@item Top-level command or ``customization interface'' +@item Hook +@item File Local Variable setting +@end itemize +@end ifset + Here is a summary of the different ways of writing your configuration settings: -- cgit v1.2.1 From a3b193516f991ceaf79d33c6158dd7ef060c7bce Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Sat, 9 Mar 2019 09:47:07 +0100 Subject: Mention empty strings in file name expansion, emacs lisp reference * doc/lispref/files.texi (Files, File Name Expansion): Mention also empty strings. --- doc/lispref/files.texi | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 403a21b3365..380e0543ddd 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -16,7 +16,7 @@ described in @ref{Backups and Auto-Saving}. names. A file name is a string. Most of these functions expand file name arguments using the function @code{expand-file-name}, so that @file{~} is handled correctly, as are relative file names (including -@file{../}). @xref{File Name Expansion}. +@file{../} and the empty string). @xref{File Name Expansion}. In addition, certain @dfn{magic} file names are handled specially. For example, when a remote file name is specified, Emacs accesses the @@ -2409,6 +2409,17 @@ This is for the sake of filesystems that have the concept of a superroot above the root directory @file{/}. On other filesystems, @file{/../} is interpreted exactly the same as @file{/}. +Expanding @file{.} or the empty string returns the default directory: + +@example +@group +(expand-file-name "." "/usr/spool/") + @result{} "/usr/spool" +(expand-file-name "" "/usr/spool/") + @result{} "/usr/spool" +@end group +@end example + Note that @code{expand-file-name} does @emph{not} expand environment variables; only @code{substitute-in-file-name} does that: -- cgit v1.2.1 From 0589de55c465627c16314519568f22daa62ff654 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 9 Mar 2019 13:20:28 +0200 Subject: Fix markup of fake keys in the ELisp manual * doc/lispref/keymaps.texi (Menu Bar, Tool Bar): Fix markup of fake keys. (Bug#34785) --- doc/lispref/keymaps.texi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index ccc75a9c7af..d839be0e932 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -2502,7 +2502,7 @@ can do it this way: Emacs usually shows a @dfn{menu bar} at the top of each frame. @xref{Menu Bars,,,emacs, The GNU Emacs Manual}. Menu bar items are -subcommands of the fake function key @code{menu-bar}, as defined +subcommands of the fake function key @key{MENU-BAR}, as defined in the active keymaps. To add an item to the menu bar, invent a fake function key of your @@ -2554,9 +2554,10 @@ bar item: @end example @noindent -Here, @code{edit} is the fake function key used by the global map for -the @samp{Edit} menu bar item. The main reason to suppress a global -menu bar item is to regain space for mode-specific items. +Here, @code{edit} is the symbol produced by a fake function key, it is +used by the global map for the @samp{Edit} menu bar item. The main +reason to suppress a global menu bar item is to regain space for +mode-specific items. @defvar menu-bar-final-items Normally the menu bar shows global items followed by items defined by the @@ -2601,7 +2602,7 @@ If the value is @code{grow-only}, the tool bar expands automatically, but does not contract automatically. The tool bar contents are controlled by a menu keymap attached to a -fake function key called @code{tool-bar} (much like the way the menu +fake function key called @key{TOOL-BAR} (much like the way the menu bar is controlled). So you define a tool bar item using @code{define-key}, like this: -- cgit v1.2.1