diff options
| author | Glenn Morris | 2020-04-13 09:02:29 -0700 |
|---|---|---|
| committer | Glenn Morris | 2020-04-13 09:02:29 -0700 |
| commit | 0a4b992c422d98fbb351d3b03265eb1029012c1d (patch) | |
| tree | 8216a67339ed2fecc3d889678278b9a3cb7fb914 | |
| parent | d0b9cf876fa62e3584a062e123a87e28278782cf (diff) | |
| parent | 1dfc497fac22c199a944ef64233266bd6cd2fee6 (diff) | |
| download | emacs-0a4b992c422d98fbb351d3b03265eb1029012c1d.tar.gz emacs-0a4b992c422d98fbb351d3b03265eb1029012c1d.zip | |
Merge from origin/emacs-27
1dfc497fac Minor wording change in Introduction to Programming in Ema...
ff09b4eeac Fix 'flymake-show-diagnostics-buffer' when line numbers ar...
63e8d0ea87 Fix last changes describing mail commands
01212a762f Do setup Flymake in file-less Elisp buffers
36873ef2b2 Fix error message for ‘cl-struct-unknown-slot’ (bug#39995)
3f9310b0fe Fix and improve documentation of mail-related features
1482a75efa Fix build failure with Fx_gtk_debug
cf57663f2a Mention jit-lock deferred as an alternative to fast-but-im...
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/emacs/display.texi | 9 | ||||
| -rw-r--r-- | doc/emacs/sending.texi | 35 | ||||
| -rw-r--r-- | doc/lispintro/emacs-lisp-intro.texi | 3 | ||||
| -rw-r--r-- | etc/NEWS.27 | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 2 | ||||
| -rw-r--r-- | lisp/mail/sendmail.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/elisp-mode.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 65 | ||||
| -rw-r--r-- | lisp/simple.el | 8 | ||||
| -rw-r--r-- | src/xfns.c | 4 |
10 files changed, 74 insertions, 64 deletions
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 4ecebc7a270..cbc00ee4eef 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi | |||
| @@ -141,6 +141,15 @@ default face. This can cause Emacs to scroll to somewhat wrong buffer | |||
| 141 | positions when the faces in use are not all the same size, even with | 141 | positions when the faces in use are not all the same size, even with |
| 142 | single (i.e., without auto-repeat) scrolling operations. | 142 | single (i.e., without auto-repeat) scrolling operations. |
| 143 | 143 | ||
| 144 | @vindex jit-lock-defer-time | ||
| 145 | As an alternative to setting @code{fast-but-imprecise-scrolling} you | ||
| 146 | might prefer to enable jit-lock deferred fontification (@pxref{Font | ||
| 147 | Lock}). To do this, customize @code{jit-lock-defer-time} to a small | ||
| 148 | positive number such as 0.25, or even 0.1 if you type quickly. This | ||
| 149 | gives you less jerky scrolling when you hold down @kbd{C-v}, but the | ||
| 150 | window contents after any action which scrolls into a fresh portion of | ||
| 151 | the buffer will be momentarily unfontified. | ||
| 152 | |||
| 144 | @vindex scroll-up | 153 | @vindex scroll-up |
| 145 | @vindex scroll-down | 154 | @vindex scroll-down |
| 146 | @findex scroll-up-line | 155 | @findex scroll-up-line |
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi index 190549a194e..e3f9fbec071 100644 --- a/doc/emacs/sending.texi +++ b/doc/emacs/sending.texi | |||
| @@ -32,13 +32,14 @@ In the mail buffer, send the message and bury the buffer | |||
| 32 | 32 | ||
| 33 | The mail buffer is an ordinary Emacs buffer, so you can switch to | 33 | The mail buffer is an ordinary Emacs buffer, so you can switch to |
| 34 | other buffers while composing the mail. If you want to send another | 34 | other buffers while composing the mail. If you want to send another |
| 35 | mail before finishing the current one, type @kbd{C-x m} again to open | 35 | message before finishing the current one, type @kbd{C-x m} again to |
| 36 | a new mail buffer whose name has a different numeric suffix | 36 | open a new mail buffer whose name has a different numeric suffix |
| 37 | (@pxref{Misc Buffer}). If you invoke the command with a prefix | 37 | (@pxref{Misc Buffer}). (This only works if you use the default |
| 38 | argument, @w{@kbd{C-u C-x m}}, Emacs switches back to the last mail | 38 | Message mode to compose email; see @ref{Mail Commands}.) If you know |
| 39 | buffer, and asks if you want to erase the message in that buffer; if | 39 | that you'd like to continue composing the unsent message you were |
| 40 | you answer no, this lets you pick up editing the message where you | 40 | editing, invoke this command with a prefix argument, @w{@kbd{C-u C-x |
| 41 | left off. | 41 | m}}, and Emacs will switch to the last mail buffer you used and let |
| 42 | you pick up editing the message where you left off. | ||
| 42 | 43 | ||
| 43 | @kindex C-x 4 m | 44 | @kindex C-x 4 m |
| 44 | @findex compose-mail-other-window | 45 | @findex compose-mail-other-window |
| @@ -122,26 +123,6 @@ environment variables (@pxref{General Variables}). If this | |||
| 122 | information is unavailable or wrong, you should customize the | 123 | information is unavailable or wrong, you should customize the |
| 123 | variables yourself (@pxref{Easy Customization}). | 124 | variables yourself (@pxref{Easy Customization}). |
| 124 | 125 | ||
| 125 | @vindex mail-from-style | ||
| 126 | The value of the variable @code{mail-from-style} specifies how to | ||
| 127 | format the contents of the @samp{From} field: | ||
| 128 | |||
| 129 | @table @asis | ||
| 130 | @item @code{nil} | ||
| 131 | Use just the address, as in @samp{king@@grassland.com}. | ||
| 132 | @item @code{parens} | ||
| 133 | Use both address and full name, as in:@* | ||
| 134 | @samp{king@@grassland.com (Elvis Parsley)}. | ||
| 135 | @item @code{angles} | ||
| 136 | Use both address and full name, as in:@* | ||
| 137 | @samp{Elvis Parsley <king@@grassland.com>}. | ||
| 138 | @item any other value | ||
| 139 | Use @code{angles} normally. But if the address must be quoted to | ||
| 140 | remain syntactically valid under the @code{angles} format but not | ||
| 141 | under the @code{parens} format, use @code{parens} instead. This is | ||
| 142 | the default. | ||
| 143 | @end table | ||
| 144 | |||
| 145 | Apart from @samp{From}, here is a table of commonly-used fields: | 126 | Apart from @samp{From}, here is a table of commonly-used fields: |
| 146 | 127 | ||
| 147 | @table @samp | 128 | @table @samp |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 9834952566f..1726936de10 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -3667,7 +3667,8 @@ automatically undone when the @code{let} is finished. The setting | |||
| 3667 | only affects expressions that are inside the bounds of the @code{let} | 3667 | only affects expressions that are inside the bounds of the @code{let} |
| 3668 | expression. In computer science jargon, we would say the binding of | 3668 | expression. In computer science jargon, we would say the binding of |
| 3669 | a symbol is visible only in functions called in the @code{let} form; | 3669 | a symbol is visible only in functions called in the @code{let} form; |
| 3670 | in Emacs Lisp, scoping is dynamic, not lexical. | 3670 | in Emacs Lisp, the default scoping is dynamic, not lexical. (The |
| 3671 | non-default lexical binding is not discussed in this manual.) | ||
| 3671 | 3672 | ||
| 3672 | @code{let} can create more than one variable at once. Also, | 3673 | @code{let} can create more than one variable at once. Also, |
| 3673 | @code{let} gives each variable it creates an initial value, either a | 3674 | @code{let} gives each variable it creates an initial value, either a |
diff --git a/etc/NEWS.27 b/etc/NEWS.27 index 44a92ecbdd6..f4edfaf9bec 100644 --- a/etc/NEWS.27 +++ b/etc/NEWS.27 | |||
| @@ -2239,6 +2239,10 @@ The option is useful for two reasons when verifying the signature: | |||
| 2239 | 2.2.17 to fully benefit from this feature. See gpg(1) man page for | 2239 | 2.2.17 to fully benefit from this feature. See gpg(1) man page for |
| 2240 | "--auto-key-retrieve". | 2240 | "--auto-key-retrieve". |
| 2241 | 2241 | ||
| 2242 | +++ | ||
| 2243 | *** The 'mail-from-style' variable is now obsolete. | ||
| 2244 | According to RFC 5322, only the 'angles' value is valid. | ||
| 2245 | |||
| 2242 | --- | 2246 | --- |
| 2243 | ** EasyPG | 2247 | ** EasyPG |
| 2244 | 2248 | ||
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 45a308ebcac..bb10194a946 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -3118,7 +3118,7 @@ slots skipped by :initial-offset may appear in the list." | |||
| 3118 | descs))) | 3118 | descs))) |
| 3119 | (nreverse descs))) | 3119 | (nreverse descs))) |
| 3120 | 3120 | ||
| 3121 | (define-error 'cl-struct-unknown-slot "struct %S has no slot %S") | 3121 | (define-error 'cl-struct-unknown-slot "struct has no slot") |
| 3122 | 3122 | ||
| 3123 | (defun cl-struct-slot-offset (struct-type slot-name) | 3123 | (defun cl-struct-slot-offset (struct-type slot-name) |
| 3124 | "Return the offset of slot SLOT-NAME in STRUCT-TYPE. | 3124 | "Return the offset of slot SLOT-NAME in STRUCT-TYPE. |
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 14adb5a195d..65d598c3bac 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el | |||
| @@ -73,7 +73,7 @@ Otherwise, most addresses look like `angles', but they look like | |||
| 73 | :version "27.1") | 73 | :version "27.1") |
| 74 | (make-obsolete-variable | 74 | (make-obsolete-variable |
| 75 | 'mail-from-style | 75 | 'mail-from-style |
| 76 | "only the `angles' value is valid according to RFC2822." "27.1" 'set) | 76 | "only the `angles' value is valid according to RFC5322." "27.1" 'set) |
| 77 | 77 | ||
| 78 | ;;;###autoload | 78 | ;;;###autoload |
| 79 | (defcustom mail-specify-envelope-from nil | 79 | (defcustom mail-specify-envelope-from nil |
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 20ec370dcb6..f85fd771ca8 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -291,9 +291,9 @@ Blank lines separate paragraphs. Semicolons start comments. | |||
| 291 | (unless | 291 | (unless |
| 292 | (let* ((bfname (buffer-file-name)) | 292 | (let* ((bfname (buffer-file-name)) |
| 293 | (fname (and (stringp bfname) (file-name-nondirectory bfname)))) | 293 | (fname (and (stringp bfname) (file-name-nondirectory bfname)))) |
| 294 | (or (not (stringp fname)) | 294 | (and (stringp fname) |
| 295 | (string-match "\\`\\.#" fname) | 295 | (or (string-match "\\`\\.#" fname) |
| 296 | (string-equal dir-locals-file fname))) | 296 | (string-equal dir-locals-file fname)))) |
| 297 | (add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t) | 297 | (add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t) |
| 298 | (add-hook 'flymake-diagnostic-functions | 298 | (add-hook 'flymake-diagnostic-functions |
| 299 | #'elisp-flymake-byte-compile nil t))) | 299 | #'elisp-flymake-byte-compile nil t))) |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 25a2152f005..7fca9dac1af 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -1321,35 +1321,42 @@ POS can be a buffer position or a button" | |||
| 1321 | (flymake-show-diagnostic (if (button-type pos) (button-start pos) pos)))) | 1321 | (flymake-show-diagnostic (if (button-type pos) (button-start pos) pos)))) |
| 1322 | 1322 | ||
| 1323 | (defun flymake--diagnostics-buffer-entries () | 1323 | (defun flymake--diagnostics-buffer-entries () |
| 1324 | (with-current-buffer flymake--diagnostics-buffer-source | 1324 | ;; Do nothing if 'flymake--diagnostics-buffer-source' has not yet |
| 1325 | (cl-loop for diag in | 1325 | ;; been set to a valid buffer. This could happen when this function |
| 1326 | (cl-sort (flymake-diagnostics) #'< :key #'flymake-diagnostic-beg) | 1326 | ;; is called too early. For example 'global-display-line-numbers-mode' |
| 1327 | for (line . col) = | 1327 | ;; calls us from its mode hook, when the diagnostic buffer has just |
| 1328 | (save-excursion | 1328 | ;; been created by 'flymake-show-diagnostics-buffer', but is not yet |
| 1329 | (goto-char (flymake--diag-beg diag)) | 1329 | ;; set up properly. |
| 1330 | (cons (line-number-at-pos) | 1330 | (when (bufferp flymake--diagnostics-buffer-source) |
| 1331 | (- (point) | 1331 | (with-current-buffer flymake--diagnostics-buffer-source |
| 1332 | (line-beginning-position)))) | 1332 | (cl-loop for diag in |
| 1333 | for type = (flymake--diag-type diag) | 1333 | (cl-sort (flymake-diagnostics) #'< :key #'flymake-diagnostic-beg) |
| 1334 | collect | 1334 | for (line . col) = |
| 1335 | (list (list :diagnostic diag | 1335 | (save-excursion |
| 1336 | :line line | 1336 | (goto-char (flymake--diag-beg diag)) |
| 1337 | :severity (flymake--lookup-type-property | 1337 | (cons (line-number-at-pos) |
| 1338 | type | 1338 | (- (point) |
| 1339 | 'severity (warning-numeric-level :error))) | 1339 | (line-beginning-position)))) |
| 1340 | `[,(format "%s" line) | 1340 | for type = (flymake--diag-type diag) |
| 1341 | ,(format "%s" col) | 1341 | collect |
| 1342 | ,(propertize (format "%s" | 1342 | (list (list :diagnostic diag |
| 1343 | (flymake--lookup-type-property | 1343 | :line line |
| 1344 | type 'flymake-type-name type)) | 1344 | :severity (flymake--lookup-type-property |
| 1345 | 'face (flymake--lookup-type-property | 1345 | type |
| 1346 | type 'mode-line-face 'flymake-error)) | 1346 | 'severity (warning-numeric-level :error))) |
| 1347 | (,(format "%s" (flymake--diag-text diag)) | 1347 | `[,(format "%s" line) |
| 1348 | mouse-face highlight | 1348 | ,(format "%s" col) |
| 1349 | help-echo "mouse-2: visit this diagnostic" | 1349 | ,(propertize (format "%s" |
| 1350 | face nil | 1350 | (flymake--lookup-type-property |
| 1351 | action flymake-goto-diagnostic | 1351 | type 'flymake-type-name type)) |
| 1352 | mouse-action flymake-goto-diagnostic)])))) | 1352 | 'face (flymake--lookup-type-property |
| 1353 | type 'mode-line-face 'flymake-error)) | ||
| 1354 | (,(format "%s" (flymake--diag-text diag)) | ||
| 1355 | mouse-face highlight | ||
| 1356 | help-echo "mouse-2: visit this diagnostic" | ||
| 1357 | face nil | ||
| 1358 | action flymake-goto-diagnostic | ||
| 1359 | mouse-action flymake-goto-diagnostic)]))))) | ||
| 1353 | 1360 | ||
| 1354 | (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode | 1361 | (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode |
| 1355 | "Flymake diagnostics" | 1362 | "Flymake diagnostics" |
diff --git a/lisp/simple.el b/lisp/simple.el index 91736a60730..7c8ac413d35 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -8057,8 +8057,12 @@ OTHER-HEADERS is an alist specifying additional | |||
| 8057 | header fields. Elements look like (HEADER . VALUE) where both | 8057 | header fields. Elements look like (HEADER . VALUE) where both |
| 8058 | HEADER and VALUE are strings. | 8058 | HEADER and VALUE are strings. |
| 8059 | 8059 | ||
| 8060 | CONTINUE, if non-nil, says to continue editing a message already | 8060 | By default, if an unsent message is already being composed, this |
| 8061 | being composed. Interactively, CONTINUE is the prefix argument. | 8061 | command will ask whether to erase the unsent message, and will not |
| 8062 | start a new message if the user doesn't allow erasing. However, if | ||
| 8063 | CONTINUE is non-nil, it means to continue editing a message already | ||
| 8064 | being composed without asking. Interactively, CONTINUE is the prefix | ||
| 8065 | argument. | ||
| 8062 | 8066 | ||
| 8063 | SWITCH-FUNCTION, if non-nil, is a function to use to | 8067 | SWITCH-FUNCTION, if non-nil, is a function to use to |
| 8064 | switch to and display the buffer used for mail composition. | 8068 | switch to and display the buffer used for mail composition. |
diff --git a/src/xfns.c b/src/xfns.c index 10e1b5e58c2..1f381e2a8b0 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -7747,6 +7747,7 @@ Note: Text drawn with the `x' font backend is shown with hollow boxes. */) | |||
| 7747 | 7747 | ||
| 7748 | #ifdef USE_GTK | 7748 | #ifdef USE_GTK |
| 7749 | #ifdef HAVE_GTK3 | 7749 | #ifdef HAVE_GTK3 |
| 7750 | #if GTK_CHECK_VERSION (3, 14, 0) | ||
| 7750 | DEFUN ("x-gtk-debug", Fx_gtk_debug, Sx_gtk_debug, 1, 1, 0, | 7751 | DEFUN ("x-gtk-debug", Fx_gtk_debug, Sx_gtk_debug, 1, 1, 0, |
| 7751 | doc: /* Toggle interactive GTK debugging. */) | 7752 | doc: /* Toggle interactive GTK debugging. */) |
| 7752 | (Lisp_Object enable) | 7753 | (Lisp_Object enable) |
| @@ -7759,6 +7760,7 @@ DEFUN ("x-gtk-debug", Fx_gtk_debug, Sx_gtk_debug, 1, 1, 0, | |||
| 7759 | 7760 | ||
| 7760 | return NILP (enable) ? Qnil : Qt; | 7761 | return NILP (enable) ? Qnil : Qt; |
| 7761 | } | 7762 | } |
| 7763 | #endif /* GTK_CHECK_VERSION (3, 14, 0) */ | ||
| 7762 | #endif /* HAVE_GTK3 */ | 7764 | #endif /* HAVE_GTK3 */ |
| 7763 | #endif /* USE_GTK */ | 7765 | #endif /* USE_GTK */ |
| 7764 | 7766 | ||
| @@ -8146,7 +8148,9 @@ eliminated in future versions of Emacs. */); | |||
| 8146 | #endif | 8148 | #endif |
| 8147 | #ifdef USE_GTK | 8149 | #ifdef USE_GTK |
| 8148 | #ifdef HAVE_GTK3 | 8150 | #ifdef HAVE_GTK3 |
| 8151 | #if GTK_CHECK_VERSION (3, 14, 0) | ||
| 8149 | defsubr (&Sx_gtk_debug); | 8152 | defsubr (&Sx_gtk_debug); |
| 8150 | #endif | 8153 | #endif |
| 8151 | #endif | 8154 | #endif |
| 8155 | #endif | ||
| 8152 | } | 8156 | } |