mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Merge from origin/emacs-28
1c3d107cb5
Fix "C-u C-x =" for SPC7e33618bbc
; * src/fns.c (Frequire): Fix a typo in the doc string. (...6908309827
Doc fixes: don't refer to some obsolete itemsdc3cb749f3
Remove obsolete cust-print from elisp index9ffbbddf8e
* admin/make-tarball.txt: Minor clarifications.f5421104e9
Fix external image conversion on MS-Windows6f22631a63
* doc/emacs/buffers.texi (Indirect Buffers): Mention modif... # Conflicts: # doc/emacs/buffers.texi # lisp/emacs-lisp/nadvice.el # lisp/image/image-converter.el
This commit is contained in:
commit
52c91122ee
@ -15,8 +15,8 @@ Steps to take before starting on the first pretest in any release sequence:
|
||||
2. Consider increasing the value of the variable
|
||||
'customize-changed-options-previous-release' in cus-edit.el to
|
||||
refer to a newer version of Emacs. (This is now done when cutting
|
||||
the release branch, see admin/release-branch.txt.)
|
||||
Commit cus-edit.el if changed.
|
||||
the release branch, see admin/release-branch.txt, but it can't
|
||||
hurt to double check its value.) Commit cus-edit.el if changed.
|
||||
|
||||
3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest.
|
||||
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:
|
||||
|
||||
General steps (for each step, check for possible errors):
|
||||
|
||||
1. git pull # fetch from the repository
|
||||
git status # check for locally modified files
|
||||
1. git pull # fetch from the repository
|
||||
git status # check for locally modified files
|
||||
|
||||
Ensure that you have a clean, unmodified state.
|
||||
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):
|
||||
files will end up in the tarball. Otherwise, the *.eln files
|
||||
might not build correctly on the user's system.
|
||||
|
||||
./autogen.sh
|
||||
./configure --with-native-compilation && make
|
||||
|
||||
For a release (as opposed to pretest), delete any left-over "---"
|
||||
and "+++" markers from etc/NEWS, as well as the "Temporary note"
|
||||
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):
|
||||
https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
|
||||
https://ftp.gnu.org/gnu/emacs/ for a release.
|
||||
|
||||
Download them and check the signatures. Check they build.
|
||||
Download them and check the signatures and SHA1/SHA256 checksums.
|
||||
Check they build.
|
||||
|
||||
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
For a pretest, also bcc: platform-testers@gnu.org.
|
||||
@ -302,12 +306,20 @@ General steps (for each step, check for possible errors):
|
||||
|
||||
To create the included SHA1 and SHA256 checksums, run:
|
||||
|
||||
sha1sum emacs-NEW.tar.xz
|
||||
sha256sum emacs-NEW.tar.xz
|
||||
sha1sum emacs-NEW.tar.xz
|
||||
sha256sum emacs-NEW.tar.xz
|
||||
|
||||
You can optionally sign the announcement email, probably using the
|
||||
same PGP key that you used for signing the tarball.
|
||||
(Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign
|
||||
an email.)
|
||||
|
||||
12. After a release, update the Emacs pages as described below.
|
||||
|
||||
13. Bump the Emacs version on the release branch.
|
||||
13. After a release, bump the Emacs version on the release branch.
|
||||
There is no need to bump the version after a pretest; the version
|
||||
is bumped before the next pretest or release instead.
|
||||
|
||||
If the released version was XX.Y, use 'set-version' from
|
||||
admin/admin.el to bump the version on the release branch to
|
||||
XX.Y.50. Commit the changes.
|
||||
@ -315,8 +327,8 @@ General steps (for each step, check for possible errors):
|
||||
UPDATING THE EMACS WEB PAGES AFTER A RELEASE
|
||||
|
||||
As soon as possible after a release, the Emacs web pages at
|
||||
https://www.gnu.org/software/emacs/ should be updated. (See
|
||||
admin/notes/www for general information.)
|
||||
https://www.gnu.org/software/emacs/ should be updated.
|
||||
(See admin/notes/www for general information.)
|
||||
|
||||
The pages to update are:
|
||||
|
||||
@ -332,7 +344,7 @@ looks like this:
|
||||
|
||||
<div class="release-banner">
|
||||
<div class="container">
|
||||
<h2><em>Emacs 27.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
<h2><em>Emacs 28.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -474,7 +474,7 @@ THINGS TO DO
|
||||
definition.
|
||||
|
||||
Exceptions found so far: x-select-text and
|
||||
x-selection-value (old name: x-cut-buffer-or-selection-value).
|
||||
x-selection-value.
|
||||
|
||||
** Have a look at fatal_error_hook.
|
||||
|
||||
|
@ -616,10 +616,11 @@ select it in another window (@code{clone-indirect-buffer-other-window}).
|
||||
|
||||
The text of the indirect buffer is always identical to the text of its
|
||||
base buffer; changes made by editing either one are visible immediately
|
||||
in the other. But in all other respects, the indirect buffer and its
|
||||
in the other. ``Text'' here includes both the characters and their text
|
||||
properties. But in all other respects, the indirect buffer and its
|
||||
base buffer are completely separate. They can have different names,
|
||||
different values of point, different narrowing, different markers,
|
||||
different major modes, and different local variables.
|
||||
different overlays, different major modes, and different local variables.
|
||||
|
||||
An indirect buffer cannot visit a file, but its base buffer can. If
|
||||
you try to save the indirect buffer, that actually works by saving the
|
||||
@ -649,6 +650,14 @@ both using the minibuffer.
|
||||
When this hook runs, the newly created indirect buffer is the current
|
||||
buffer.
|
||||
|
||||
Note: When a modification is made to the text of a buffer, the
|
||||
modification hooks are run only in the base buffer, because most of
|
||||
the functions on those hooks are not prepared to work correctly in
|
||||
indirect buffers. So if you need a modification hook function in an
|
||||
indirect buffer, you need to manually add that function to the hook
|
||||
@emph{in the base buffer} and then make the function operate in the
|
||||
desired indirect buffer.
|
||||
|
||||
@node Buffer Convenience
|
||||
@section Convenience Features and Customization of Buffer Handling
|
||||
|
||||
|
@ -841,7 +841,6 @@ you continue execution, and recreated next time it is needed.
|
||||
|
||||
@cindex printing (Edebug)
|
||||
@cindex printing circular structures
|
||||
@pindex cust-print
|
||||
If an expression in your program produces a value containing circular
|
||||
list structure, you may get an error when Edebug attempts to print it.
|
||||
|
||||
|
@ -165,11 +165,11 @@ The buffer for that command is the previous current buffer."
|
||||
"Examine commands from variable `command-history' in a buffer.
|
||||
The number of commands listed is controlled by `list-command-history-max'.
|
||||
The command history is filtered by `list-command-history-filter' if non-nil.
|
||||
Use \\<command-history-map>\\[command-history-repeat] to repeat the command on the current line.
|
||||
Use \\<command-history-mode-map>\\[command-history-repeat] to repeat the command on the current line.
|
||||
|
||||
Otherwise much like Emacs-Lisp Mode except that there is no self-insertion
|
||||
and digits provide prefix arguments. Tab does not indent.
|
||||
\\{command-history-map}
|
||||
\\{command-history-mode-map}
|
||||
|
||||
This command always recompiles the Command History listing
|
||||
and runs the normal hook `command-history-hook'."
|
||||
|
@ -701,6 +701,7 @@ The character information includes:
|
||||
(looking-at-p "[ \t]+$")))
|
||||
'trailing-whitespace)
|
||||
((and nobreak-char-display char
|
||||
(> char 127)
|
||||
(eq (get-char-code-property char 'general-category) 'Zs))
|
||||
'nobreak-space)
|
||||
((and nobreak-char-display char
|
||||
|
@ -313,7 +313,7 @@ different, but `function-equal' will hopefully ignore those differences.")
|
||||
(defmacro add-function (how place function &optional props)
|
||||
;; TODO:
|
||||
;; - maybe let `how' specify some kind of predicate and use it
|
||||
;; to implement things like mode-local or eieio-defmethod.
|
||||
;; to implement things like mode-local or cl-defmethod.
|
||||
;; Of course, that only makes sense if the predicates of all advices can
|
||||
;; be combined and made more efficient.
|
||||
;; :before is like a normal add-hook on a normal hook.
|
||||
@ -352,7 +352,7 @@ is also interactive. There are 3 cases:
|
||||
(declare
|
||||
;;(indent 2)
|
||||
(debug (form [&or symbolp ("local" form) ("var" sexp) gv-place]
|
||||
form &optional form)))
|
||||
form &optional form)))
|
||||
`(advice--add-function ,how (gv-ref ,(advice--normalize-place place))
|
||||
,function ,props))
|
||||
|
||||
|
@ -244,20 +244,22 @@ Only suffixes that map to `image-mode' are returned."
|
||||
(cadr (split-string (symbol-name image-format) "/"))))
|
||||
|
||||
(defun image-converter--convert-magick (type source image-format)
|
||||
(let ((command (image-converter--value type :command)))
|
||||
(let ((command (image-converter--value type :command))
|
||||
(coding-system-for-read 'no-conversion))
|
||||
(unless (zerop (if image-format
|
||||
;; We have the image data in SOURCE.
|
||||
(progn
|
||||
(insert source)
|
||||
(apply #'call-process-region (point-min) (point-max)
|
||||
(car command) t t nil
|
||||
(append
|
||||
(cdr command)
|
||||
(list (format "%s:-"
|
||||
(image-converter--mime-type
|
||||
image-format))
|
||||
(let ((coding-system-for-write 'no-conversion))
|
||||
(apply #'call-process-region (point-min) (point-max)
|
||||
(car command) t t nil
|
||||
(append
|
||||
(cdr command)
|
||||
(list (format "%s:-"
|
||||
(image-converter--mime-type
|
||||
image-format))
|
||||
(concat image-convert-to-format
|
||||
":-")))))
|
||||
":-"))))))
|
||||
;; SOURCE is a file name.
|
||||
(apply #'call-process (car command)
|
||||
nil t nil
|
||||
@ -272,18 +274,20 @@ Only suffixes that map to `image-mode' are returned."
|
||||
(cl-defmethod image-converter--convert ((type (eql 'ffmpeg)) source
|
||||
image-format)
|
||||
"Convert using ffmpeg."
|
||||
(let ((command (image-converter--value type :command)))
|
||||
(let ((command (image-converter--value type :command))
|
||||
(coding-system-for-read 'no-conversion))
|
||||
(unless (zerop (if image-format
|
||||
(progn
|
||||
(insert source)
|
||||
(apply #'call-process-region
|
||||
(point-min) (point-max) (car command)
|
||||
t '(t nil) nil
|
||||
(append
|
||||
(cdr command)
|
||||
(list "-i" "-"
|
||||
"-c:v" image-convert-to-format
|
||||
"-f" "image2pipe" "-"))))
|
||||
(let ((coding-system-for-write 'no-conversion))
|
||||
(apply #'call-process-region
|
||||
(point-min) (point-max) (car command)
|
||||
t '(t nil) nil
|
||||
(append
|
||||
(cdr command)
|
||||
(list "-i" "-"
|
||||
"-c:v" image-convert-to-format
|
||||
"-f" "image2pipe" "-")))))
|
||||
(apply #'call-process
|
||||
(car command)
|
||||
nil '(t nil) nil
|
||||
|
@ -2074,7 +2074,7 @@ For use in `add-log-current-defun-function'."
|
||||
(re-search-forward "^[^ ]" nil t))
|
||||
(pcase-let ((`(,buf ,_line-offset ,pos ,src ,dst ,switched)
|
||||
(ignore-errors ;Signals errors in place of prompting.
|
||||
;; Use `noprompt' since this is used in which-func-mode
|
||||
;; Use `noprompt' since this is used in which-function-mode
|
||||
;; and such.
|
||||
(diff-find-source-location nil nil 'noprompt))))
|
||||
(when buf
|
||||
|
@ -3073,7 +3073,7 @@ dynamic module files, in that order; but the function will not try to
|
||||
load the file without any suffix. See `get-load-suffixes' for the
|
||||
complete list of suffixes.
|
||||
|
||||
To find the file, this function searches that directories in `load-path'.
|
||||
To find the file, this function searches the directories in `load-path'.
|
||||
|
||||
If the optional third argument NOERROR is non-nil, then, if
|
||||
the file is not found, the function returns nil instead of signaling
|
||||
|
Loading…
Reference in New Issue
Block a user