Merge from origin/emacs-26

6415b2d Allow read-passwd to hide characters inserted by C-y.  (Secur...
8cb4ffb * etc/PROBLEMS: Document issues with double-buffering.  (Bug#...
fd10070 * lisp/window.el (window-largest-empty-rectangle): Fix grammar.
e1a4403 Minor changes in the Emacs manual
372fda6 Improve the "Files" chapter of the Emacs manual
9afc86d Improve the "Search" chapter of the Emacs manual
22f98b3 * src/indent.c (Findent_to): Doc fix.  (Bug#30260)
085ee43 Improve documentation of 'edebug-defun'
4dd1b33 Mention crashes due to Noto Serif Kannada fonts
This commit is contained in:
Glenn Morris 2018-01-29 07:50:21 -08:00
commit 9c2c7b1cdc
7 changed files with 101 additions and 54 deletions

View file

@ -738,7 +738,7 @@ survive a crash even if @code{fsync} works properly.
The @code{write-region-inhibit-fsync} variable controls whether
Emacs invokes @code{fsync} after saving a file. The variable's
default value is @code{nil} when Emacs is interactive, and @code{t}
when Emacs runs in batch mode.
when Emacs runs in batch mode (@pxref{Initial Options, batch mode}).
Emacs never uses @code{fsync} when writing auto-save files, as these
files might lose data anyway.
@ -824,6 +824,25 @@ diff-buffer-with-file} command. @xref{Comparing Files}.
@cindex file shadows
@findex shadow-initialize
You can arrange to keep identical @dfn{shadow} copies of certain
files in more than one place---possibly on different machines. To do
this, first you must set up a @dfn{shadow file group}, which is a set
of identically-named files shared between a list of sites. The file
group is permanent and applies to further Emacs sessions as well as
the current one. Once the group is set up, every time you exit Emacs,
it will copy the file you edited to the other files in its group. You
can also do the copying without exiting Emacs, by typing @w{@kbd{M-x
shadow-copy-files}}.
@cindex shadow cluster
A @dfn{shadow cluster} is a group of hosts that share directories, so
that copying to or from one of them is sufficient to update the file
on all of them. Each shadow cluster has a name, and specifies the
network address of a primary host (the one we copy files to), and a
regular expression that matches the host names of all the other hosts
in the cluster. You can define a shadow cluster with @w{@kbd{M-x
shadow-define-cluster}}.
@table @kbd
@item M-x shadow-initialize
Set up file shadowing.
@ -839,32 +858,15 @@ Copy all pending shadow files.
Cancel the instruction to shadow some files.
@end table
You can arrange to keep identical @dfn{shadow} copies of certain files
in more than one place---possibly on different machines. To do this,
first you must set up a @dfn{shadow file group}, which is a set of
identically-named files shared between a list of sites. The file
group is permanent and applies to further Emacs sessions as well as
the current one. Once the group is set up, every time you exit Emacs,
it will copy the file you edited to the other files in its group. You
can also do the copying without exiting Emacs, by typing @kbd{M-x
shadow-copy-files}.
To set up a shadow file group, use @kbd{M-x
shadow-define-literal-group} or @kbd{M-x shadow-define-regexp-group}.
See their documentation strings for further information.
To set up a shadow file group, use @w{@kbd{M-x
shadow-define-literal-group}} or @w{@kbd{M-x
shadow-define-regexp-group}}. See their documentation strings for
further information.
Before copying a file to its shadows, Emacs asks for confirmation.
You can answer ``no'' to bypass copying of this file, this time. If
you want to cancel the shadowing permanently for a certain file, use
@kbd{M-x shadow-cancel} to eliminate or change the shadow file group.
A @dfn{shadow cluster} is a group of hosts that share directories, so
that copying to or from one of them is sufficient to update the file
on all of them. Each shadow cluster has a name, and specifies the
network address of a primary host (the one we copy files to), and a
regular expression that matches the host names of all the other hosts
in the cluster. You can define a shadow cluster with @kbd{M-x
shadow-define-cluster}.
@w{@kbd{M-x shadow-cancel}} to eliminate or change the shadow file group.
@node Time Stamps
@subsection Updating Time Stamps Automatically

View file

@ -776,16 +776,16 @@ Search}.
@cindex regular expression
@cindex regexp
This manual describes regular expression features that users
typically use. @xref{Regular Expressions,,, elisp, The Emacs Lisp
Reference Manual}, for additional features used mainly in Lisp
programs.
This section (and this manual in general) describes regular
expression features that users typically use. @xref{Regular
Expressions,,, elisp, The Emacs Lisp Reference Manual}, for additional
features used mainly in Lisp programs.
Regular expressions have a syntax in which a few characters are
special constructs and the rest are @dfn{ordinary}. An ordinary
character matches that same character and nothing else. The special
characters are @samp{$^.*+?[\}. The character @samp{]} is special if
it ends a character alternative (see later). The character @samp{-}
it ends a character alternative (see below). The character @samp{-}
is special inside a character alternative. Any other character
appearing in a regular expression is ordinary, unless a @samp{\}
precedes it. (When you use regular expressions in a Lisp program,
@ -803,11 +803,11 @@ of ``the same string'', rather than an exception.)
Any two regular expressions @var{a} and @var{b} can be concatenated.
The result is a regular expression which matches a string if @var{a}
matches some amount of the beginning of that string and @var{b}
matches the rest of the string. For example, concatenating the
regular expressions @samp{f} and @samp{o} gives the regular expression
@samp{fo}, which matches only the string @samp{fo}. Still trivial.
To do something nontrivial, you need to use one of the special
characters. Here is a list of them.
matches the rest of the string. As a trivial example, concatenating
the regular expressions @samp{f} and @samp{o} gives the regular
expression @samp{fo}, which matches only the string @samp{fo}. To do
something less trivial, you need to use one of the special characters.
Here is a list of them.
@table @asis
@item @kbd{.}@: @r{(Period)}
@ -1025,13 +1025,13 @@ To record a matched substring for future reference.
This last application is not a consequence of the idea of a
parenthetical grouping; it is a separate feature that is assigned as a
second meaning to the same @samp{\( @dots{} \)} construct. In practice
second meaning to the same @w{@samp{\( @dots{} \)}} construct. In practice
there is usually no conflict between the two meanings; when there is
a conflict, you can use a shy group.
a conflict, you can use a shy group, described below.
@item \(?: @dots{} \)
@cindex shy group, in regexp
specifies a shy group that does not record the matched substring;
specifies a @dfn{shy group} that does not record the matched substring;
you can't refer back to it with @samp{\@var{d}} (see below). This is
useful in mechanically combining regular expressions, so that you can
add groups for syntactic purposes without interfering with the
@ -1908,7 +1908,7 @@ which Emacs will use this display mode. The variable
@code{search-slow-window-lines} controls the number of lines in the
window Emacs pops up for displaying the search results; the default is
1 line. Normally, this window will pop up at the bottom of the window
that displays the buffer where you start searching, bit if the value
that displays the buffer where you start searching, but if the value
of @code{search-slow-window-lines} is negative, that means to put the
window at the top and give it the number of lines that is the absolute
value of that value.
value of @code{search-slow-window-lines}.

View file

@ -209,6 +209,20 @@ session, it runs the hook @code{edebug-setup-hook}, then sets it to
@code{nil}. You can use this to load Edebug specifications
associated with a package you are using, but only when you use Edebug.
@cindex edebug, failure to instrument
If Edebug detects a syntax error while instrumenting, it leaves point
at the erroneous code and signals an @code{invalid-read-syntax} error.
@c FIXME? I can't see that it "leaves point at the erroneous code".
Example:
@example
@error{} Invalid read syntax: "Expected lambda expression"
@end example
One potential reason for such a failure to instrument is that some
macro definitions are not yet known to Emacs. To work around this,
load the file which defines the function you are about to instrument.
@findex eval-expression @r{(Edebug)}
To remove instrumentation from a definition, simply re-evaluate its
definition in a way that does not instrument. There are two ways of
@ -216,10 +230,6 @@ evaluating forms that never instrument them: from a file with
@code{load}, and from the minibuffer with @code{eval-expression}
(@kbd{M-:}).
If Edebug detects a syntax error while instrumenting, it leaves point
at the erroneous code and signals an @code{invalid-read-syntax} error.
@c FIXME? I can't see that it "leaves point at the erroneous code".
@xref{Edebug Eval}, for other evaluation functions available
inside of Edebug.

View file

@ -241,12 +241,33 @@ before starting Emacs, or run Emacs as root.
** Emacs crashes when you try to view a file with complex characters.
For example, the etc/HELLO file (as shown by C-h h).
The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open"
is shown in the terminal from which you launched Emacs.
This problem only happens when you use a graphical display (ie not
with -nw) and compiled Emacs with the "libotf" library for complex
text handling.
One possible reason for this could be a bug in the libotf or the
libm17n-flt/m17n-db libraries Emacs uses for displaying complex
scripts. Make sure you have the latest versions of these libraries
installed. If the problem still persists with the latest released
versions of these libraries, you can try building these libraries from
their CVS repository:
cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co libotf
cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co m17n-db
cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co m17n-lib
One known problem that causes such crashes is with using Noto Serif
Kannada fonts. To work around that, force Emacs not to select these
fonts, by adding the following to your ~/.emacs init file:
(push "Noto Serif Kannada" face-ignored-fonts)
You can try this interactively in a running Emacs session like this:
M-: (push "Noto Serif Kannada" face-ignored-fonts) RET
Another set of problems is caused by an incompatible libotf library.
In this case, displaying the etc/HELLO file (as shown by C-h h)
triggers the following message to be shown in the terminal from which
you launched Emacs:
symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open
This problem occurs because unfortunately there are two libraries
called "libotf". One is the library for handling OpenType fonts,
@ -457,6 +478,21 @@ The solution was to upgrade Semantic to version 2.0pre4 (distributed
with CEDET 1.0pre4) or later. Note that Emacs includes Semantic since
23.2, and this issue does not apply to the included version.
*** Display artifacts on GUI frames on X-based systems.
This is known to be caused by using double-buffering (which is enabled
by default in Emacs 26 and later). The artifacts typically appear
after commands that cause Emacs to scroll the display.
You can disable double-buffering by evaluating the following form:
(modify-all-frames-parameters '((inhibit-double-buffering . t)))
To make this permanent, add it to your ~/.emacs init file.
Note that disabling double-buffering will cause flickering of the
display in some situations.
*** Self-documentation messages are garbled.
This means that the file 'etc/DOC' doesn't properly correspond

View file

@ -3032,10 +3032,9 @@ remove properties specified by `yank-excluded-properties'."
run-start prop nil end)))
(funcall fun value run-start run-end)
(setq run-start run-end)))))
(with-silent-modifications
(if (eq yank-excluded-properties t)
(set-text-properties start end nil)
(remove-list-of-text-properties start end yank-excluded-properties)))))
(if (eq yank-excluded-properties t)
(set-text-properties start end nil)
(remove-list-of-text-properties start end yank-excluded-properties))))
(defvar yank-undo-function)

View file

@ -8452,7 +8452,7 @@ of WINDOW.
Optional argument LEFT, if non-nil, means to return values suitable for
buffers displaying right to left text."
;; Process lines as returned by window-lines-pixel-dimensions.
;; STACK is a stack that contains rows that have to be processed yet.
;; STACK is a stack that contains rows that have yet to be processed.
(let* ((window (window-normalize-window window t))
(disjoint (and (consp count) (cdr count)))
(count (or (and (numberp count) count)

View file

@ -813,7 +813,7 @@ DEFUN ("indent-to", Findent_to, Sindent_to, 1, 2, "NIndent to column: ",
Optional second argument MINIMUM says always do at least MINIMUM spaces
even if that goes past COLUMN; by default, MINIMUM is zero.
The return value is COLUMN. */)
The return value is the column where the insertion ends. */)
(Lisp_Object column, Lisp_Object minimum)
{
EMACS_INT mincol;