Merge from origin/emacs-26
90bea37
; * etc/PROBLEMS: Fix fvwm version number in last commitaf82d1f
* etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31...4a3aed2
Update Emacs Lisp Intro to match current behavior21f2247
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...3257085
Fix previous commit6d23525
Fix typos in several manuals (Bug#31610)9188291
Add detailed documentation about lock filese5471b2
Add commentary for subtle aspect of frame.el Conflicts: doc/lispintro/emacs-lisp-intro.texi
This commit is contained in:
commit
02c7d45d49
12 changed files with 77 additions and 39 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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}.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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!}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue