Merge from origin/emacs-26

90bea37 ; * etc/PROBLEMS: Fix fvwm version number in last commit
af82d1f * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31...
4a3aed2 Update Emacs Lisp Intro to match current behavior
21f2247 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
3257085 Fix previous commit
6d23525 Fix typos in several manuals (Bug#31610)
9188291 Add detailed documentation about lock files
e5471b2 Add commentary for subtle aspect of frame.el

Conflicts:
	doc/lispintro/emacs-lisp-intro.texi
This commit is contained in:
Glenn Morris 2018-06-02 10:29:37 -07:00
commit 02c7d45d49
12 changed files with 77 additions and 39 deletions

View file

@ -769,13 +769,16 @@ file.
@findex ask-user-about-lock @findex ask-user-about-lock
@cindex locking files @cindex locking files
@cindex .#, lock file names
@cindex file locking
When you make the first modification in an Emacs buffer that is When you make the first modification in an Emacs buffer that is
visiting a file, Emacs records that the file is @dfn{locked} by you. visiting a file, Emacs records that the file is @dfn{locked} by you.
(It does this by creating a specially-named symbolic link@footnote{If (It does this by creating a specially-named symbolic link@footnote{If
your file system does not support symbolic links, a regular file is your file system does not support symbolic links, a regular file is
used.} with special contents in the same directory.) Emacs removes the lock used.} with special contents in the same directory. @xref{File
when you save the changes. The idea is that the file is locked Locks,,, elisp} for more details.) Emacs removes the lock when you
whenever an Emacs buffer visiting it has unsaved changes. save the changes. The idea is that the file is locked whenever an
Emacs buffer visiting it has unsaved changes.
@vindex create-lockfiles @vindex create-lockfiles
You can prevent the creation of lock files by setting the variable You can prevent the creation of lock files by setting the variable

View file

@ -484,7 +484,7 @@ Narrowing and Widening
@code{car}, @code{cdr}, @code{cons}: Fundamental Functions @code{car}, @code{cdr}, @code{cons}: Fundamental Functions
* Strange Names:: An historical aside: why the strange names? * Strange Names:: A historical aside: why the strange names?
* car & cdr:: Functions for extracting part of a list. * car & cdr:: Functions for extracting part of a list.
* cons:: Constructing a list. * cons:: Constructing a list.
* nthcdr:: Calling @code{cdr} repeatedly. * nthcdr:: Calling @code{cdr} repeatedly.
@ -1818,10 +1818,12 @@ You will create a @file{*Backtrace*} buffer that says:
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
Debugger entered--Lisp error: (void-function fill-column) Debugger entered--Lisp error: (void-function fill-column)
(fill-column) (fill-column)
eval((fill-column)) eval((fill-column) nil)
eval-last-sexp-1(nil) elisp--eval-last-sexp(nil)
eval-last-sexp(nil) eval-last-sexp(nil)
call-interactively(eval-last-sexp) funcall-interactively(eval-last-sexp nil)
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -1868,9 +1870,11 @@ says:
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
Debugger entered--Lisp error: (void-variable +) Debugger entered--Lisp error: (void-variable +)
eval(+) eval(+)
eval-last-sexp-1(nil) elisp--eval-last-sexp(nil)
eval-last-sexp(nil) eval-last-sexp(nil)
call-interactively(eval-last-sexp) funcall-interactively(eval-last-sexp nil)
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -2137,10 +2141,12 @@ You will create and enter a @file{*Backtrace*} buffer that says:
Debugger entered--Lisp error: Debugger entered--Lisp error:
(wrong-type-argument number-or-marker-p hello) (wrong-type-argument number-or-marker-p hello)
+(2 hello) +(2 hello)
eval((+ 2 'hello)) eval((+ 2 'hello) nil)
eval-last-sexp-1(nil) elisp--eval-last-sexp(t)
eval-last-sexp(nil) eval-last-sexp(nil)
call-interactively(eval-last-sexp) funcall-interactively(eval-print-last-sexp nil)
call-interactively(eval-print-last-sexp nil nil)
command-execute(eval-print-last-sexp)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -6797,7 +6803,7 @@ will see @code{cons} as well as two variants on @code{cdr},
namely, @code{setcdr} and @code{nthcdr}. (@xref{copy-region-as-kill}.) namely, @code{setcdr} and @code{nthcdr}. (@xref{copy-region-as-kill}.)
@menu @menu
* Strange Names:: An historical aside: why the strange names? * Strange Names:: A historical aside: why the strange names?
* car & cdr:: Functions for extracting part of a list. * car & cdr:: Functions for extracting part of a list.
* cons:: Constructing a list. * cons:: Constructing a list.
* nthcdr:: Calling @code{cdr} repeatedly. * nthcdr:: Calling @code{cdr} repeatedly.
@ -7678,7 +7684,7 @@ The first part of the code looks like this:
@end smallexample @end smallexample
@noindent @noindent
@code{char-table-p} is an hitherto unseen function. It determines @code{char-table-p} is a hitherto unseen function. It determines
whether its argument is a character table. When it is, it sets the whether its argument is a character table. When it is, it sets the
character passed to @code{zap-to-char} to one of them, if that character passed to @code{zap-to-char} to one of them, if that
character exists, or to the character itself. (This becomes important character exists, or to the character itself. (This becomes important
@ -18104,10 +18110,11 @@ Debugger entered--Lisp error: (void-function 1=)
triangle-bugged(4) triangle-bugged(4)
@end group @end group
@group @group
eval((triangle-bugged 4)) eval((triangle-bugged 4) nil)
eval-last-sexp-1(nil) eval-expression((triangle-bugged 4) nil nil 127)
eval-last-sexp(nil) funcall-interactively(eval-expression (triangle-bugged 4) nil nil 127)
call-interactively(eval-last-sexp) call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -18221,12 +18228,13 @@ function:
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
Debugger entered--entering a function: Debugger entered--entering a function:
* triangle-bugged(5) * triangle-bugged(5)
eval((triangle-bugged 5)) eval((triangle-bugged 5) nil)
@end group @end group
@group @group
eval-last-sexp-1(nil) eval-expression((triangle-bugged 5) nil nil 127)
eval-last-sexp(nil) funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-last-sexp) call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -18245,9 +18253,11 @@ Debugger entered--beginning evaluation of function call form:
eval((triangle-bugged 5)) eval((triangle-bugged 5))
@end group @end group
@group @group
eval-last-sexp-1(nil) eval((triangle-bugged 5) nil)
eval-last-sexp(nil) eval-expression((triangle-bugged 5) nil nil 127)
call-interactively(eval-last-sexp) funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample
@ -18272,12 +18282,13 @@ Debugger entered--beginning evaluation of function call form:
* (let ((total 0)) (while (> number 0) (setq total ...) * (let ((total 0)) (while (> number 0) (setq total ...)
(setq number ...)) total) (setq number ...)) total)
* triangle-bugged(5) * triangle-bugged(5)
eval((triangle-bugged 5)) eval((triangle-bugged 5) nil)
@group @group
@end group @end group
eval-last-sexp-1(nil) eval-expression((triangle-bugged 5) nil nil 127)
eval-last-sexp(nil) funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-last-sexp) call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ---------- ---------- Buffer: *Backtrace* ----------
@end group @end group
@end smallexample @end smallexample

View file

@ -1048,7 +1048,7 @@ commands operate as if that portion did not exist, allowing a single
@code{next-line} command to skip any number of hidden lines. @code{next-line} command to skip any number of hidden lines.
However, character movement commands (such as @code{forward-char}) do However, character movement commands (such as @code{forward-char}) do
not skip the hidden portion, and it is possible (if tricky) to insert not skip the hidden portion, and it is possible (if tricky) to insert
or delete text in an hidden portion. or delete text in a hidden portion.
In the examples below, we show the @emph{display appearance} of the In the examples below, we show the @emph{display appearance} of the
buffer @code{foo}, which changes with the value of buffer @code{foo}, which changes with the value of

View file

@ -11,7 +11,7 @@
by concept. The list includes each symbol's message and a cross reference by concept. The list includes each symbol's message and a cross reference
to a description of how the error can occur. to a description of how the error can occur.
Each error symbol has an set of parent error conditions that is a Each error symbol has a set of parent error conditions that is a
list of symbols. Normally this list includes the error symbol itself list of symbols. Normally this list includes the error symbol itself
and the symbol @code{error}. Occasionally it includes additional and the symbol @code{error}. Occasionally it includes additional
symbols, which are intermediate classifications, narrower than symbols, which are intermediate classifications, narrower than

View file

@ -712,6 +712,7 @@ with-temp-buffer,, The Current Buffer}.
@section File Locks @section File Locks
@cindex file locks @cindex file locks
@cindex lock file @cindex lock file
@cindex .#, lock file names
When two users edit the same file at the same time, they are likely When two users edit the same file at the same time, they are likely
to interfere with each other. Emacs tries to prevent this situation to interfere with each other. Emacs tries to prevent this situation
@ -720,8 +721,17 @@ modified.
Emacs can then detect the first attempt to modify a buffer visiting a Emacs can then detect the first attempt to modify a buffer visiting a
file that is locked by another Emacs job, and ask the user what to do. file that is locked by another Emacs job, and ask the user what to do.
The file lock is really a file, a symbolic link with a special name, The file lock is really a file, a symbolic link with a special name,
stored in the same directory as the file you are editing. (On file stored in the same directory as the file you are editing. The name is
systems that do not support symbolic links, a regular file is used.) constructed by prepending @file{.#} to the filename of the buffer.
The target of the symbolic link will be of the form
@code{@var{user}@@@var{host}.@var{pid}:@var{boot}}, where @var{user}
is replaced with the current username (from @code{user-login-name}),
@var{host} with the name of the host where Emacs is running (from
@code{system-name}), @var{pid} with Emacs's process id, and @var{boot}
with the time since the last reboot. @code{:@var{boot}} is omitted if
the boot time is unavailable. (On file systems that do not support
symbolic links, a regular file is used instead, with contents of the
form @code{@var{user}@@@var{host}.@var{pid}:@var{boot}}.)
When you access files using NFS, there may be a small probability that When you access files using NFS, there may be a small probability that
you and another user will both lock the same file simultaneously. you and another user will both lock the same file simultaneously.

View file

@ -214,7 +214,7 @@ have been omitted.)
@cindex skeleton language @cindex skeleton language
@findex skeleton-insert @findex skeleton-insert
Skeletons are an shorthand extension to the Lisp language, where various Skeletons are a shorthand extension to the Lisp language, where various
atoms directly perform either actions on the current buffer or rudimentary atoms directly perform either actions on the current buffer or rudimentary
flow control mechanisms. Skeletons are interpreted by the function flow control mechanisms. Skeletons are interpreted by the function
@code{skeleton-insert}. @code{skeleton-insert}.

View file

@ -5134,7 +5134,7 @@ that Org can parse this line correctly:
In this example, @samp{GTD} is the @emph{group tag} and it is related to two In this example, @samp{GTD} is the @emph{group tag} and it is related to two
other tags: @samp{Control}, @samp{Persp}. Defining @samp{Control} and other tags: @samp{Control}, @samp{Persp}. Defining @samp{Control} and
@samp{Persp} as group tags creates an hierarchy of tags: @samp{Persp} as group tags creates a hierarchy of tags:
@example @example
#+TAGS: [ Control : Context Task ] #+TAGS: [ Control : Context Task ]
@ -11178,7 +11178,7 @@ Org exports text in this block only when using ASCII back-end.
@cindex horizontal rules, in ASCII export @cindex horizontal rules, in ASCII export
ASCII back-end recognizes only one attribute, @code{:width}, which specifies ASCII back-end recognizes only one attribute, @code{:width}, which specifies
the width of an horizontal rule in number of characters. The keyword and the width of a horizontal rule in number of characters. The keyword and
syntax for specifying widths is: syntax for specifying widths is:
@example @example

View file

@ -4330,7 +4330,7 @@ Same as @code{tabstop}, but affects all buffers.
@cindex auto fill @cindex auto fill
@cindex word wrap @cindex word wrap
wrapmargin: In append mode Vi automatically wrapmargin: In append mode Vi automatically
puts a <lf> whenever there is a <sp> or <ht> puts an <lf> whenever there is an <sp> or <ht>
within <wm> columns from the right margin. within <wm> columns from the right margin.
@item wrapscan @item wrapscan
@itemx ws @itemx ws

View file

@ -1937,7 +1937,7 @@ rule:
@end example @end example
Set the @code{reparse-symbol} property of the expanded tag to Set the @code{reparse-symbol} property of the expanded tag to
@samp{rule}. A important consequence is that: @samp{rule}. An important consequence is that:
@strong{Every nonterminal having any rule that calls @code{EXPANDTAG} @strong{Every nonterminal having any rule that calls @code{EXPANDTAG}
in a semantic action, should be declared as a start symbol!} in a semantic action, should be declared as a start symbol!}

View file

@ -1271,6 +1271,14 @@ do not know what. If it is an Emacs bug, we hope someone can
explain what the bug is so we can fix it. In the mean time, removing explain what the bug is so we can fix it. In the mean time, removing
the resource prevents the problem. the resource prevents the problem.
*** FVWM: Some versions of FVWM incorrectly set the 'sticky' frame parameter.
Version 2.6.4 of the FVWM can make a frame sticky (appear on all user
desktops) when setting the 'sticky' frame parameter to nil. This may
happen without any special user interaction, for example, when Emacs
restores a saved desktop. A fix is to install version 2.6.8 of FVWM,
see https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31650.
** General X problems ** General X problems
*** Redisplay using X is much slower than previous Emacs versions. *** Redisplay using X is much slower than previous Emacs versions.

View file

@ -2463,6 +2463,9 @@ See also `toggle-frame-maximized'."
;; F5 then produces the correct effect, the variable doesn't need ;; F5 then produces the correct effect, the variable doesn't need
;; to be in this list; otherwise, it does. ;; to be in this list; otherwise, it does.
(mapc (lambda (var) (mapc (lambda (var)
;; Using symbol-function here tells the watcher machinery to
;; call the C function set-buffer-redisplay directly, thus
;; avoiding a potential GC.
(add-variable-watcher var (symbol-function 'set-buffer-redisplay))) (add-variable-watcher var (symbol-function 'set-buffer-redisplay)))
'(line-spacing '(line-spacing
overline-margin overline-margin

View file

@ -849,7 +849,10 @@ syms_of_filelock (void)
Vtemporary_file_directory = Qnil; Vtemporary_file_directory = Qnil;
DEFVAR_BOOL ("create-lockfiles", create_lockfiles, DEFVAR_BOOL ("create-lockfiles", create_lockfiles,
doc: /* Non-nil means use lockfiles to avoid editing collisions. */); doc: /* Non-nil means use lockfiles to avoid editing collisions.
The name of the (per-buffer) lockfile is constructed by prepending a
'.#' to the name of the file being locked. See also `lock-buffer' and
Info node `(emacs)Interlocking'. */);
create_lockfiles = 1; create_lockfiles = 1;
defsubr (&Sunlock_buffer); defsubr (&Sunlock_buffer);