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
@cindex locking files
@cindex .#, lock file names
@cindex file locking
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.
(It does this by creating a specially-named symbolic link@footnote{If
your file system does not support symbolic links, a regular file is
used.} with special contents in the same directory.) Emacs removes the lock
when you save the changes. The idea is that the file is locked
whenever an Emacs buffer visiting it has unsaved changes.
used.} with special contents in the same directory. @xref{File
Locks,,, elisp} for more details.) Emacs removes the lock when you
save the changes. The idea is that the file is locked whenever an
Emacs buffer visiting it has unsaved changes.
@vindex create-lockfiles
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
* 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.
* cons:: Constructing a list.
* nthcdr:: Calling @code{cdr} repeatedly.
@ -1818,10 +1818,12 @@ You will create a @file{*Backtrace*} buffer that says:
---------- Buffer: *Backtrace* ----------
Debugger entered--Lisp error: (void-function fill-column)
(fill-column)
eval((fill-column))
eval-last-sexp-1(nil)
eval((fill-column) nil)
elisp--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* ----------
@end group
@end smallexample
@ -1868,9 +1870,11 @@ says:
---------- Buffer: *Backtrace* ----------
Debugger entered--Lisp error: (void-variable +)
eval(+)
eval-last-sexp-1(nil)
elisp--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* ----------
@end group
@end smallexample
@ -2137,10 +2141,12 @@ You will create and enter a @file{*Backtrace*} buffer that says:
Debugger entered--Lisp error:
(wrong-type-argument number-or-marker-p hello)
+(2 hello)
eval((+ 2 'hello))
eval-last-sexp-1(nil)
eval((+ 2 'hello) nil)
elisp--eval-last-sexp(t)
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* ----------
@end group
@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}.)
@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.
* cons:: Constructing a list.
* nthcdr:: Calling @code{cdr} repeatedly.
@ -7678,7 +7684,7 @@ The first part of the code looks like this:
@end smallexample
@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
character passed to @code{zap-to-char} to one of them, if that
character exists, or to the character itself. (This becomes important
@ -18104,10 +18110,11 @@ Debugger entered--Lisp error: (void-function 1=)
triangle-bugged(4)
@end group
@group
eval((triangle-bugged 4))
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
eval((triangle-bugged 4) nil)
eval-expression((triangle-bugged 4) nil nil 127)
funcall-interactively(eval-expression (triangle-bugged 4) nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ----------
@end group
@end smallexample
@ -18221,12 +18228,13 @@ function:
---------- Buffer: *Backtrace* ----------
Debugger entered--entering a function:
* triangle-bugged(5)
eval((triangle-bugged 5))
eval((triangle-bugged 5) nil)
@end group
@group
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
eval-expression((triangle-bugged 5) nil nil 127)
funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ----------
@end group
@end smallexample
@ -18245,9 +18253,11 @@ Debugger entered--beginning evaluation of function call form:
eval((triangle-bugged 5))
@end group
@group
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
eval((triangle-bugged 5) nil)
eval-expression((triangle-bugged 5) nil nil 127)
funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ----------
@end group
@end smallexample
@ -18272,12 +18282,13 @@ Debugger entered--beginning evaluation of function call form:
* (let ((total 0)) (while (> number 0) (setq total ...)
(setq number ...)) total)
* triangle-bugged(5)
eval((triangle-bugged 5))
eval((triangle-bugged 5) nil)
@group
@end group
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
eval-expression((triangle-bugged 5) nil nil 127)
funcall-interactively(eval-expression (triangle-bugged 5) nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
---------- Buffer: *Backtrace* ----------
@end group
@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.
However, character movement commands (such as @code{forward-char}) do
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
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
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
and the symbol @code{error}. Occasionally it includes additional
symbols, which are intermediate classifications, narrower than

View file

@ -712,6 +712,7 @@ with-temp-buffer,, The Current Buffer}.
@section File Locks
@cindex file locks
@cindex lock file
@cindex .#, lock file names
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
@ -720,8 +721,17 @@ modified.
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.
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
systems that do not support symbolic links, a regular file is used.)
stored in the same directory as the file you are editing. The name is
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
you and another user will both lock the same file simultaneously.

View file

@ -214,7 +214,7 @@ have been omitted.)
@cindex skeleton language
@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
flow control mechanisms. Skeletons are interpreted by the function
@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
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
#+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
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:
@example

View file

@ -4330,7 +4330,7 @@ Same as @code{tabstop}, but affects all buffers.
@cindex auto fill
@cindex word wrap
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.
@item wrapscan
@itemx ws

View file

@ -1937,7 +1937,7 @@ rule:
@end example
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}
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
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
*** 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
;; to be in this list; otherwise, it does.
(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)))
'(line-spacing
overline-margin

View file

@ -849,7 +849,10 @@ syms_of_filelock (void)
Vtemporary_file_directory = Qnil;
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;
defsubr (&Sunlock_buffer);