diff options
| author | Stefan Kangas | 2022-07-02 09:33:51 +0200 |
|---|---|---|
| committer | Stefan Kangas | 2022-07-02 09:33:51 +0200 |
| commit | 52c91122eecb0f679de46d539fc85b8e28599fe1 (patch) | |
| tree | 651f2838ae6bb4254ebf9c72e558d660515e8443 | |
| parent | 9dc0fdfdc14beb5d19b705b25bf01020df27541b (diff) | |
| parent | 1c3d107cb5367098d592b69d02beedd7aa9ded16 (diff) | |
| download | emacs-52c91122eecb0f679de46d539fc85b8e28599fe1.tar.gz emacs-52c91122eecb0f679de46d539fc85b8e28599fe1.zip | |
Merge from origin/emacs-28
1c3d107cb5 Fix "C-u C-x =" for SPC
7e33618bbc ; * src/fns.c (Frequire): Fix a typo in the doc string. (...
6908309827 Doc fixes: don't refer to some obsolete items
dc3cb749f3 Remove obsolete cust-print from elisp index
9ffbbddf8e * admin/make-tarball.txt: Minor clarifications.
f5421104e9 Fix external image conversion on MS-Windows
6f22631a63 * doc/emacs/buffers.texi (Indirect Buffers): Mention modif...
# Conflicts:
# doc/emacs/buffers.texi
# lisp/emacs-lisp/nadvice.el
# lisp/image/image-converter.el
| -rw-r--r-- | admin/make-tarball.txt | 34 | ||||
| -rw-r--r-- | admin/notes/multi-tty | 2 | ||||
| -rw-r--r-- | doc/emacs/buffers.texi | 13 | ||||
| -rw-r--r-- | doc/lispref/edebug.texi | 1 | ||||
| -rw-r--r-- | lisp/chistory.el | 4 | ||||
| -rw-r--r-- | lisp/descr-text.el | 1 | ||||
| -rw-r--r-- | lisp/emacs-lisp/nadvice.el | 4 | ||||
| -rw-r--r-- | lisp/image/image-converter.el | 40 | ||||
| -rw-r--r-- | lisp/vc/diff-mode.el | 2 | ||||
| -rw-r--r-- | src/fns.c | 2 |
10 files changed, 64 insertions, 39 deletions
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 98001e24e7d..6990f27bfa0 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt | |||
| @@ -15,8 +15,8 @@ Steps to take before starting on the first pretest in any release sequence: | |||
| 15 | 2. Consider increasing the value of the variable | 15 | 2. Consider increasing the value of the variable |
| 16 | 'customize-changed-options-previous-release' in cus-edit.el to | 16 | 'customize-changed-options-previous-release' in cus-edit.el to |
| 17 | refer to a newer version of Emacs. (This is now done when cutting | 17 | refer to a newer version of Emacs. (This is now done when cutting |
| 18 | the release branch, see admin/release-branch.txt.) | 18 | the release branch, see admin/release-branch.txt, but it can't |
| 19 | Commit cus-edit.el if changed. | 19 | hurt to double check its value.) Commit cus-edit.el if changed. |
| 20 | 20 | ||
| 21 | 3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest. | 21 | 3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest. |
| 22 | You can use 'gnupload --delete' (see below for more gnupload details). | 22 | You can use 'gnupload --delete' (see below for more gnupload details). |
| @@ -24,8 +24,8 @@ Steps to take before starting on the first pretest in any release sequence: | |||
| 24 | 24 | ||
| 25 | General steps (for each step, check for possible errors): | 25 | General steps (for each step, check for possible errors): |
| 26 | 26 | ||
| 27 | 1. git pull # fetch from the repository | 27 | 1. git pull # fetch from the repository |
| 28 | git status # check for locally modified files | 28 | git status # check for locally modified files |
| 29 | 29 | ||
| 30 | Ensure that you have a clean, unmodified state. | 30 | Ensure that you have a clean, unmodified state. |
| 31 | If you switched in-place from another branch to the release branch, | 31 | If you switched in-place from another branch to the release branch, |
| @@ -49,6 +49,9 @@ General steps (for each step, check for possible errors): | |||
| 49 | files will end up in the tarball. Otherwise, the *.eln files | 49 | files will end up in the tarball. Otherwise, the *.eln files |
| 50 | might not build correctly on the user's system. | 50 | might not build correctly on the user's system. |
| 51 | 51 | ||
| 52 | ./autogen.sh | ||
| 53 | ./configure --with-native-compilation && make | ||
| 54 | |||
| 52 | For a release (as opposed to pretest), delete any left-over "---" | 55 | For a release (as opposed to pretest), delete any left-over "---" |
| 53 | and "+++" markers from etc/NEWS, as well as the "Temporary note" | 56 | and "+++" markers from etc/NEWS, as well as the "Temporary note" |
| 54 | section at the beginning of that file, and commit etc/NEWS if it | 57 | section at the beginning of that file, and commit etc/NEWS if it |
| @@ -284,7 +287,8 @@ General steps (for each step, check for possible errors): | |||
| 284 | https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or | 287 | https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or |
| 285 | https://ftp.gnu.org/gnu/emacs/ for a release. | 288 | https://ftp.gnu.org/gnu/emacs/ for a release. |
| 286 | 289 | ||
| 287 | Download them and check the signatures. Check they build. | 290 | Download them and check the signatures and SHA1/SHA256 checksums. |
| 291 | Check they build. | ||
| 288 | 292 | ||
| 289 | 11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. | 293 | 11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. |
| 290 | For a pretest, also bcc: platform-testers@gnu.org. | 294 | For a pretest, also bcc: platform-testers@gnu.org. |
| @@ -302,12 +306,20 @@ General steps (for each step, check for possible errors): | |||
| 302 | 306 | ||
| 303 | To create the included SHA1 and SHA256 checksums, run: | 307 | To create the included SHA1 and SHA256 checksums, run: |
| 304 | 308 | ||
| 305 | sha1sum emacs-NEW.tar.xz | 309 | sha1sum emacs-NEW.tar.xz |
| 306 | sha256sum emacs-NEW.tar.xz | 310 | sha256sum emacs-NEW.tar.xz |
| 311 | |||
| 312 | You can optionally sign the announcement email, probably using the | ||
| 313 | same PGP key that you used for signing the tarball. | ||
| 314 | (Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign | ||
| 315 | an email.) | ||
| 307 | 316 | ||
| 308 | 12. After a release, update the Emacs pages as described below. | 317 | 12. After a release, update the Emacs pages as described below. |
| 309 | 318 | ||
| 310 | 13. Bump the Emacs version on the release branch. | 319 | 13. After a release, bump the Emacs version on the release branch. |
| 320 | There is no need to bump the version after a pretest; the version | ||
| 321 | is bumped before the next pretest or release instead. | ||
| 322 | |||
| 311 | If the released version was XX.Y, use 'set-version' from | 323 | If the released version was XX.Y, use 'set-version' from |
| 312 | admin/admin.el to bump the version on the release branch to | 324 | admin/admin.el to bump the version on the release branch to |
| 313 | XX.Y.50. Commit the changes. | 325 | XX.Y.50. Commit the changes. |
| @@ -315,8 +327,8 @@ General steps (for each step, check for possible errors): | |||
| 315 | UPDATING THE EMACS WEB PAGES AFTER A RELEASE | 327 | UPDATING THE EMACS WEB PAGES AFTER A RELEASE |
| 316 | 328 | ||
| 317 | As soon as possible after a release, the Emacs web pages at | 329 | As soon as possible after a release, the Emacs web pages at |
| 318 | https://www.gnu.org/software/emacs/ should be updated. (See | 330 | https://www.gnu.org/software/emacs/ should be updated. |
| 319 | admin/notes/www for general information.) | 331 | (See admin/notes/www for general information.) |
| 320 | 332 | ||
| 321 | The pages to update are: | 333 | The pages to update are: |
| 322 | 334 | ||
| @@ -332,7 +344,7 @@ looks like this: | |||
| 332 | 344 | ||
| 333 | <div class="release-banner"> | 345 | <div class="release-banner"> |
| 334 | <div class="container"> | 346 | <div class="container"> |
| 335 | <h2><em>Emacs 27.1 is out</em>, download it <a href="download.html">here</a>!</h2> | 347 | <h2><em>Emacs 28.1 is out</em>, download it <a href="download.html">here</a>!</h2> |
| 336 | </div> | 348 | </div> |
| 337 | </div> | 349 | </div> |
| 338 | 350 | ||
diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty index 9b3f1606a1b..84bc1b77d4e 100644 --- a/admin/notes/multi-tty +++ b/admin/notes/multi-tty | |||
| @@ -474,7 +474,7 @@ THINGS TO DO | |||
| 474 | definition. | 474 | definition. |
| 475 | 475 | ||
| 476 | Exceptions found so far: x-select-text and | 476 | Exceptions found so far: x-select-text and |
| 477 | x-selection-value (old name: x-cut-buffer-or-selection-value). | 477 | x-selection-value. |
| 478 | 478 | ||
| 479 | ** Have a look at fatal_error_hook. | 479 | ** Have a look at fatal_error_hook. |
| 480 | 480 | ||
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index 94e9d2760ec..120c957ff86 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi | |||
| @@ -616,10 +616,11 @@ select it in another window (@code{clone-indirect-buffer-other-window}). | |||
| 616 | 616 | ||
| 617 | The text of the indirect buffer is always identical to the text of its | 617 | The text of the indirect buffer is always identical to the text of its |
| 618 | base buffer; changes made by editing either one are visible immediately | 618 | base buffer; changes made by editing either one are visible immediately |
| 619 | in the other. But in all other respects, the indirect buffer and its | 619 | in the other. ``Text'' here includes both the characters and their text |
| 620 | properties. But in all other respects, the indirect buffer and its | ||
| 620 | base buffer are completely separate. They can have different names, | 621 | base buffer are completely separate. They can have different names, |
| 621 | different values of point, different narrowing, different markers, | 622 | different values of point, different narrowing, different markers, |
| 622 | different major modes, and different local variables. | 623 | different overlays, different major modes, and different local variables. |
| 623 | 624 | ||
| 624 | An indirect buffer cannot visit a file, but its base buffer can. If | 625 | An indirect buffer cannot visit a file, but its base buffer can. If |
| 625 | you try to save the indirect buffer, that actually works by saving the | 626 | you try to save the indirect buffer, that actually works by saving the |
| @@ -649,6 +650,14 @@ both using the minibuffer. | |||
| 649 | When this hook runs, the newly created indirect buffer is the current | 650 | When this hook runs, the newly created indirect buffer is the current |
| 650 | buffer. | 651 | buffer. |
| 651 | 652 | ||
| 653 | Note: When a modification is made to the text of a buffer, the | ||
| 654 | modification hooks are run only in the base buffer, because most of | ||
| 655 | the functions on those hooks are not prepared to work correctly in | ||
| 656 | indirect buffers. So if you need a modification hook function in an | ||
| 657 | indirect buffer, you need to manually add that function to the hook | ||
| 658 | @emph{in the base buffer} and then make the function operate in the | ||
| 659 | desired indirect buffer. | ||
| 660 | |||
| 652 | @node Buffer Convenience | 661 | @node Buffer Convenience |
| 653 | @section Convenience Features and Customization of Buffer Handling | 662 | @section Convenience Features and Customization of Buffer Handling |
| 654 | 663 | ||
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 622578bcf1c..56f7b7bdfad 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi | |||
| @@ -841,7 +841,6 @@ you continue execution, and recreated next time it is needed. | |||
| 841 | 841 | ||
| 842 | @cindex printing (Edebug) | 842 | @cindex printing (Edebug) |
| 843 | @cindex printing circular structures | 843 | @cindex printing circular structures |
| 844 | @pindex cust-print | ||
| 845 | If an expression in your program produces a value containing circular | 844 | If an expression in your program produces a value containing circular |
| 846 | list structure, you may get an error when Edebug attempts to print it. | 845 | list structure, you may get an error when Edebug attempts to print it. |
| 847 | 846 | ||
diff --git a/lisp/chistory.el b/lisp/chistory.el index dd0f4997433..33b21422114 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el | |||
| @@ -165,11 +165,11 @@ The buffer for that command is the previous current buffer." | |||
| 165 | "Examine commands from variable `command-history' in a buffer. | 165 | "Examine commands from variable `command-history' in a buffer. |
| 166 | The number of commands listed is controlled by `list-command-history-max'. | 166 | The number of commands listed is controlled by `list-command-history-max'. |
| 167 | The command history is filtered by `list-command-history-filter' if non-nil. | 167 | The command history is filtered by `list-command-history-filter' if non-nil. |
| 168 | Use \\<command-history-map>\\[command-history-repeat] to repeat the command on the current line. | 168 | Use \\<command-history-mode-map>\\[command-history-repeat] to repeat the command on the current line. |
| 169 | 169 | ||
| 170 | Otherwise much like Emacs-Lisp Mode except that there is no self-insertion | 170 | Otherwise much like Emacs-Lisp Mode except that there is no self-insertion |
| 171 | and digits provide prefix arguments. Tab does not indent. | 171 | and digits provide prefix arguments. Tab does not indent. |
| 172 | \\{command-history-map} | 172 | \\{command-history-mode-map} |
| 173 | 173 | ||
| 174 | This command always recompiles the Command History listing | 174 | This command always recompiles the Command History listing |
| 175 | and runs the normal hook `command-history-hook'." | 175 | and runs the normal hook `command-history-hook'." |
diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 0f01ad676ae..16971aa6611 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el | |||
| @@ -701,6 +701,7 @@ The character information includes: | |||
| 701 | (looking-at-p "[ \t]+$"))) | 701 | (looking-at-p "[ \t]+$"))) |
| 702 | 'trailing-whitespace) | 702 | 'trailing-whitespace) |
| 703 | ((and nobreak-char-display char | 703 | ((and nobreak-char-display char |
| 704 | (> char 127) | ||
| 704 | (eq (get-char-code-property char 'general-category) 'Zs)) | 705 | (eq (get-char-code-property char 'general-category) 'Zs)) |
| 705 | 'nobreak-space) | 706 | 'nobreak-space) |
| 706 | ((and nobreak-char-display char | 707 | ((and nobreak-char-display char |
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index 00c9e5438b8..2d5a1b5e77b 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el | |||
| @@ -313,7 +313,7 @@ different, but `function-equal' will hopefully ignore those differences.") | |||
| 313 | (defmacro add-function (how place function &optional props) | 313 | (defmacro add-function (how place function &optional props) |
| 314 | ;; TODO: | 314 | ;; TODO: |
| 315 | ;; - maybe let `how' specify some kind of predicate and use it | 315 | ;; - maybe let `how' specify some kind of predicate and use it |
| 316 | ;; to implement things like mode-local or eieio-defmethod. | 316 | ;; to implement things like mode-local or cl-defmethod. |
| 317 | ;; Of course, that only makes sense if the predicates of all advices can | 317 | ;; Of course, that only makes sense if the predicates of all advices can |
| 318 | ;; be combined and made more efficient. | 318 | ;; be combined and made more efficient. |
| 319 | ;; :before is like a normal add-hook on a normal hook. | 319 | ;; :before is like a normal add-hook on a normal hook. |
| @@ -352,7 +352,7 @@ is also interactive. There are 3 cases: | |||
| 352 | (declare | 352 | (declare |
| 353 | ;;(indent 2) | 353 | ;;(indent 2) |
| 354 | (debug (form [&or symbolp ("local" form) ("var" sexp) gv-place] | 354 | (debug (form [&or symbolp ("local" form) ("var" sexp) gv-place] |
| 355 | form &optional form))) | 355 | form &optional form))) |
| 356 | `(advice--add-function ,how (gv-ref ,(advice--normalize-place place)) | 356 | `(advice--add-function ,how (gv-ref ,(advice--normalize-place place)) |
| 357 | ,function ,props)) | 357 | ,function ,props)) |
| 358 | 358 | ||
diff --git a/lisp/image/image-converter.el b/lisp/image/image-converter.el index 9440c623f90..9ce46f01a33 100644 --- a/lisp/image/image-converter.el +++ b/lisp/image/image-converter.el | |||
| @@ -244,20 +244,22 @@ Only suffixes that map to `image-mode' are returned." | |||
| 244 | (cadr (split-string (symbol-name image-format) "/")))) | 244 | (cadr (split-string (symbol-name image-format) "/")))) |
| 245 | 245 | ||
| 246 | (defun image-converter--convert-magick (type source image-format) | 246 | (defun image-converter--convert-magick (type source image-format) |
| 247 | (let ((command (image-converter--value type :command))) | 247 | (let ((command (image-converter--value type :command)) |
| 248 | (coding-system-for-read 'no-conversion)) | ||
| 248 | (unless (zerop (if image-format | 249 | (unless (zerop (if image-format |
| 249 | ;; We have the image data in SOURCE. | 250 | ;; We have the image data in SOURCE. |
| 250 | (progn | 251 | (progn |
| 251 | (insert source) | 252 | (insert source) |
| 252 | (apply #'call-process-region (point-min) (point-max) | 253 | (let ((coding-system-for-write 'no-conversion)) |
| 253 | (car command) t t nil | 254 | (apply #'call-process-region (point-min) (point-max) |
| 254 | (append | 255 | (car command) t t nil |
| 255 | (cdr command) | 256 | (append |
| 256 | (list (format "%s:-" | 257 | (cdr command) |
| 257 | (image-converter--mime-type | 258 | (list (format "%s:-" |
| 258 | image-format)) | 259 | (image-converter--mime-type |
| 260 | image-format)) | ||
| 259 | (concat image-convert-to-format | 261 | (concat image-convert-to-format |
| 260 | ":-"))))) | 262 | ":-")))))) |
| 261 | ;; SOURCE is a file name. | 263 | ;; SOURCE is a file name. |
| 262 | (apply #'call-process (car command) | 264 | (apply #'call-process (car command) |
| 263 | nil t nil | 265 | nil t nil |
| @@ -272,18 +274,20 @@ Only suffixes that map to `image-mode' are returned." | |||
| 272 | (cl-defmethod image-converter--convert ((type (eql 'ffmpeg)) source | 274 | (cl-defmethod image-converter--convert ((type (eql 'ffmpeg)) source |
| 273 | image-format) | 275 | image-format) |
| 274 | "Convert using ffmpeg." | 276 | "Convert using ffmpeg." |
| 275 | (let ((command (image-converter--value type :command))) | 277 | (let ((command (image-converter--value type :command)) |
| 278 | (coding-system-for-read 'no-conversion)) | ||
| 276 | (unless (zerop (if image-format | 279 | (unless (zerop (if image-format |
| 277 | (progn | 280 | (progn |
| 278 | (insert source) | 281 | (insert source) |
| 279 | (apply #'call-process-region | 282 | (let ((coding-system-for-write 'no-conversion)) |
| 280 | (point-min) (point-max) (car command) | 283 | (apply #'call-process-region |
| 281 | t '(t nil) nil | 284 | (point-min) (point-max) (car command) |
| 282 | (append | 285 | t '(t nil) nil |
| 283 | (cdr command) | 286 | (append |
| 284 | (list "-i" "-" | 287 | (cdr command) |
| 285 | "-c:v" image-convert-to-format | 288 | (list "-i" "-" |
| 286 | "-f" "image2pipe" "-")))) | 289 | "-c:v" image-convert-to-format |
| 290 | "-f" "image2pipe" "-"))))) | ||
| 287 | (apply #'call-process | 291 | (apply #'call-process |
| 288 | (car command) | 292 | (car command) |
| 289 | nil '(t nil) nil | 293 | nil '(t nil) nil |
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 3f3e503a3f3..30ba4153a9e 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el | |||
| @@ -2074,7 +2074,7 @@ For use in `add-log-current-defun-function'." | |||
| 2074 | (re-search-forward "^[^ ]" nil t)) | 2074 | (re-search-forward "^[^ ]" nil t)) |
| 2075 | (pcase-let ((`(,buf ,_line-offset ,pos ,src ,dst ,switched) | 2075 | (pcase-let ((`(,buf ,_line-offset ,pos ,src ,dst ,switched) |
| 2076 | (ignore-errors ;Signals errors in place of prompting. | 2076 | (ignore-errors ;Signals errors in place of prompting. |
| 2077 | ;; Use `noprompt' since this is used in which-func-mode | 2077 | ;; Use `noprompt' since this is used in which-function-mode |
| 2078 | ;; and such. | 2078 | ;; and such. |
| 2079 | (diff-find-source-location nil nil 'noprompt)))) | 2079 | (diff-find-source-location nil nil 'noprompt)))) |
| 2080 | (when buf | 2080 | (when buf |
| @@ -3073,7 +3073,7 @@ dynamic module files, in that order; but the function will not try to | |||
| 3073 | load the file without any suffix. See `get-load-suffixes' for the | 3073 | load the file without any suffix. See `get-load-suffixes' for the |
| 3074 | complete list of suffixes. | 3074 | complete list of suffixes. |
| 3075 | 3075 | ||
| 3076 | To find the file, this function searches that directories in `load-path'. | 3076 | To find the file, this function searches the directories in `load-path'. |
| 3077 | 3077 | ||
| 3078 | If the optional third argument NOERROR is non-nil, then, if | 3078 | If the optional third argument NOERROR is non-nil, then, if |
| 3079 | the file is not found, the function returns nil instead of signaling | 3079 | the file is not found, the function returns nil instead of signaling |