diff options
| author | Glenn Morris | 2018-01-29 07:50:21 -0800 |
|---|---|---|
| committer | Glenn Morris | 2018-01-29 07:50:21 -0800 |
| commit | 9c2c7b1cdc733ea9277676e43ba458d173491b66 (patch) | |
| tree | 2013c8951fa2b3006aed36f224193633d08f574c | |
| parent | ea8c0e1b9eaa6651919fb4e039e3fcb5a1fa73db (diff) | |
| parent | 6415b2d40c13be2c5cd5f797718c391d1c4ce9e6 (diff) | |
| download | emacs-9c2c7b1cdc733ea9277676e43ba458d173491b66.tar.gz emacs-9c2c7b1cdc733ea9277676e43ba458d173491b66.zip | |
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
| -rw-r--r-- | doc/emacs/files.texi | 48 | ||||
| -rw-r--r-- | doc/emacs/search.texi | 30 | ||||
| -rw-r--r-- | doc/lispref/edebug.texi | 18 | ||||
| -rw-r--r-- | etc/PROBLEMS | 48 | ||||
| -rw-r--r-- | lisp/subr.el | 7 | ||||
| -rw-r--r-- | lisp/window.el | 2 | ||||
| -rw-r--r-- | src/indent.c | 2 |
7 files changed, 101 insertions, 54 deletions
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 881210aab9a..083f64704ae 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi | |||
| @@ -738,7 +738,7 @@ survive a crash even if @code{fsync} works properly. | |||
| 738 | The @code{write-region-inhibit-fsync} variable controls whether | 738 | The @code{write-region-inhibit-fsync} variable controls whether |
| 739 | Emacs invokes @code{fsync} after saving a file. The variable's | 739 | Emacs invokes @code{fsync} after saving a file. The variable's |
| 740 | default value is @code{nil} when Emacs is interactive, and @code{t} | 740 | default value is @code{nil} when Emacs is interactive, and @code{t} |
| 741 | when Emacs runs in batch mode. | 741 | when Emacs runs in batch mode (@pxref{Initial Options, batch mode}). |
| 742 | 742 | ||
| 743 | Emacs never uses @code{fsync} when writing auto-save files, as these | 743 | Emacs never uses @code{fsync} when writing auto-save files, as these |
| 744 | files might lose data anyway. | 744 | files might lose data anyway. |
| @@ -824,6 +824,25 @@ diff-buffer-with-file} command. @xref{Comparing Files}. | |||
| 824 | @cindex file shadows | 824 | @cindex file shadows |
| 825 | @findex shadow-initialize | 825 | @findex shadow-initialize |
| 826 | 826 | ||
| 827 | You can arrange to keep identical @dfn{shadow} copies of certain | ||
| 828 | files in more than one place---possibly on different machines. To do | ||
| 829 | this, first you must set up a @dfn{shadow file group}, which is a set | ||
| 830 | of identically-named files shared between a list of sites. The file | ||
| 831 | group is permanent and applies to further Emacs sessions as well as | ||
| 832 | the current one. Once the group is set up, every time you exit Emacs, | ||
| 833 | it will copy the file you edited to the other files in its group. You | ||
| 834 | can also do the copying without exiting Emacs, by typing @w{@kbd{M-x | ||
| 835 | shadow-copy-files}}. | ||
| 836 | |||
| 837 | @cindex shadow cluster | ||
| 838 | A @dfn{shadow cluster} is a group of hosts that share directories, so | ||
| 839 | that copying to or from one of them is sufficient to update the file | ||
| 840 | on all of them. Each shadow cluster has a name, and specifies the | ||
| 841 | network address of a primary host (the one we copy files to), and a | ||
| 842 | regular expression that matches the host names of all the other hosts | ||
| 843 | in the cluster. You can define a shadow cluster with @w{@kbd{M-x | ||
| 844 | shadow-define-cluster}}. | ||
| 845 | |||
| 827 | @table @kbd | 846 | @table @kbd |
| 828 | @item M-x shadow-initialize | 847 | @item M-x shadow-initialize |
| 829 | Set up file shadowing. | 848 | Set up file shadowing. |
| @@ -839,32 +858,15 @@ Copy all pending shadow files. | |||
| 839 | Cancel the instruction to shadow some files. | 858 | Cancel the instruction to shadow some files. |
| 840 | @end table | 859 | @end table |
| 841 | 860 | ||
| 842 | You can arrange to keep identical @dfn{shadow} copies of certain files | 861 | To set up a shadow file group, use @w{@kbd{M-x |
| 843 | in more than one place---possibly on different machines. To do this, | 862 | shadow-define-literal-group}} or @w{@kbd{M-x |
| 844 | first you must set up a @dfn{shadow file group}, which is a set of | 863 | shadow-define-regexp-group}}. See their documentation strings for |
| 845 | identically-named files shared between a list of sites. The file | 864 | further information. |
| 846 | group is permanent and applies to further Emacs sessions as well as | ||
| 847 | the current one. Once the group is set up, every time you exit Emacs, | ||
| 848 | it will copy the file you edited to the other files in its group. You | ||
| 849 | can also do the copying without exiting Emacs, by typing @kbd{M-x | ||
| 850 | shadow-copy-files}. | ||
| 851 | |||
| 852 | To set up a shadow file group, use @kbd{M-x | ||
| 853 | shadow-define-literal-group} or @kbd{M-x shadow-define-regexp-group}. | ||
| 854 | See their documentation strings for further information. | ||
| 855 | 865 | ||
| 856 | Before copying a file to its shadows, Emacs asks for confirmation. | 866 | Before copying a file to its shadows, Emacs asks for confirmation. |
| 857 | You can answer ``no'' to bypass copying of this file, this time. If | 867 | You can answer ``no'' to bypass copying of this file, this time. If |
| 858 | you want to cancel the shadowing permanently for a certain file, use | 868 | you want to cancel the shadowing permanently for a certain file, use |
| 859 | @kbd{M-x shadow-cancel} to eliminate or change the shadow file group. | 869 | @w{@kbd{M-x shadow-cancel}} to eliminate or change the shadow file group. |
| 860 | |||
| 861 | A @dfn{shadow cluster} is a group of hosts that share directories, so | ||
| 862 | that copying to or from one of them is sufficient to update the file | ||
| 863 | on all of them. Each shadow cluster has a name, and specifies the | ||
| 864 | network address of a primary host (the one we copy files to), and a | ||
| 865 | regular expression that matches the host names of all the other hosts | ||
| 866 | in the cluster. You can define a shadow cluster with @kbd{M-x | ||
| 867 | shadow-define-cluster}. | ||
| 868 | 870 | ||
| 869 | @node Time Stamps | 871 | @node Time Stamps |
| 870 | @subsection Updating Time Stamps Automatically | 872 | @subsection Updating Time Stamps Automatically |
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index b351a741aa5..bb01f10d2cb 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi | |||
| @@ -776,16 +776,16 @@ Search}. | |||
| 776 | @cindex regular expression | 776 | @cindex regular expression |
| 777 | @cindex regexp | 777 | @cindex regexp |
| 778 | 778 | ||
| 779 | This manual describes regular expression features that users | 779 | This section (and this manual in general) describes regular |
| 780 | typically use. @xref{Regular Expressions,,, elisp, The Emacs Lisp | 780 | expression features that users typically use. @xref{Regular |
| 781 | Reference Manual}, for additional features used mainly in Lisp | 781 | Expressions,,, elisp, The Emacs Lisp Reference Manual}, for additional |
| 782 | programs. | 782 | features used mainly in Lisp programs. |
| 783 | 783 | ||
| 784 | Regular expressions have a syntax in which a few characters are | 784 | Regular expressions have a syntax in which a few characters are |
| 785 | special constructs and the rest are @dfn{ordinary}. An ordinary | 785 | special constructs and the rest are @dfn{ordinary}. An ordinary |
| 786 | character matches that same character and nothing else. The special | 786 | character matches that same character and nothing else. The special |
| 787 | characters are @samp{$^.*+?[\}. The character @samp{]} is special if | 787 | characters are @samp{$^.*+?[\}. The character @samp{]} is special if |
| 788 | it ends a character alternative (see later). The character @samp{-} | 788 | it ends a character alternative (see below). The character @samp{-} |
| 789 | is special inside a character alternative. Any other character | 789 | is special inside a character alternative. Any other character |
| 790 | appearing in a regular expression is ordinary, unless a @samp{\} | 790 | appearing in a regular expression is ordinary, unless a @samp{\} |
| 791 | precedes it. (When you use regular expressions in a Lisp program, | 791 | precedes it. (When you use regular expressions in a Lisp program, |
| @@ -803,11 +803,11 @@ of ``the same string'', rather than an exception.) | |||
| 803 | Any two regular expressions @var{a} and @var{b} can be concatenated. | 803 | Any two regular expressions @var{a} and @var{b} can be concatenated. |
| 804 | The result is a regular expression which matches a string if @var{a} | 804 | The result is a regular expression which matches a string if @var{a} |
| 805 | matches some amount of the beginning of that string and @var{b} | 805 | matches some amount of the beginning of that string and @var{b} |
| 806 | matches the rest of the string. For example, concatenating the | 806 | matches the rest of the string. As a trivial example, concatenating |
| 807 | regular expressions @samp{f} and @samp{o} gives the regular expression | 807 | the regular expressions @samp{f} and @samp{o} gives the regular |
| 808 | @samp{fo}, which matches only the string @samp{fo}. Still trivial. | 808 | expression @samp{fo}, which matches only the string @samp{fo}. To do |
| 809 | To do something nontrivial, you need to use one of the special | 809 | something less trivial, you need to use one of the special characters. |
| 810 | characters. Here is a list of them. | 810 | Here is a list of them. |
| 811 | 811 | ||
| 812 | @table @asis | 812 | @table @asis |
| 813 | @item @kbd{.}@: @r{(Period)} | 813 | @item @kbd{.}@: @r{(Period)} |
| @@ -1025,13 +1025,13 @@ To record a matched substring for future reference. | |||
| 1025 | 1025 | ||
| 1026 | This last application is not a consequence of the idea of a | 1026 | This last application is not a consequence of the idea of a |
| 1027 | parenthetical grouping; it is a separate feature that is assigned as a | 1027 | parenthetical grouping; it is a separate feature that is assigned as a |
| 1028 | second meaning to the same @samp{\( @dots{} \)} construct. In practice | 1028 | second meaning to the same @w{@samp{\( @dots{} \)}} construct. In practice |
| 1029 | there is usually no conflict between the two meanings; when there is | 1029 | there is usually no conflict between the two meanings; when there is |
| 1030 | a conflict, you can use a shy group. | 1030 | a conflict, you can use a shy group, described below. |
| 1031 | 1031 | ||
| 1032 | @item \(?: @dots{} \) | 1032 | @item \(?: @dots{} \) |
| 1033 | @cindex shy group, in regexp | 1033 | @cindex shy group, in regexp |
| 1034 | specifies a shy group that does not record the matched substring; | 1034 | specifies a @dfn{shy group} that does not record the matched substring; |
| 1035 | you can't refer back to it with @samp{\@var{d}} (see below). This is | 1035 | you can't refer back to it with @samp{\@var{d}} (see below). This is |
| 1036 | useful in mechanically combining regular expressions, so that you can | 1036 | useful in mechanically combining regular expressions, so that you can |
| 1037 | add groups for syntactic purposes without interfering with the | 1037 | add groups for syntactic purposes without interfering with the |
| @@ -1908,7 +1908,7 @@ which Emacs will use this display mode. The variable | |||
| 1908 | @code{search-slow-window-lines} controls the number of lines in the | 1908 | @code{search-slow-window-lines} controls the number of lines in the |
| 1909 | window Emacs pops up for displaying the search results; the default is | 1909 | window Emacs pops up for displaying the search results; the default is |
| 1910 | 1 line. Normally, this window will pop up at the bottom of the window | 1910 | 1 line. Normally, this window will pop up at the bottom of the window |
| 1911 | that displays the buffer where you start searching, bit if the value | 1911 | that displays the buffer where you start searching, but if the value |
| 1912 | of @code{search-slow-window-lines} is negative, that means to put the | 1912 | of @code{search-slow-window-lines} is negative, that means to put the |
| 1913 | window at the top and give it the number of lines that is the absolute | 1913 | window at the top and give it the number of lines that is the absolute |
| 1914 | value of that value. | 1914 | value of @code{search-slow-window-lines}. |
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 1a883e0f142..0c17e1e72ef 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi | |||
| @@ -209,6 +209,20 @@ session, it runs the hook @code{edebug-setup-hook}, then sets it to | |||
| 209 | @code{nil}. You can use this to load Edebug specifications | 209 | @code{nil}. You can use this to load Edebug specifications |
| 210 | associated with a package you are using, but only when you use Edebug. | 210 | associated with a package you are using, but only when you use Edebug. |
| 211 | 211 | ||
| 212 | @cindex edebug, failure to instrument | ||
| 213 | If Edebug detects a syntax error while instrumenting, it leaves point | ||
| 214 | at the erroneous code and signals an @code{invalid-read-syntax} error. | ||
| 215 | @c FIXME? I can't see that it "leaves point at the erroneous code". | ||
| 216 | Example: | ||
| 217 | |||
| 218 | @example | ||
| 219 | @error{} Invalid read syntax: "Expected lambda expression" | ||
| 220 | @end example | ||
| 221 | |||
| 222 | One potential reason for such a failure to instrument is that some | ||
| 223 | macro definitions are not yet known to Emacs. To work around this, | ||
| 224 | load the file which defines the function you are about to instrument. | ||
| 225 | |||
| 212 | @findex eval-expression @r{(Edebug)} | 226 | @findex eval-expression @r{(Edebug)} |
| 213 | To remove instrumentation from a definition, simply re-evaluate its | 227 | To remove instrumentation from a definition, simply re-evaluate its |
| 214 | definition in a way that does not instrument. There are two ways of | 228 | 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 | |||
| 216 | @code{load}, and from the minibuffer with @code{eval-expression} | 230 | @code{load}, and from the minibuffer with @code{eval-expression} |
| 217 | (@kbd{M-:}). | 231 | (@kbd{M-:}). |
| 218 | 232 | ||
| 219 | If Edebug detects a syntax error while instrumenting, it leaves point | ||
| 220 | at the erroneous code and signals an @code{invalid-read-syntax} error. | ||
| 221 | @c FIXME? I can't see that it "leaves point at the erroneous code". | ||
| 222 | |||
| 223 | @xref{Edebug Eval}, for other evaluation functions available | 233 | @xref{Edebug Eval}, for other evaluation functions available |
| 224 | inside of Edebug. | 234 | inside of Edebug. |
| 225 | 235 | ||
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index e7f6c267cbb..dedbf80b353 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -241,12 +241,33 @@ before starting Emacs, or run Emacs as root. | |||
| 241 | 241 | ||
| 242 | ** Emacs crashes when you try to view a file with complex characters. | 242 | ** Emacs crashes when you try to view a file with complex characters. |
| 243 | 243 | ||
| 244 | For example, the etc/HELLO file (as shown by C-h h). | 244 | One possible reason for this could be a bug in the libotf or the |
| 245 | The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open" | 245 | libm17n-flt/m17n-db libraries Emacs uses for displaying complex |
| 246 | is shown in the terminal from which you launched Emacs. | 246 | scripts. Make sure you have the latest versions of these libraries |
| 247 | This problem only happens when you use a graphical display (ie not | 247 | installed. If the problem still persists with the latest released |
| 248 | with -nw) and compiled Emacs with the "libotf" library for complex | 248 | versions of these libraries, you can try building these libraries from |
| 249 | text handling. | 249 | their CVS repository: |
| 250 | |||
| 251 | cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co libotf | ||
| 252 | cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co m17n-db | ||
| 253 | cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/m17n co m17n-lib | ||
| 254 | |||
| 255 | One known problem that causes such crashes is with using Noto Serif | ||
| 256 | Kannada fonts. To work around that, force Emacs not to select these | ||
| 257 | fonts, by adding the following to your ~/.emacs init file: | ||
| 258 | |||
| 259 | (push "Noto Serif Kannada" face-ignored-fonts) | ||
| 260 | |||
| 261 | You can try this interactively in a running Emacs session like this: | ||
| 262 | |||
| 263 | M-: (push "Noto Serif Kannada" face-ignored-fonts) RET | ||
| 264 | |||
| 265 | Another set of problems is caused by an incompatible libotf library. | ||
| 266 | In this case, displaying the etc/HELLO file (as shown by C-h h) | ||
| 267 | triggers the following message to be shown in the terminal from which | ||
| 268 | you launched Emacs: | ||
| 269 | |||
| 270 | symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open | ||
| 250 | 271 | ||
| 251 | This problem occurs because unfortunately there are two libraries | 272 | This problem occurs because unfortunately there are two libraries |
| 252 | called "libotf". One is the library for handling OpenType fonts, | 273 | 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 | |||
| 457 | with CEDET 1.0pre4) or later. Note that Emacs includes Semantic since | 478 | with CEDET 1.0pre4) or later. Note that Emacs includes Semantic since |
| 458 | 23.2, and this issue does not apply to the included version. | 479 | 23.2, and this issue does not apply to the included version. |
| 459 | 480 | ||
| 481 | *** Display artifacts on GUI frames on X-based systems. | ||
| 482 | |||
| 483 | This is known to be caused by using double-buffering (which is enabled | ||
| 484 | by default in Emacs 26 and later). The artifacts typically appear | ||
| 485 | after commands that cause Emacs to scroll the display. | ||
| 486 | |||
| 487 | You can disable double-buffering by evaluating the following form: | ||
| 488 | |||
| 489 | (modify-all-frames-parameters '((inhibit-double-buffering . t))) | ||
| 490 | |||
| 491 | To make this permanent, add it to your ~/.emacs init file. | ||
| 492 | |||
| 493 | Note that disabling double-buffering will cause flickering of the | ||
| 494 | display in some situations. | ||
| 495 | |||
| 460 | *** Self-documentation messages are garbled. | 496 | *** Self-documentation messages are garbled. |
| 461 | 497 | ||
| 462 | This means that the file 'etc/DOC' doesn't properly correspond | 498 | This means that the file 'etc/DOC' doesn't properly correspond |
diff --git a/lisp/subr.el b/lisp/subr.el index e7a0ffc5bea..24bd28839fc 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -3032,10 +3032,9 @@ remove properties specified by `yank-excluded-properties'." | |||
| 3032 | run-start prop nil end))) | 3032 | run-start prop nil end))) |
| 3033 | (funcall fun value run-start run-end) | 3033 | (funcall fun value run-start run-end) |
| 3034 | (setq run-start run-end))))) | 3034 | (setq run-start run-end))))) |
| 3035 | (with-silent-modifications | 3035 | (if (eq yank-excluded-properties t) |
| 3036 | (if (eq yank-excluded-properties t) | 3036 | (set-text-properties start end nil) |
| 3037 | (set-text-properties start end nil) | 3037 | (remove-list-of-text-properties start end yank-excluded-properties)))) |
| 3038 | (remove-list-of-text-properties start end yank-excluded-properties))))) | ||
| 3039 | 3038 | ||
| 3040 | (defvar yank-undo-function) | 3039 | (defvar yank-undo-function) |
| 3041 | 3040 | ||
diff --git a/lisp/window.el b/lisp/window.el index d7fdceb2058..abd1a68b1f0 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -8452,7 +8452,7 @@ of WINDOW. | |||
| 8452 | Optional argument LEFT, if non-nil, means to return values suitable for | 8452 | Optional argument LEFT, if non-nil, means to return values suitable for |
| 8453 | buffers displaying right to left text." | 8453 | buffers displaying right to left text." |
| 8454 | ;; Process lines as returned by ‘window-lines-pixel-dimensions’. | 8454 | ;; Process lines as returned by ‘window-lines-pixel-dimensions’. |
| 8455 | ;; STACK is a stack that contains rows that have to be processed yet. | 8455 | ;; STACK is a stack that contains rows that have yet to be processed. |
| 8456 | (let* ((window (window-normalize-window window t)) | 8456 | (let* ((window (window-normalize-window window t)) |
| 8457 | (disjoint (and (consp count) (cdr count))) | 8457 | (disjoint (and (consp count) (cdr count))) |
| 8458 | (count (or (and (numberp count) count) | 8458 | (count (or (and (numberp count) count) |
diff --git a/src/indent.c b/src/indent.c index 1a8bcebddc9..316171e609b 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -813,7 +813,7 @@ DEFUN ("indent-to", Findent_to, Sindent_to, 1, 2, "NIndent to column: ", | |||
| 813 | Optional second argument MINIMUM says always do at least MINIMUM spaces | 813 | Optional second argument MINIMUM says always do at least MINIMUM spaces |
| 814 | even if that goes past COLUMN; by default, MINIMUM is zero. | 814 | even if that goes past COLUMN; by default, MINIMUM is zero. |
| 815 | 815 | ||
| 816 | The return value is COLUMN. */) | 816 | The return value is the column where the insertion ends. */) |
| 817 | (Lisp_Object column, Lisp_Object minimum) | 817 | (Lisp_Object column, Lisp_Object minimum) |
| 818 | { | 818 | { |
| 819 | EMACS_INT mincol; | 819 | EMACS_INT mincol; |