[-]
[+]
|
Changed |
_service:tar_git:emacs.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,6 +2,6 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos-chum/emacs.git</param>
<param name="branch">master</param>
- <param name="revision">28.1.0</param>
+ <param name="revision">28.2.0</param>
</service>
</services>
\ No newline at end of file
|
[-]
[+]
|
Deleted |
_service:tar_git:emacs-28.1.0.tar.xz/emacs/test/src/comp-resources/comp-test-45603.el
^
|
@@ -1,28 +0,0 @@
-;;; -*- lexical-binding: t; -*-
-
-;; Reduced from ivy.el.
-
-(defvar comp-test-45603-last)
-(defvar comp-test-45603-mark-prefix)
-(defvar comp-test-45603-directory)
-(defvar comp-test-45603-marked-candidates)
-
-(defun comp-test-45603--call-marked (action)
- (let* ((prefix-len (length comp-test-45603-mark-prefix))
- (marked-candidates
- (mapcar
- (lambda (s)
- (let ((cand (substring s prefix-len)))
- (if comp-test-45603-directory
- (expand-file-name cand comp-test-45603-directory)
- cand)))
- comp-test-45603-marked-candidates))
- (multi-action (comp-test-45603--get-multi-action comp-test-45603-last)))))
-
-(defalias 'comp-test-45603--file-local-name
- (if (fboundp 'file-local-name)
- #'file-local-name
- (lambda (file)
- (or (file-remote-p file 'localname) file))))
-
-(provide 'comp-test-45603)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/ChangeLog.2
^
|
@@ -4040,7 +4040,7 @@
* lisp/progmodes/xref.el (xref--query-replace-1):
Say 'All results processed' at the end if the user hadn't
- cancelled the process (bug#23284).
+ canceled the process (bug#23284).
2016-05-07 Eli Zaretskii <eliz@gnu.org>
@@ -12542,7 +12542,7 @@
* lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks
for existing timers in the alist before adding new ones. If a
- timer already exists, it is cancelled and
+ timer already exists, it is canceled and
overwritten. (bug#19292).
2015-12-27 Jens Lechtenboerger <jens.lechtenboerger@fsfe.org>
@@ -22108,7 +22108,7 @@
* src/gfilenotify.c (dir_monitor_callback): Cancel the monitor if
the file or directory to be watched is deleted.
(Fgfile_add_watch): Make watch_object a triple.
- (Fgfile_rm_watch): Check, whether watch is cancelled already.
+ (Fgfile_rm_watch): Check, whether watch is canceled already.
(Fgfile_valid_p): New defun.
(syms_of_gfilenotify): Declare Sgfile_valid_p.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/ChangeLog.3
^
|
@@ -1,3 +1,1944 @@
+2022-09-06 Stefan Kangas <stefankangas@gmail.com>
+
+ * doc/misc/idlwave.texi (Troubleshooting): Don't say "Emacsen".
+
+2022-09-06 Stefan Kangas <stefankangas@gmail.com>
+
+ Don't mention very old Emacs versions in docs
+
+ * doc/misc/mh-e.texi (Conventions):
+ * doc/misc/reftex.texi (Problems and Work-Arounds):
+ * doc/misc/viper.texi (Loading Viper): Delete references to
+ very old versions of Emacs.
+
+2022-09-05 Stefan Kangas <stefankangas@gmail.com>
+
+ * lisp/server.el: Improve Commentary.
+
+2022-09-05 Gregory Heytings <gregory@heytings.org>
+
+ Explain how the font appearance can be fine-tuned in fbterm.
+
+ * doc/misc/efaq.texi (Emacs in a Linux console): Briefly document
+ Xft font specifications with which the font appearance can be
+ fine-tuned.
+
+2022-09-04 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.5
+
+2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail more gracefully
+
+ Otherwise Emacs may fail to start if it can't find a writable
+ `~/.emacs.d/eln-cache` directory.
+ Fixes bug#57562. See also Debian's bug #1017739.
+
+2022-09-03 Stefan Kangas <stefankangas@gmail.com>
+
+ Update acknowledgments
+
+ * doc/emacs/ack.texi (Acknowledgments): Update.
+ * doc/emacs/emacs.texi (Acknowledgments): Add several names from
+ Author: headers.
+
+2022-09-01 Stefan Kangas <stefankangas@gmail.com>
+
+ Make some versions in docs match package version
+
+ * doc/emacs/misc.texi (Interactive Shell): Bump Emacs version.
+ * doc/misc/ediff.texi:
+ * doc/misc/flymake.texi:
+ * doc/misc/viper.texi: Fix version to match package.
+ * lisp/emulation/viper.el: Make version match variable.
+
+2022-09-01 Stefan Kangas <stefankangas@gmail.com>
+
+ Minor doc fix; improve sorting of VC backends
+
+ * doc/emacs/maintaining.texi (Version Control Systems): Minor doc fix;
+ rearrange list to put git, cvs and subversion at the top.
+
+2022-09-01 Eli Zaretskii <eliz@gnu.org>
+
+ Clarify the doc string of 'set-face-attribute'
+
+ * lisp/faces.el (set-face-attribute): Clarify the issue with
+ resetting attribute values to 'unspecified' for future frames.
+ (Bug#57499)
+
+2022-08-30 Gregory Heytings <gregory@heytings.org>
+
+ Enable 256 colors in fbterm.
+
+ * lisp/term/fbterm.el: New file.
+
+ * doc/misc/efaq.texi (Emacs in a Linux console): Document the TERM
+ environment variable with which the new file is used.
+
+2022-08-30 Eli Zaretskii <eliz@gnu.org>
+
+ One more fix for find-file.el
+
+ * lisp/find-file.el (ff-get-file-name): Use 'expand-file-name'
+ instead of 'concat', which doesn't DTRT with absolute file names.
+ (ff-other-file-alist): Yet another doc fix. (Bug#57325)
+
+2022-08-29 Gregory Heytings <gregory@heytings.org>
+
+ Recommend using fbterm in the Linux console.
+
+ * doc/misc/efaq.texi (Emacs in a Linux console): New node.
+ (Common requests): Entry for the new node.
+
+ * etc/PROBLEMS (Linux console problems...): Mention the new FAQ node.
+
+2022-08-29 Eli Zaretskii <eliz@gnu.org>
+
+ * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325)
+
+2022-08-28 Eli Zaretskii <eliz@gnu.org>
+
+ * lisp/info.el (Info-mode): Support the Linux console better.
+
+2022-08-28 Eli Zaretskii <eliz@gnu.org>
+
+ Improve the documentation of glyphless-character display
+
+ * lisp/international/characters.el (glyphless-char-display-control):
+ * src/xdisp.c (syms_of_xdisp) <glyphless-char-display>: Mention
+ the 'glyphless-char' face in the doc string.
+
+ * doc/lispref/display.texi (Glyphless Chars): Index
+ 'glyphless-char' face.
+
+2022-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ Fix documentation of 'glyphless-char-display'
+
+ * src/xdisp.c (syms_of_xdisp)<glyphless-char-display>: Doc fix.
+ (gui_produce_glyphs, lookup_glyphless_char_display): Fix
+ indentation.
+
+2022-08-25 Robert Pluim <rpluim@gmail.com>
+
+ Treat smtp-auth method from auth-info as a symbol
+
+ The lookup of the SMTP auth method is done based on symbols, but
+ sometimes the requested value comes from `auth-info', in which case it
+ is a string, so call `intern-soft' to convert it to a symbol (which
+ does nothing if it's already a symbol).
+
+ * lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call
+ `intern-soft' on the smtp-auth key's value. (Bug#57373)
+
+ Do not merge to master
+
+2022-08-25 Stefan Kangas <stefankangas@gmail.com>
+
+ * lisp/wdired.el: Improve "Commentary" section.
+
+ * lisp/wdired.el: Doc fix; don't mention obsolete variable.
+
+ * lisp/progmodes/etags.el (next-file): Minor doc fix.
+
+2022-08-25 Andreas Schwab <schwab@suse.de>
+
+ * configure.ac: Move AC_LANG_PUSH/POP out of AC_CACHE_CHECK. (Bug#57380)
+
+ (cherry picked from commit ce82300221f270241fdda1f5dfb567bdb1208543)
+
+2022-08-21 Kyle Meyer <kyle@kyleam.com>
+
+ Update to Org 9.5.4-19-g4dff42
+
+2022-08-21 Eli Zaretskii <eliz@gnu.org>
+
+ * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325)
+
+2022-08-19 Stefan Kangas <stefankangas@gmail.com>
+
+ Resurrect obsoletion warning for two functions
+
+ These were supposed to have been deleted, but never were. Resurrect
+ their obsoletion warning and let's delete them in Emacs 29 instead.
+
+ * lisp/subr.el (process-filter-multibyte-p)
+ (set-process-filter-multibyte): Resurrect obsoletion warning.
+ * etc/NEWS: Don't announce their deletion.
+
+2022-08-19 Alan Mackenzie <acm@muc.de>
+
+ * src/window.c (select_window): Fix assert for buffer = non-active minibuffer
+
+2022-08-19 Gerd Möllmann <gerd@gnu.org>
+
+ Find libgccjit on macOS with Homebrew differently
+
+ * configure.ac (MAC_LIBS): Find libgccjit's directory slightly
+ differently for brew installations.
+
+2022-08-18 Stefan Kangas <stefankangas@gmail.com>
+
+ Improve image-mode-as-hex docstring
+
+ * lisp/image-mode.el: Fix typos.
+ (image-mode-as-hex): Doc fix; say that it uses 'hexl-mode' and reflow.
+
+2022-08-18 Stefan Kangas <stefankangas@gmail.com>
+
+ * lisp/image-mode.el (image-mode-as-hex): Fix toggle instructions.
+
+ * lisp/image-mode.el: Improve commentary.
+
+2022-08-18 Colin Woodbury <colin@fosskers.ca>
+
+ cl-reduce doc string improvement
+
+ * lisp/emacs-lisp/cl-seq.el (cl-reduce): Explain what happens when
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/README
^
|
@@ -2,7 +2,7 @@
See the end of the file for license conditions.
-This directory tree holds version 28.1 of GNU Emacs, the extensible,
+This directory tree holds version 28.2 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/admin.el
^
|
@@ -340,11 +340,13 @@
\"https://www.w3.org/TR/html4/loose.dtd\">\n\n")
(defconst manual-meta-string
- "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
-<link rev=\"made\" href=\"mailto:bug-gnu-emacs@gnu.org\">
+ "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n")
+
+(defconst manual-links-string
+ "<link rev=\"made\" href=\"mailto:bug-gnu-emacs@gnu.org\">
<link rel=\"icon\" type=\"image/png\" href=\"/graphics/gnu-head-mini.png\">
<meta name=\"ICBM\" content=\"42.256233,-71.006581\">
-<meta name=\"DC.title\" content=\"gnu.org\">\n\n")
+<meta name=\"DC.title\" content=\"gnu.org\">\n")
(defconst manual-style-string "<style type=\"text/css\">
@import url('/software/emacs/manual.css');\n</style>\n")
@@ -475,6 +477,13 @@
(delete-region opoint (point))
(search-forward "<meta http-equiv=\"Content-Style")
(setq opoint (match-beginning 0)))
+ (search-forward "<title>")
+ (delete-region opoint (match-beginning 0))
+ (search-forward "</title>\n")
+ (when (search-forward "<link href=" nil t)
+ (goto-char (match-beginning 0)))
+ (insert manual-links-string)
+ (setq opoint (point))
(search-forward "</head>")
(goto-char (match-beginning 0))
(delete-region opoint (point))
@@ -591,76 +600,81 @@
(forward-line 1)
(setq done t)))))
(let (done open-td tag desc)
- ;; Convert the list that Makeinfo made into a table.
- (or (search-forward "<ul class=\"menu\">" nil t)
- ;; FIXME? The following search seems dangerously lax.
- (search-forward "<ul>"))
- (replace-match "<table style=\"float:left\" width=\"100%\">")
- (forward-line 1)
- (while (not done)
- (cond
- ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
- (looking-at "<li>\\(<a.+</a>\\)$"))
- (setq tag (match-string 1))
- (setq desc (match-string 2))
- (replace-match "" t t)
- (when open-td
- (save-excursion
- (forward-char -1)
- (skip-chars-backward " ")
- (delete-region (point) (line-end-position))
- (insert "</td>\n </tr>")))
- (insert " <tr>\n ")
- (if table-workaround
- ;; This works around a Firefox bug in the mono file.
- (insert "<td bgcolor=\"white\">")
- (insert "<td>"))
- (insert tag "</td>\n <td>" (or desc ""))
- (setq open-td t))
- ((eq (char-after) ?\n)
- (delete-char 1)
- ;; Negate the following `forward-line'.
- (forward-line -1))
- ((looking-at "<!-- ")
- (search-forward "-->"))
- ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
- (replace-match " </td></tr></table>\n
+ ;; Texinfo 6.8 and later doesn't produce <ul class="menu"> lists
+ ;; for the TOC menu, and the "description" part of each menu
+ ;; item is not there anymore. So for HTML manuals produced by
+ ;; those newer versions of Texinfo we punt and leave the menu in
+ ;; its original form.
+ (when (or (search-forward "<ul class=\"menu\">" nil t)
+ ;; FIXME? The following search seems dangerously lax.
+ (search-forward "<ul>" nil t))
+ ;; Convert the list that Makeinfo made into a table.
+ (replace-match "<table style=\"float:left\" width=\"100%\">")
+ (forward-line 1)
+ (while (not done)
+ (cond
+ ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
+ (looking-at "<li>\\(<a.+</a>\\)$"))
+ (setq tag (match-string 1))
+ (setq desc (match-string 2))
+ (replace-match "" t t)
+ (when open-td
+ (save-excursion
+ (forward-char -1)
+ (skip-chars-backward " ")
+ (delete-region (point) (line-end-position))
+ (insert "</td>\n </tr>")))
+ (insert " <tr>\n ")
+ (if table-workaround
+ ;; This works around a Firefox bug in the mono file.
+ (insert "<td bgcolor=\"white\">")
+ (insert "<td>"))
+ (insert tag "</td>\n <td>" (or desc ""))
+ (setq open-td t))
+ ((eq (char-after) ?\n)
+ (delete-char 1)
+ ;; Negate the following `forward-line'.
+ (forward-line -1))
+ ((looking-at "<!-- ")
+ (search-forward "-->"))
+ ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
+ (replace-match " </td></tr></table>\n
<h3>Detailed Node Listing</h3>\n\n" t t)
- (search-forward "<p>")
- ;; FIXME Fragile!
- ;; The Emacs and Elisp manual have some text at the
- ;; start of the detailed menu that is not part of the menu.
- ;; Other manuals do not.
- (if (looking-at "Here are some other nodes")
- (search-forward "<p>"))
- (goto-char (match-beginning 0))
- (skip-chars-backward "\n ")
- (setq open-td nil)
- (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
- ((looking-at "</li></ul>")
- (replace-match "" t t))
- ((looking-at "<p>")
- (replace-match "" t t)
- (when open-td
- (insert " </td></tr>")
- (setq open-td nil))
- (insert " <tr>
+ (search-forward "<p>")
+ ;; FIXME Fragile!
+ ;; The Emacs and Elisp manual have some text at the
+ ;; start of the detailed menu that is not part of the menu.
+ ;; Other manuals do not.
+ (if (looking-at "Here are some other nodes")
+ (search-forward "<p>"))
+ (goto-char (match-beginning 0))
+ (skip-chars-backward "\n ")
+ (setq open-td nil)
+ (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
+ ((looking-at "</li></ul>")
+ (replace-match "" t t))
+ ((looking-at "<p>")
+ (replace-match "" t t)
+ (when open-td
+ (insert " </td></tr>")
+ (setq open-td nil))
+ (insert " <tr>
<th colspan=\"2\" align=\"left\" style=\"text-align:left\">")
- (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
- (replace-match " </th></tr>")))
- ((looking-at "[ \t]*</ul>[ \t]*$")
- (replace-match
- (if open-td
- " </td></tr>\n</table>"
- "</table>") t t)
- (setq done t))
- (t
- (if (eobp)
- (error "Parse error in %s"
- (file-name-nondirectory buffer-file-name)))
- (unless open-td
- (setq done t))))
- (forward-line 1)))))
+ (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
+ (replace-match " </th></tr>")))
+ ((looking-at "[ \t]*</ul>[ \t]*$")
+ (replace-match
+ (if open-td
+ " </td></tr>\n</table>"
+ "</table>") t t)
+ (setq done t))
+ (t
+ (if (eobp)
+ (error "Parse error in %s"
+ (file-name-nondirectory buffer-file-name)))
+ (unless open-td
+ (setq done t))))
+ (forward-line 1))))))

(defconst make-manuals-dist-output-variables
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/authors.el
^
|
@@ -163,6 +163,7 @@
("Michael R. Cook" "Michael Cook")
("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
("Michalis V" "^mvar")
+ ("Miha Rihtaršič" "Miha Rihtarsic")
("Mikio Nakajima" "Nakajima Mikio")
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
("Noorul Islam" "Noorul Islam K M")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/make-tarball.txt
^
|
@@ -15,8 +15,8 @@
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 @@
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,17 +49,39 @@
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
was modified.
-2. Regenerate the etc/AUTHORS file:
+2. Regenerate the versioned ChangeLog.N and etc/AUTHORS files.
+
+ The "M-x authors" command below will first update the current
+ versioned ChangeLog.N file. For this to work correctly, make sure
+ the top-level Makefile says
+
+ PREFERRED_BRANCH = emacs-NN
+
+ where NN is the version on the release branch from which you are
+ producing the tarball. If NN is incorrect, update Makefile.in and
+ re-run 'configure' to update Makefile.
+
+ If the versioned ChangeLog.N file is too large, start a new one
+ by bumping N, and also update the line in top-level Makefile.in
+ which says
+
+ CHANGELOG_HISTORY_INDEX_MAX = N
+
+ by incrementing the value of N by 1; then regenerate Makefile.
+
+ Now:
+
M-: (require 'authors) RET
M-x authors RET
- (This first updates the current versioned ChangeLog.N)
-
If this says "Problem updating ChangeLog", find the reason for the
failure of the command it runs, viz.:
@@ -139,13 +161,15 @@
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
- Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
- files changed by M-x set-version. The easiest way of doing that
- is "C-x v d ROOT-DIR RET", then go to the first modified file,
- press 'M' to mark all modified files, and finally 'v' to commit
- them. Make sure the commit log message mentions all the changes
- in all modified files, as by default 'v' doesn't necessarily do
- so.
+ Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the files
+ changed by M-x set-version. Note that the set-version changes
+ should be committed separately, as described in step 3 above.
+
+ The easiest way of doing that is "C-x v d ROOT-DIR RET", then go
+ to the first modified file, press 'M' to mark all modified files,
+ and finally 'v' to commit them. Make sure the commit log message
+ mentions all the changes in all modified files, as by default 'v'
+ doesn't necessarily do so.
If someone else made a commit between step 1 and now,
you need to repeat from step 4 onwards. (You can commit the files
@@ -159,9 +183,10 @@
yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
- ./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz
+ ./admin/diff-tar-files emacs-OLD.tar emacs-NEW.tar
- Alternatively:
+ Alternatively, if you want to use the compressed tarballs (which
+ diff-tar-files doesn't understand):
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
@@ -179,7 +204,7 @@
The output of this command might be easier to compare to the
tarball than the one you get from find.
-7. tar -xf emacs-NEW.tar; cd emacs-NEW
+7. tar xf emacs-NEW.tar; cd emacs-NEW
./configure --prefix=/tmp/emacs && make check && make install
Use 'script' or M-x compile to save the compilation log in
@@ -263,7 +288,8 @@
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 (./configure --with-native-compilation).
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
For a pretest, also bcc: platform-testers@gnu.org.
@@ -281,12 +307,20 @@
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, preferably 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.
@@ -294,8 +328,8 @@
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:
@@ -311,21 +345,81 @@
<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>
-Regenerate the various manuals in manual/.
-The scripts admin/make-manuals and admin/upload-manuals summarize the process.
-
-If you have Texinfo installed locally, make-manuals might fail if it
-cannot find epsf.tex. In that case define in the environment
-
- TEXINPUTS=:/path/to/texinfo-tree/doc
+Also, make sure the copyright years at the bottom of emacs.html are
+up-to-date.
-where /path/to/texinfo-tree is the absolute file name of the top-level
-directory where you have the Texinfo source tree. Then re-run
-make-manuals.
+The file download.html may need to be updated, for example if the
+MS-Windows binaries will be signed by a different person/key than
+those mentioned there.
+
+Next, regenerate the various manuals in HTML, PDF, and PS formats:
+
+ Invoke ./admin/make-manuals from the top-level directory of the
+ Emacs source tree that contains the manuals for which you want to
+ produce HTML docs. This creates the 'manual' directory and
+ populates it with the necessary files.
+
+ If you have Texinfo installed locally, make-manuals might fail if it
+ cannot find epsf.tex. In that case define in the environment
+
+ TEXINPUTS=:/path/to/texinfo-tree/doc
+
+ where /path/to/texinfo-tree is the absolute file name of the
+ top-level directory where you have the Texinfo source tree. Then
+ re-run make-manuals.
+
+ make-manuals can also fail if the HTML manuals produced by Texinfo
+ violate some of the assumptions admin/admin.el makes about the
+ format of the produced HTML. Debug these problems and resolve them,
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/notes/multi-tty
^
|
@@ -474,7 +474,7 @@
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.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/notes/spelling
^
|
@@ -6,6 +6,6 @@
for new text (code, docs), choose the US variant.
- It's probably (IMHO --ttn, 2017-10-13) not a high priority to
- change existing text; use your best judgement (ask if unsure).
+ change existing text; use your best judgment (ask if unsure).
- https://lists.gnu.org/r/emacs-devel/2005-06/msg00489.html
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/admin/upload-manuals
^
|
@@ -334,7 +334,10 @@
[ -e $webdir/manual/$d ] || {
echo "New directory: $d"
mkdir $webdir/manual/$d
- $cvs add $webdir/manual/$d || die "add error"
+ (
+ cd $webdir/manual
+ $cvs add $d || die "add error"
+ )
}
new=
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/configure.ac
^
|
@@ -23,7 +23,7 @@
AC_PREREQ(2.65)
dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
-AC_INIT(GNU Emacs, 28.1, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/)
+AC_INIT(GNU Emacs, 28.2, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/)
dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
dnl and then quoted again for a C string. Separate options with spaces.
@@ -2047,17 +2047,16 @@
AC_SUBST(NS_OBJC_OBJ)
if test "${HAVE_NS}" = yes; then
+ AC_LANG_PUSH([Objective C])
AC_CACHE_CHECK(
[if the Objective C compiler supports instancetype],
[emacs_cv_objc_instancetype],
- [AC_LANG_PUSH([Objective C])
- AC_COMPILE_IFELSE(
+ [AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([[@interface Test
+ (instancetype)test;
@end]])],
- emacs_cv_objc_instancetype=yes,
- emacs_cv_objc_instancetype=no)
- AC_LANG_POP([Objective C])])
+ [emacs_cv_objc_instancetype=yes],
+ [emacs_cv_objc_instancetype=no])])
if test x$emacs_cv_objc_instancetype = xyes ; then
AC_DEFINE(NATIVE_OBJC_INSTANCETYPE, 1,
@@ -2067,16 +2066,15 @@
AC_CACHE_CHECK(
[if the Objective C compiler defaults to C99],
[emacs_cv_objc_c99],
- [AC_LANG_PUSH([Objective C])
- AC_COMPILE_IFELSE(
+ [AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([], [[for (int i = 0;;);]])],
- emacs_cv_objc_c99=yes,
- emacs_cv_objc_c99=no)
- AC_LANG_POP([Objective C])])
+ [emacs_cv_objc_c99=yes],
+ [emacs_cv_objc_c99=no])])
- if test x$emacs_cv_objc_c99 = xno ; then
- GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -std=c99"
- fi
+ if test x$emacs_cv_objc_c99 = xno ; then
+ GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -std=c99"
+ fi
+ AC_LANG_POP([Objective C])
fi
HAVE_W32=no
@@ -3843,8 +3841,8 @@
if test -n "`$BREW --prefix --installed libgccjit 2>/dev/null`"; then
MAC_CFLAGS="-I$(dirname $($BREW ls -v libgccjit | \
grep libgccjit.h))"
- MAC_LIBS="-L$(dirname $($BREW ls -v libgccjit| \
- grep libgccjit.so\$))"
+ MAC_LIBS="-L$(dirname $($BREW ls -v libgccjit \
+ | grep -m1 -E 'libgccjit\.(so|dylib)$'))"
fi
fi
@@ -4380,6 +4378,10 @@
AC_SUBST([LIBSECCOMP_LIBS])
AC_SUBST([LIBSECCOMP_CFLAGS])
+AC_CHECK_SIZEOF([long])
+SIZEOF_LONG="$ac_cv_sizeof_long"
+AC_SUBST([SIZEOF_LONG])
+
OLD_LIBS=$LIBS
LIBS="$LIB_PTHREAD $LIB_MATH $LIBS"
AC_CHECK_FUNCS(accept4 fchdir gethostname \
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/ack.texi
^
|
@@ -245,6 +245,11 @@
generating JSON files.
@item
+Andrea Corallo wrote the native compilation support in @file{comp.c}
+and @file{comp.el}, for compiling Emacs Lisp to native code using
+@samp{libgccjit}.
+
+@item
Georges Brun-Cottan and Stefan Monnier wrote @file{easy-mmode.el}, a
package for easy definition of major and minor modes.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/buffers.texi
^
|
@@ -616,10 +616,11 @@
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
@@ -645,6 +646,14 @@
named @var{indirect-name} from a buffer @var{base-buffer}, prompting for
both using the minibuffer.
+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
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/cmdargs.texi
^
|
@@ -771,29 +771,45 @@
@pindex addpm, MS-Windows installation program
@cindex registry, setting environment variables (MS-Windows)
-On MS-Windows, the installation program @command{addpm.exe} adds
-values for @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA},
-@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL} and @env{TERM} to the
-@file{HKEY_LOCAL_MACHINE} section of the system registry, under
-@file{/Software/GNU/Emacs}. It does this because there is no standard
-place to set environment variables across different versions of
-Windows. Running @command{addpm.exe} is no longer strictly necessary
-in recent versions of Emacs, but if you are upgrading from an older
-version, running @command{addpm.exe} ensures that you do not have
-older registry entries from a previous installation, which may not be
-compatible with the latest version of Emacs.
-
-When Emacs starts, as well as checking the environment, it also checks
-the System Registry for those variables and for @env{HOME}, @env{LANG}
-and @env{PRELOAD_WINSOCK}.
+On MS-Windows, the environment variables @env{emacs_dir},
+@env{EMACSLOADPATH}, @env{EMACSDATA}, @env{EMACSPATH}, @env{EMACSDOC},
+@env{SHELL}, @env{TERM}, @env{HOME}, @env{LANG}, and
+@env{PRELOAD_WINSOCK} can also be set in the @file{HKEY_CURRENT_USER}
+or the @file{HKEY_LOCAL_MACHINE} section of the system registry, under
+the @file{/Software/GNU/Emacs} key. When Emacs starts, as well as
+checking the environment, it also checks the system registry for those
+variables.
To determine the value of those variables, Emacs goes through the
-following procedure. First, the environment is checked. If the
-variable is not found there, Emacs looks for registry keys by that
-name under @file{/Software/GNU/Emacs}; first in the
+following procedure. First, it checks the environment. If the
+variable is not found there, Emacs looks for a registry key by the
+name of the variable under @file{/Software/GNU/Emacs}; first in the
@file{HKEY_CURRENT_USER} section of the registry, and if not found
there, in the @file{HKEY_LOCAL_MACHINE} section. Finally, if Emacs
-still cannot determine the values, compiled-in defaults are used.
+still cannot determine the values, it uses the compiled-in defaults.
+
+Note that the registry settings have global system-wide effect: they
+will affect all Emacs sessions run on the system. Thus, if you run
+different Emacs versions, or use both installed and un-installed Emacs
+executables, or build newer versions of Emacs, the settings in the
+registry will cause all of them to use the same directories, which is
+probably not what you want. For this reason, @emph{we recommend
+against setting these variables in the registry}. If you have such
+settings in the registry, we recommend that you remove them.
+
+If you run the Emacs MS-Windows installation program
+@command{addpm.exe}, it will update any existing registry settings of
+the @env{emacs_dir}, @env{EMACSLOADPATH}, @env{EMACSDATA},
+@env{EMACSPATH}, @env{EMACSDOC}, @env{SHELL}, and @env{TERM} variables
+to have the values suitable for the installed Emacs version with which
+@command{addpm.exe} came. Note that @command{addpm.exe} will
+@emph{not} create any registry setting that didn't exist, it will only
+update existing settings, which are most probably inherited from an
+old Emacs installation, so that they are compatible with the newly
+installed Emacs version. Running @command{addpm.exe} is no longer
+necessary when installing recent versions of Emacs, so we only
+recommend doing that if you are upgrading from an older version, and
+cannot remove these settings from the registry for some reason.
In addition to the environment variables above, you can also add
settings to the @file{/Software/GNU/Emacs} registry key to specify X
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/custom.texi
^
|
@@ -2434,6 +2434,9 @@
Write a single-quote (@code{'}) followed by the Lisp object you want.
@end table
+ For more information on the Emacs Lisp syntax, @pxref{Introduction,,,
+elisp, The Emacs Lisp Reference Manual}.
+
@node Init Examples
@subsection Init File Examples
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/display.texi
^
|
@@ -1908,7 +1908,7 @@
convenient way to turn on display of line numbers. This mode has a globalized
variant, @code{global-display-line-numbers-mode}. The user option
@code{display-line-numbers-type} controls which sub-mode of
-line-number display, described above, will these modes activate.
+line-number display, described above, these modes will activate.
@noindent
Note that line numbers are not displayed in the minibuffer and in the
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/emacs.texi
^
|
@@ -1409,23 +1409,23 @@
@c It's hard to update this fairly.
@c I wonder if it would be better to drop it in favor of AUTHORS?
-Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas
+Contributors to GNU Emacs include Jari Aalto, Eric Abrahamsen, Per Abrahamsen, Tomas
Abrahamsson, Jay K. Adams, Alon Albert, Michael Albinus, Nagy
Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil Åström,
Miles Bader, David Bakhash, Juanma Barranquero, Eli Barzilay, Thomas
Baumann, Steven L. Baur, Jay Belanger, Alexander L. Belikoff,
-Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Stephen Berman, Karl
+Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Stephen Berman, Jonas Bernoulli, Karl
Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan
Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner,
Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin
Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Ken Brown, Stefan Bruda,
-Daniel Colascione,
+Damien Cassou, Daniel Colascione,
Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, Tino Calancha,
Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob
Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James
-Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione,
+Clark, Mike Clarkson, Glynn Clements, Andrea Corallo, Andrew Cohen, Daniel Colascione,
Christoph Conrad, Ludovic Courtès, Andrew Csillag,
-Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki
+Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Yue Daian, Julien Danjou, Satyaki
Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum
Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri
Ding, Jan Djärv, Lawrence R. Dodd, Carsten Dominik, Scott Draves,
@@ -1433,36 +1433,36 @@
Eaton, Rolf Ebert, Carl Edman, David Edmondson, Paul Eggert, Stephen
Eglen, Christian Egli, Torbjörn Einarsson, Tsugutomo Enami, David
Engster, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick
-Farnbach, Oscar Figueiredo, Fred Fish, Steve Fisk, Karl Fogel, Gary
+Farnbach, Oscar Figueiredo, Fred Fish, Steve Fisk, Thomas Fitzsimmons, Karl Fogel, Gary
Foster, Eric S. Fraga, Romain Francoise, Noah Friedman, Andreas
Fuchs, Shigeru Fukaya, Xue Fuqiao, Hallvard Furuseth, Keith Gabryelski, Peter S.
Galbraith, Kevin Gallagher, Fabián E. Gallina, Kevin Gallo, Juan León Lahoz García,
Howard Gayle, Daniel German, Stephen Gildea, Julien Gilles, David
-Gillespie, Bob Glickstein, Deepak Goel, David De La Harpe Golden, Boris
+Gillespie, Bob Glickstein, Nicolas Goaziou, Deepak Goel, David De La Harpe Golden, Boris
Goldowsky, David Goodger, Chris Gray, Kevin Greiner, Michelangelo Grigni, Odd
Gripenstam, Kai Großjohann, Michael Gschwind, Bastien Guerry, Henry
Guillaume, Dmitry Gutov, Doug Gwyn, Bruno Haible, Ken'ichi Handa, Lars Hansen, Chris
Hanson, Jesper Harder, Alexandru Harsanyi, K. Shane Hartman, John
Heidemann, Jon K. Hellan, Magnus Henoch, Markus Heritsch, Dirk
-Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Anders Holst,
-Jeffrey C. Honig, Tassilo Horn, Kurt Hornik, Khaled Hosny, Tom Houlder, Joakim
+Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Torsten Hilbrich, Anders Holst,
+Jeffrey C. Honig, Jürgen Hötzel, Tassilo Horn, Kurt Hornik, Khaled Hosny, Tom Houlder, Joakim
Hove, Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue,
Philip Jackson, Martyn Jago, Pavel Janik, Paul Jarc, Ulf Jasper,
Thorsten Jolitz, Michael K. Johnson, Kyle Jones, Terry Jones, Simon
Josefsson, Alexandre Julliard, Arne Jørgensen, Tomoji Kagatani,
-Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Ivan Kanis, David
+Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Stefan Kangas, Ivan Kanis, David
Kastrup, David Kaufman, Henry Kautz, Taichi Kawabata, Taro Kawagishi,
Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, Karel
Klíč, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David
M. Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer,
-Ryszard Kubiak, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl
-Landstrom, Mario Lang, Aaron Larson, James R. Larus, Vinicius Jose
+Ryszard Kubiak, Tak Kunihiro, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl
+Landstrom, Mario Lang, Aaron Larson, James R. Larus, Gemini Lasswell, Vinicius Jose
Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian
Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link,
Juri Linkov, Francis Litterio, Sergey Litvinov, Leo Liu, Emilio C. Lopes,
-Martin Lorentzon, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha
+Martin Lorentzson, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha
Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie,
-Christopher J. Madsen, Neil M. Mager, Artur Malabarba, Ken Manheimer, Bill Mann,
+Christopher J. Madsen, Neil M. Mager, Arni Magnusson, Artur Malabarba, Ken Manheimer, Bill Mann,
Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin,
Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will Mengarini, David
Megginson, Jimmy Aguilar Mena, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad
@@ -1478,7 +1478,7 @@
Persson, Jens Petersen, Nicolas Petton, Daniel Pfeiffer, Justus Piater, Richard L.
Pieri, Fred Pierresteguy, François Pinard, Daniel Pittman, Christian
Plaunt, Alexander Pohoyda, David Ponce, Noam Postavsky, Francesco A. Potortì,
-Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin
+Michael D. Prange, Mukesh Prasad, Steve Purcell, Ken Raeburn, Marko Rahamaa, Ashwin
Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, David
Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian Robert, Nick
Roberts, Roland B. Roberts, John Robinson, Denis B. Roegel, Danny
@@ -1492,7 +1492,7 @@
Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham,
Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor
Šimko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith,
-David Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon
+David Smith, JD Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon
South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf Stegemann,
Reiner Steib, Sam Steingold, Ake Stenhoff, Philipp Stephani, Peter Stephenson, Ken
Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/glossary.texi
^
|
@@ -182,6 +182,7 @@
Case conversion means changing text from upper case to lower case or
vice versa. @xref{Case}.
+@cindex ignore case
@item Case Folding
Case folding means ignoring the differences between case variants of
the same letter: upper-case, lower-case, and title-case. Emacs
@@ -229,9 +230,11 @@
@item Command
A command is a Lisp function specially defined to be able to serve as
a key binding in Emacs or to be invoked by its name
-(@pxref{Glossary---Command Name}). When you type a key sequence
-(q.v.), its binding (q.v.@:) is looked up in the relevant keymaps
-(q.v.@:) to find the command to run. @xref{Commands}.
+(@pxref{Glossary---Command Name}). (Another term for @dfn{command} is
+@dfn{interactive function}---they are used interchangeably.) When you
+type a key sequence (q.v.), its binding (q.v.@:) is looked up in the
+relevant keymaps (q.v.@:) to find the command to run.
+@xref{Commands}.
@item Command History
@xref{Glossary---Minibuffer History}.
@@ -775,6 +778,14 @@
Insertion means adding text into the buffer, either from the keyboard
or from some other place in Emacs.
+@item Interactive Function
+A different term for @dfn{command} (q.v.).
+
+@item Interactive Invocation
+A function can be called from Lisp code, or called as a user level
+command (via @kbd{M-x}, a key binding or a menu). In the latter case,
+the function is said to be @dfn{called interactively}.
+
@item Interlocking
@xref{Glossary---File Locking}.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/kmacro.texi
^
|
@@ -179,7 +179,7 @@
define it, so @kbd{C-u 4 C-x )} executes the macro immediately 3
additional times.
-@findex kdb-macro-redisplay
+@findex kmacro-redisplay
@kindex C-x C-k d
While executing a long-running keyboard macro, it can sometimes be
useful to trigger a redisplay (to show how far we've gotten). The
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/maintaining.texi
^
|
@@ -170,26 +170,12 @@
@itemize @bullet
-@cindex SCCS
-@item
-SCCS was the first version control system ever built, and was long ago
-superseded by more advanced ones. VC compensates for certain features
-missing in SCCS (e.g., tag names for releases) by implementing them
-itself. Other VC features, such as multiple branches, are simply
-unavailable. Since SCCS is non-free, we recommend avoiding it.
-
-@cindex CSSC
-@item
-CSSC is a free replacement for SCCS@. You should use CSSC only if, for
-some reason, you cannot use a more recent and better-designed version
-control system.
-
-@cindex RCS
+@cindex git
@item
-RCS is the free version control system around which VC was initially
-built. It is relatively primitive: it cannot be used over the
-network, and works at the level of individual files. Almost
-everything you can do with RCS can be done through VC.
+Git is a decentralized version control system originally invented by
+Linus Torvalds to support development of Linux (his kernel). VC
+supports many common Git operations, but others, such as repository
+syncing, must be done from the command line.
@cindex CVS
@item
@@ -208,12 +194,26 @@
commits of filesets, and versioning of directories, symbolic links,
meta-data, renames, copies, and deletes).
-@cindex git
+@cindex SCCS
@item
-Git is a decentralized version control system originally invented by
-Linus Torvalds to support development of Linux (his kernel). VC
-supports many common Git operations, but others, such as repository
-syncing, must be done from the command line.
+SCCS was the first version control system ever built, and was long ago
+superseded by more advanced ones. VC compensates for certain features
+missing in SCCS (e.g., tag names for releases) by implementing them
+itself. Other VC features, such as multiple branches, are simply
+unavailable. Since SCCS is non-free, we recommend avoiding it.
+
+@cindex CSSC
+@item
+CSSC is a free replacement for SCCS@. You should use CSSC only if, for
+some reason, you cannot use a more recent and better-designed version
+control system.
+
+@cindex RCS
+@item
+RCS is the free version control system around which VC was initially
+built. It is relatively primitive: it cannot be used over the
+network, and works at the level of individual files. Almost
+everything you can do with RCS can be done through VC.
@cindex hg
@cindex Mercurial
@@ -2802,6 +2802,13 @@
standard input and mark the produced tags as belonging to the file
@var{file}.
+ For C and C++, if the source files don't observe the GNU Coding
+Standards' convention if having braces (@samp{@{} and @samp{@}}) in
+column zero only for top-level definitions, like functions and
+@code{struct} definitions, we advise that you use the
+@samp{--ignore-indentation} option, to prevent @command{etags} from
+incorrectly interpreting closing braces in column zero.
+
@samp{etags --help} outputs the list of the languages @command{etags}
knows, and the file name rules for guessing the language. It also prints
a list of all the available @command{etags} options, together with a short
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/mini.texi
^
|
@@ -648,11 +648,14 @@
@section Minibuffer History
@cindex minibuffer history
@cindex history of minibuffer input
+@cindex completion, walking through candidates
- Every argument that you enter with the minibuffer is saved in a
-@dfn{minibuffer history list} so you can easily use it again later.
-You can use the following arguments to quickly fetch an earlier
-argument into the minibuffer:
+ Everything you type in the minibuffer is saved in a @dfn{minibuffer
+history list} so you can easily use it again later. This includes
+completion candidates (such as file names, buffer names, command
+names, etc.@:) and any other kind of minibuffer input. You can use
+the following commands to quickly fetch an earlier or alternative
+response into the minibuffer:
@table @kbd
@item M-p
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/misc.texi
^
|
@@ -914,7 +914,7 @@
@cindex @env{INSIDE_EMACS} environment variable
Emacs sets the environment variable @env{INSIDE_EMACS} in the
subshell to @samp{@var{version},comint}, where @var{version} is the
-Emacs version (e.g., @samp{24.1}). Programs can check this variable
+Emacs version (e.g., @samp{28.1}). Programs can check this variable
to determine whether they are running inside an Emacs subshell.
@node Shell Mode
@@ -2025,7 +2025,7 @@
edit the server buffers within Emacs, and they are @emph{not} killed
when you type @kbd{C-x #} in them.
-@item --parent-id @var{id}
+@item --parent-id=@var{id}
Open an @command{emacsclient} frame as a client frame in the parent X
window with id @var{id}, via the XEmbed protocol. Currently, this
option is mainly useful for developers.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/search.texi
^
|
@@ -1413,16 +1413,18 @@
match disregards the diacritics that distinguish these
variants. In addition, @code{a} matches other characters that
resemble it, or have it as part of their graphical representation,
-such as U+249C @sc{parenthesized latin small letter a} and U+2100
-@sc{account of} (which looks like a small @code{a} over @code{c}).
+such as U+00AA @sc{feminine ordinal indicator} and U+24D0
+@sc{circled latin small letter a} (which looks like a small @code{a}
+inside a circle).
Similarly, the @acronym{ASCII} double-quote character @code{"} matches
all the other variants of double quotes defined by the Unicode
standard. Finally, character folding can make a sequence of one or
more characters match another sequence of a different length: for
example, the sequence of two characters @code{ff} matches U+FB00
-@sc{latin small ligature ff}. Character sequences that are not identical,
-but match under character folding are known as @dfn{equivalent
-character sequences}.
+@sc{latin small ligature ff} and the sequence @code{(a)} matches
+U+249C @sc{parenthesized latin small letter a}. Character sequences
+that are not identical, but match under character folding are known as
+@dfn{equivalent character sequences}.
@kindex M-s ' @r{(Incremental Search)}
@findex isearch-toggle-char-fold
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/emacs/sending.texi
^
|
@@ -659,6 +659,7 @@
(@pxref{Top,,MH-E,mh-e, The Emacs Interface to MH}).
@vindex mail-user-agent
+@findex define-mail-user-agent
You can choose any of these @dfn{mail user agents} as your preferred
method for editing and sending mail. The commands @kbd{C-x m},
@kbd{C-x 4 m} and @kbd{C-x 5 m} use whichever agent you have
@@ -667,7 +668,10 @@
customize the variable @code{mail-user-agent}. Currently, legitimate
values include @code{message-user-agent} (Message mode)
@code{sendmail-user-agent} (Mail mode), @code{gnus-user-agent}, and
-@code{mh-e-user-agent}.
+@code{mh-e-user-agent}. Additional options may be available; check
+in the manual of your mail user agent package for details. You may
+also define another mail user agent using
+@code{define-mail-user-agent}.
If you select a different mail-composition method, the information
in this chapter about the mail buffer and Message mode does not apply;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispintro/emacs-lisp-intro.texi
^
|
@@ -2022,7 +2022,6 @@
@w{@code{"The "}} and @w{@code{" red foxes."}} and the list
@code{(number-to-string (+ 2 fill-column))}.
-@c For GNU Emacs 22, need number-to-string
@smallexample
(concat "The " (number-to-string (+ 2 fill-column)) " red foxes.")
@end smallexample
@@ -10318,9 +10317,8 @@
@cindex @file{*scratch*} buffer
The function requires several lines for its output. If you are
-reading this in a recent instance of GNU Emacs,
-@c GNU Emacs 21, GNU Emacs 22, or a later version,
-you can evaluate the following expression inside of Info, as usual.
+reading this in a recent instance of GNU Emacs, you can evaluate the
+following expression inside of Info, as usual.
If you are using an earlier version of Emacs, you need to copy the
necessary expressions to your @file{*scratch*} buffer and evaluate
@@ -17742,17 +17740,6 @@
(setq grep-command "grep -i -nH -e ")
@end smallexample
-@ignore
-@c Evidently, no longer needed in GNU Emacs 22
-
-item Automatically uncompress compressed files when visiting them
-
-smallexample
-(load "uncompress")
-end smallexample
-
-@end ignore
-
@item Find an existing buffer, even if it has a different name@*
This avoids problems with symbolic links.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/compile.texi
^
|
@@ -983,7 +983,11 @@
0 and 3 specify the optimization levels equivalent to the
corresponding compiler @option{-O0}, @option{-O1}, etc.@: command-line
options of the compiler. The value @minus{}1 means disable
-native-compilation; functions and files will be only byte-compiled.
+native-compilation: functions and files will be only byte-compiled;
+however, the @file{*.eln} files will still be produced, they will just
+contain the compiled code in bytecode form. (This can be achieved at
+function granularity by using the @w{@code{(declare (speed -1))}}
+form, @pxref{Declare Form}.)
The default value is 2.
@end defopt
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/control.texi
^
|
@@ -525,7 +525,7 @@
@table @code
-@item _
+@item _@r{ (underscore)}
Matches any @var{expval}.
This is also known as @dfn{don't care} or @dfn{wildcard}.
@@ -629,7 +629,10 @@
until one of them succeeds. In that case, @code{or} likewise matches,
and the rest of the sub-patterns are not tested.
-To present a consistent environment (@pxref{Intro Eval})
+To present a consistent environment
+@ifnottex
+(@pxref{Intro Eval})
+@end ifnottex
to @var{body-forms} (thus avoiding an evaluation error on match),
the set of variables bound by the pattern is the union of the
variables bound by each sub-pattern. If a variable is not bound by
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/display.texi
^
|
@@ -2593,6 +2593,13 @@
original face definition by @code{defface} is inherited
(@pxref{Defining Faces}).
+Some modes, like @code{hl-line-mode}, use a face with an
+@code{:extend} property to mark the entire current line. Note,
+however, that Emacs will always allow you to move point after the
+final character in a buffer, and if the buffer ends with a newline
+character, point can be placed on what is seemingly a line at the end
+of the buffer---but Emacs can't highlight that ``line'', because it
+doesn't really exist.
@end table
@defun font-family-list &optional frame
@@ -2818,7 +2825,8 @@
@defun face-attribute face attribute &optional frame inherit
This function returns the value of the @var{attribute} attribute for
-@var{face} on @var{frame}.
+@var{face} on @var{frame}. @xref{Face Attributes}, for the supported
+attributes.
If @var{frame} is omitted or @code{nil}, that means the selected frame
(@pxref{Input Focus}). If @var{frame} is @code{t}, this function
@@ -2901,7 +2909,8 @@
@defun set-face-attribute face frame &rest arguments
This function sets one or more attributes of @var{face} for
@var{frame}. The attributes specified in this way override the face
-spec(s) belonging to @var{face}.
+spec(s) belonging to @var{face}. @xref{Face Attributes}, for the
+supported attributes.
The extra arguments @var{arguments} specify the attributes to set, and
the values for them. They should consist of alternating attribute
@@ -3669,57 +3678,62 @@
Chinese GB2312 characters has a wild card @samp{*} in the @var{family}
field.
-@defun set-fontset-font name character font-spec &optional frame add
-This function modifies the existing fontset @var{name} to use the font
-matching with @var{font-spec} for the specified @var{character}.
+@defun set-fontset-font fontset characters font-spec &optional frame add
+This function modifies the existing @var{fontset} to use the font
+specified by @var{font-spec} for displaying the specified
+@var{characters}.
-If @var{name} is @code{nil}, this function modifies the fontset of the
-selected frame or that of @var{frame} if @var{frame} is not
+If @var{fontset} is @code{nil}, this function modifies the fontset of
+the selected frame or that of @var{frame} if @var{frame} is not
@code{nil}.
-If @var{name} is @code{t}, this function modifies the default
-fontset, whose short name is @samp{fontset-default}.
+If @var{fontset} is @code{t}, this function modifies the default
+fontset, whose short name as a string is @samp{fontset-default}.
-In addition to specifying a single codepoint, @var{character} may be a
-cons @code{(@var{from} . @var{to})}, where @var{from} and @var{to} are
-character codepoints. In that case, use @var{font-spec} for all the
-characters in the range @var{from} and @var{to} (inclusive).
+The @var{characters} argument can be a single character which should
+be displayed using @var{font-spec}. It can also be a cons cell
+@w{@code{(@var{from} . @var{to})}}, where @var{from} and @var{to} are
+characters. In that case, use @var{font-spec} for all the characters
+in the range @var{from} and @var{to} (inclusive).
-@var{character} may be a charset (@pxref{Character Sets}). In that
-case, use @var{font-spec} for all the characters in the charset.
+@var{characters} may be a charset symbol (@pxref{Character Sets}). In
+that case, use @var{font-spec} for all the characters in the charset.
-@var{character} may be a script name (@pxref{Character Properties,
+@var{characters} may be a script symbol (@pxref{Character Properties,
char-script-table}). In that case, use @var{font-spec} for all the
characters belonging to the script.
-@var{character} may be @code{nil}, which means to use @var{font-spec}
-for any character which no font-spec is specified.
+@var{characters} may be @code{nil}, which means to use @var{font-spec}
+for any character in @var{fontset} for which no font-spec is
+specified.
@var{font-spec} may be a font-spec object created by the function
@code{font-spec} (@pxref{Low-Level Font}).
-@var{font-spec} may be a cons; @code{(@var{family} . @var{registry})},
-where @var{family} is a family name of a font (possibly including a
-foundry name at the head), @var{registry} is a registry name of a font
-(possibly including an encoding name at the tail).
+@var{font-spec} may be a cons cell @w{@code{(@var{family}
+. @var{registry})}}, where @var{family} is a family name of a font
+(possibly including a foundry name at the head), and @var{registry} is
+a registry name of a font (possibly including an encoding name at the
+tail).
@var{font-spec} may be a font name, a string.
@var{font-spec} may be @code{nil}, which explicitly specifies that
-there's no font for the specified @var{character}. This is useful,
+there's no font for the specified @var{characters}. This is useful,
for example, to avoid expensive system-wide search for fonts for
characters that have no glyphs, like those from the Unicode Private
Use Area (PUA).
The optional argument @var{add}, if non-@code{nil}, specifies how to
-add @var{font-spec} to the font specifications previously set. If it
-is @code{prepend}, @var{font-spec} is prepended. If it is
-@code{append}, @var{font-spec} is appended. By default,
-@var{font-spec} overrides the previous settings.
+add @var{font-spec} to the font specifications previously set for
+@var{characters}. If it is @code{prepend}, @var{font-spec} is
+prepended to the existing specs. If it is @code{append},
+@var{font-spec} is appended. By default, @var{font-spec} overwrites
+the previously set font specs.
-For instance, this changes the default fontset to use a font of which
+For instance, this changes the default fontset to use a font whose
family name is @samp{Kochi Gothic} for all characters belonging to
-the charset @code{japanese-jisx0208}.
+the charset @code{japanese-jisx0208}:
@smallexample
(set-fontset-font t 'japanese-jisx0208
@@ -3859,13 +3873,26 @@
symbols, or @code{nil} if none is required. If @code{gsub} or
@code{gpos} is a list, a @code{nil} element in that list means that
the font must not match any of the remaining tag symbols. The
-@code{gpos} element may be omitted.
+@code{gpos} element may be omitted. For the list of OpenType script,
+language, and feature tags, see
+@uref{https://docs.microsoft.com/en-us/typography/opentype/spec/ttoreg,
+the list of registered OTF tags}.
+
+@item :type
+@cindex font backend
+The symbol that specifies the @dfn{font backend} used to draw the
+characters. The possible values depend on the platform and on how
+Emacs was configured at build time. Typical values include
+@code{ftcrhb} and @code{xfthb} on X, @code{harfbuzz} on MS-Windows,
+@code{ns} on GNUstep, etc. It can also be @code{nil} if left
+unspecified, typically in a font-spec.
@end table
@end defun
@defun font-put font-spec property value
Set the font property @var{property} in the font-spec @var{font-spec}
-to @var{value}.
+to @var{value}. The @var{property} can any of the ones described
+above.
@end defun
@cindex font entity
@@ -3909,12 +3936,28 @@
@defun font-get font property
This function returns the value of the font property @var{property}
-for @var{font}.
+for @var{font}. The @var{property} can any of the ones that
+@code{font-spec} supports.
If @var{font} is a font spec and the font spec does not specify
@var{property}, the return value is @code{nil}. If @var{font} is a
font object or font entity, the value for the @var{:script} property
-may be a list of scripts supported by the font.
+may be a list of scripts supported by the font, and the value of the
+@code{:otf} property is a cons of the form @w{@code{(@var{gsub}
+. @var{gpos})}}, where @var{gsub} and @var{gpos} are lists
+representing OpenType features supported by the font, of the form
+
+@smallexample
+((@var{script-tag} (@var{langsys-tag} @var{feature}@dots{}) @dots{}) @dots{})
+@end smallexample
+
+@noindent where @var{script-tag}, @var{langsys-tag}, and @var{feature}
+are symbols representing OpenType layout tags.
+
+If @var{font} is a font object, the special property
+@code{:combining-capability} is non-@code{nil} if the font backend of
+@var{font} supports rendering of combining characters for non-OpenType
+fonts.
@end defun
@defun font-face-attributes font &optional frame
@@ -4833,7 +4876,7 @@
situations, e.g., when the display specification was generated by some
external program/agent. Wrapping a display specification in a list
that begins with the special symbol @code{disable-eval}, as in
-@w{@code{('disable-eval @var{spec})}}, will disable evaluation of any
+@w{@code{(disable-eval @var{spec})}}, will disable evaluation of any
Lisp in @var{spec}, while still supporting all the other display
property features.
@@ -6898,6 +6941,7 @@
@item keymap
@kindex keymap @r{(button property)}
+@vindex button-map
The button's keymap, defining bindings active within the button
region. By default this is the usual button region keymap, stored
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/edebug.texi
^
|
@@ -832,7 +832,6 @@
@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.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/functions.texi
^
|
@@ -2333,6 +2333,30 @@
@item (modes @var{modes})
Specify that this command is meant to be applicable for @var{modes}
only.
+
+@item (pure @var{val})
+If @var{val} is non-@code{nil}, this function is @dfn{pure}
+(@pxref{What Is a Function}). This is the same as the @code{pure}
+property of the function's symbol (@pxref{Standard Properties}).
+
+@item (side-effect-free @var{val})
+If @var{val} is non-@code{nil}, this function is free of side effects,
+so the byte compiler can ignore calls whose value is ignored. This is
+the same as the @code{side-effect-free} property of the function's
+symbol, @pxref{Standard Properties}.
+
+@item (speed @var{n})
+Specify the value of @code{native-comp-speed} in effect for native
+compilation of this function (@pxref{Native-Compilation Variables}).
+This allows function-level control of the optimization level used for
+native code emitted for the function. In particular, if @var{n} is
+@minus{}1, native compilation of the function will emit bytecode
+instead of native code for the function.
+
+@item no-font-lock-keyword
+This is valid for macros only. Macros with this declaration are
+highlighted by font-lock (@pxref{Font Lock Mode}) as normal functions,
+not specially as macros.
@end table
@end defmac
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/hash.texi
^
|
@@ -203,7 +203,8 @@
@defun puthash key value table
This function enters an association for @var{key} in @var{table}, with
value @var{value}. If @var{key} already has an association in
-@var{table}, @var{value} replaces the old associated value.
+@var{table}, @var{value} replaces the old associated value. This
+function always returns @var{value}.
@end defun
@defun remhash key table
@@ -219,10 +220,7 @@
@defun clrhash table
This function removes all the associations from hash table @var{table},
so that it becomes empty. This is also called @dfn{clearing} the hash
-table.
-
-@b{Common Lisp note:} In Common Lisp, @code{clrhash} returns the empty
-@var{table}. In Emacs Lisp, it returns @code{nil}.
+table. @code{clrhash} returns the empty @var{table}.
@end defun
@defun maphash function table
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/keymaps.texi
^
|
@@ -1599,6 +1599,7 @@
deduced from Termcap and Terminfo. @xref{Terminal-Specific}.
@end defvar
+@cindex function-key-map
@defvar local-function-key-map
This variable holds a keymap similar to @code{input-decode-map} except
that it describes key sequences which should be translated to
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/loading.texi
^
|
@@ -752,7 +752,7 @@
mapping are added by calls to @code{register-definition-prefixes}
which are generated by @code{update-file-autoloads}
(@pxref{Autoload}). Files which don't contain any definitions worth
-loading (test files, for examples), should set
+loading (test files, for example), should set
@code{autoload-compute-prefixes} to @code{nil} as a file-local
variable.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/maps.texi
^
|
@@ -125,6 +125,7 @@
menu-bar-epatch-menu, menu-bar-ediff-merge-menu, menu-bar-ediff-menu, etc.
@end ignore
+@cindex minibuffer-inactive-mode-map
@item minibuffer-inactive-mode-map
A full keymap used in the minibuffer when it is not active.@*
@xref{Minibuffer Edit,, Editing in the Minibuffer, emacs, The GNU Emacs Manual}.
@@ -156,6 +157,7 @@
@vindex narrow-map
A sparse keymap for subcommands of the prefix @kbd{C-x n}.
+@cindex prog-mode-map
@item prog-mode-map
The keymap used by Prog mode.@*
@xref{Basic Major Modes}.
@@ -171,6 +173,7 @@
@item search-map
A sparse keymap that provides global bindings for search-related commands.
+@cindex special-mode-map
@item special-mode-map
The keymap used by Special mode.@*
@xref{Basic Major Modes}.
@@ -179,6 +182,7 @@
The global keymap used for the @kbd{C-x t} prefix key for tab-bar related commands.@*
@xref{Tab Bars,,, emacs, The GNU Emacs Manual}.
+@cindex tab-bar-map
@item tab-bar-map
The keymap defining the contents of the tab bar.@*
@xref{Tab Bars,,, emacs, The GNU Emacs Manual}.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/minibuf.texi
^
|
@@ -1936,6 +1936,7 @@
of the keys in @code{completion-category-overrides}, the usual
completion behavior is overridden. @xref{Completion Variables}.
+@cindex @code{annotation-function}, in completion
@item annotation-function
The value should be a function for @dfn{annotating} completions. The
function should take one argument, @var{string}, which is a possible
@@ -1945,6 +1946,7 @@
the @code{completions-annotations} face is added by default to
that string.
+@cindex @code{affixation-function}, in completion
@item affixation-function
The value should be a function for adding prefixes and suffixes to
completions. The function should take one argument,
@@ -1955,6 +1957,7 @@
a suffix displayed after the completion string. This function
takes priority over @code{annotation-function}.
+@cindex @code{group-function}, in completion
@item group-function
The value should be a function for grouping the completion candidates.
The function must take two arguments, @var{completion}, which is a
@@ -1965,12 +1968,14 @@
transformed candidate. The transformation can for example remove a
redundant prefix, which is displayed in the group title.
+@cindex @code{display-sort-function}, in completion
@item display-sort-function
The value should be a function for sorting completions. The function
should take one argument, a list of completion strings, and return a
sorted list of completion strings. It is allowed to alter the input
list destructively.
+@cindex @code{cycle-sort-function}, in completion
@item cycle-sort-function
The value should be a function for sorting completions, when
@code{completion-cycle-threshold} is non-@code{nil} and the user is
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/modes.texi
^
|
@@ -3321,7 +3321,8 @@
@var{end}, which specify the region to be fontified or refontified.
If @var{function} performs fontifications, it can return a list of the
form @w{@code{(jit-lock-bounds @var{beg} . @var{end})}}, to indicate
-the bounds of the region it actually fontified; JIT font-lock will use
+the bounds of the region it actually fontified; Just-In-Time (a.k.a.@:
+@acronym{``JIT''}) font-lock will use
this information to optimize subsequent redisplay cycles and regions
of buffer text it will pass to future calls to @var{function}.
@@ -3341,6 +3342,19 @@
function using @code{jit-lock-register}, this function unregisters it.
@end defun
+@cindex debugging font-lock
+@cindex jit-lock functions, debugging
+@deffn Command jit-lock-debug-mode &optional arg
+This is a minor mode whose purpose is to help in debugging code that
+is run by JIT font-lock. When this mode is enabled, most of the code
+that JIT font-lock normally runs during redisplay cycles, where Lisp
+errors are suppressed, is instead run by a timer. Thus, this mode
+allows using debugging aids such as @code{debug-on-error}
+(@pxref{Error Debugging}) and Edebug (@pxref{Edebug}) for finding and
+fixing problems in font-lock code and any other code run by JIT
+font-lock.
+@end deffn
+
@node Levels of Font Lock
@subsection Levels of Font Lock
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/nonascii.texi
^
|
@@ -280,11 +280,12 @@
@defun string-to-unibyte string
This function returns a unibyte string containing the same sequence of
-characters as @var{string}. It signals an error if @var{string}
-contains a non-@acronym{ASCII} character. If @var{string} is a
-unibyte string, it is returned unchanged. Use this function for
-@var{string} arguments that contain only @acronym{ASCII} and eight-bit
-characters.
+characters as @var{string}. If @var{string} is a unibyte string, it
+is returned unchanged. Otherwise, @acronym{ASCII} characters and
+characters in the @code{eight-bit} charset are converted to their
+corresponding byte values. Use this function for @var{string}
+arguments that contain only @acronym{ASCII} and eight-bit characters;
+the function signals an error if any other characters are encountered.
@end defun
@defun byte-to-string byte
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/objects.texi
^
|
@@ -178,6 +178,12 @@
Skip the next @samp{N} characters (@pxref{Comments}). This is used in
byte-compiled files, and is not meant to be used in Emacs Lisp source
files.
+
+@item #f
+Indicates that the following form isn't readable by the Emacs Lisp
+reader. This is only in text for display purposes (when that would
+look prettier than alternative ways of indicating an unreadable form)
+and will never appear in any Lisp file.
@end table
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/os.texi
^
|
@@ -2284,7 +2284,8 @@
@end deffn
@cindex idleness
- Emacs becomes @dfn{idle} when it starts waiting for user input, and
+ Emacs becomes @dfn{idle} when it starts waiting for user input
+(unless it waits for input with a timeout, @pxref{Reading One Event}), and
it remains idle until the user provides some input. If a timer is set
for five seconds of idleness, it runs approximately five seconds after
Emacs first becomes idle. Even if @var{repeat} is non-@code{nil},
@@ -3087,21 +3088,21 @@
@cindex watch, for filesystem events
Several operating systems support watching of filesystems for changes
-of files. If configured properly, Emacs links a respective library
-like @file{inotify}, @file{kqueue}, @file{gfilenotify}, or
-@file{w32notify} statically. These libraries enable watching of
-filesystems on the local machine.
+to files or their attributes. If configured properly, Emacs links a
+respective library like @file{inotify}, @file{kqueue},
+@file{gfilenotify}, or @file{w32notify} statically. These libraries
+enable watching of filesystems on the local machine.
It is also possible to watch filesystems on remote machines,
-@pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual}
+@pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual}.
This does not depend on one of the libraries linked to Emacs.
-Since all these libraries emit different events on notified file
-changes, there is the Emacs library @code{filenotify} which provides a
-unified interface. Lisp programs that want to receive file
-notifications should always use this library in preference to the
-native ones.
-
+Since all these libraries emit different events upon notified file
+changes, Emacs provides a special library @code{filenotify} which
+presents a unified interface to applications. Lisp programs that want
+to receive file notifications should always use this library in
+preference to the native ones. This section documents the
+@code{filenotify} library functions and variables.
@defun file-notify-add-watch file flags callback
Add a watch for filesystem events pertaining to @var{file}. This
@@ -3109,31 +3110,33 @@
to Emacs.
The returned value is a descriptor for the added watch. Its type
-depends on the underlying library, it cannot be assumed to be an
-integer as in the example below. It should be used for comparison by
-@code{equal} only.
+depends on the underlying library, and in general cannot be assumed to
+be an integer as in the example below. It should be used for
+comparison by @code{equal} only.
If the @var{file} cannot be watched for some reason, this function
signals a @code{file-notify-error} error.
Sometimes, mounted filesystems cannot be watched for file changes.
-This is not detected by this function, a non-@code{nil} return value
-does not guarantee that changes on @var{file} will be notified.
+This is not detected by this function, and so a non-@code{nil} return
+value does not guarantee that changes on @var{file} will be actually
+notified.
@var{flags} is a list of conditions to set what will be watched for.
It can include the following symbols:
@table @code
@item change
-watch for file changes
+watch for changes in file's contents
@item attribute-change
-watch for file attribute changes, like permissions or modification
+watch for changes in file attributes, like permissions or modification
time
@end table
If @var{file} is a directory, @code{change} watches for file creation
-or deletion in that directory. Some of the file notification backends
-report also file changes. This does not work recursively.
+and deletion in that directory. Some of the native file notification
+libraries also report file changes in that case. This does not work
+recursively.
When any event happens, Emacs will call the @var{callback} function
passing it a single argument @var{event}, which is of the form
@@ -3159,19 +3162,20 @@
@item attribute-changed
a @var{file} attribute was changed
@item stopped
-watching @var{file} has been stopped
+watching @var{file} has stopped
@end table
Note that the @file{w32notify} library does not report
@code{attribute-changed} events. When some file's attribute, like
permissions or modification time, has changed, this library reports a
@code{changed} event. Likewise, the @file{kqueue} library does not
-report reliably file attribute changes when watching a directory.
+reliably report file attribute changes when watching a directory.
-The @code{stopped} event reports, that watching the file has been
-stopped. This could be because @code{file-notify-rm-watch} was called
-(see below), or because the file being watched was deleted, or due to
-another error reported from the underlying library.
+The @code{stopped} event means that watching the file has been
+discontinued. This could be because @code{file-notify-rm-watch} was
+called (see below), or because the file being watched was deleted, or
+due to another error reported from the underlying library which makes
+further watching impossible.
@var{file} and @var{file1} are the name of the file(s) whose event is
being reported. For example:
@@ -3215,7 +3219,7 @@
@end group
@end example
-Whether the action @code{renamed} is returned, depends on the used
+Whether the action @code{renamed} is returned depends on the used
watch library. Otherwise, the actions @code{deleted} and
@code{created} could be returned in a random order.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/searching.texi
^
|
@@ -1897,7 +1897,7 @@
causing a match to fail early.
@item
-Avoid or-patterns in favour of character alternatives: write
+Avoid or-patterns in favor of character alternatives: write
@samp{[ab]} instead of @samp{a\|b}. Recall that @samp{\s-} and @samp{\sw}
are equivalent to @samp{[[:space:]]} and @samp{[[:word:]]}, respectively.
@@ -1932,7 +1932,7 @@
@ifnottex
@item
-Consider using @code{rx} (@pxref{Rx Notation}); it can optimise some
+Consider using @code{rx} (@pxref{Rx Notation}); it can optimize some
or-patterns automatically and will never introduce capturing groups
unless explicitly requested.
@end ifnottex
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/strings.texi
^
|
@@ -440,12 +440,12 @@
@end defun
@defun string-pad string length &optional padding start
-Pad @var{string} to the be of @var{length} using @var{padding} as the
-padding character (defaulting to the space character). If
-@var{string} is shorter than @var{length}, no padding is done. If
-@var{start} is @code{nil} (or not present), the padding is done to the
-end of the string, and if it's non-@code{nil}, to the start of the
-string.
+Pad @var{string} to be of the given @var{length} using @var{padding}
+as the padding character. @var{padding} defaults to the space
+character. If @var{string} is longer than @var{length}, no padding is
+done. If @var{start} is @code{nil} or omitted, the padding is
+appended to the characters of @var{string}, and if it's
+non-@code{nil}, the padding is prepended to @var{string}'s characters.
@end defun
@defun string-chop-newline string
@@ -461,23 +461,29 @@
described in this section. @xref{Mutability}.
The most basic way to alter the contents of an existing string is with
-@code{aset} (@pxref{Array Functions}). @code{(aset @var{string}
-@var{idx} @var{char})} stores @var{char} into @var{string} at index
-@var{idx}. Each character occupies one or more bytes, and if @var{char}
-needs a different number of bytes from the character already present at
-that index, @code{aset} signals an error.
+@code{aset} (@pxref{Array Functions}). @w{@code{(aset @var{string}
+@var{idx} @var{char})}} stores @var{char} into @var{string} at character
+index @var{idx}. It will automatically convert a pure-@acronym{ASCII}
+@var{string} to a multibyte string (@pxref{Text Representations}) if
+needed, but we recommend to always make sure @var{string} is multibyte
+(e.g., by using @code{string-to-multibyte}, @pxref{Converting
+Representations}), if @var{char} is a non-@acronym{ASCII} character, not
+a raw byte.
A more powerful function is @code{store-substring}:
@defun store-substring string idx obj
-This function alters part of the contents of the string @var{string}, by
-storing @var{obj} starting at index @var{idx}. The argument @var{obj}
-may be either a character or a (smaller) string.
-
-Since it is impossible to change the length of an existing string, it is
-an error if @var{obj} doesn't fit within @var{string}'s actual length,
-or if any new character requires a different number of bytes from the
-character currently present at that point in @var{string}.
+This function alters part of the contents of the specified @var{string},
+by storing @var{obj} starting at character index @var{idx}. The
+argument @var{obj} may be either a character (in which case the function
+behaves exactly as @code{aset}) or a (smaller) string. If @var{obj}
+is a multibyte string, we recommend to make sure @var{string} is also
+multibyte, even if it's pure-@acronym{ASCII}.
+
+Since it is impossible to change the number of characters in an
+existing string, it is en error if @var{obj} consists of more
+characters than would fit in @var{string} starting at character index
+@var{idx}.
@end defun
To clear out a string that contained a password, use
@@ -558,11 +564,19 @@
determined by the lexicographic order of the characters contained in
@var{string1} and @var{string2}, but also further rules about
relations between these characters. Usually, it is defined by the
-@var{locale} environment Emacs is running with.
-
-For example, characters with different coding points but
-the same meaning might be considered as equal, like different grave
-accent Unicode characters:
+@var{locale} environment Emacs is running with and by the Standard C
+library against which Emacs was linked@footnote{
+For more information about collation rules and their locale
+dependencies, see @uref{https://unicode.org/reports/tr10/, The Unicode
+Collation Algorithm}. Some Standard C libraries, such as the
+@acronym{GNU} C Library (a.k.a.@: @dfn{glibc}) implement large
+portions of the Unicode Collation Algorithm and use the associated
+locale data, Common Locale Data Repository, or @acronym{CLDR}.
+}.
+
+For example, characters with different code points but the same
+meaning, like different grave accent Unicode characters, might, in
+some locales, be considered as equal:
@example
@group
@@ -750,7 +764,8 @@
For instance, @var{str1} is considered less than @var{str2} if
its first differing character has a smaller numeric value. If
@var{ignore-case} is non-@code{nil}, characters are converted to
-upper-case before comparing them. Unibyte strings are converted to
+upper-case, using the current buffer's case-table (@pxref{Case
+Tables}), before comparing them. Unibyte strings are converted to
multibyte for comparison (@pxref{Text Representations}), so that a
unibyte string and its conversion to multibyte are always regarded as
equal.
@@ -853,9 +868,7 @@
If @var{base} is @code{nil}, then base ten is used. Floating-point
conversion only works in base ten; we have not implemented other
radices for floating-point numbers, because that would be much more
-work and does not seem useful. If @var{string} looks like an integer
-but its value is too large to fit into a Lisp integer,
-@code{string-to-number} returns a floating-point result.
+work and does not seem useful.
The parsing skips spaces and tabs at the beginning of @var{string},
then reads as much of @var{string} as it can interpret as a number in
@@ -1347,7 +1360,7 @@
This flag converts the substituted text to upper case (@pxref{Case
Conversion}).
-@item _
+@item _@r{ (underscore)}
This flag converts the substituted text to lower case (@pxref{Case
Conversion}).
@end table
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/syntax.texi
^
|
@@ -770,7 +770,7 @@
position @var{pos} starting from the beginning of the visible portion
of the buffer.
@iftex
-See the next section for
+See the next section
@end iftex
@ifnottex
@xref{Parser State},
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/text.texi
^
|
@@ -2297,6 +2297,9 @@
amount of horizontal scrolling. Consequently, a column value can be
arbitrarily high. The first (or leftmost) column is numbered 0. They
also ignore overlays and text properties, aside from invisibility.
+Invisible text is considered as having zero width, unless
+@code{buffer-invisibility-spec} specifies that invisible text should
+be displayed as ellipsis (@pxref{Invisible Text}).
@defun current-column
This function returns the horizontal position of point, measured in
@@ -2370,6 +2373,10 @@
the horizontal position of the first nonblank character. If the
contents are entirely blank, then this is the horizontal position of the
end of the line.
+
+This function considers invisible text as having zero width, unless
+@code{buffer-invisibility-spec} specifies that invisible text should
+be displayed as ellipsis. @xref{Invisible Text}.
@end defun
@deffn Command indent-to column &optional minimum
@@ -3313,7 +3320,7 @@
Search for the next region that has text property @var{prop} set to
@var{value} according to @var{predicate}.
-This function is modelled after @code{search-forward} and friends in
+This function is modeled after @code{search-forward} and friends in
that it moves point, but it returns a structure that describes the
match instead of returning it in @code{match-beginning} and friends.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/tips.texi
^
|
@@ -687,26 +687,20 @@
@cindex curly quotes
@cindex curved quotes
When a documentation string refers to a Lisp symbol, write it as it
-would be printed (which usually means in lower case), surrounding it
-with curved single quotes (@t{‘..’}). There are two exceptions: write
-@code{t} and @code{nil} without surrounding punctuation. For example:
+would be printed (which usually means in lower case), with a grave
+accent @samp{`} before and apostrophe @samp{'} after it. There are
+two exceptions: write @code{t} and @code{nil} without surrounding
+punctuation. For example:
@example
- CODE can be ‘lambda’, nil, or t.
+CODE can be `lambda', nil, or t.
@end example
-@noindent
-@xref{Quotation Marks,,, emacs, The GNU Emacs Manual}, for how to
-enter curved single quotes.
-
-Documentation strings can also use an older single-quoting convention,
-which quotes symbols with grave accent @t{`} and apostrophe
-@t{'}: @t{`like-this'} rather than @t{‘like-this’}. This
-older convention was designed for now-obsolete displays in which grave
-accent and apostrophe were mirror images.
-Documentation using this convention is converted to the user's
-preferred format when it is copied into a help buffer. @xref{Keys in
-Documentation}.
+Note that when Emacs displays these doc strings, Emacs will usually
+display @samp{`} (grave accent) as @samp{‘} (left single quotation
+mark) and @samp{'} (apostrophe) as @samp{’} (right single quotation
+mark), if the display supports displaying these characters.
+@xref{Keys in Documentation}.
@cindex hyperlinks in documentation strings
Help mode automatically creates a hyperlink when a documentation string
@@ -851,7 +845,7 @@
@item
Try to avoid using abbreviations such as ``e.g.'' (for ``for
example''), ``i.e.'' (for ``that is''), ``no.'' (for ``number''),
-``c.f.'' (for ``in contrast to'') and ``w.r.t.'' (for ``with respect
+``cf.'' (for ``compare''/``see also'') and ``w.r.t.'' (for ``with respect
to'') as much as possible. It is almost always clearer and easier to
read the expanded version.@footnote{We do use these occasionally, but
try not to overdo it.}
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/variables.texi
^
|
@@ -326,7 +326,7 @@
@anchor{Tail recursion}
Recursive calls to @var{name} that occur in @emph{tail
-positions} in @var{body} are guaranteed to be optimised as @emph{tail
+positions} in @var{body} are guaranteed to be optimized as @emph{tail
calls}, which means that they will not consume any additional stack
space no matter how deeply the recursion runs. Such recursive calls
will effectively jump to the top of the loop with new values for the
@@ -1346,7 +1346,7 @@
The byte-compiler can also warn about lexical variables that are
special in other Emacs Lisp files, often indicating a missing
-@code{defvar} declaration. This useful but somewhat specialised check
+@code{defvar} declaration. This useful but somewhat specialized check
requires three steps:
@enumerate
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/lispref/windows.texi
^
|
@@ -737,7 +737,7 @@
@cindex window width
@cindex width of a window
@cindex total width of a window
-The @dfn{total width} of a window is the number of lines comprising its
+The @dfn{total width} of a window is the number of columns comprising its
body and its left and right decorations (@pxref{Basic Windows}).
@defun window-total-width &optional window round
@@ -747,7 +747,7 @@
the total width occupied by its descendant windows.
If a window's pixel width is not an integral multiple of its frame's
-character width, the number of lines occupied by the window is rounded
+character width, the number of columns occupied by the window is rounded
internally. This is done in a way such that, if the window is a parent
window, the sum of the total widths of all its children internally
equals the total width of their parent. This means that although two
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/man/etags.1
^
|
@@ -1,5 +1,5 @@
.\" See section COPYING for copyright and redistribution information.
-.TH ETAGS 1 "2021-03-30" "GNU Tools" "GNU"
+.TH ETAGS 1 "2022-06-10" "GNU Tools" "GNU"
.de BP
.sp
.ti -.2i
@@ -122,7 +122,9 @@
.B \-I, \-\-ignore\-indentation
Don't rely on indentation as much as we normally do. Currently, this
means not to assume that a closing brace in the first column is the
-final brace of a function or structure definition in C and C++.
+final brace of a function or structure definition in C and C++. This
+is important for code that doesn't observe the GNU Coding conventions
+of placing only top-level braces in column zero.
.TP
\fB\-l\fP \fIlanguage\fP, \fB\-\-language=\fIlanguage\fP
Parse the following files according to the given language. More than
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/autotype.texi
^
|
@@ -274,13 +274,13 @@
@vindex auto-insert-alist
What gets inserted, if anything, is determined by the variable
-@code{auto-insert-alist}. The @sc{car}s of this list are each either
-a mode name, making an element applicable when a buffer is in that
-mode. Or they can be a string, which is a regexp matched against the
-buffer's file name. In that way different kinds of files that have
-the same mode in Emacs can be distinguished. The @sc{car}s may also
-be cons cells consisting of mode name or regexp as above and an
-additional descriptive string.
+@code{auto-insert-alist}. The @sc{car} of each element of this list
+is either a mode name, making the element applicable when a buffer is
+in that mode, or a string, which is a regexp matched against a
+buffer's file name (the latter allows to distinguish between different
+kinds of files that have the same mode in Emacs). The @sc{car} of an
+element may also be a cons cell, consisting of mode name or regexp, as
+above, and an additional descriptive string.
When a matching element is found, the @sc{cdr} says what to do. It may
be a string, which is a file name, whose contents are to be inserted, if
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/calc.texi
^
|
@@ -1,7 +1,7 @@
\input texinfo @c -*- mode: texinfo; coding: utf-8 -*-
+@setfilename ../../info/calc.info
@comment %**start of header (This is for running Texinfo on a region.)
@c smallbook
-@setfilename ../../info/calc.info
@c [title]
@settitle GNU Emacs Calc Manual
@include docstyle.texi
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/cl.texi
^
|
@@ -3668,7 +3668,7 @@
The functions described here operate on lists.
@menu
-* List Functions:: @code{cl-caddr}, @code{cl-first}, @code{cl-list*}, etc.
+* List Functions:: @code{cl-first}, @code{cl-list*}, etc.
* Substitution of Expressions:: @code{cl-subst}, @code{cl-sublis}, etc.
* Lists as Sets:: @code{cl-member}, @code{cl-adjoin}, @code{cl-union}, etc.
* Association Lists:: @code{cl-assoc}, @code{cl-acons}, @code{cl-pairlis}, etc.
@@ -3681,14 +3681,6 @@
This section describes a number of simple operations on lists,
i.e., chains of cons cells.
-@defun cl-caddr x
-This function is equivalent to @code{(car (cdr (cdr @var{x})))}.
-Likewise, this package aliases all 24 @code{c@var{xxx}r} functions
-where @var{xxx} is up to four @samp{a}s and/or @samp{d}s.
-All of these functions are @code{setf}-able, and calls to them
-are expanded inline by the byte-compiler for maximum efficiency.
-@end defun
-
@defun cl-first x
This function is a synonym for @code{(car @var{x})}. Likewise,
the functions @code{cl-second}, @code{cl-third}, @dots{}, through
@@ -4465,8 +4457,8 @@
@end example
@end ignore
-Note that @code{cl-adjoin}, @code{cl-caddr}, and @code{cl-member} all
-have built-in compiler macros to optimize them in common cases.
+Note that @code{cl-adjoin} and @code{cl-member} have built-in compiler
+macros to optimize them in common cases.
@end defun
@appendixsec Error Checking
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/ediff.texi
^
|
@@ -50,7 +50,7 @@
@titlepage
@title Ediff User's Manual
@sp 4
-@subtitle Ediff version 2.81.2
+@subtitle Ediff version 2.81.6
@sp 1
@subtitle November 2008
@sp 5
@@ -947,12 +947,14 @@
cases, the change will take place only after you execute one of the Ediff
commands, such as going to the next difference or redisplaying.
+@c --> The below can be revisited once the toolbar has been ported to Emacs:
+@ignore
@item ediff-toggle-use-toolbar
@findex ediff-toggle-use-toolbar
-Available in XEmacs only. The Ediff toolbar provides quick access to some
-of the common Ediff functions. This function toggles the display of the
-toolbar. If invoked from the menubar, the function may take sometimes
-effect only after you execute an Ediff command, such as going to the next
+The Ediff toolbar provides quick access to some of the common Ediff
+functions. This function toggles the display of the toolbar. If
+invoked from the menubar, the function may take sometimes effect only
+after you execute an Ediff command, such as going to the next
difference.
@item ediff-use-toolbar-p
@@ -961,6 +963,7 @@
@code{ediff-use-toolbar-p} (default is @code{t}). This variable can be set
only in @file{.emacs}: do @strong{not} change it interactively. Use the
function @code{ediff-toggle-use-toolbar} instead.
+@end ignore
@item ediff-revert-buffers-then-recompute-diffs
@findex ediff-revert-buffers-then-recompute-diffs
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/efaq-w32.texi
^
|
@@ -130,10 +130,8 @@
from NT 4.0; this includes all the modern versions from Windows XP and
on. The Windows port is built using the Win32 API and supports most
features of the X version, including variable width fonts, images and
-tooltips.
-
-Emacs on Windows can be compiled as either a 32-bit or a 64-bit
-executable, using the MinGW GCC compiler and development tools.
+tooltips. Emacs on Windows can be compiled as either a 64-bit or a
+32-bit executable.
@node Other versions of Emacs
@section What other versions of Emacs run on Windows?
@@ -177,8 +175,8 @@
site (as zip files digitally signed by the person who built them).
See the @file{README} file in that directory for more information.
Building Emacs from source yourself should be straightforward,
-following the instructions in @file{nt/INSTALL}, so we encourage you
-to give it a try. @xref{Compiling}.
+following the instructions in the @file{nt} directory, so we
+encourage you to give it a try. @xref{Compiling}.
@cindex latest development version of Emacs
@cindex Emacs Development
@@ -190,21 +188,27 @@
@section How can I compile Emacs myself?
@cindex compiling Emacs
-To compile Emacs on Windows, you will need the MinGW port of GCC and
-Binutils, the MinGW runtime and development environment, and the MSYS
-suite of tools. For the details, see the file @file{nt/INSTALL} in
-the Emacs source distribution.
+To compile Emacs on a 64-bit version of Windows 7 or newer, we
+recommend to use the MinGW-w64 port of GCC and Binutils with the MSYS2
+suite of tools. For the details, see the file @file{nt/INSTALL.W64}
+in the Emacs source distribution.
+
+If you need to build or run Emacs on MS Windows before Windows 7, you
+have to use the MinGW port of GCC and the MSYS suite of tools. The
+file @file{nt/INSTALL} in Emacs source distribution contains the
+details.
Support for displaying images, as well as XML/HTML rendering and TLS
networking requires external libraries, the headers and import
libraries for which will need to be installed where your compiler can
find them. Again, the details, including URLs of sites where you can
-download these libraries are in @file{nt/INSTALL}. @xref{Other useful
-ports}, for auxiliary tools you may wish to install and use in
-conjunction with Emacs.
+download these libraries are in @file{nt/INSTALL.W64} or
+@file{nt/INSTALL}. @xref{Other useful ports}, for auxiliary tools you
+may wish to install and use in conjunction with Emacs.
After unpacking the source, or checking out of the repository, be sure
-to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
+to read the instructions in @file{nt/README} and the respective
+install file.
@node Debugging
@section How do I use a debugger on Emacs?
@@ -222,18 +226,18 @@
@cindex debugging Emacs with GDB
GDB is the GNU debugger, which can be used to debug Emacs when it has
-been compiled with MinGW GCC@. The best results will be obtained if
-you start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
+been compiled with GCC@. The best results will be obtained if you
+start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
This will load the init file @file{.gdbinit}@footnote{
Latest versions of GDB might refuse to load the init file for security
reasons, unless you customize GDB; alternatively, use an explicit
@kbd{source ./gdbinit} command after entering GDB.
} in that directory, to define some extra commands for working with
-lisp while debugging, and set up breakpoints to catch abnormal
-aborts.
+lisp while debugging, and set up breakpoints to catch abnormal aborts.
-A Windows port of GDB can be found on MinGW download sites and on some
-others.
+A Windows port of GDB is installed with MinGW64-w64 and MSYS2
+(@samp{mingw-w64-<arch>-toolchain} group) or can be found on MinGW
+download sites and on some others.
@c ------------------------------------------------------------
@node Installing Emacs
@@ -307,8 +311,8 @@
Expect @command{bsdtar} to unpack the whole distribution without any
complaints.
-Once you unpack the source distribution, look in @file{nt/INSTALL}
-file for build instructions.
+Once you unpack the source distribution, look in the @file{nt}
+directory for build instructions.
@node Installing binaries
@section How do I install Emacs after unpacking the binary zip?
@@ -1645,8 +1649,8 @@
In your @env{HOME} directory create a file called @file{.mailcap},
with contents like the following:
@example
-application/zip "C:/Program Files/7-Zip/7zFM.exe"
-video/* "C:/Program Files/VideoLAN/VLC/vlc.exe"
+application/zip; "C:/Program Files/7-Zip/7zFM.exe"
+video/*; "C:/Program Files/VideoLAN/VLC/vlc.exe"
@end example
@strong{Warning:} Associating MIME types with @command{start} or other
@@ -1742,23 +1746,6 @@
A number of implementations are listed on the
@uref{http://www.tug.org/interest.html#free, TeX Users Group} website.
-@menu
-* AUCTeX::
-@end menu
-
-@node AUCTeX
-@subsection AUCTeX
-@cindex auctex, precompiled for Windows
-@cindex latex
-@cindex preview-latex
-
-AUCTeX is an Emacs package for writing LaTeX files, which also
-includes preview-latex, an Emacs mode for previewing the formatted
-contents of LaTeX documents. Pre-compiled versions for Windows are
-available from
-@uref{https://www.gnu.org/software/auctex/download-for-windows.html, the
-AUCTeX site}.
-
@node Spell check
@section How do I perform spell checks?
@cindex spell checking
@@ -1771,11 +1758,13 @@
Emacs has support for spell checking on demand (@code{ispell}) and as
your type (@code{flyspell}). Both packages depend on a copy of
@command{ispell} 3.2 or a compatible spell-checking program.
-GNU Aspell is a popular choice these days, Windows installers are
-available from the @uref{http://aspell.net/win32/, official site}.
+GNU Aspell is a popular choice these days, outdated Windows installers
+are available from the @uref{http://aspell.net/win32/, official site}.
Another possibility is Hunspell, which is available from
@uref{https://sourceforge.net/projects/ezwinports/files/?source=navbar,
-the ezwinports site}.
+the ezwinports site}. If you're using the MSYS2 distribution, you can
+install a recent version of either GNU Aspell or Hunspell through the
+package manager Pacman. @xref{Other useful ports}.
Once installed, you will need to configure @code{ispell-program-name}
to tell ispell and flyspell to use @command{aspell} or
@@ -2113,9 +2102,9 @@
@menu
* Cygwin::
-* MinGW::
+* MinGW-w64::
* EZWinPorts::
-* UWIN::
+* MinGW::
* GnuWin32::
* GTK::
* Read man pages::
@@ -2150,22 +2139,25 @@
make the Cygwin tools available within Emacs by setting @code{exec-path}
in your init file.
-@node MinGW
-@section MinGW and MSYS
-@cindex mingw tools
-@cindex msys environment
-@cindex subprocesses, mingw and msys
+@node MinGW-w64
+@section MinGW-w64 and MSYS2
+@cindex mingw-w64 tools
+@cindex msys2 environment
+@cindex subprocesses, mingw-w64 and msys2
-@uref{http://www.mingw.org/}
+@uref{https://www.msys2.org/}
-MinGW is a set of development tools that produce native Windows
+MinGW-w64 is a set of development tools that produce native Windows
executables, not dependent on Cygwin's POSIX emulation DLLs.
+MinGW-w64 has forked the original MinGW in 2007 in order to provide
+support for 64 bits and new APIs.
-MSYS is a POSIX shell and minimal set of tools that are commonly used in
-configure scripts. Like Cygwin, this environment uses a non-native
-filesystem mapping to appear more POSIX like to the scripts that it
-runs. This is intended to complement the MinGW tools to make it easier
-to port software to Windows.
+MSYS2 is software distribution and a building platform for Windows.
+MSYS2 is an independent rewrite of MSYS, based on modern Cygwin and
+MinGW-w64 with the aim of better interoperability with native Windows
+software. It plays the same role MSYS does in MinGW. Being a
+distribution, MSYS2 provides tools to build software as well as more
+than 2.600 precompiled packages ready for use.
@node EZWinPorts
@section EZWinPorts
@@ -2178,16 +2170,22 @@
@command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/efaq.texi
^
|
@@ -1603,6 +1603,7 @@
* Filling paragraphs with a single space::
* Escape sequences in shell output::
* Fullscreen mode on MS-Windows::
+* Emacs in a Linux console::
@end menu
@node Setting up a customization file
@@ -3020,6 +3021,115 @@
Emacs frame and then evaluate @code{(frame-height)} and
@code{(frame-width)} with @kbd{M-:}.
+@node Emacs in a Linux console
+@section How can I alleviate the limitations of the Linux console?
+@cindex Console, Linux console, TTY, fbterm
+
+If possible, we recommend running Emacs inside @command{fbterm}, when
+in a Linux console. This brings the Linux console on par with most
+terminal emulators under X. To do this, install @command{fbterm}, for
+example with the package manager of your GNU/Linux distribution, and
+execute the command
+
+@example
+$ fbterm
+@end example
+
+This will create a sample configuration file @file{~/.fbtermrc} in
+your home directory. Edit that file and change the options
+@code{font-names} and @code{font-size} if necessary. For the former,
+you can choose one or more of the lines in the output of the following
+command, separated by commas:
+
+@example
+$ fc-list :spacing=mono family | sed 's/ /\\ /g'
+@end example
+
+@noindent
+Note that you can fine-tune the appearance of the fonts by adding
+attribute-value pairs, separated by colons, after each font name. For
+example,
+
+@example
+font-names=DejaVu\ Sans\ Mono:style=bold:antialias=false
+@end example
+
+@noindent
+selects the bold style of the DejaVu Sans Mono font, and disables
+anti-aliasing.
+
+You can now start Emacs inside @command{fbterm} with the command
+
+@example
+$ fbterm -- env TERM=fbterm emacs
+@end example
+
+In some versions of @command{fbterm}, setting @env{TERM} to
+@samp{fbterm} can be omitted. To check whether it is needed, start
+Emacs inside @command{fbterm} with the command
+
+@example
+$ fbterm -- emacs
+@end example
+
+@noindent
+and type @kbd{M-x list-colors-display}. If only 8 colors are
+displayed, it is necessary; if 256 colors are displayed, it isn't.
+
+You may want to add an alias for that command in your shell
+configuration file. For example, if you use Bash, you can add the
+following line to your @file{~/.bashrc} file:
+
+@example
+alias emacs="fbterm -- env TERM=fbterm emacs"
+@end example
+
+@noindent
+or, if you use Emacs both in the Linux console and under X:
+
+@example
+[[ "$(tty)" =~ "/dev/tty" ]] && alias emacs="fbterm -- env TERM=fbterm emacs"
+@end example
+
+The @command{fbterm} terminal emulator may define a number of key
+bindings for its own use, some of which conflict with those that Emacs
+uses. Execute the following two commands as root to ensure that
+@command{fbterm} does not define these key bindings:
+
+@example
+# chmod a-s `which fbterm`
+# setcap cap_sys_tty_config=-ep `which fbterm`
+@end example
+
+If you use Emacs as root, the above is not enough however, because the
+root user has all privileges. You can use the following command to
+start Emacs inside @command{fbterm} as root while ensuring that
+@command{fbterm} does not define any key bindings for its own use:
+
+@example
+# capsh --drop=cap_sys_tty_config -- -c "fbterm -- env TERM=fbterm emacs"
+@end example
+
+Again you may want to add a shortcut for that command in the shell
+configuration file of the root user. In this case however, it is not
+possible to use an alias, because the command line arguments passed to
+Emacs need to be inserted in the string at the end of the command. A
+wrapper script or a function can be used to do that. For example, if
+you use Bash, you can add the following function in the root user
+@file{~/.bashrc} file:
+
+@example
+function emacs ()
+@{
+ CMD="fbterm -- env TERM=fbterm emacs "
+ for ARG in "$@@"
+ do
+ CMD="$CMD '$ARG' "
+ done
+ capsh --drop=cap_sys_tty_config -- -c "$CMD"
+@}
+@end example
+
@c ------------------------------------------------------------
@node Bugs and problems
@chapter Bugs and problems
@@ -4337,75 +4447,6 @@
(setq ps-multibyte-buffer 'bdf-font-except-latin)
@end lisp
-A few additional steps are necessary for MS-Windows; they are listed
-below.
-
-First, make sure @emph{all} the directories with BDF font files are
-mentioned in @code{bdf-directory-list}. On Unix and GNU/Linux
-systems, one normally runs @kbd{make install} to install the BDF fonts
-in the same directory. By contrast, Windows users typically don't run
-the Intlfonts installation command, but unpack the distribution in
-some directory, which leaves the BDF fonts in its subdirectories. For
-example, assume that you unpacked Intlfonts in @file{C:/Intlfonts};
-then you should set @code{bdf-directory-list} as follows:
-
-@lisp
- (setq bdf-directory-list
- '("C:/Intlfonts/Asian"
- "C:/Intlfonts/Chinese" "C:/Intlfonts/Chinese.X"
- "C:/Intlfonts/Chinese.BIG" "C:/Intlfonts/Ethiopic"
- "C:/Intlfonts/European" "C:/Intlfonts/European.BIG"
- "C:/Intlfonts/Japanese" "C:/Intlfonts/Japanese.X"
- "C:/Intlfonts/Japanese.BIG" "C:/Intlfonts/Korean.X"
- "C:/Intlfonts/Misc"))
-@end lisp
-
-@cindex @code{w32-bdf-filename-alist}
-@cindex @code{w32-find-bdf-fonts}
-Next, you need to set up the variable @code{w32-bdf-filename-alist} to
-an alist of the BDF fonts and their corresponding file names.
-Assuming you have set @code{bdf-directory-list} to name all the
-directories with the BDF font files, the following Lisp snippet will
-set up @code{w32-bdf-filename-alist}:
-
-@lisp
- (setq w32-bdf-filename-alist
- (w32-find-bdf-fonts bdf-directory-list))
-@end lisp
-
-Now, create fontsets for the BDF fonts:
-
-@smallexample
- (create-fontset-from-fontset-spec
- "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
- japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
- katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
- latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
- japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
- thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
- lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
- tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
- ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
- tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
-@end smallexample
-
-Many of the international bdf fonts from Intlfonts are type 0, and
-therefore need to be added to font-encoding-alist:
-
-@lisp
- (setq font-encoding-alist
- (append '(("MuleTibetan-0" (tibetan . 0))
- ("GB2312" (chinese-gb2312 . 0))
- ("JISX0208" (japanese-jisx0208 . 0))
- ("JISX0212" (japanese-jisx0212 . 0))
- ("VISCII" (vietnamese-viscii-lower . 0))
- ("KSC5601" (korean-ksc5601 . 0))
- ("MuleArabic-0" (arabic-digit . 0))
- ("MuleArabic-1" (arabic-1-column . 0))
- ("MuleArabic-2" (arabic-2-column . 0)))
- font-encoding-alist))
-@end lisp
-
You can now use the Emacs font menu to select the @samp{bdf: 16-dot medium}
fontset, or you can select it by setting the default font in your
@file{~/.emacs}:
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/eww.texi
^
|
@@ -69,7 +69,7 @@
@chapter Overview
@dfn{EWW}, the Emacs Web Wowser, is a web browser for GNU Emacs. It
can load, parse, and display various web pages using @dfn{shr.el}.
-However a GNU Emacs with @code{libxml2} support is required.
+However, a GNU Emacs with @code{libxml2} support is required.
@node Basics
@chapter Basic Usage
@@ -213,7 +213,7 @@
@cindex External Browser
Although EWW and shr.el do their best to render webpages in GNU
Emacs some websites use features which can not be properly represented
-or are not implemented (E.g., JavaScript). If you have trouble
+or are not implemented (e.g., JavaScript). If you have trouble
viewing a website with EWW then hit @kbd{&}
(@code{eww-browse-with-external-browser}) inside the EWW buffer to
open the website in the external browser specified by
@@ -310,9 +310,9 @@
size or content. By customizing @code{shr-max-image-proportion} you
can set the maximal image proportion in relation to the window they
are displayed in. E.g., 0.7 means an image is allowed to take up 70%
-of the width and height. If Emacs supports image scaling (ImageMagick
-support required) then larger images are scaled down. You can block
-specific images completely by customizing @code{shr-blocked-images}.
+of the width and height. If Emacs supports image scaling, then larger
+images are scaled down. You can block specific images completely by
+customizing @code{shr-blocked-images}.
@vindex shr-inhibit-images
You can control image display by customizing
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/flymake.texi
^
|
@@ -1,8 +1,8 @@
\input texinfo @c -*-texinfo; coding: utf-8 -*-
@comment %**start of header
@setfilename ../../info/flymake.info
-@set VERSION 1.2
-@set UPDATED September 2021
+@set VERSION 1.2.2
+@set UPDATED November 2021
@settitle GNU Flymake @value{VERSION}
@include docstyle.texi
@syncodeindex pg cp
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/gnus-faq.texi
^
|
@@ -2193,18 +2193,9 @@
A speed killer is setting the variable
gnus-fetch-old-headers to anything different from @code{nil},
-so don't do this if speed is an issue. To speed up
-building of summary say
+so don't do this if speed is an issue.
-@example
-(gnus-compile)
-@end example
-@noindent
-
-at the bottom of your @file{~/.gnus.el}, this will make gnus
-byte-compile things like
-gnus-summary-line-format.
-then you could increase the value of gc-cons-threshold
+You could increase the value of gc-cons-threshold
by saying something like
@example
@@ -2212,21 +2203,7 @@
@end example
@noindent
-in ~/.emacs. If you don't care about width of CJK
-characters or use Gnus 5.10 or younger together with a
-recent GNU Emacs, you should say
-
-@example
-(setq gnus-use-correct-string-widths nil)
-@end example
-@noindent
-
-in @file{~/.gnus.el} (thanks to Jesper harder for the last
-two suggestions). Finally if you are still using 5.8.8
-or 5.9 and experience speed problems with summary
-buffer generation, you definitely should update to
-5.10 since there quite some work on improving it has
-been done.
+in ~/.emacs.
@node FAQ 9-3
@subsubheading Question 9.3
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/gnus.texi
^
|
@@ -5070,7 +5070,7 @@
@item ]
Closing bracket, which is normally @samp{]}, but can also be @samp{>}
-for adopted articles. This can be customised using following settings:
+for adopted articles. This can be customized using following settings:
@table @code
@item gnus-sum-closing-bracket
@@ -9359,7 +9359,7 @@
Use @uref{http://w3m.sourceforge.net/, w3m}.
@item links
-Use @uref{https://almende.github.io/chap-links-library/, CHAP Links}.
+Use @uref{http://links.twibright.com/, Links}.
@item lynx
Use @uref{https://lynx.browser.org/, Lynx}.
@@ -27021,16 +27021,6 @@
speeds up many functions), and changing the alist directly will lead to
peculiar results.
-@cindex hilit19
-@cindex highlighting
-Old hilit19 code does not work at all. In fact, you should probably
-remove all hilit code from all Gnus hooks
-(@code{gnus-group-prepare-hook} and @code{gnus-summary-prepare-hook}).
-Gnus provides various integrated functions for highlighting. These are
-faster and more accurate. To make life easier for everybody, Gnus will
-by default remove all hilit calls from all hilit hooks. Uncleanliness!
-Away!
-
Packages like @code{expire-kill} will no longer work. As a matter of
fact, you should probably remove all old @sc{gnus} packages (and other
code) when you start using Gnus. More likely than not, Gnus already
@@ -29671,10 +29661,9 @@
As the variables for the other back ends, there are
@code{nndiary-nov-is-evil}, @code{nndir-nov-is-evil},
-@code{nnfolder-nov-is-evil}, @code{nnimap-nov-is-evil},
-@code{nnml-nov-is-evil}, and @code{nnspool-nov-is-evil}. Note that a
-non-@code{nil} value for @code{gnus-nov-is-evil} overrides all those
-variables.
+@code{nnfolder-nov-is-evil}, @code{nnml-nov-is-evil}, and
+@code{nnspool-nov-is-evil}. Note that a non-@code{nil} value for
+@code{gnus-nov-is-evil} overrides all those variables.
@end table
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/htmlfontify.texi
^
|
@@ -10,8 +10,7 @@
This manual documents Htmlfontify, a source code -> crosslinked +
formatted + syntax colorized html transformer.
-Copyright @copyright{} 2002--2003, 2013--2022 Free Software Foundation,
-Inc.
+Copyright @copyright{} 2002--2022 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -34,7 +33,7 @@
@titlepage
@title Htmlfontify User Manual
@sp 4
-@subtitle Htmlfontify version 0.20
+@subtitle Htmlfontify version 0.21
@sp 1
@subtitle Jun 2002
@sp 5
@@ -1540,13 +1539,6 @@
@itemize @bullet
@item
-GNU Emacs 20.7+ or 21.1+
-
-Other versions may work---these have been used successfully by the
-author. If you intend to use Htmlfontify in batch mode, 21.1+ is
-pretty much required.
-
-@item
A copy of etags (exuberant-ctags or GNU etags). Htmlfontify attempts
to autodetect the version you have and customize itself accordingly,
but you should be able to override this.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/idlwave.texi
^
|
@@ -392,7 +392,7 @@
be discovered by reading the entire manual, or hovering over the
shoulder of your nearest IDLWAVE guru for a few days.
-It is assumed that you have access to Emacs or XEmacs with the full
+It is assumed that you have access to Emacs with the full
IDLWAVE package including online help. We also assume that you are
familiar with Emacs and can read the nomenclature of key presses in
Emacs (in particular, @kbd{C} stands for @key{CONTROL} and @kbd{M} for
@@ -1011,9 +1011,9 @@
@cindex Font lock
Highlighting of keywords, comments, strings etc.@: can be accomplished
-with @code{font-lock}. If you are using @code{global-font-lock-mode}
-(in Emacs), or have @code{font-lock} turned on in any other buffer in
-XEmacs, it should also automatically work in IDLWAVE buffers. If you'd
+with @code{font-lock}. If you are using @code{global-font-lock-mode},
+or have @code{font-lock-mode} turned on in any other buffer,
+it should also automatically work in IDLWAVE buffers. If you'd
prefer invoking font-lock individually by mode, you can enforce it in
@code{idlwave-mode} with the following line in your @file{.emacs}:
@@ -4022,7 +4022,7 @@
IDLWAVE was developed on a UNIX system. However, thanks to the
portability of Emacs, much of IDLWAVE does also work under different
-operating systems like Windows (with NTEmacs or NTXEmacs).
+operating systems like Windows (with NTEmacs).
The only real problem is that there is no command-line version of IDL
for Windows with which IDLWAVE can interact. As a
@@ -4117,13 +4117,6 @@
@file{~/.MacOSX/environment.plist}. Either include your path settings
there, or start Emacs and IDLWAVE from the shell.
-@item @strong{I get errors like @samp{Symbol's function is void:
-overlayp}}
-
-You don't have the @samp{fsf-compat} package installed, which IDLWAVE
-needs to run under XEmacs. Install it, or find an XEmacs distribution
-which includes it by default.
-
@item @strong{I'm getting errors like @samp{Symbol's value as variable is void:
cl-builtin-gethash} on completion or routine info.}
@@ -4181,8 +4174,8 @@
load file}}.
The problem is that your Emacs is not finding the version of IDLWAVE you
-installed. Many Emacsen come with an older bundled copy of IDLWAVE
-(e.g., v4.7 for Emacs 21.x), which is likely what's being used instead.
+installed. Emacs might come with an older bundled copy of IDLWAVE
+which is likely what's being used instead.
You need to make sure your Emacs @emph{load-path} contains the directory
where IDLWAVE is installed (@file{/usr/local/share/emacs/site-lisp}, by
default), @emph{before} Emacs's default search directories. You can
@@ -4262,20 +4255,6 @@
Starting with IDL 6.2, the HTML help and its catalog are
distributed with IDL, and so should never be inconsistent.
-@item @strong{I get errors such as @samp{void-variable
-browse-url-browser-function} or similar when attempting to load IDLWAVE
-under XEmacs.}
-
-You don't have the @samp{browse-url} (or other required) XEmacs package.
-Unlike Emacs, XEmacs distributes many packages separately from the
-main program. IDLWAVE is actually among these, but is not always the
-most up to date. When installing IDLWAVE as an XEmacs package, it
-should prompt you for required additional packages. When installing it
-from source, it won't and you'll get this error. The easiest solution
-is to install all the packages when you install XEmacs (the so-called
-@samp{sumo} bundle). The minimum set of XEmacs packages required by
-IDLWAVE is @samp{fsf-compat, xemacs-base, mail-lib}.
-
@end enumerate
@node GNU Free Documentation License
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/mh-e.texi
^
|
@@ -333,8 +333,7 @@
Press the @key{DELETE} key.
@c -------------------------
@item @key{BS}
-Press the @key{BACKSPACE} key@footnote{If you are using Version 20 or
-earlier of Emacs, you will need to use the @key{DEL} key.}.
+Press the @key{BACKSPACE} key.
@end table
@cindex Emacs, prefix argument
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/modus-themes.org
^
|
@@ -481,7 +481,7 @@
interfaces or with {{{kbd(M-x customize-set-variable)}}} will not reload the
currently active Modus theme.
-Enable this behaviour by setting this variable to ~nil~.
+Enable this behavior by setting this variable to ~nil~.
** Option for color-coding success state
:properties:
@@ -649,7 +649,7 @@
This is to ensure that those constructs remain monospaced even when
users opt for a mode that remaps typeface families, such as the built-in
{{{kbd(M-x variable-pitch-mode)}}}. Otherwise the layout would appear
-broken, due to how spacing is done. To disable this behaviour, set the
+broken, due to how spacing is done. To disable this behavior, set the
option to ~t~.
Users may prefer to use another package for handling mixed typeface
@@ -1736,7 +1736,7 @@
This section is of interest only to users who are prepared to maintain
their own local tweaks and who are willing to deal with any possible
incompatibilities between versioned releases of the themes. As such,
-they are labelled as "do-it-yourself" or "DIY".
+they are labeled as "do-it-yourself" or "DIY".
** Per-theme customization settings
:properties:
@@ -2050,7 +2050,7 @@
Whenever we enter a ~diff-mode~ buffer, we now get a magenta-colored
region.
-Perhaps you may wish to generalise those findings in to a set of
+Perhaps you may wish to generalize those findings in to a set of
functions that also accept an arbitrary face. We shall leave the
experimentation up to you.
@@ -2069,7 +2069,7 @@
One way to achieve this is to design a command that cycles through three
distinct levels of intensity, though the following can be adapted to any
-kind of cyclic behaviour, such as to switch between red, green, and
+kind of cyclic behavior, such as to switch between red, green, and
blue.
In the following example, we employ the ~modus-themes-color~ function
@@ -2318,7 +2318,7 @@
shades for Modus Vivendi. Switching between the two themes, such as
with {{{kbd(M-x modus-themes-toggle)}}} will also use the overrides.
-Given that this is a user-level customisation, one is free to implement
+Given that this is a user-level customization, one is free to implement
whatever color values they desire, even if the possible combinations
fall below the minimum 7:1 contrast ratio that governs the design of the
themes (the WCAG AAA legibility standard). Alternatively, this can also
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/org.org
^
|
@@ -2866,12 +2866,12 @@
- transpose ::
When =y=, =yes=, or =t= attempt to transpose the table data before
- plotting. Also recognises the shorthand option =trans=.
+ plotting. Also recognizes the shorthand option =trans=.
- =type= ::
Specify the type of the plot, by default one of =2d=, =3d=, =radar=, or =grid=.
- Available types can be customised with ~org-plot/preset-plot-types~.
+ Available types can be customized with ~org-plot/preset-plot-types~.
- =with= ::
@@ -6405,7 +6405,7 @@
Marking this DONE shifts the date to one month after today.
,** TODO Wash my hands
- DEADLINE: <2019-04-05 08:00 Sun .+1h>
+ DEADLINE: <2019-04-05 08:00 Fri .+1h>
Marking this DONE shifts the date to exactly one hour from now.
#+end_example
@@ -8544,8 +8544,8 @@
Search for a regular expression in all agenda files and additionally
in the files listed in ~org-agenda-text-search-extra-files~. This
uses the Emacs command ~multi-occur~. A prefix argument can be used
- to specify the number of context lines for each match, default is
- 1.
+ to specify the number of context lines for each match, the default
+ is 1.
- {{{kbd(#)}}} ::
@@ -12442,7 +12442,7 @@
When =ignoreheading= is set, Org export ignores the entry's headline
but not its content. This is useful for inserting content between
frames. It is also useful for properly closing a =column=
- environment. @end itemize
+ environment.
#+cindex: @samp{BEAMER_ACT}, property
#+cindex: @samp{BEAMER_OPT}, property
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/reftex.texi
^
|
@@ -38,7 +38,6 @@
@set SUPPORTADDRESS @AUCTeX{} user mailing list (@email{auctex@@gnu.org})
@set DEVELADDRESS @AUCTeX{} developer mailing list (@email{auctex-devel@@gnu.org})
@set BUGADDRESS @AUCTeX{} bug mailing list (@email{bug-auctex@@gnu.org})
-@set XEMACSFTP @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,XEmacs FTP site}
@c %**end of header
@copying
@@ -249,10 +248,7 @@
@cindex Installation
@RefTeX{} has been bundled and pre-installed with Emacs since
-version 20.2. It has also been bundled and pre-installed with XEmacs
-19.16--20.x. XEmacs 21.x users want to install the corresponding
-plug-in package which is available from the @value{XEMACSFTP}. See the
-XEmacs 21.x documentation on package installation for details.
+version 20.2.
@findex turn-on-reftex
@findex reftex-mode
@@ -3543,18 +3539,6 @@
after the @samp{@{step+@}}, also when specifying how to get
context.
-@item
-@b{Viper mode}@*
-@cindex Viper mode
-@cindex Key bindings, problems with Viper mode
-@findex viper-harness-minor-mode
-With @i{Viper} mode prior to Vipers version 3.01, you need to protect
-@RefTeX{}'s keymaps with
-
-@lisp
-(viper-harness-minor-mode "reftex")
-@end lisp
-
@end itemize
@page
@@ -3584,7 +3568,7 @@
There are also several Usenet groups which have competent readers who
might be able to help: @code{comp.emacs}, @code{gnu.emacs.help},
-@code{comp.emacs.xemacs}, and @code{comp.text.tex}.
+and @code{comp.text.tex}.
Thanks to the people on the Net who have used @RefTeX{} and helped
developing it with their reports. In particular thanks to @i{Ralf
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/texinfo.tex
^
|
@@ -1002,7 +1002,7 @@
\global\everypar = {}%
}
-% leave vertical mode without cancelling any first paragraph indent
+% leave vertical mode without canceling any first paragraph indent
\gdef\imageindent{%
\toks0=\everypar
\everypar={}%
@@ -7660,7 +7660,7 @@
% If SUBTOPIC is present, precede it with a space, and call \doind.
% (At some time during the 20th century, this made a two-level entry in an
% index such as the operation index. Nobody seemed to notice the change in
-% behaviour though.)
+% behavior though.)
\def\dosubind#1#2#3{%
\def\thirdarg{#3}%
\ifx\thirdarg\empty
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/tramp.texi
^
|
@@ -667,6 +667,11 @@
(with-eval-after-load 'tramp (tramp-change-syntax 'simplified))
@end lisp
+@vindex enable-remote-dir-locals
+Changing other variables via directory-local variables on a remote
+directory must be enabled by setting @code{enable-remote-dir-locals}
+to non-@code{nil}, @xref{Directory Variables, , , emacs}.
+
@menu
* Connection types:: Types of connections to remote hosts.
@@ -2397,7 +2402,7 @@
@end lisp
@vindex password-word-equivalents
-This user option is, by default, initialised from
+This user option is, by default, initialized from
@code{password-word-equivalents} when @value{tramp} is loaded, and it
is usually more convenient to add new passphrases to that user option
instead of altering this user option.
@@ -3156,7 +3161,7 @@
@item @code{simplified}
@cindex simplified syntax
-The remote file name syntax is similar to the syntax used by Ange FTP@.
+This remote file name syntax is similar to the syntax used by Ange FTP@.
A remote file name has the form
@code{@value{prefix}user@@host@value{postfix}path/to/file}. The
@code{user@@} part is optional, and the method is determined by
@@ -3168,7 +3173,7 @@
@clear unified
@set separate
@include trampver.texi
-The remote file name syntax is similar to the syntax used by XEmacs.
+This remote file name syntax originated in the XEmacs text editor.
A remote file name has the form
@code{@trampfn{method,user@@host,path/to/file}}. The @code{method}
and @code{user@@} parts are optional.
@@ -4008,8 +4013,10 @@
@acronym{GVFS} @option{archive} method.
A file archive is a regular file of kind @file{/path/to/dir/file.EXT}.
-The extension @samp{.EXT} identifies the type of the file archive. A
-file inside a file archive, called archive file name, has the name
+The extension @samp{.EXT} identifies the type of the file archive. To
+examine the contents of an archive with Dired, open file name as if it
+were a directory (i.e., open @file{/path/to/dir/file.EXT/}). A file
+inside a file archive, called archive file name, has the name
@file{/path/to/dir/file.EXT/dir/file}.
Most of the @ref{Magic File Names, , magic file name operations,
@@ -4983,13 +4990,6 @@
(before my-minibuffer-complete activate)
(expand-abbrev))
@end group
-
-@group
-;; If you use partial-completion-mode
-(defadvice PC-do-completion
- (before my-PC-do-completion activate)
- (expand-abbrev))
-@end group
@end lisp
The reduced typing: @kbd{C-x C-f xy @key{TAB}}.
@@ -5446,15 +5446,15 @@
@*@indent @w{ 4} activities
@*@indent @w{ 5} internal
@*@indent @w{ 6} sent and received strings
-@*@indent @w{ 7} file caching
-@*@indent @w{ 8} connection properties
+@*@indent @w{ 7} connection properties
+@*@indent @w{ 8} file caching
@*@indent @w{ 9} test commands
@*@indent @w{10} traces (huge)
@*@indent @w{11} call traces (maintainer only)
With @code{tramp-verbose} greater than or equal to 4, messages are
also written to a @value{tramp} debug buffer. Such debug buffers are
-essential to bug and problem analyses. For @value{tramp} bug reports,
+essential to bug and problem analyzes. For @value{tramp} bug reports,
set the @code{tramp-verbose} level to 6 (@pxref{Bug Reports}).
The debug buffer is in
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/trampver.texi
^
|
@@ -8,7 +8,7 @@
@c In the Tramp GIT, the version numbers are auto-frobbed from
@c tramp.el, and the bug report address is auto-frobbed from
@c configure.ac.
-@set trampver 2.5.2.28.1
+@set trampver 2.5.3.28.2
@set trampurl https://www.gnu.org/software/tramp/
@set tramp-bug-report-address tramp-devel@@gnu.org
@set emacsver 25.1
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/transient.texi
^
|
@@ -2025,7 +2025,7 @@
@code{value} The value. Should not be accessed directly.
@item
-@code{init-value} Function that is responsable for setting the object's
+@code{init-value} Function that is responsible for setting the object's
value. If bound, then this is called with the object as the only
argument. Usually this is not bound, in which case the object's
primary @code{transient-init-value} method is called instead.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/doc/misc/viper.texi
^
|
@@ -34,7 +34,7 @@
@titlepage
@title Viper Is a Package for Emacs Rebels
@subtitle a Vi emulator for Emacs
-@subtitle November 2008, Viper Version 3.11.2
+@subtitle July 2013, Viper Version 3.14.2
@author Michael Kifer (Viper)
@author Aamod Sane (VIP 4.4)
@@ -325,9 +325,9 @@
@noindent
in your @file{~/.emacs} file. The @file{.emacs} file is placed in your
home directory and it is be executed every time you invoke Emacs. This is
-the place where all general Emacs customization takes place. Beginning with
-version 20.0, Emacsen have an interactive interface, which simplifies the
-job of customization significantly.
+the place where all general Emacs customization takes place. Emacs
+has an interactive interface (@kbd{M-x customize}), which simplifies
+the job of customization significantly.
Viper also uses the file @file{~/.emacs.d/viper} for Viper-specific customization.
The location of Viper customization file can be changed by setting the
@@ -1842,7 +1842,7 @@
(set-face-background viper-replace-overlay-face "yellow")
@end smallexample
For a complete list of colors available to you, evaluate the expression
-@code{(x-defined-colors)}. (Type it in the buffer @file{*scratch*} and then
+@code{(defined-colors)}. (Type it in the buffer @file{*scratch*} and then
hit the @kbd{C-j} key.
@item viper-replace-overlay-cursor-color "Red"
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/AUTHORS
^
|
@@ -68,7 +68,7 @@
and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m configure.ac
src/Makefile.in macos.texi README config.in emacs.c font.c keyboard.c
nsgui.h nsimage.m xdisp.c image.c lib-src/Makefile.in lisp.h menu.c
- Makefile.in and 79 other files
+ Makefile.in and 78 other files
Ævar Arnfjörð Bjarmason: changed rcirc.el
@@ -103,11 +103,11 @@
Alan Mackenzie: wrote cc-awk.el
and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el
cc-langs.el cc-mode.el cc-styles.el cc-vars.el
-and changed cc-mode.texi minibuf.c bytecomp.el edebug.el follow.el
- window.c display.texi subr.el syntax.texi progmodes/compile.el
+and changed cc-mode.texi minibuf.c bytecomp.el window.c edebug.el
+ follow.el display.texi subr.el syntax.texi progmodes/compile.el
programs.texi eval.c keyboard.c lisp.h modes.texi window.el
- windows.texi cus-start.el font-lock.el isearch.el newcomment.el
- and 166 other files
+ windows.texi cus-start.el font-lock.el frame.c isearch.el
+ and 167 other files
Alan Modra: changed unexelf.c
@@ -281,8 +281,8 @@
comp.el
and changed comp.c pdumper.c lread.c bytecomp.el comp.h configure.ac
lisp.h startup.el loadup.el alloc.c data.c emacs.c .gitlab-ci.yml
- nadvice.el cl-macs.el advice.el help.el lisp/Makefile.in package.el
- Makefile.in comp-test-funcs.el and 62 other files
+ nadvice.el cl-macs.el advice.el comp-test-funcs.el help.el
+ lisp/Makefile.in package.el Makefile.in and 61 other files
André A. Gomes: changed ispell.el
@@ -433,16 +433,17 @@
Antoine Beaupré: changed vc-git.el
-Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el
+Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi
ange-ftp.el cus-edit.el dired-x.el ebnf2ps.el emerge.el erc-button.el
erc-goodies.el erc-stamp.el erc-track.el files.el find-file.el
gnus-art.el gnus-uu.el gnus.el gnus.texi message.el mh-funcs.el
- and 8 other files
+ mh-mime.el and 7 other files
Antonin Houska: changed newcomment.el
-Arash Esbati: changed reftex-vars.el reftex-auc.el reftex-ref.el
- reftex.el nnmaildir.el reftex-cite.el reftex-dcr.el reftex-toc.el
+Arash Esbati: changed reftex-vars.el efaq-w32.texi reftex-auc.el
+ reftex-ref.el reftex.el gnus.texi nnmaildir.el reftex-cite.el
+ reftex-dcr.el reftex-toc.el
Arik Mitschang: changed smime.el
@@ -542,7 +543,7 @@
custom.el bibtex.el text.texi gnus-sum.el modes.texi customize.texi
files.texi gnus-group.el gnus-win.el gravatar.el internals.texi json.el
shr.el window.c battery-tests.el button.el custom-tests.el
- and 278 other files
+ and 279 other files
Bastian Beischer: changed semantic/complete.el calc-yank.el include.el
mru-bookmark.el refs.el senator.el
@@ -833,7 +834,7 @@
and changed simple.el display.texi xdisp.c files.el frames.texi
cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c
startup.el package.el misc.texi emacs.texi modes.texi mouse.el
- custom.texi image.c window.el and 934 other files
+ custom.texi image.c window.el and 932 other files
Chris Chase: co-wrote idlw-shell.el idlwave.el
@@ -993,7 +994,8 @@
Colin Williams: changed calc.texi
-Colin Woodbury: changed files.el files.texi macros.texi shortdoc.el
+Colin Woodbury: changed files.el cl-seq.el files.texi macros.texi
+ shortdoc.el
Constantin Kulikov: changed server.el startup.el
@@ -1030,11 +1032,11 @@
Damien Cassou: wrote auth-source-pass-tests.el hierarchy-tests.el
hierarchy.el
and co-wrote auth-source-pass.el auth-source-tests.el
-and changed auth.texi checkdoc.el ispell.el message.el seq-tests.el
- seq.el simple-tests.el simple.el auth-source.el autorevert.el
+and changed simple.el auth.texi checkdoc.el ispell.el message.el
+ seq-tests.el seq.el simple-tests.el auth-source.el autorevert.el
checkdoc-tests.el imenu-tests.el imenu.el info.el isearch.el
- json-tests.el json.el message-tests.el package.el rmc.el sequences.texi
- xref.el
+ json-tests.el json.el message-tests.el package.el rmc.el sending.texi
+ and 3 other files
Damien Elmes: changed erc.el erc-dcc.el erc-track.el erc-log.el
erc-pcomplete.el README erc-button.el erc-nets.el erc-ring.el Makefile
@@ -1114,7 +1116,7 @@
msdos-xtra.texi ns-win.el basic.texi cmacexp.el compilation.txt
compile-tests.el cscope.el diff.el dired.el display.texi editfns.c
emacs.texi files-tests.el find-func-tests.el find-func.el frame.c
- and 17 other files
+ and 18 other files
Daniel McClanahan: changed lisp-mode.el
@@ -1199,7 +1201,7 @@
and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el
xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el
fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el
- files.el keyboard.c byte-opt.el info.el and 772 other files
+ files.el keyboard.c byte-opt.el info.el and 771 other files
Dave Pearson: wrote 5x5.el quickurl.el
@@ -1369,10 +1371,10 @@
Decklin Foster: changed nngateway.el
-Deepak Goel: changed idlw-shell.el ada-xref.el feedmail.el files.el
- find-func.el flymake.el mh-search.el mh-seq.el mh-thread.el mh-xface.el
- org.el simple.el vc.el vhdl-mode.el wdired.el README ada-mode.el
- allout.el appt.el apropos.el artist.el and 85 other files
+Deepak Goel: changed idlw-shell.el feedmail.el files.el find-func.el
+ flymake.el mh-search.el mh-seq.el mh-thread.el mh-xface.el org.el
+ simple.el vc.el vhdl-mode.el wdired.el README allout.el appt.el
+ apropos.el artist.el bibtex.el bindings.el and 83 other files
D. E. Evans: changed basic.texi
@@ -1513,8 +1515,8 @@
apropos.el bindings.el and 22 other files
Earl Hyatt: changed ffap.el seq-tests.el sequences.texi windows.texi
- control.texi cus-edit.el hi-lock.el misc.texi pcase-tests.el pcase.el
- replace.el search.texi seq.el tab-bar.el
+ autotype.texi control.texi cus-edit.el hi-lock.el misc.texi
+ pcase-tests.el pcase.el replace.el search.texi seq.el tab-bar.el
E. Choroba: changed cperl-mode.el simple.el
@@ -1571,8 +1573,8 @@
chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el
and co-wrote help-tests.el
and changed xdisp.c display.texi w32.c msdos.c w32fns.c simple.el
- files.el fileio.c keyboard.c emacs.c w32term.c text.texi dispnew.c
- w32proc.c files.texi frames.texi configure.ac dispextern.h lisp.h
+ files.el fileio.c emacs.c keyboard.c w32term.c text.texi dispnew.c
+ w32proc.c files.texi frames.texi configure.ac lisp.h dispextern.h
process.c ms-w32.h and 1236 other files
Eliza Velasquez: changed server.el
@@ -1594,7 +1596,7 @@
and 58 other files
Emmanuel Briot: wrote xml.el
-and changed ada-mode.el ada-stmt.el ada-prj.el ada-xref.el
+and changed ada-stmt.el
Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el
tramp.el tramp.texi
@@ -1732,6 +1734,8 @@
Eugene Exarevsky: changed sql.el
+Eugene Ha: changed configure.ac
+
Evangelos Evangelou: changed progmodes/f90.el
Evan Moses: changed progmodes/python.el
@@ -1782,6 +1786,8 @@
Felipe Ochoa: changed faces.el js.el paren.el
+Felix Dietrich: changed tramp-archive.el
+
Felix E. Klee: co-wrote svg.el
and changed display.texi
@@ -1978,7 +1984,7 @@
and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c
window.c keyboard.c lisp.h faces.el alloc.c buffer.c startup.el xterm.h
fns.c simple.el term.c configure.ac frame.c xmenu.c emacs.c
- and 610 other files
+ and 609 other files
Gergely Nagy: changed erc.el
@@ -2006,7 +2012,7 @@
lisp/Makefile.in diary-lib.el files.el make-dist rmail.el
progmodes/f90.el bytecomp.el admin.el misc/Makefile.in simple.el
authors.el startup.el emacs.texi lib-src/Makefile.in display.texi
- ack.texi subr.el and 1789 other files
+ ack.texi subr.el and 1786 other files
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/DEBUG
^
|
@@ -661,10 +661,10 @@
the backtrace when Emacs stops inside that function will show what
code causes the X protocol errors.
-Note that the -xrm option may have no effect when you make an Emacs
-process invoked with the -nw option a server and want to trace X
-protocol errors from subsequent invocations of emacsclient in a GUI
-frame. In that case calling the initial Emacs via
+Note that the -xrm option may have no effect when you start a server
+in an Emacs session invoked with the -nw command-line option, and want
+to trace X protocol errors from GUI frames created by subsequent
+invocations of emacsclient. In that case starting Emacs via
emacs -nw --eval '(setq x-command-line-resources "emacs.synchronous: true")'
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/HISTORY
^
|
@@ -226,6 +226,8 @@
GNU Emacs 28.1 (2022-04-04) emacs-28.1
+GNU Emacs 28.2 (2022-09-12) emacs-28.2
+

----------------------------------------------------------------------
This file is part of GNU Emacs.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/NEWS
^
|
@@ -16,6 +16,50 @@
with a prefix argument or by typing 'C-u C-h C-n'.

+* Installation Changes in Emacs 28.2
+
+** To install the Emacs binary in a non-standard directory, use '--bindir='.
+If you install Emacs in a way that places the Emacs executable file in
+a directory other than "${prefix}/bin", you will now need to specify
+that at configure time, if you build Emacs with native-compilation
+support. To this end, add the '--bindir=DIRECTORY' switch to the
+command line of the 'configure' script, where DIRECTORY is the
+directory in which you will install the executable file "emacs". This
+is required even if you place a symlink under "${prefix}/bin" that
+points to the real executable file in some other DIRECTORY.
+
+It is no longer enough to specify 'bindir=DIRECTORY' on the command
+line of the "make install" command.
+
+The reason for this new requirement is that Emacs needs to locate at
+startup the directory with its "*.eln" natively-compiled files for the
+preloaded Lisp packages, and the relative name of that directory needs
+therefore to be recorded in the executable as part of the build.
+
+
+* Changes in Emacs 28.2
+
+This is a bug-fix release with no new features.
+
+
+* Changes in Specialized Modes and Packages in Emacs 28.2
+
+** The command 'kdb-macro-redisplay' was renamed to 'kmacro-redisplay'.
+This is to fix an embarrassing typo in the original name.
+
+** 'desktop-save-mode' now saves the desktop in 'save-buffers-kill-emacs'.
+Previously, the desktop was saved in 'kill-emacs' via
+'kill-emacs-hook'. However, that violated the convention that
+functions in 'kill-emacs-hook' cannot interact with the user, and in
+particular didn't play well with ending daemon sessions of Emacs. So
+we moved the saving of the desktop to 'save-buffers-kill-emacs', via
+'kill-emacs-query-functions'. To make sure the desktop is saved,
+terminate Emacs with 'save-buffers-kill-emacs', not with 'kill-emacs'.
+
+(This change was done in Emacs 28.1, but we didn't announce it in NEWS
+back then.)
+
+
* Installation Changes in Emacs 28.1
** Emacs now optionally supports native compilation of Lisp files.
@@ -1387,7 +1431,7 @@
*** 'so-long-target-modes' now includes 'fundamental-mode' by default.
This means that 'global-so-long-mode' will also process files which were
-not recognised. (This only has an effect if 'set-auto-mode' chooses
+not recognized. (This only has an effect if 'set-auto-mode' chooses
'fundamental-mode'; buffers which are simply in 'fundamental-mode' by
default are unaffected.)
@@ -1701,8 +1745,8 @@
If nil, don't automatically create entries, they must be created
manually.
-*** New user options to customise the summary line specs "%[" and "%]".
-Four new options introduced in customisation group
+*** New user options to customize the summary line specs "%[" and "%]".
+Four new options introduced in customization group
'gnus-summary-format'. These are 'gnus-sum-opening-bracket',
'gnus-sum-closing-bracket', 'gnus-sum-opening-bracket-adopted', and
'gnus-sum-closing-bracket-adopted'. Their default values are "[", "]",
@@ -2040,7 +2084,7 @@
** CC mode
*** Added support for Doxygen documentation style.
-'doxygen' is now a valid 'c-doc-comment-style' which recognises all
+'doxygen' is now a valid 'c-doc-comment-style' which recognizes all
comment styles supported by Doxygen (namely '///', '//!', '/** … */'
and '/*! … */'. 'gtkdoc' remains the default for C and C++ modes; to
use 'doxygen' by default one might evaluate:
@@ -3106,9 +3150,9 @@
'nnmail-fix-eudora-headers', 'non-iso-charset-alist',
'nonascii-insert-offset', 'nonascii-translation-table',
'password-read-and-add', 'pre-abbrev-expand-hook', 'princ-list',
-'print-help-return-message', 'process-filter-multibyte-p',
-'read-file-name-predicate', 'remember-buffer', 'rmail-highlight-face',
-'rmail-message-filter', 'semantic-after-idle-scheduler-reparse-hooks',
+'print-help-return-message', 'read-file-name-predicate',
+'remember-buffer', 'rmail-highlight-face', 'rmail-message-filter',
+'semantic-after-idle-scheduler-reparse-hooks',
'semantic-after-toplevel-bovinate-hook',
'semantic-before-idle-scheduler-reparse-hooks',
'semantic-before-toplevel-bovination-hook',
@@ -3134,9 +3178,9 @@
'semantic-something-to-stream', 'semantic-tag-make-assoc-list',
'semantic-token-type-parent', 'semantic-toplevel-bovine-cache',
'semantic-toplevel-bovine-table', 'semanticdb-mode-hooks',
-'set-coding-priority', 'set-process-filter-multibyte',
-'shadows-compare-text-p', 'shell-dirtrack-toggle',
-'speedbar-navigating-speed', 'speedbar-update-speed', 't-mouse-mode',
+'set-coding-priority', 'shadows-compare-text-p',
+'shell-dirtrack-toggle', 'speedbar-navigating-speed',
+'speedbar-update-speed', 't-mouse-mode',
'term-dynamic-simple-complete', 'tooltip-hook', 'tpu-have-ispell',
'url-generate-unique-filename', 'url-temporary-directory',
'vc-arch-command', 'vc-default-working-revision' (variable),
@@ -3213,12 +3257,13 @@
MODE..., or, if it's a minor mode, when that minor mode is enabled in
the current buffer.
-Note that these forms will only have their effect if the
+Note that these forms will only have their effect for 'M-x' if the
'read-extended-command-predicate' user option is customized to call
'command-completion-default-include-p' or a similar function. The
default value of 'read-extended-command-predicate' is nil, which means
no commands that match what you have typed are excluded from being
-completion candidates.
+completion candidates. The forms will, however, be used by 'M-S-x' by
+default.
** 'define-minor-mode' now takes an ':interactive' argument.
This can be used for specifying which modes this minor mode is meant
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/ORG-NEWS
^
|
@@ -293,7 +293,7 @@
This functionality is implemented in a new function,
~org-display-inline-image--width~ which contains the width
determination logic previously in ~org-display-inline-images~ and the
-new behaviour.
+new behavior.
** New options
*** Option ~org-hidden-keywords~ now also applies to #+SUBTITLE:
@@ -311,7 +311,7 @@
*** New option ~org-id-ts-format~
Earlier, IDs generated using =ts= method had a hard-coded format (i.e. =20200923T160237.891616=).
-The new option allows user to customise the format.
+The new option allows user to customize the format.
Defaults are unchanged.
*** New argument for ~file-desc~ babel header
@@ -451,10 +451,6 @@
(the default) or use the attachment directory of the current node, if
it is correctly configured as a Git repository.
-*** Some faces now use fixed-pitch
-
-See [[msg:875z8njaol.fsf@protesilaos.com][this thread]].
-
*** New option ~org-attach-sync-delete-empty-dir~
~org-attach-sync-delete-empty-dir~ controls the deletion of an empty
@@ -507,16 +503,16 @@
*** Faces of all the heading text elements now conform to the headline face
-In the past, faces of todo keywords, emphasised text, tags, and
+In the past, faces of todo keywords, emphasized text, tags, and
priority cookies inherited =default= face. The resulting headline
-fontification was not always consistent, as discussed in [[https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00331.html][this bug
+fontification was not always consistent, as discussed in [[msg::87h7sawubl.fsf@protesilaos.com][this bug
report]]. Now, the relevant faces adapt to face used to fontify the
current headline level.
-Users who prefer to keep the old behaviour should change their face
-customisation explicitly stating that =default= face is inherited.
+Users who prefer to keep the old behavior should change their face
+customization explicitly stating that =default= face is inherited.
-Example of old face customisation:
+Example of old face customization:
#+begin_src emacs-lisp
(setq org-todo-keyword-faces '(("TODO"
@@ -524,7 +520,7 @@
:height 0.75)))
#+end_src
-To preserve the old behaviour the above customisation should be
+To preserve the old behavior the above customization should be
changed to
#+begin_src emacs-lisp
@@ -547,7 +543,7 @@
*** LaTeX environment =#+results= are now removed
If a babel src block produces a raw LaTeX environment, it will now be
-recognised as a result, and so replaced when re-evaluated.
+recognized as a result, and so replaced when re-evaluated.
*** Tag completion now uses =completing-read-multiple=
@@ -685,7 +681,7 @@
- =C-j= (bound to the new command ~org-return-and-maybe-indent~)
merely inserts a newline.
-To get the previous behaviour back, disable ~electric-indent-mode~
+To get the previous behavior back, disable ~electric-indent-mode~
explicitly:
#+begin_src emacs-lisp
@@ -1033,7 +1029,7 @@
*** Forward/backward paragraph functions in line with the rest of Emacs
~org-forward-paragraph~ and ~org-backward-paragraph~, bound to
-~<C-UP>~ and ~<C-DOWN>~ functions mimic more closely behaviour of
+~<C-UP>~ and ~<C-DOWN>~ functions mimic more closely behavior of
~forward-paragraph~ and ~backward-paragraph~ functions when
available.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/PROBLEMS
^
|
@@ -651,6 +651,46 @@
See <https://pypi.python.org/pypi/gnureadline> for more details on
installation.
+*** On MS-Windows, invoking "M-x run-python" signals an error.
+
+If the error says something like this:
+
+ Python was not found; run with arguments to install
+ from the Microsoft Store, or disable this shortcut
+ from Settings > Manage App Execution Aliases.
+
+ Process Python exited abnormally with code 49
+
+then this is due to the MS-Windows "feature" that is intended to
+encourage you to install the latest available Python version. It
+works by placing "fake" python.exe and python3.exe executables in a
+special directory, and having that directory on your Path _before_ the
+directory where the real Python executable is installed. That "fake"
+Python then decides whether to redirect you to the Microsoft Store or
+invoke the actual Python. The directory where Windows keeps those
+"fake" executables is under your Windows user's 'AppData' directory,
+typically 'C:\Users\<user>\AppData\Local\Microsoft\WindowsApps', where
+"<user>" is the user name of your Windows user.
+
+To solve this, you have several alternatives:
+
+ . Go to "Settings > Manage App Execution Aliases" and turn OFF the
+ aliases for python.exe and/or python3.exe. This will affect only
+ Python, and may require you to manage upgrades to your Python
+ installation manually, instead of being automatically prompted by
+ MS-Windows.
+ . Move the directory with the "fake" executables to the end of Path,
+ or at least after the directory where the real Python is
+ installed. Depending on the position in Path where you move it,
+ it will affect Python and/or other programs which Windows monitors
+ via the "App Execution Aliases" feature.
+ . Manually remove python.exe and/or python3.exe from the above
+ directory. Again, this affects only your Python installation.
+
+Whatever you do, you will need to restart Emacs to refresh its notion
+of the directory where python.exe/python3.exe lives, because that is
+recorded when Python mode is started.
+
*** Visiting files in some auto-mounted directories causes Emacs to print
'Error reading dir-locals: (file-error "Read error" "is a directory" ...'
@@ -689,6 +729,53 @@
To work around the problem, you could use Git or some other
free-software program, instead of ClearCase.
+*** Various commands that visit files on networked filesystems fail.
+
+This could happen if the filesystem of those files is mounted in a way
+that causes the files to be accessed via a symlink. One such example
+is the 'amd' automounter, which unmounts the filesystem after some
+period of lack of use. Another example is Emacs running on MS-Windows
+that accesses files on remote server via symlinks whose target is a
+UNC of the form '\\server\share'.
+
+The reason for these problems is that some Emacs commands visit files
+via their truename, resolving the symlink, which causes these files'
+default-directory to also have the symlink resolved. If the resolved
+directory has access problems, subsequent commands from that file's
+buffer could fail. For example, the stock MS-Windows shell 'cmd.exe'
+is unable to use a UNC-form directory as the current directory, so
+'shell-command' and its callers will typically fail. Similarly with
+using targets of symlinks which no longer mount the remote filesystem
+will fail.
+
+You can solve these problems in several ways:
+
+ - Write a 'find-file'hook' function which will change the value of
+ 'default-directory' to reference the symlink instead of its
+ target.
+
+ - Set up 'directory-abbrev-alist' to automatically convert the
+ 'default-directory' of such files in the same manner.
+
+ - On MS-Windows, map a drive letter to the '\\server\share'
+ directory and point your symlinks to a directory name that uses
+ the drive letter.
+
+*** On MS-Windows, visiting files in OneDrive fails.
+
+This is known to happen when OneDrive is accessed via the so-called
+"metered connections", whose use is charged by the volume of
+transferred data. Those are typically wireless links using a modem or
+a mobile phone. In these cases, files that are left in the cloud and
+not downloaded to the local computer can produce various failures in
+system calls that access the files or their meta-data.
+
+The solution is to disable the "metered connection" status from the
+WiFi properties (reachable from the Windows Settings menu). This will
+cause files to be downloaded to the local computer when they are
+accessed (which could take some time, and Emacs functions accessing
+the file will wait for that), avoiding the errors.
+
*** ps-print commands fail to find prologue files ps-prin*.ps.
This can happen if you use an old version of X-Symbol package: it
@@ -1022,6 +1109,21 @@
The solution is to switch to a configuration that uses HarfBuzz as its
shaping engine, where these problems don't exist.
+** On MS-Windows, selecting some fonts as the default font doesn't work.
+
+This can happen if you select font variants such as "Light" or "Thin"
+or "Semibold" or "Heavy", and some others. The APIs used by Emacs on
+Windows to enumerate fonts in a font family consider only 4 font
+variants to belong to the same family: Regular, Italic, Bold, and
+Bold-Italic. All the other variants aren't returned by those APIs
+when we request to list all the fonts in a family, and thus aren't
+considered by Emacs to belong to the family. So any font variant that
+is not one of those 4 will likely not work as expected; in most cases
+Emacs will select some other font instead.
+
+The only workaround is not to choose such font variants as the default
+font when running Emacs on MS-Windows.
+
* Internationalization problems
** M-{ does not work on a Spanish PC keyboard.
@@ -1681,6 +1783,33 @@
(xterm-remove-modify-other-keys)
+** The shift TAB key combination works as meta TAB on a Linux console.
+
+This happens because on your keyboard layout, S-TAB produces the same
+keycodes as typing ESC TAB individually. The best way to solve this
+is to modify your keyboard layout to produce different codes, and tell
+Emacs what these new codes mean.
+
+The current keyboard layout will probably be a .map.gz file somewhere
+under /usr/share/keymaps. Identify this file, possibly from a system
+initialization file such as /etc/conf.d/keymaps. Run gunzip on it to
+decompress it, and amend the entries for keycode 15 to look something
+like this:
+
+keycode 15 = Tab
+ alt keycode 15 = Meta_Tab
+ shift keycode 15 = F219
+string F219 = "\033[4}\011" # Shift+<tab>
+
+After possibly saving this file under a different name, compress it
+again using gzip. Amend /etc/conf.d/keyamps, etc., if needed.
+Further details can be found in the man page for loadkeys.
+
+Then add the following line near the start of your site-start.el or
+.emacs or init.el file:
+
+(define-key input-decode-map "\e[4}\t" 'backtab)
+
** Emacs spontaneously displays "I-search: " at the bottom of the screen.
This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
@@ -1979,6 +2108,13 @@
*** Linux console problems with double-width characters
+If possible, we recommend running Emacs inside fbterm, when in a Linux
+console (see the node "Emacs in a Linux console" in the Emacs FAQ).
+Most Unicode characters should then be displayed correctly.
+
+If that is not possible, the following may be useful to alleviate the
+problem of displaying Unicode characters in a raw console.
+
The Linux console declares UTF-8 encoding, but supports only a limited
number of Unicode characters, and can cause Emacs produce corrupted or
garbled display with some unusual characters and sequences. Emacs 28
@@ -2041,8 +2177,23 @@
addressing to get out of sync and eventually messes up the display.
One possible workaround for problems caused by character composition
-is to turn off 'auto-composition-mode' on Kitty terminals.
+is to turn off 'auto-composition-mode' on Kitty terminals, e.g. by
+customizing the 'auto-composition-mode' variable to have as value a
+string that the 'tty-type' function returns on those terminals.
+
+*** Display artifacts on the Alacritty text terminal
+This terminal is known to cause problems with Emoji sequences: when
+displaying them, the Emacs text-mode frame could show gaps and other
+visual artifacts.
+
+The solution is to disable 'auto-composition-mode' on these
+terminals, for example, like this:
+
+ (setq auto-composition-mode "alacritty")
+
+This disables 'auto-composition-mode' on frames that display on
+terminals of this type.
* Runtime problems specific to individual Unix variants
@@ -2318,6 +2469,17 @@
We list bugs in current versions here. See also the section on legacy
systems.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/compilation.txt
^
|
@@ -421,7 +421,7 @@
This stupid precompiler wraps lines at column 80 in the middle of a file name.
There is no obvious way of detecting this or turning it off. But if you
-delete the newline (probably needs M-x toggle-read-only), the file name will
+delete the newline (probably needs M-x read-only-mode), the file name will
automatically be reparsed, so that you can then go there.
Semantic error at line 528, column 5, file erosacqdb.pc:
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/images/README
^
|
@@ -111,7 +111,7 @@
used by Emacs. They are licensed under either the GNU LGPL v3 or the
Creative Commons Attribution-Share Alike 3.0 United States License.
-To view a copy of the CC-BY-SA licence, visit
+To view a copy of the CC-BY-SA license, visit
http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/refcards/Makefile
^
|
@@ -233,10 +233,11 @@
fi
$(ENVADD) pdftex -output-format=pdf pl-refcard.tex
pl-refcard.dvi: $(pl_refcard_deps)
- if ! kpsewhich -format=fmt mex > /dev/null; then \
- echo "No mex format found."; false; \
+ if kpsewhich -format=fmt mex > /dev/null; then \
+ $(ENVADD) tex pl-refcard.tex; \
+ else \
+ $(ENVADD) mex pl-refcard.tex; \
fi
- $(ENVADD) tex pl-refcard.tex
pl-refcard.ps: pl-refcard.dvi
dvips -t a4 -o $@ pl-refcard.dvi
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/refcards/orgcard.tex
^
|
@@ -1,5 +1,5 @@
% Reference Card for Org Mode
-\def\orgversionnumber{9.5.2}
+\def\orgversionnumber{9.5.5}
\def\versionyear{2021} % latest update
\input emacsver.tex
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/themes/manoj-dark-theme.el
^
|
@@ -377,7 +377,7 @@
:foreground "black" :background "grey"
:weight bold ))))
'(calendar-today-face ((t (:underline t :bold t :foreground "cornsilk"))))
- '(change-log-acknowledgement-face ((t (:italic t :slant oblique :foreground "AntiqueWhite3"))))
+ '(change-log-acknowledgment ((t (:italic t :slant oblique :foreground "AntiqueWhite3"))))
'(change-log-conditionals-face ((t (:foreground "Aquamarine"))))
'(change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood"))))
'(change-log-email-face ((t (:foreground "Aquamarine"))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/themes/modus-themes.el
^
|
@@ -1679,7 +1679,7 @@
Custom interfaces or with `customize-set-variable' will not
reload the currently active Modus theme.
-Enable this behaviour by setting this variable to nil."
+Enable this behavior by setting this variable to nil."
:group 'modus-themes
:package-version '(modus-themes . "1.5.0")
:version "28.1"
@@ -7045,7 +7045,7 @@
blue-alt-other))))
;;;;; selectrum
;; NOTE 2021-02-22: The `selectrum-primary-highlight' and
- ;; `selectrum-secondary-highlight' are deprecated upstream in favour
+ ;; `selectrum-secondary-highlight' are deprecated upstream in favor
;; of their selectrum-prescient counterparts. We shall remove those
;; faces from the themes once we are certain that they are no longer
;; relevant.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/etc/tutorials/TUTORIAL.it
^
|
@@ -1110,7 +1110,7 @@
Ecco altre utili opzioni di C-h:
- C-h x Descrive un comando. Inserisci il nome della comando.
+ C-h x Descrive un comando. Inserisci il nome del comando.
>> Prova con C-h x previous-line <Invio>.
Questo mostrerà tutte le informazioni che Emacs possiede sulla
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lib-src/Makefile.in
^
|
@@ -196,11 +196,13 @@
HAVE_LIBSECCOMP=@HAVE_LIBSECCOMP@
LIBSECCOMP_LIBS=@LIBSECCOMP_LIBS@
LIBSECCOMP_CFLAGS=@LIBSECCOMP_CFLAGS@
+SIZEOF_LONG=@SIZEOF_LONG@
# Currently, we can only generate seccomp filter files for x86-64.
ifeq ($(HAVE_SECCOMP),yes)
ifeq ($(HAVE_LIBSECCOMP),yes)
ifeq ($(shell uname -m),x86_64)
+ifeq ($(SIZEOF_LONG),8)
# We require SECCOMP_RET_KILL_PROCESS, which is only available in
# Linux 4.14 and later.
ifeq ($(shell { echo 4.14; uname -r | cut -d . -f 1-2; } | \
@@ -210,6 +212,7 @@
endif
endif
endif
+endif
endif
ifeq ($(SECCOMP_FILTER),1)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lib/mini-gmp.c
^
|
@@ -90,6 +90,7 @@
#define gmp_assert_nocarry(x) do { \
mp_limb_t __cy = (x); \
assert (__cy == 0); \
+ (void) (__cy); \
} while (0)
#define gmp_clz(count, x) do { \
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lib/tempname.c
^
|
@@ -77,6 +77,12 @@
#define BASE_62_DIGITS 10 /* 62**10 < UINT_FAST64_MAX */
#define BASE_62_POWER (62LL * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62)
+#if _LIBC || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME)
+# define HAS_CLOCK_ENTROPY true
+#else
+# define HAS_CLOCK_ENTROPY false
+#endif
+
static random_value
random_bits (random_value var, bool use_getrandom)
{
@@ -84,7 +90,7 @@
/* Without GRND_NONBLOCK it can be blocked for minutes on some systems. */
if (use_getrandom && __getrandom (&r, sizeof r, GRND_NONBLOCK) == sizeof r)
return r;
-#if _LIBC || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME)
+#if HAS_CLOCK_ENTROPY
/* Add entropy if getrandom did not work. */
struct __timespec64 tv;
__clock_gettime64 (CLOCK_MONOTONIC, &tv);
@@ -213,7 +219,7 @@
and return a read-write fd. The file is mode 0600.
__GT_DIR: create a directory, which will be mode 0700.
- We use a clever algorithm to get hard-to-predict names. */
+ */
#ifdef _LIBC
static
#endif
@@ -267,13 +273,20 @@
alignment. */
random_value v = ((uintptr_t) &v) / alignof (max_align_t);
+#if !HAS_CLOCK_ENTROPY
+ /* Arrange gen_tempname to return less predictable file names on
+ systems lacking clock entropy <https://bugs.gnu.org/57129>. */
+ static random_value prev_v;
+ v ^= prev_v;
+#endif
+
/* How many random base-62 digits can currently be extracted from V. */
int vdigits = 0;
/* Whether to consume entropy when acquiring random bits. On the
first try it's worth the entropy cost with __GT_NOCREATE, which
is inherently insecure and can use the entropy to make it a bit
- less secure. On the (rare) second and later attempts it might
+ more secure. On the (rare) second and later attempts it might
help against DoS attacks. */
bool use_getrandom = tryfunc == try_nocreate;
@@ -318,6 +331,9 @@
if (fd >= 0)
{
__set_errno (save_errno);
+#if !HAS_CLOCK_ENTROPY
+ prev_v = v;
+#endif
return fd;
}
else if (errno != EEXIST)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lib/verify.h
^
|
@@ -34,7 +34,7 @@
#ifndef __cplusplus
# if (201112L <= __STDC_VERSION__ \
|| (!defined __STRICT_ANSI__ \
- && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 4 <= __clang_major__)))
+ && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__)))
# define _GL_HAVE__STATIC_ASSERT 1
# endif
# if (202000L <= __STDC_VERSION__ \
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ChangeLog.17
^
|
@@ -825,7 +825,7 @@
2015-03-10 Paul Eggert <eggert@cs.ucla.edu>
- Prefer "initialize" to "initialise"
+ Prefer "initialize"
* progmodes/js.el (js-indent-first-init):
Rename from js-indent-first-initialiser, to avoid worrying about
American vs British spelling. All uses changed.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ChangeLog.5
^
|
@@ -8998,7 +8998,7 @@
* startup.el (inhibit-startup-echo-area-message): Doc fix.
- * avoid.el (mouse-avoidance-threshold): Renamed from ...threshhold.
+ * avoid.el (mouse-avoidance-threshold): Fix typo in name.
1994-06-13 Richard Stallman (rms@albert.gnu.ai.mit.edu)
@@ -9010,7 +9010,7 @@
* startup.el (inhibit-startup-echo-area-message): Doc fix.
- * avoid.el (mouse-avoidance-threshold): Renamed from ...threshhold.
+ * avoid.el (mouse-avoidance-threshold): Fix typo in name.
* simple.el (end-of-buffer): Recenter overlay lists.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ChangeLog.9
^
|
@@ -5165,7 +5165,7 @@
* sql.el (sql-interbase): New function.
(sql-interbase-program): New option.
(sql-interbase-options): New option.
- And some typos fixed: "customise" to "customize".
+ And some typos fixed: "customize".
2001-03-06 Dave Love <fx@gnu.org>
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/abbrev.el
^
|
@@ -42,12 +42,12 @@
(defcustom abbrev-file-name
(locate-user-emacs-file "abbrev_defs" ".abbrev_defs")
- "Default name of file from which to read abbrevs."
+ "Default name of file from which to read and where to save abbrevs."
:initialize 'custom-initialize-delay
:type 'file)
(defcustom only-global-abbrevs nil
- "Non-nil means user plans to use global abbrevs only.
+ "Non-nil means user plans to use only global abbrevs.
This makes the commands that normally define mode-specific abbrevs
define global abbrevs instead."
:type 'boolean
@@ -59,7 +59,8 @@
In Abbrev mode, inserting an abbreviation causes it to expand and
be replaced by its expansion."
- ;; It's defined in C, this stops the d-m-m macro defining it again.
+ ;; It's defined in C, this stops the 'define-minor-mode' macro from
+ ;; defining it again.
:variable abbrev-mode)
(put 'abbrev-mode 'safe-local-variable 'booleanp)
@@ -83,7 +84,8 @@
(defun copy-abbrev-table (table)
"Make a new abbrev-table with the same abbrevs as TABLE.
-Does not copy property lists."
+This function does not copy property lists of the abbrevs.
+See `define-abbrev' for the documentation of abbrev properties."
(let ((new-table (make-abbrev-table)))
(obarray-map
(lambda (symbol)
@@ -95,8 +97,8 @@
new-table))
(defun insert-abbrevs ()
- "Insert after point a description of all defined abbrevs.
-Mark is set after the inserted text."
+ "Insert the description of all defined abbrevs after point.
+Set mark after the inserted text."
(interactive)
(push-mark
(save-excursion
@@ -105,15 +107,15 @@
(point))))
(defun list-abbrevs (&optional local)
- "Display a list of defined abbrevs.
-If LOCAL is non-nil, interactively when invoked with a
-prefix arg, display only local, i.e. mode-specific, abbrevs.
-Otherwise display all abbrevs."
+ "Display a list of the defined abbrevs.
+If LOCAL is non-nil (interactively, when invoked with a
+prefix arg), display only local, i.e. mode-specific, abbrevs.
+Otherwise display all the abbrevs."
(interactive "P")
(display-buffer (prepare-abbrev-list-buffer local)))
(defun abbrev-table-name (table)
- "Value is the name of abbrev table TABLE."
+ "Return the name of the specified abbrev TABLE."
(let ((tables abbrev-table-name-list)
found)
(while (and (not found) tables)
@@ -137,33 +139,33 @@
(dolist (table (nreverse empty-tables))
(insert-abbrev-table-description table t)))
;; Note: `list-abbrevs' can display only local abbrevs, in
- ;; which case editing could lose abbrevs of other tables. Thus
- ;; enter `edit-abbrevs-mode' only if LOCAL is nil.
+ ;; which case editing could lose abbrevs of other tables.
+ ;; Thus enter `edit-abbrevs-mode' only if LOCAL is nil.
(edit-abbrevs-mode))
(goto-char (point-min))
(set-buffer-modified-p nil)
(current-buffer))))
(defun edit-abbrevs ()
- "Alter abbrev definitions by editing a list of them.
-Selects a buffer containing a list of abbrev definitions with
-point located in the abbrev table for the current buffer, and
-turns on `edit-abbrevs-mode' in that buffer.
+ "Alter abbrev definitions by editing the list of abbrevs.
+This selects a buffer containing the list of abbrev definitions
+with point located in the abbrev table for the current buffer, and
+turns on `edit-abbrevs-mode' in the buffer with the list of abbrevs.
-You can edit them and type \\<edit-abbrevs-mode-map>\\[edit-abbrevs-redefine] \
+You can edit the abbrevs and type \\<edit-abbrevs-mode-map>\\[edit-abbrevs-redefine] \
to redefine abbrevs
according to your editing.
The abbrevs editing buffer contains a header line for each
abbrev table, which is the abbrev table name in parentheses.
-This is followed by one line per abbrev in that table:
+The header line is followed by one line per abbrev in that table:
NAME USECOUNT EXPANSION HOOK
where NAME and EXPANSION are strings with quotes,
USECOUNT is an integer, and HOOK is any valid function
-or may be omitted (it is usually omitted)."
+that may be omitted (it is usually omitted)."
(interactive)
(let ((table-name (abbrev-table-name local-abbrev-table)))
(switch-to-buffer (prepare-abbrev-list-buffer))
@@ -184,8 +186,9 @@
"Define abbrevs according to current visible buffer contents.
See documentation of `edit-abbrevs' for info on the format of the
text you must have in the buffer.
-With argument, eliminate all abbrev definitions except
-the ones defined from the buffer now."
+If ARG is non-nil (interactively, when invoked with a prefix
+argument), eliminate all abbrev definitions except the ones
+defined by the current buffer contents."
(interactive "P")
(if arg (kill-all-abbrevs))
(save-excursion
@@ -216,7 +219,8 @@
"Read abbrev definitions from file written with `write-abbrev-file'.
Optional argument FILE is the name of the file to read;
it defaults to the value of `abbrev-file-name'.
-Optional second argument QUIETLY non-nil means don't display a message."
+Optional second argument QUIETLY non-nil means don't display a message
+about loading the abbrevs."
(interactive
(list
(read-file-name (format-prompt "Read abbrev file" abbrev-file-name)
@@ -225,22 +229,22 @@
(setq abbrevs-changed nil))
(defun quietly-read-abbrev-file (&optional file)
- "Read abbrev definitions from file written with `write-abbrev-file'.
+ "Quietly read abbrev definitions from file written with `write-abbrev-file'.
Optional argument FILE is the name of the file to read;
it defaults to the value of `abbrev-file-name'.
-Does not display any message."
+Do not display any messages about loading the abbrevs."
;(interactive "fRead abbrev file: ")
(read-abbrev-file file t))
(defun write-abbrev-file (&optional file verbose)
"Write all user-level abbrev definitions to a file of Lisp code.
This does not include system abbrevs; it includes only the abbrev tables
-listed in listed in `abbrev-table-name-list'.
+listed in `abbrev-table-name-list'.
The file written can be loaded in another session to define the same abbrevs.
-The argument FILE is the file name to write. If omitted or nil, the file
-specified in `abbrev-file-name' is used.
-If VERBOSE is non-nil, display a message indicating where abbrevs
-have been saved."
+The argument FILE is the file name to write. If omitted or nil, it defaults
+to the value of `abbrev-file-name'.
+If VERBOSE is non-nil, display a message indicating the file where the
+abbrevs have been saved."
(interactive
(list
(read-file-name "Write abbrev file: "
@@ -253,10 +257,10 @@
(dolist (table
;; We sort the table in order to ease the automatic
;; merging of different versions of the user's abbrevs
- ;; file. This is useful, for example, for when the
+ ;; file. This is useful, for example, when the
;; user keeps their home directory in a revision
- ;; control system, and is therefore keeping multiple
- ;; slightly-differing copies loosely synchronized.
+ ;; control system, and therefore keeps multiple
+ ;; slightly-differing loosely synchronized copies.
(sort (copy-sequence abbrev-table-name-list)
(lambda (s1 s2)
(string< (symbol-name s1)
@@ -270,7 +274,7 @@
(write-region nil nil file nil (and (not verbose) 0)))))
(defun abbrev-edit-save-to-file (file)
- "Save all user-level abbrev definitions in current buffer to FILE."
+ "Save to FILE all the user-level abbrev definitions in current buffer."
(interactive
(list (read-file-name "Save abbrevs to file: "
(file-name-directory
@@ -280,7 +284,7 @@
(write-abbrev-file file t))
(defun abbrev-edit-save-buffer ()
- "Save all user-level abbrev definitions in current buffer.
+ "Save all the user-level abbrev definitions in current buffer.
The saved abbrevs are written to the file specified by
`abbrev-file-name'."
(interactive)
@@ -288,15 +292,16 @@

(defun add-mode-abbrev (arg)
- "Define mode-specific abbrev for last word(s) before point.
-Argument is how many words before point form the expansion;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/bindings.el
^
|
@@ -516,7 +516,7 @@
'help-echo "Size indication mode\n\
mouse-1: Display Line and Column Mode Menu")))
(line-number-mode
- ((column-number-mode
+ (column-number-mode
(column-number-indicator-zero-based
(10
(:propertize
@@ -530,13 +530,13 @@
(6
(:propertize
mode-line-position-line-format
- ,@mode-line-position--column-line-properties))))
+ ,@mode-line-position--column-line-properties)))
(column-number-mode
(column-number-indicator-zero-based
(6
(:propertize
mode-line-position-column-format
- (,@mode-line-position--column-line-properties)))
+ ,@mode-line-position--column-line-properties))
(6
(:propertize
(:eval (string-replace
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/calc/calc.el
^
|
@@ -1815,7 +1815,7 @@
(if win
(progn
(calc-cursor-stack-index 0)
- (vertical-motion (- 2 (window-height win)))
+ (vertical-motion (- 3 (window-height win 'floor)))
(set-window-start win (point)))))
(calc-cursor-stack-index 0)
(if (looking-at " *\\.$")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/chistory.el
^
|
@@ -165,11 +165,11 @@
"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'."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/color.el
^
|
@@ -39,6 +39,10 @@
COLOR should be a color name (e.g. \"white\") or an RGB triplet
string (e.g. \"#ffff1122eecc\").
+COLOR can also be the symbol `unspecified' or one of the strings
+\"unspecified-fg\" or \"unspecified-bg\", in which case the
+return value is nil.
+
Normally the return value is a list of three floating-point
numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/delsel.el
^
|
@@ -108,7 +108,8 @@
"Repeat replacing text of highlighted region with typed text.
Search for the next stretch of text identical to the region last replaced
by typing text over it and replaces it with the same stretch of text.
-With ARG, repeat that many times. `\\[universal-argument]' means until end of buffer."
+With ARG (interactively, prefix numeric argument), repeat that many times.
+Just `\\[universal-argument]' means repeat until the end of the buffer's accessible portion."
(interactive "P")
(let ((old-text (and delete-selection-save-to-register
(get-register delete-selection-save-to-register)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/descr-text.el
^
|
@@ -690,6 +690,7 @@
(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
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/desktop.el
^
|
@@ -44,10 +44,11 @@
;; (info "(emacs)Saving Emacs Sessions") in the GNU Emacs Manual.
;; When the desktop module is loaded, the function `desktop-kill' is
-;; added to the `kill-emacs-hook'. This function is responsible for
-;; saving the desktop when Emacs is killed. Furthermore an anonymous
-;; function is added to the `after-init-hook'. This function is
-;; responsible for loading the desktop when Emacs is started.
+;; added to the `kill-emacs-query-functions'. This function is
+;; responsible for saving the desktop and deleting the desktop lock
+;; file when Emacs is killed. In addition, an anonymous function is
+;; added to the `after-init-hook'. This function is responsible for
+;; loading the desktop when Emacs is started.
;; Special handling.
;; -----------------
@@ -732,7 +733,10 @@
;; ----------------------------------------------------------------------------
(unless noninteractive
- (add-hook 'kill-emacs-query-functions #'desktop-kill))
+ (add-hook 'kill-emacs-query-functions #'desktop-kill)
+ ;; Certain things should be done even if
+ ;; `kill-emacs-query-functions' are not called.
+ (add-hook 'kill-emacs-hook #'desktop--on-kill))
(defun desktop-kill ()
"If `desktop-save-mode' is non-nil, do what `desktop-save' says to do.
@@ -759,12 +763,15 @@
(file-error
(unless (yes-or-no-p "Error while saving the desktop. Ignore? ")
(signal (car err) (cdr err))))))
+ (desktop--on-kill)
+ t)
+
+(defun desktop--on-kill ()
;; If we own it, we don't anymore.
(when (eq (emacs-pid) (desktop-owner))
;; Allow exiting Emacs even if we can't delete the desktop file.
(ignore-error 'file-error
- (desktop-release-lock)))
- t)
+ (desktop-release-lock))))
;; ----------------------------------------------------------------------------
(defun desktop-list* (&rest args)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/dired-aux.el
^
|
@@ -1242,7 +1242,8 @@
(when (zerop
(dired-shell-command
(format-spec (cdr rule)
- `((?o . ,(shell-quote-argument out-file))
+ `((?o . ,(shell-quote-argument
+ (file-local-name out-file)))
(?i . ,(mapconcat
(lambda (in-file)
(shell-quote-argument
@@ -1838,22 +1839,23 @@
"Rename FILE to NEWNAME.
Signal a `file-already-exists' error if a file NEWNAME already exists
unless OK-IF-ALREADY-EXISTS is non-nil."
- (dired-handle-overwrite newname)
- (dired-maybe-create-dirs (file-name-directory newname))
- (if (and dired-vc-rename-file
- (vc-backend file)
- (ignore-errors (vc-responsible-backend newname)))
- (vc-rename-file file newname)
- ;; error is caught in -create-files
- (rename-file file newname ok-if-already-exists))
- ;; Silently rename the visited file of any buffer visiting this file.
- (and (get-file-buffer file)
- (with-current-buffer (get-file-buffer file)
- (set-visited-file-name newname nil t)))
- (dired-remove-file file)
- ;; See if it's an inserted subdir, and rename that, too.
- (when (file-directory-p file)
- (dired-rename-subdir file newname)))
+ (let ((file-is-dir-p (file-directory-p file)))
+ (dired-handle-overwrite newname)
+ (dired-maybe-create-dirs (file-name-directory newname))
+ (if (and dired-vc-rename-file
+ (vc-backend file)
+ (ignore-errors (vc-responsible-backend newname)))
+ (vc-rename-file file newname)
+ ;; error is caught in -create-files
+ (rename-file file newname ok-if-already-exists))
+ ;; Silently rename the visited file of any buffer visiting this file.
+ (and (get-file-buffer file)
+ (with-current-buffer (get-file-buffer file)
+ (set-visited-file-name newname nil t)))
+ (dired-remove-file file)
+ ;; See if it's an inserted subdir, and rename that, too.
+ (when file-is-dir-p
+ (dired-rename-subdir file newname))))
(defun dired-rename-subdir (from-dir to-dir)
(setq from-dir (file-name-as-directory from-dir)
@@ -1866,7 +1868,7 @@
(while blist
(with-current-buffer (car blist)
(if (and buffer-file-name
- (file-in-directory-p buffer-file-name expanded-from-dir))
+ (dired-in-this-tree-p buffer-file-name expanded-from-dir))
(let ((modflag (buffer-modified-p))
(to-file (replace-regexp-in-string
(concat "^" (regexp-quote from-dir))
@@ -1885,7 +1887,7 @@
(while alist
(setq elt (car alist)
alist (cdr alist))
- (if (file-in-directory-p (car elt) expanded-dir)
+ (if (dired-in-this-tree-p (car elt) expanded-dir)
;; ELT's subdir is affected by the rename
(dired-rename-subdir-2 elt dir to)))
(if (equal dir default-directory)
@@ -2725,7 +2727,7 @@
(setq switches (string-replace "R" "" switches))
(dolist (cur-ass dired-subdir-alist)
(let ((cur-dir (car cur-ass)))
- (and (file-in-directory-p cur-dir dirname)
+ (and (dired-in-this-tree-p cur-dir dirname)
(let ((cur-cons (assoc-string cur-dir dired-switches-alist)))
(if cur-cons
(setcdr cur-cons switches)
@@ -2737,7 +2739,7 @@
(defun dired-insert-subdir-validate (dirname &optional switches)
;; Check that it is valid to insert DIRNAME with SWITCHES.
;; Signal an error if invalid (e.g. user typed `i' on `..').
- (or (file-in-directory-p dirname (expand-file-name default-directory))
+ (or (dired-in-this-tree-p dirname (expand-file-name default-directory))
(error "%s: Not in this directory tree" dirname))
(let ((real-switches (or switches dired-subdir-switches)))
(when real-switches
@@ -3170,9 +3172,14 @@
;;;###autoload
(defun dired-do-query-replace-regexp (from to &optional delimited)
"Do `query-replace-regexp' of FROM with TO, on all marked files.
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
-If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
-with the command \\[tags-loop-continue]."
+If you exit the query-replace loop (\\[keyboard-quit], RET or q), you can
+resume the query replace with the command \\[fileloop-continue]."
(interactive
(let ((common
(query-replace-read-args
@@ -3239,6 +3246,11 @@
(defun dired-do-find-regexp-and-replace (from to)
"Replace matches of FROM with TO, in all marked files.
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
If no files are marked, use the file under point.
For any marked directory, matches in all of its files are replaced,
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/dired.el
^
|
@@ -994,8 +994,11 @@
;;;###autoload
(defun dired (dirname &optional switches)
"\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.
-Optional second argument SWITCHES specifies the `ls' options used.
-\(Interactively, use a prefix argument to be able to specify SWITCHES.)
+Optional second argument SWITCHES specifies the options to be used
+when invoking `insert-directory-program', usually `ls', which produces
+the listing of the directory files and their attributes.
+Interactively, a prefix argument will cause the command to prompt
+for SWITCHES.
If DIRNAME is a string, Dired displays a list of files in DIRNAME (which
may also have shell wildcards appended to select certain files).
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/elec-pair.el
^
|
@@ -498,7 +498,7 @@
corresponding delimiter for C;
* According to C alone, by looking C up in the tables
- `electric-pair-paris' or `electric-pair-text-pairs' (which
+ `electric-pair-pairs' or `electric-pair-text-pairs' (which
see);
* According to C's syntax and the syntactic state of the buffer
@@ -575,7 +575,7 @@
(save-excursion (electric-pair--insert pair))))))))
(defun electric-pair-open-newline-between-pairs-psif ()
- "Honour `electric-pair-open-newline-between-pairs'.
+ "Honor `electric-pair-open-newline-between-pairs'.
Member of `post-self-insert-hook' if `electric-pair-mode' is on."
(when (and (if (functionp electric-pair-open-newline-between-pairs)
(funcall electric-pair-open-newline-between-pairs)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/electric.el
^
|
@@ -310,10 +310,16 @@
;;;###autoload
(define-minor-mode electric-indent-mode
- "Toggle on-the-fly reindentation (Electric Indent mode).
+ "Toggle on-the-fly reindentation of text lines (Electric Indent mode).
When enabled, this reindents whenever the hook `electric-indent-functions'
-returns non-nil, or if you insert a character from `electric-indent-chars'.
+returns non-nil, or if you insert one of the \"electric characters\".
+The electric characters normally include the newline, but can
+also include other characters as needed by the major mode; see
+`electric-indent-chars' for the actual list.
+
+By \"reindent\" we mean remove any existing indentation, and then
+indent the line according to context and rules of the major mode.
This is a global minor mode. To toggle the mode in a single buffer,
use `electric-indent-local-mode'."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/byte-opt.el
^
|
@@ -289,7 +289,7 @@
(if (eq fn localfn)
;; From the same file => same mode.
(macroexp--unfold-lambda `(,fn ,@(cdr form)))
- ;; Since we are called from inside the optimiser, we need to make
+ ;; Since we are called from inside the optimizer, we need to make
;; sure not to propagate lexvar values.
(let ((byte-optimize--lexvars nil)
;; Silence all compilation warnings: the useful ones should
@@ -322,7 +322,7 @@
This indicates the loop discovery phase.")
(defvar byte-optimize--dynamic-vars nil
- "List of variables declared as dynamic during optimisation.")
+ "List of variables declared as dynamic during optimization.")
(defvar byte-optimize--aliased-vars nil
"List of variables which may be aliased by other lexical variables.
@@ -429,7 +429,7 @@
(`(cond . ,clauses)
;; FIXME: The condition in the first clause is always executed, and
;; clause bodies are mutually exclusive -- use this for improved
- ;; optimisation (see comment about `if' below).
+ ;; optimization (see comment about `if' below).
(cons fn
(mapcar (lambda (clause)
(if (consp clause)
@@ -477,9 +477,9 @@
;; FIXME: We have to traverse the expressions in left-to-right
;; order (because that is the order of evaluation and variable
;; mutations must be found prior to their use), but doing so we miss
- ;; some optimisation opportunities:
+ ;; some optimization opportunities:
;; consider (and A B) in a for-effect context, where B => nil.
- ;; Then A could be optimised in a for-effect context too.
+ ;; Then A could be optimized in a for-effect context too.
(let ((tail exps)
(args nil))
(while tail
@@ -493,19 +493,19 @@
;; FIXME: If the loop condition is statically nil after substitution
;; of surrounding variables then we can eliminate the whole loop,
;; even if those variables are mutated inside the loop.
- ;; We currently don't perform this important optimisation.
+ ;; We currently don't perform this important optimization.
(let* ((byte-optimize--vars-outside-loop byte-optimize--lexvars)
(condition-body
(if byte-optimize--inhibit-outside-loop-constprop
;; We are already inside the discovery phase of an outer
;; loop so there is no need for traversing this loop twice.
(cons exp exps)
- ;; Discovery phase: run optimisation without substitution
+ ;; Discovery phase: run optimization without substitution
;; of variables bound outside this loop.
(let ((byte-optimize--inhibit-outside-loop-constprop t))
(cons (byte-optimize-form exp nil)
(byte-optimize-body exps t)))))
- ;; Optimise again, this time with constprop enabled (unless
+ ;; Optimize again, this time with constprop enabled (unless
;; we are in discovery of an outer loop),
;; as mutated variables have been marked as non-substitutable.
(condition (byte-optimize-form (car condition-body) nil))
@@ -559,7 +559,7 @@
;; Needed as long as we run byte-optimize-form after cconv.
(`(internal-make-closure . ,_)
;; Look up free vars and mark them to be kept, so that they
- ;; won't be optimised away.
+ ;; won't be optimized away.
(dolist (var (caddr form))
(let ((lexvar (assq var byte-optimize--lexvars)))
(when lexvar
@@ -643,7 +643,7 @@
(defun byte-optimize-one-form (form &optional for-effect)
"The source-level pass of the optimizer."
- ;; Make optimiser aware of lexical arguments.
+ ;; Make optimizer aware of lexical arguments.
(let ((byte-optimize--lexvars
(mapcar (lambda (v) (list (car v) t))
byte-compile--lexical-environment)))
@@ -655,7 +655,7 @@
;; First, optimize all sub-forms of this one.
(setq form (byte-optimize-form-code-walker form for-effect))
- ;; If a form-specific optimiser is available, run it and start over
+ ;; If a form-specific optimizer is available, run it and start over
;; until a fixpoint has been reached.
(and (consp form)
(symbolp (car form))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/cl-generic.el
^
|
@@ -602,7 +602,9 @@
(defun cl--generic-get-dispatcher (dispatch)
(cl--generic-with-memoization
- (gethash dispatch cl--generic-dispatchers)
+ ;; We need `copy-sequence` here because this `dispatch' object might be
+ ;; modified by side-effect in `cl-generic-define-method' (bug#46722).
+ (gethash (copy-sequence dispatch) cl--generic-dispatchers)
;; (message "cl--generic-get-dispatcher (%S)" dispatch)
(let* ((dispatch-arg (car dispatch))
(generalizers (cdr dispatch))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/cl-macs.el
^
|
@@ -3288,8 +3288,9 @@
(defun cl-struct-sequence-type (struct-type)
"Return the sequence used to build STRUCT-TYPE.
-STRUCT-TYPE is a symbol naming a struct type. Return `record',
-`vector', or `list' if STRUCT-TYPE is a struct type, nil otherwise."
+STRUCT-TYPE is a symbol naming a struct type. Return values are
+either `vector', `list' or nil (and the latter indicates a
+`record' struct type."
(declare (side-effect-free t) (pure t))
(cl--struct-class-type (cl--struct-get-class struct-type)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/cl-seq.el
^
|
@@ -139,6 +139,10 @@
If SEQ contains exactly one element and no :INITIAL-VALUE is
specified, then return that element and FUNCTION is not called.
+If :FROM-END is non-nil, the reduction occurs from the back of
+the SEQ moving forward, and the order of arguments to the
+FUNCTION is also reversed.
+
\n(fn FUNCTION SEQ [KEYWORD VALUE]...)"
(cl--parsing-keywords (:from-end (:start 0) :end :initial-value :key) ()
(or (listp cl-seq) (setq cl-seq (append cl-seq nil)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/comp.el
^
|
@@ -45,7 +45,9 @@
(defcustom native-comp-speed 2
"Optimization level for native compilation, a number between -1 and 3.
- -1 functions are kept in bytecode form and no native compilation is performed.
+ -1 functions are kept in bytecode form and no native compilation is performed
+ (but *.eln files are still produced, and include the compiled code in
+ bytecode form).
0 native compilation is performed with no optimizations.
1 light optimizations.
2 max optimization level fully adherent to the language semantic.
@@ -3695,7 +3697,7 @@
(file-name-base output) "-")
nil ".el")))
(with-temp-file temp-file
- (insert ";; -*-coding: nil; -*-\n")
+ (insert ";; -*-coding: utf-8-emacs-unix; -*-\n")
(mapc (lambda (e)
(insert (prin1-to-string e)))
expr))
@@ -3925,8 +3927,11 @@
when (or native-comp-always-compile
load ; Always compile when the compilation is
; commanded for late load.
- (file-newer-than-file-p
- source-file (comp-el-to-eln-filename source-file)))
+ ;; Skip compilation if `comp-el-to-eln-filename' fails
+ ;; to find a writable directory.
+ (with-demoted-errors "Async compilation :%S"
+ (file-newer-than-file-p
+ source-file (comp-el-to-eln-filename source-file))))
do (let* ((expr `((require 'comp)
,(when (boundp 'backtrace-line-length)
`(setf backtrace-line-length ,backtrace-line-length))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/easy-mmode.el
^
|
@@ -555,7 +555,7 @@
list."
mode)
:type '(repeat sexp)
- :group ,group))
+ ,@group))
;; Autoloading define-globalized-minor-mode autoloads everything
;; up-to-here.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/eldoc.el
^
|
@@ -794,7 +794,7 @@
Other third-party values of `eldoc-documentation-strategy' should
not use `eldoc--make-callback'. They must find some alternate
way to produce callbacks to feed to
-`eldoc-documentation-functions' and should endeavour to display
+`eldoc-documentation-functions' and should endeavor to display
the docstrings eventually produced, using
`eldoc-display-functions'."
(let* (;; How many callbacks have been created by the strategy
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/ert-x.el
^
|
@@ -96,7 +96,7 @@
To be used in ERT tests. If BODY finishes successfully, the test
buffer is killed; if there is an error, the test buffer is kept
-around on error for further inspection. Its name is derived from
+around for further inspection. Its name is derived from
the name of the test and the result of NAME-FORM."
(declare (debug ((":name" form) def-body))
(indent 1))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/ert.el
^
|
@@ -47,8 +47,6 @@
;; environment (like availability of features, external binaries, etc).
;;
;; See ERT's info manual as well as the docstrings for more details.
-;; To compile the manual, run `makeinfo ert.texinfo' in the ERT
-;; directory, then C-u M-x info ert.info in Emacs to view it.
;;
;; To see some examples of tests written in ERT, see its self-tests in
;; ert-tests.el. Some of these are tricky due to the bootstrapping
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emacs-lisp/nadvice.el
^
|
@@ -277,7 +277,7 @@
(defmacro add-function (where place function &optional props)
;; TODO:
;; - maybe let `where' 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.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emulation/viper-cmd.el
^
|
@@ -1786,7 +1786,7 @@
(do-not-change-default t))
(setq quote-str
(viper-read-string-with-history
- "Quote string"
+ "Quote string: "
nil
'viper-quote-region-history
;; FIXME: Use comment-region.
@@ -1995,17 +1995,24 @@
#'viper-minibuffer-standard-hook
(if (or (not (listp old)) (eq (car old) 'lambda))
(list old) old))))
- (val ""))
+ (val "")
+ (padding "")
+ temp-msg)
(setq keymap (or keymap minibuffer-local-map)
initial (or initial "")
- viper-initial initial)
+ viper-initial initial
+ temp-msg (if default
+ (format "(default %s) " default)
+ ""))
(setq viper-incomplete-ex-cmd nil)
- (setq val (read-from-minibuffer (format-prompt prompt default)
- nil
- keymap nil history-var default))
- (setq minibuffer-setup-hook nil)
+ (setq val (read-from-minibuffer prompt
+ (concat temp-msg initial val padding)
+ keymap nil history-var))
+ (setq minibuffer-setup-hook nil
+ padding (viper-array-to-string (this-command-keys))
+ temp-msg "")
;; the following tries to be smart about what to put in history
(if (not (string= val (car (symbol-value history-var))))
(push val (symbol-value history-var)))
@@ -3819,7 +3826,7 @@
(let (buffer buffer-name)
(setq buffer-name
(funcall viper-read-buffer-function
- (format-prompt "Kill buffer"
+ (format "Kill buffer (%s): "
(buffer-name (current-buffer)))))
(setq buffer
(if (null buffer-name)
@@ -4161,12 +4168,17 @@
"Query replace.
If a null string is supplied as the string to be replaced,
the query replace mode will toggle between string replace
-and regexp replace."
+and regexp replace.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time."
(interactive)
(let (str)
(setq str (viper-read-string-with-history
- (if viper-re-query-replace "Query replace regexp"
- "Query replace")
+ (if viper-re-query-replace "Query replace regexp: "
+ "Query replace: ")
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default
@@ -4181,7 +4193,7 @@
(query-replace-regexp
str
(viper-read-string-with-history
- (format-message "Query replace regexp `%s' with" str)
+ (format-message "Query replace regexp `%s' with: " str)
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default
@@ -4189,7 +4201,7 @@
(query-replace
str
(viper-read-string-with-history
- (format-message "Query replace `%s' with" str)
+ (format-message "Query replace `%s' with: " str)
nil ; no initial
'viper-replace1-history
(car viper-replace1-history) ; default
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/emulation/viper.el
^
|
@@ -7,7 +7,7 @@
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Keywords: emulations
-;; Version: 3.14.1
+;; Version: 3.14.2
;; Yoni Rabkin <yoni@rabkins.net> contacted the maintainer of this
;; file on 20/3/2008, and the maintainer agreed that when a bug is
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/faces.el
^
|
@@ -448,6 +448,10 @@
(defun face-attribute (face attribute &optional frame inherit)
"Return the value of FACE's ATTRIBUTE on FRAME.
+
+See `set-face-attribute' for the list of supported attributes
+and their meanings and allowed values.
+
If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame.
@@ -511,6 +515,9 @@
(defun face-foreground (face &optional frame inherit)
"Return the foreground color name of FACE, or nil if unspecified.
+On TTY frames, the returned color name can be \"unspecified-fg\",
+which stands for the unknown default foreground color of the display
+where the frame is displayed.
If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame.
@@ -532,6 +539,9 @@
(defun face-background (face &optional frame inherit)
"Return the background color name of FACE, or nil if unspecified.
+On TTY frames, the returned color name can be \"unspecified-bg\",
+which stands for the unknown default background color of the display
+where the frame is displayed.
If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame.
@@ -658,21 +668,28 @@
(defun set-face-attribute (face frame &rest args)
"Set attributes of FACE on FRAME from ARGS.
-This function overrides the face attributes specified by FACE's
-face spec. It is mostly intended for internal use only.
+This function overrides the face attributes specified by FACE's face spec.
+It is mostly intended for internal use.
-If FRAME is nil, set the attributes for all existing frames, as
-well as the default for new frames. If FRAME is t, change the
-default for new frames only. As an exception, to reset the value
-of some attribute to `unspecified' in a way that overrides the
-non-`unspecified' value defined by the face's spec in `defface',
-for new frames, you must explicitly call this function with FRAME
-set to t and the attribute's value set to `unspecified'; just
-using FRAME of nil will not affect new frames in this case.
-
-ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a
-valid face attribute name. All attributes can be set to
-`unspecified'; this fact is not further mentioned below.
+If FRAME is a frame, set the FACE's attributes only for that frame. If
+FRAME is nil, set attribute values for all existing frames, as well as
+the default for new frames. If FRAME is t, change the default values
+of attributes for new frames.
+
+ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid face
+attribute name and VALUE must be a value that is valid for ATTRIBUTE,
+as described below for each attribute.
+
+In addition to the attribute values listed below, all attributes can
+also be set to the special value `unspecified', which means the face
+doesn't by itself specify a value for the attribute.
+
+When a new frame is created, attribute values in the FACE's `defface'
+spec normally override the `unspecified' values in the FACE's
+default attributes. To avoid that, i.e. to cause ATTRIBUTE's value
+be reset to `unspecified' when creating new frames, disregarding
+what the FACE's face spec says, call this function with FRAME set to
+t and the ATTRIBUTE's value set to `unspecified'.
The following attributes are recognized:
@@ -1837,7 +1854,7 @@
"Whether RGB is more readable against white than black.
RGB is a 3-element list (R G B), each component in the range [0,1].
This predicate can be used both for determining a suitable (black or white)
-contrast colour with RGB as background and as foreground."
+contrast color with RGB as background and as foreground."
(unless (<= 0 (apply #'min rgb) (apply #'max rgb) 1)
(error "RGB components %S not in [0,1]" rgb))
;; Compute the relative luminance after gamma-correcting (assuming sRGB),
@@ -2057,11 +2074,17 @@
(face-attribute 'default attribute))))
(defun foreground-color-at-point ()
- "Return the foreground color of the character after point."
+ "Return the foreground color of the character after point.
+On TTY frames, the returned color name can be \"unspecified-fg\",
+which stands for the unknown default foreground color of the
+display where the frame is displayed."
(faces--attribute-at-point :foreground 'foreground-color))
(defun background-color-at-point ()
- "Return the background color of the character after point."
+ "Return the background color of the character after point.
+On TTY frames, the returned color name can be \"unspecified-bg\",
+which stands for the unknown default background color of the
+display where the frame is displayed."
(faces--attribute-at-point :background 'background-color))

|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/files.el
^
|
@@ -419,17 +419,23 @@
(timer-set-idle-time auto-save--timer value :repeat))))
(define-minor-mode auto-save-visited-mode
- "Toggle automatic saving to file-visiting buffers on or off.
+ "Toggle automatic saving of file-visiting buffers to their files.
-Unlike `auto-save-mode', this mode will auto-save buffer contents
-to the visited files directly and will also run all save-related
-hooks. See Info node `Saving' for details of the save process.
+When this mode is enabled, file-visiting buffers are automatically
+saved to their files. This is in contrast to `auto-save-mode', which
+auto-saves those buffers to a separate file, leaving the original
+file intact. See Info node `Saving' for details of the save process.
+
+The user option `auto-save-visited-interval' controls how often to
+auto-save a buffer into its visited file.
You can also set the buffer-local value of the variable
`auto-save-visited-mode' to nil. A buffer where the buffer-local
value of this variable is nil is ignored for the purpose of
`auto-save-visited-mode', even if `auto-save-visited-mode' is
-enabled."
+enabled.
+
+For more details, see Info node `(emacs) Auto Save Files'."
:group 'auto-save
:global t
(when auto-save--timer (cancel-timer auto-save--timer))
@@ -1221,8 +1227,8 @@
(defcustom remote-file-name-inhibit-cache 10
"Whether to use the remote file-name cache for read access.
-When nil, never expire cached values (caution)
-When t, never use the cache (safe, but may be slow)
+When nil, never expire cached values (caution).
+When t, never use the cache (safe, but may be slow).
A number means use cached values for that amount of seconds since caching.
The attributes of remote files are cached for better performance.
@@ -1706,19 +1712,18 @@
(defun find-file (filename &optional wildcards)
"Edit file FILENAME.
-Switch to a buffer visiting file FILENAME,
-creating one if none already exists.
+\\<minibuffer-local-map>Switch to a buffer visiting file FILENAME, creating one if none
+already exists.
Interactively, the default if you just type RET is the current directory,
but the visited file name is available through the minibuffer history:
type \\[next-history-element] to pull it into the minibuffer.
-The first time \\[next-history-element] is used after Emacs prompts for
-the file name, the result is affected by `file-name-at-point-functions',
-which by default try to guess the file name by looking at point in the
-current buffer. Customize the value of `file-name-at-point-functions'
-or set it to nil, if you want only the visited file name and the
-current directory to be available on first \\[next-history-element]
-request.
+The first time \\[next-history-element] is used after Emacs prompts for the file name,
+the result is affected by `file-name-at-point-functions', which by
+default try to guess the file name by looking at point in the current
+buffer. Customize the value of `file-name-at-point-functions' or set
+it to nil, if you want only the visited file name and the current
+directory to be available on first \\[next-history-element] request.
You can visit files on remote machines by specifying something
like /ssh:SOME_REMOTE_MACHINE:FILE for the file name. You can
@@ -1731,7 +1736,7 @@
expand wildcards (if any) and visit multiple files. You can
suppress wildcard expansion by setting `find-file-wildcards' to nil.
-To visit a file without any kind of conversion and without
+\\<global-map>To visit a file without any kind of conversion and without
automatically choosing a major mode, use \\[find-file-literally]."
(interactive
(find-file-read-args "Find file: "
@@ -1747,6 +1752,7 @@
Like \\[find-file] (which see), but creates a new window or reuses
an existing one. See the function `display-buffer'.
+\\<minibuffer-local-map>\
Interactively, the default if you just type RET is the current directory,
but the visited file name is available through the minibuffer history:
type \\[next-history-element] to pull it into the minibuffer.
@@ -1779,6 +1785,7 @@
Like \\[find-file] (which see), but creates a new frame or reuses
an existing one. See the function `display-buffer'.
+\\<minibuffer-local-map>\
Interactively, the default if you just type RET is the current directory,
but the visited file name is available through the minibuffer history:
type \\[next-history-element] to pull it into the minibuffer.
@@ -3887,8 +3894,8 @@
(with-demoted-errors "Directory-local variables error: %s"
;; Note this is a no-op if enable-local-variables is nil.
(hack-dir-local-variables))
- (let ((result (append (hack-local-variables--find-variables)
- (hack-local-variables-prop-line))))
+ (let ((result (append (hack-local-variables--find-variables handle-mode)
+ (hack-local-variables-prop-line handle-mode))))
(if (and enable-local-variables
(not (inhibit-local-variables-p)))
(progn
@@ -5026,14 +5033,16 @@
"")))))
(defun file-name-with-extension (filename extension)
- "Set the EXTENSION of a FILENAME.
+ "Return FILENAME modified to have the specified EXTENSION.
The extension (in a file name) is the part that begins with the last \".\".
+This function removes any existing extension from FILENAME, and then
+appends EXTENSION to it.
-Trims a leading dot from the EXTENSION so that either \"foo\" or
-\".foo\" can be given.
+EXTENSION may include the leading dot; if it doesn't, this function
+will provide it.
-Errors if the FILENAME or EXTENSION are empty, or if the given
-FILENAME has the format of a directory.
+It is an error if FILENAME or EXTENSION is empty, or if FILENAME
+is in the form of a directory name according to `directory-name-p'.
See also `file-name-sans-extension'."
(let ((extn (string-trim-left extension "[.]")))
@@ -7108,15 +7117,15 @@
:group 'dired)
(defun file-expand-wildcards (pattern &optional full)
- "Expand wildcard pattern PATTERN.
-This returns a list of file names that match the pattern.
-Files are sorted in `string<' order.
+ "Expand (a.k.a. \"glob\") file-name wildcard pattern PATTERN.
+This returns a list of file names that match PATTERN.
+The returned list of file names is sorted in the `string<' order.
If PATTERN is written as an absolute file name,
-the values are absolute also.
+the expansions in the returned list are also absolute.
If PATTERN is written as a relative file name, it is interpreted
-relative to the current default directory, `default-directory'.
+relative to the current `default-directory'.
The file names returned are normally also relative to the current
default directory. However, if FULL is non-nil, they are absolute."
(save-match-data
@@ -7236,7 +7245,9 @@
(defvar insert-directory-program (purecopy "ls")
- "Absolute or relative name of the `ls' program used by `insert-directory'.")
+ "Absolute or relative name of the `ls'-like program.
+This is used by `insert-directory' and `dired-insert-directory'
+\(thus, also by `dired').")
(defcustom directory-free-space-program (purecopy "df")
"Program to get the amount of free space on a file system.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/find-dired.el
^
|
@@ -167,7 +167,12 @@
use in place of \"-ls\" as the final argument.
Collect output in the \"*Find*\" buffer. To kill the job before
-it finishes, type \\[kill-find]."
+it finishes, type \\[kill-find].
+
+For more information on how to write valid find expressions for
+ARGS, see Info node `(find) Finding Files'. If you are not
+using GNU findutils (on macOS and *BSD systems), see instead the
+man page for \"find\"."
(interactive (list (read-directory-name "Run find in directory: " nil "" t)
(read-string "Run find (with args): " find-args
'(find-args-history . 1))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/find-file.el
^
|
@@ -189,11 +189,36 @@
(defcustom ff-other-file-alist 'cc-other-file-alist
"Alist of extensions to find given the current file's extension.
-This list should contain the most used extensions before the others,
-since the search algorithm searches sequentially through each
-directory specified in `ff-search-directories'. If a file is not found,
-a new one is created with the first matching extension (`.cc' yields `.hh').
-This alist should be set by the major mode."
+The value could be an alist or a symbol whose value is an alist.
+Each element of the alist has the form
+
+ (REGEXP (EXTENSION...))
+
+where REGEXP is the regular expression matching a file's extension,
+and EXTENSIONs is the list of literal file-name extensions to search
+for. The list of extensions should contain the most used extensions
+before the others, since the search algorithm searches sequentially
+through each directory specified in `ff-search-directories'.
+
+Alist elements can also be of the form
+
+ (REGEXP FUNCTION)
+
+where FUNCTION is a function of one argument, the current file's name,
+that returns the list of possible names of the corresponding files, with
+or without leading directories. Note the difference: FUNCTION returns
+the list of file names, not their extensions. This is for the case when
+REGEXP is not enough to determine the file name of the other file.
+
+If a file is not found, a new one is created with the first
+matching extension or name (e.g., `.cc' yields `.hh').
+
+This alist should be set by the major mode.
+
+Note: if an element of the alist names a FUNCTION as its cdr, that
+function must return a non-nil list of file-names. It cannot
+return nil, nor can it signal in any way a failure to find a suitable
+list of file names."
:type '(choice (repeat (list regexp (choice (repeat string) function)))
symbol))
@@ -604,7 +629,7 @@
(while (and suffixes (not found))
(setq filename (concat fname-stub this-suffix))
- (setq file (concat dir "/" filename))
+ (setq file (expand-file-name filename dir))
(if (not ff-quiet-mode)
(message "Finding %s..." file))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/gnus/ChangeLog.3
^
|
@@ -7385,7 +7385,7 @@
2011-01-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-select-newsgroup): Don't propagate marks to
- backends after sanitising on entry, because this never makes sense:
+ backends after sanitizing on entry, because this never makes sense:
If the articles have gone missing, then the data no longer exists on
the backend, and if they haven't, then Gnus is wrong, and shouldn't
overwrite anything anyway.
@@ -21361,7 +21361,7 @@
to get all the groups a message ID is in.
* spam-stat.el (spam-stat-split-fancy-spam-threshold)
- (spam-stat-split-fancy): Change "threshhold" to "threshold".
+ (spam-stat-split-fancy): Fix typo for "threshold".
(spam-stat-score-buffer-user-functions): Add :number custom type.
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/gnus/mm-encode.el
^
|
@@ -99,7 +99,7 @@
;;;###autoload
(define-obsolete-function-alias 'mm-default-file-encoding
- #'mm-default-file-type "future") ;Old bad name.
+ #'mm-default-file-type "28.1") ;Old bad name.
;;;###autoload
(defun mm-default-file-type (file)
"Return a default content type for FILE."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/gnus/mm-uu.el
^
|
@@ -214,7 +214,7 @@
"$"
,#'mm-uu-org-src-code-block-extract))
"A list of specifications for non-MIME attachments.
-Each element consist of a `mm-uu-entry'.
+Each element consists of a `mm-uu-entry'.
The functions in the last 3 slots of this type can make use of the following
dynamically-scoped variables:
`file-name', `start-point', and `end-point'.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/gnus/nntp.el
^
|
@@ -233,7 +233,7 @@
(const :format "" "password")
(string :format "Password: %v")))))))
-(make-obsolete 'nntp-authinfo-file nil "24.1")
+(make-obsolete-variable 'nntp-authinfo-file 'netrc-file "24.1")

|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/help-fns.el
^
|
@@ -251,13 +251,9 @@
(or describe-function-orig-buffer
(current-buffer))))
- (help-setup-xref
- (list (lambda (function buffer)
- (let ((describe-function-orig-buffer
- (if (buffer-live-p buffer) buffer)))
- (describe-function function)))
- function describe-function-orig-buffer)
- (called-interactively-p 'interactive))
+ (help-setup-xref (list #'describe-function--helper
+ function describe-function-orig-buffer)
+ (called-interactively-p 'interactive))
(save-excursion
(with-help-window (help-buffer)
@@ -874,7 +870,7 @@
(aliased
(format-message "an alias for `%s'" real-def))
((subr-native-elisp-p def)
- (concat beg "native compiled Lisp function"))
+ (concat beg "native-compiled Lisp function"))
((subrp def)
(concat beg (if (eq 'unevalled (cdr (subr-arity def)))
"special form"
@@ -893,7 +889,7 @@
(macrop function))
(concat beg "Lisp macro"))
((byte-code-function-p def)
- (concat beg "compiled Lisp function"))
+ (concat beg "byte-compiled Lisp function"))
((module-function-p def)
(concat beg "module function"))
((eq (car-safe def) 'lambda)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/help.el
^
|
@@ -881,6 +881,19 @@
(setq yank-menu (copy-sequence saved-yank-menu))
(fset 'yank-menu (cons 'keymap yank-menu))))))
+;; These two are named functions because lambda-functions cannot be
+;; serialized in a native-compilation build, which breaks bookmark
+;; support in help-mode.el.
+(defun describe-key--helper (key-list buf)
+ (describe-key key-list
+ (if (buffer-live-p buf) buf)))
+
+(defvar describe-function-orig-buffer)
+(defun describe-function--helper (func buf)
+ (let ((describe-function-orig-buffer
+ (if (buffer-live-p buf) buf)))
+ (describe-function func)))
+
(defun describe-key (&optional key-list buffer up-event)
"Display documentation of the function invoked by KEY-LIST.
KEY-LIST can be any kind of a key sequence; it can include keyboard events,
@@ -926,10 +939,7 @@
`(,seq ,brief-desc ,defn ,locus)))
key-list))
2)))
- (help-setup-xref (list (lambda (key-list buf)
- (describe-key key-list
- (if (buffer-live-p buf) buf)))
- key-list buf)
+ (help-setup-xref (list #'describe-key--helper key-list buf)
(called-interactively-p 'interactive))
(if (and (<= (length info-list) 1)
(help--binding-undefined-p (nth 2 (car info-list))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/icomplete.el
^
|
@@ -369,7 +369,7 @@
(defun icomplete-fido-exit (force)
"Attempt to exit minibuffer immediately with current input.
Unless FORCE is non-nil (interactively with a prefix argument),
-honour a non-nil REQUIRE-MATCH argument to `completing-read' by
+honor a non-nil REQUIRE-MATCH argument to `completing-read' by
trying to complete as much as possible and disallowing the exit
if that doesn't produce a completion match."
(interactive "P")
@@ -587,7 +587,7 @@
;; select it -- again, as desired.
;;
;; FIXME: it's arguable that this second
- ;; behaviour should be a property of the
+ ;; behavior should be a property of the
;; completion table and not the completion
;; frontend such as we have done
;; here. However, it seems generically
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/image-mode.el
^
|
@@ -23,10 +23,14 @@
;;; Commentary:
-;; Defines a major mode for visiting image files
-;; that allows conversion between viewing the text of the file,
-;; hex of the file and viewing the file as an image. Viewing the image
-;; works by putting a `display' text-property on the
+;; Defines `image-mode', a major mode for visiting image files. Displaying
+;; images only works if Emacs was built with support for displaying
+;; such images. See Info node `(emacs) Image Mode' for more
+;; information.
+;;
+;; There is support for switching between viewing the text of the
+;; file, the hex of the file and viewing the file as an image.
+;; Viewing the image works by putting a `display' text-property on the
;; image data, with the image-data still present underneath; if the
;; resulting buffer file is saved to another name it will correctly save
;; the image data to the new file.
@@ -738,11 +742,12 @@
(image-toggle-display-text))))
(defun image-mode-as-hex ()
- "Set a non-image mode as major mode in combination with image minor mode.
+ "Set `hexl-mode' as major mode in combination with image minor mode.
A non-mage major mode found from `auto-mode-alist' or fundamental mode
displays an image file as hex. `image-minor-mode' provides the key
-\\<image-mode-map>\\[image-toggle-hex-display] to switch back to `image-mode'
-to display an image file as the actual image.
+\\<image-mode-map>\\[image-toggle-hex-display] to switch back to `image-mode' \
+to display an image file as
+the actual image.
You can use `image-mode-as-hex' in `auto-mode-alist' when you want to
display an image file as hex initially.
@@ -751,13 +756,9 @@
on these modes."
(interactive)
(image-mode-to-text)
- ;; Turn on hexl-mode
(hexl-mode)
- (message "%s" (concat
- (substitute-command-keys
- "Type \\[image-toggle-hex-display] or \\[image-toggle-display] to view the image as ")
- (if (image-get-display-property)
- "hex" "an image or text") ".")))
+ (message "%s" (substitute-command-keys
+ "Type \\[hexl-mode-exit] to view the image as an image")))
(defun image-mode-as-text ()
"Set a non-image mode as major mode in combination with image minor mode.
@@ -777,7 +778,7 @@
(substitute-command-keys
"Type \\[image-toggle-display] or \\[image-toggle-hex-display] to view the image as ")
(if (image-get-display-property)
- "text" "an image or hex") ".")))
+ "text" "an image or hex"))))
(defun image-toggle-display-text ()
"Show the image file as text.
@@ -1161,14 +1162,14 @@
(when (buffer-live-p archive-superior-buffer)
(push (cons 'archive archive-superior-buffer) buffers)))
(t
- ;; Find a dired buffer.
+ ;; Find a Dired buffer.
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when (and (derived-mode-p 'dired-mode)
(equal (file-truename dir)
(file-truename default-directory)))
(push (cons 'dired (current-buffer)) buffers))))
- ;; If we can't find any buffers to navigate in, we open a dired
+ ;; If we can't find any buffers to navigate in, we open a Dired
;; buffer.
(unless buffers
(push (cons 'dired (find-file-noselect dir)) buffers)
@@ -1180,14 +1181,14 @@
(defun image-mode--next-file (file n)
"Go to the next image file in the parent buffer of FILE.
-This is typically a dired buffer, but may also be a tar/archive buffer.
+This is typically a Dired buffer, but may also be a tar/archive buffer.
Return the next image file from that buffer.
If N is negative, go to the previous file."
(let ((regexp (image-file-name-regexp))
(buffers (image-mode--directory-buffers file))
next)
(dolist (buffer buffers)
- ;; We do this traversal for all the dired buffers open on this
+ ;; We do this traversal for all the Dired buffers open on this
;; directory. There probably is just one, but we want to move
;; point in all of them.
(save-window-excursion
@@ -1236,8 +1237,8 @@
(message "Copied %s" buffer-file-name))
(defun image-mode-mark-file ()
- "Mark the current file in the appropriate dired buffer(s).
-Any dired buffer that's opened to the current file's directory
+ "Mark the current file in the appropriate Dired buffer(s).
+Any Dired buffer that's opened to the current file's directory
will have the line where the image appears (if any) marked.
If no such buffer exists, it will be opened."
@@ -1247,8 +1248,8 @@
(image-mode--mark-file buffer-file-name #'dired-mark "marked"))
(defun image-mode-unmark-file ()
- "Unmark the current file in the appropriate dired buffer(s).
-Any dired buffer that's opened to the current file's directory
+ "Unmark the current file in the appropriate Dired buffer(s).
+Any Dired buffer that's opened to the current file's directory
will remove the mark from the line where the image appears (if
any).
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/image/image-converter.el
^
|
@@ -227,19 +227,21 @@
(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))
- "png:-"))))
+ (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))
+ "png:-")))))
;; SOURCE is a file name.
(apply #'call-process (car command)
nil t nil
@@ -252,18 +254,20 @@
(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" "png"
- "-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" "png"
+ "-f" "image2pipe" "-")))))
(apply #'call-process
(car command)
nil '(t nil) nil
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/info.el
^
|
@@ -4446,9 +4446,12 @@
(setq buffer-read-only t)
(setq Info-tag-table-marker (make-marker))
(unless (or (display-multi-font-p)
- (coding-system-equal
- (coding-system-base (terminal-coding-system))
- 'utf-8))
+ (and (coding-system-equal
+ (coding-system-base (terminal-coding-system))
+ 'utf-8)
+ ;; The Linux console has limited character
+ ;; repertoire even when its encoding is UTF-8.
+ (not (equal (tty-type) "linux"))))
(dolist (elt info-symbols-and-replacements)
(let ((ch (car elt))
(repl (cdr elt)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/international/characters.el
^
|
@@ -1599,7 +1599,8 @@
presentation).
`no-font': characters for which no suitable font is found.
For character terminals, characters that cannot
- be encoded by `terminal-coding-system'.
+ be encoded by `terminal-coding-system' or those
+ for which the terminal has no glyphs.
METHOD must be one of these symbols:
`zero-width': don't display.
@@ -1613,7 +1614,10 @@
Do not set its value directly from Lisp; the value takes effect
only via a custom `:set'
function (`update-glyphless-char-display'), which updates
-`glyphless-char-display'."
+`glyphless-char-display'.
+
+See also the `glyphless-char' face, which is used to display the
+visual representation of these characters."
:version "28.1"
:type '(alist :key-type (symbol :tag "Character Group")
:value-type (symbol :tag "Display Method"))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/international/latin1-disp.el
^
|
@@ -87,7 +87,7 @@
charsets if you don't have a Unicode font with which to display them.
Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'."
+use either \\[customize] or the command `latin1-display'."
:group 'latin1-display
:type 'boolean
:require 'latin1-disp
@@ -745,7 +745,7 @@
changed if the display can render Unicode characters.
Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'."
+use either \\[customize] or the command `latin1-display-ucs-per-lynx'."
:group 'latin1-display
:type 'boolean
:require 'latin1-disp
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/isearch.el
^
|
@@ -2324,7 +2324,12 @@
is possible only when `isearch-allow-scroll' is non-nil or
`isearch-allow-prefix' is non-nil, and it doesn't always provide the
correct matches for `query-replace', so the preferred way to run word
-replacements from Isearch is `M-s w ... M-%'."
+replacements from Isearch is `M-s w ... M-%'.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time."
(interactive
(list current-prefix-arg))
(barf-if-buffer-read-only)
@@ -2378,7 +2383,12 @@
(defun isearch-query-replace-regexp (&optional arg)
"Start `query-replace-regexp' with string to replace from last search string.
-See `isearch-query-replace' for more information."
+See `isearch-query-replace' for more information.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time."
(interactive
(list current-prefix-arg))
(isearch-query-replace arg t))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/jit-lock.el
^
|
@@ -45,9 +45,12 @@
:group 'font-lock)
(defcustom jit-lock-chunk-size 1500
- "Jit-lock fontifies chunks of at most this many characters at a time.
+ "Jit-lock asks to fontify chunks of at most this many characters at a time.
-This variable controls both `display-time' and stealth fontification.
+The actual size of the fontified chunk of text can be different,
+depending on what the `fontification-functions' actually decide to do.
+
+This variable controls both display-time and stealth fontifications.
The optimum value is a little over the typical number of buffer
characters which fit in a typical window."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/kmacro.el
^
|
@@ -172,7 +172,7 @@
(define-key map "\C-k" #'kmacro-end-or-call-macro-repeat)
(define-key map "r" #'apply-macro-to-region-lines)
(define-key map "q" #'kbd-macro-query) ;; Like C-x q
- (define-key map "d" #'kdb-macro-redisplay)
+ (define-key map "d" #'kmacro-redisplay)
;; macro ring
(define-key map "\C-n" #'kmacro-cycle-ring-next)
@@ -1344,12 +1344,12 @@
(kmacro-push-ring)
(setq last-kbd-macro kmacro-step-edit-new-macro))))
-(defun kdb-macro-redisplay ()
- "Force redisplay during kbd macro execution."
+(defun kmacro-redisplay ()
+ "Force redisplay during keyboard macro execution."
(interactive)
(or executing-kbd-macro
defining-kbd-macro
- (user-error "Not defining or executing kbd macro"))
+ (user-error "Not defining or executing keyboard macro"))
(when executing-kbd-macro
(let ((executing-kbd-macro nil))
(redisplay))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/language/european.el
^
|
@@ -390,7 +390,7 @@
(define-coding-system-alias 'cp284 'ibm284)
(define-coding-system 'ibm285
- "UK english version of EBCDIC"
+ "UK English version of EBCDIC"
:coding-type 'charset
:charset-list '(ibm285)
:mnemonic ?*)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ldefs-boot.el
^
|
@@ -1452,25 +1452,25 @@
This is a brief overview of the different variables. For more info,
see the documentation for the variables (type \\[describe-variable] <variable> RET).
- artist-rubber-banding Interactively do rubber-banding or not
- artist-first-char What to set at first/second point...
- artist-second-char ...when not rubber-banding
- artist-interface-with-rect If cut/copy/paste should interface with rect
- artist-arrows The arrows to use when drawing arrows
- artist-aspect-ratio Character height-to-width for squares
- artist-trim-line-endings Trimming of line endings
- artist-flood-fill-right-border Right border when flood-filling
- artist-flood-fill-show-incrementally Update display while filling
- artist-pointer-shape Pointer shape to use while drawing
- artist-ellipse-left-char Character to use for narrow ellipses
- artist-ellipse-right-char Character to use for narrow ellipses
- artist-borderless-shapes If shapes should have borders
- artist-picture-compatibility Whether or not to be picture mode compatible
- artist-vaporize-fuzziness Tolerance when recognizing lines
- artist-spray-interval Seconds between repeated sprayings
- artist-spray-radius Size of the spray-area
- artist-spray-chars The spray-\"color\"
- artist-spray-new-chars Initial spray-\"color\"
+ `artist-rubber-banding' Interactively do rubber-banding or not
+ `artist-first-char' What to set at first/second point...
+ `artist-second-char' ...when not rubber-banding
+ `artist-interface-with-rect' Should cut/copy/paste interface with rect
+ `artist-arrows' The arrows to use when drawing arrows
+ `artist-aspect-ratio' Character height-to-width for squares
+ `artist-trim-line-endings' Trimming of line endings
+ `artist-flood-fill-right-border' Right border when flood-filling
+ `artist-flood-fill-show-incrementally' Update display while filling
+ `artist-pointer-shape' Pointer shape to use while drawing
+ `artist-ellipse-left-char' Character to use for narrow ellipses
+ `artist-ellipse-right-char' Character to use for narrow ellipses
+ `artist-borderless-shapes' If shapes should have borders
+ `artist-picture-compatibility' Picture mode compatibility on or off
+ `artist-vaporize-fuzziness' Tolerance when recognizing lines
+ `artist-spray-interval' Seconds between repeated sprayings
+ `artist-spray-radius' Size of the spray-area
+ `artist-spray-chars' The spray-\"color\"
+ `artist-spray-new-char' Initial spray-\"color\"
Hooks
@@ -4890,11 +4890,11 @@
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'." t nil)
@@ -5284,6 +5284,10 @@
COLOR should be a color name (e.g. \"white\") or an RGB triplet
string (e.g. \"#ffff1122eecc\").
+COLOR can also be the symbol `unspecified' or one of the strings
+\"unspecified-fg\" or \"unspecified-bg\", in which case the
+return value is nil.
+
Normally the return value is a list of three floating-point
numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive.
@@ -8059,8 +8063,11 @@
(autoload 'dired "dired" "\
\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.
-Optional second argument SWITCHES specifies the `ls' options used.
-\(Interactively, use a prefix argument to be able to specify SWITCHES.)
+Optional second argument SWITCHES specifies the options to be used
+when invoking `insert-directory-program', usually `ls', which produces
+the listing of the directory files and their attributes.
+Interactively, a prefix argument will cause the command to prompt
+for SWITCHES.
If DIRNAME is a string, Dired displays a list of files in DIRNAME (which
may also have shell wildcards appended to select certain files).
@@ -8562,7 +8569,7 @@
(autoload 'dns-mode "dns-mode" "\
Major mode for viewing and editing DNS master files.
-This mode is inherited from text mode. It add syntax
+This mode is derived from text mode. It adds syntax
highlighting, and some commands for handling DNS master files.
Its keymap inherits from `text-mode' and it has the same
variables for customizing indentation. It has its own abbrev
@@ -9261,6 +9268,11 @@
Query replace FROM with TO in all files of a class tree.
With prefix arg, process files of marked classes only.
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
\(fn FROM TO)" t nil)
(autoload 'ebrowse-tags-search-member-use "ebrowse" "\
@@ -11524,7 +11536,13 @@
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
with the command \\[fileloop-continue].
-For non-interactive use, superseded by `fileloop-initialize-replace'.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
+For non-interactive use, this is superseded by `fileloop-initialize-replace'.
\(fn FROM TO &optional DELIMITED FILES)" t nil)
@@ -12815,6 +12833,11 @@
Collect output in the \"*Find*\" buffer. To kill the job before
it finishes, type \\[kill-find].
+For more information on how to write valid find expressions for
+ARGS, see Info node `(find) Finding Files'. If you are not
+using GNU findutils (on macOS and *BSD systems), see instead the
+man page for \"find\".
+
\(fn DIR ARGS)" t nil)
(autoload 'find-name-dired "find-dired" "\
@@ -19978,7 +20001,7 @@
\(fn MAC &optional COUNTER FORMAT)" nil nil)
-(register-definition-prefixes "kmacro" '("kdb-macro-redisplay" "kmacro-"))
+(register-definition-prefixes "kmacro" '("kmacro-"))
;;;***

@@ -20086,7 +20109,7 @@
charsets if you don't have a Unicode font with which to display them.
Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'.")
+use either \\[customize] or the command `latin1-display'.")
(custom-autoload 'latin1-display "latin1-disp" nil)
@@ -20105,7 +20128,7 @@
changed if the display can render Unicode characters.
Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'.")
+use either \\[customize] or the command `latin1-display-ucs-per-lynx'.")
(custom-autoload 'latin1-display-ucs-per-lynx "latin1-disp" nil)
@@ -22099,7 +22122,7 @@
;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (0 0 0 0))
;;; Generated autoloads from gnus/mm-encode.el
-(define-obsolete-function-alias 'mm-default-file-encoding #'mm-default-file-type "future")
+(define-obsolete-function-alias 'mm-default-file-encoding #'mm-default-file-type "28.1")
(autoload 'mm-default-file-type "mm-encode" "\
Return a default content type for FILE.
@@ -24057,7 +24080,7 @@

;;;### (autoloads nil "org" "org/org.el" (0 0 0 0))
;;; Generated autoloads from org/org.el
-(push (purecopy '(org 9 5 2)) package--builtin-versions)
+(push (purecopy '(org 9 5 5)) package--builtin-versions)
(autoload 'org-babel-do-load-languages "org" "\
Load the languages defined in `org-babel-load-languages'.
@@ -24421,7 +24444,7 @@
\(fn &optional TODO-ONLY STRING EDIT-AT)" t nil)
(autoload 'org-todo-list "org-agenda" "\
-Show all (not done) TODO entries from all agenda file in a single list.
+Show all (not done) TODO entries from all agenda files in a single list.
The prefix arg can be used to select a specific TODO keyword and limit
the list to these. When using `\\[universal-argument]', you will be prompted
for a keyword. A numeric prefix directly selects the Nth keyword in
@@ -24482,7 +24505,7 @@
When in a restricted subtree, remove it.
The restriction will span over the entire file if TYPE is `file',
-or if type is '(4), or if the cursor is before the first headline
+or if type is \\='(4), or if the cursor is before the first headline
in the file. Otherwise, only apply the restriction to the current
subtree.
@@ -26628,6 +26651,10 @@
(autoload 'project-query-replace-regexp "project" "\
Query-replace REGEXP in all the files of the project.
Stops when a match is found and prompts for whether to replace it.
+At that prompt, the user must type a character saying what to do
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/leim/quail/persian.el
^
|
@@ -23,7 +23,7 @@
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
-;;
+
;; This file contains a collection of input methods for
;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
;;
@@ -402,7 +402,7 @@
;;;;;;;;;;; isiri-6219 Table 6 -- جدول ۶ - حروِفِ عربی
("F" ?إ)
- ("D" ?\u0671) ;; (ucs-insert #x0671)ٱ named: حرفِ الفِ وصل
+ ("D" ?\u0671) ;; (insert-char #x0671)ٱ named: حرفِ الفِ وصل
("K" ?ك) ;; Arabic kaf
("Th" ?ة) ;; ta marbuteh
("Y" ?ي)
@@ -421,40 +421,40 @@
("8" ?۸)
("9" ?۹)
- ("\\/" ?\u066B) ;; (ucs-insert #x066B)٫ named: ممیزِ فارسی
- ("\\," ?\u066C) ;; (ucs-insert #x066C)٬ named: جداکنندهی هزارهای فارسی
- ("%" ?\u066A) ;; (ucs-insert #x066A)٪ named: درصدِ فارسی
- ("+" ?\u002B) ;; (ucs-insert #x002B)+ named: علامتِ بهاضافه
- ("-" ?\u2212) ;; (ucs-insert #x2212)− named: علامتِ منها
- ("\\*" ?\u00D7) ;; (ucs-insert #x00D7)× named: علامتِ ضرب
- ("\\-" ?\u00F7) ;; (ucs-insert #x00F7)÷ named: علامتِ تقسیم
- ("<" ?\u003C) ;; (ucs-insert #x003C)< named: علامتِ کوچکتر
- ("=" ?\u003D) ;; (ucs-insert #x003D)= named: علامتِ مساوی
- (">" ?\u003E) ;; (ucs-insert #x003E)> named: علامتِ بزرگتر
+ ("\\/" ?\u066B) ;; (insert-char #x066B)٫ named: ممیزِ فارسی
+ ("\\," ?\u066C) ;; (insert-char #x066C)٬ named: جداکنندهی هزارهای فارسی
+ ("%" ?\u066A) ;; (insert-char #x066A)٪ named: درصدِ فارسی
+ ("+" ?\u002B) ;; (insert-char #x002B)+ named: علامتِ بهاضافه
+ ("-" ?\u2212) ;; (insert-char #x2212)− named: علامتِ منها
+ ("\\*" ?\u00D7) ;; (insert-char #x00D7)× named: علامتِ ضرب
+ ("\\-" ?\u00F7) ;; (insert-char #x00F7)÷ named: علامتِ تقسیم
+ ("<" ?\u003C) ;; (insert-char #x003C)< named: علامتِ کوچکتر
+ ("=" ?\u003D) ;; (insert-char #x003D)= named: علامتِ مساوی
+ (">" ?\u003E) ;; (insert-char #x003E)> named: علامتِ بزرگتر
;;;;;;;;;;; isiri-6219 Table 2 -- جدول ۲ - علائم نقطه گذاریِ مشترک
;;; Space
("." ?.) ;;
- (":" ?\u003A) ;; (ucs-insert #x003A): named:
- ("!" ?\u0021) ;; (ucs-insert #x0021)! named:
- ("\\." ?\u2026) ;; (ucs-insert #x2026)… named:
- ("\\-" ?\u2010) ;; (ucs-insert #x2010)‐ named:
- ("-" ?\u002D) ;; (ucs-insert #x002D)- named:
+ (":" ?\u003A) ;; (insert-char #x003A): named:
+ ("!" ?\u0021) ;; (insert-char #x0021)! named:
+ ("\\." ?\u2026) ;; (insert-char #x2026)… named:
+ ("\\-" ?\u2010) ;; (insert-char #x2010)‐ named:
+ ("-" ?\u002D) ;; (insert-char #x002D)- named:
("|" ?|)
;;("\\\\" ?\)
("//" ?/)
- ("*" ?\u002A) ;; (ucs-insert #x002A)* named:
- ("(" ?\u0028) ;; (ucs-insert #x0028)( named:
- (")" ?\u0029) ;; (ucs-insert #x0029)) named:
- ("[" ?\u005B) ;; (ucs-insert #x005B)[ named:
- ("[" ?\u005D) ;; (ucs-insert #x005D)] named:
- ("{" ?\u007B) ;; (ucs-insert #x007B){ named:
- ("}" ?\u007D) ;; (ucs-insert #x007D)} named:
- ("\\<" ?\u00AB) ;; (ucs-insert #x00AB)« named:
- ("\\>" ?\u00BB) ;; (ucs-insert #x00BB)» named:
- ("N" ?\u00AB) ;; (ucs-insert #x00AB)« named:
- ("M" ?\u00BB) ;; (ucs-insert #x00BB)» named:
+ ("*" ?\u002A) ;; (insert-char #x002A)* named:
+ ("(" ?\u0028) ;; (insert-char #x0028)( named:
+ (")" ?\u0029) ;; (insert-char #x0029)) named:
+ ("[" ?\u005B) ;; (insert-char #x005B)[ named:
+ ("[" ?\u005D) ;; (insert-char #x005D)] named:
+ ("{" ?\u007B) ;; (insert-char #x007B){ named:
+ ("}" ?\u007D) ;; (insert-char #x007D)} named:
+ ("\\<" ?\u00AB) ;; (insert-char #x00AB)« named:
+ ("\\>" ?\u00BB) ;; (insert-char #x00BB)» named:
+ ("N" ?\u00AB) ;; (insert-char #x00AB)« named:
+ ("M" ?\u00BB) ;; (insert-char #x00BB)» named:
;;;;;;;;;;; isiri-6219 Table 3 -- جدول ۳ - علائم نقطه گذاریِ فارسی
("," ?،) ;; farsi
@@ -466,20 +466,20 @@
;;;;;;;;;;; isiri-6219 Table 1 -- جدول ۱ - نویسههای کنترلی
;; LF
;; CR
- ("‌" ?\u200C) ;; (ucs-insert #x200C) named: فاصلهی مجازی
+ ("‌" ?\u200C) ;; (insert-char #x200C) named: فاصلهی مجازی
("/" ?\u200C) ;;
- ("‍" ?\u200D) ;; (ucs-insert #x200D) named: اتصالِ مجازی
+ ("‍" ?\u200D) ;; (insert-char #x200D) named: اتصالِ مجازی
("J" ?\u200D) ;;
- ("‎" ?\u200E) ;; (ucs-insert #x200E) named: نشانهی چپبهراست
- ("‏" ?\u200F) ;; (ucs-insert #x200F) named: نشانهی راستبهچپ
- ("&ls;" ?\u2028) ;; (ucs-insert #x2028)
named: جداکنندهی سطرها
- ("&ps;" ?\u2028) ;; (ucs-insert #x2029)
named: جداکنندهی بندها
- ("&lre;" ?\u202A) ;; (ucs-insert #x202A) named: زیرمتنِ چپبهراست
- ("&rle;" ?\u202B) ;; (ucs-insert #x202B) named: زیرمتنِ راستبهچپ
- ("&pdf;" ?\u202C) ;; (ucs-insert #x202C) named: پایانِ زیرمتن
- ("&lro;" ?\u202D) ;; (ucs-insert #x202D) named: زیرمتنِ اکیداً چپبهراست
- ("&rlo;" ?\u202D) ;; (ucs-insert #x202E) named: زیرمتنِ اکیداً راستبهچپ
- ("&bom;" ?\uFEFF) ;; (ucs-insert #xFEFF) named: نشانهی ترتیبِ بایتها
+ ("‎" ?\u200E) ;; (insert-char #x200E) named: نشانهی چپبهراست
+ ("‏" ?\u200F) ;; (insert-char #x200F) named: نشانهی راستبهچپ
+ ("&ls;" ?\u2028) ;; (insert-char #x2028)
named: جداکنندهی سطرها
+ ("&ps;" ?\u2028) ;; (insert-char #x2029)
named: جداکنندهی بندها
+ ("&lre;" ?\u202A) ;; (insert-char #x202A) named: زیرمتنِ چپبهراست
+ ("&rle;" ?\u202B) ;; (insert-char #x202B) named: زیرمتنِ راستبهچپ
+ ("&pdf;" ?\u202C) ;; (insert-char #x202C) named: پایانِ زیرمتن
+ ("&lro;" ?\u202D) ;; (insert-char #x202D) named: زیرمتنِ اکیداً چپبهراست
+ ("&rlo;" ?\u202D) ;; (insert-char #x202E) named: زیرمتنِ اکیداً راستبهچپ
+ ("&bom;" ?\uFEFF) ;; (insert-char #xFEFF) named: نشانهی ترتیبِ بایتها
;;;;;;;;;;; isiri-6219 Table 7 -- جدول ۷ - نشانههایِ فارسی
@@ -491,14 +491,14 @@
("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
("~" ?ّ) ;; tashdid ;; تشديد فارسى
("@" ?ْ) ;; ساکن فارسى
- ("U" ?\u0653) ;; (ucs-insert #x0653)ٓ named: مدِ فارسی
+ ("U" ?\u0653) ;; (insert-char #x0653)ٓ named: مدِ فارسی
("`" ?ٔ) ;; همزه فارسى بالا
- ("C" ?\u0655) ;; (ucs-insert #x0655)ٕ named: همزه فارسى پایین
- ("$" ?\u0670) ;; (ucs-insert #x0670)ٰ named: الفِ مقصورهی فارسی
+ ("C" ?\u0655) ;; (insert-char #x0655)ٕ named: همزه فارسى پایین
+ ("$" ?\u0670) ;; (insert-char #x0670)ٰ named: الفِ مقصورهی فارسی
;;;;;;;;;;; isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسههایِ ممنوع
-;; ;; he ye (ucs-insert 1728) (ucs-insert #x06c0) kills emacs-24.0.90
+;; ;; he ye (insert-char 1728) (insert-char #x06c0) kills emacs-24.0.90
;; arabic digits 0-9
@@ -508,7 +508,7 @@
("\\~" ?~)
("\\@" ?@)
("\\#" ?#)
- ("\\$" ?\uFDFC) ;; (ucs-insert #xFDFC)﷼ named:
+ ("\\$" ?\uFDFC) ;; (insert-char #xFDFC)﷼ named:
("\\^" ?^)
("\\1" ?1)
("\\2" ?2)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/mail/smtpmail.el
^
|
@@ -578,7 +578,7 @@
(setq password (funcall password)))
(let ((result (catch 'done
(if (and mech user password)
- (smtpmail-try-auth-method process mech user password)
+ (smtpmail-try-auth-method process (intern-soft mech) user password)
;; No mechanism, or no credentials.
mech))))
(if (stringp result)
@@ -805,7 +805,11 @@
(plist-get (cdr result) :capabilities)
"\r\n")))
(let ((name
- (with-case-table ascii-case-table ;FIXME: Why?
+ ;; Use ASCII case-table to prevent I
+ ;; downcasing to a dotless i under some
+ ;; language environments. See
+ ;; https://lists.gnu.org/archive/html/emacs-devel/2007-03/msg01760.html.
+ (with-case-table ascii-case-table
(mapcar (lambda (s) (intern (downcase s)))
(split-string (substring line 4) "[ ]")))))
(when (= (length name) 1)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/mh-e/mh-funcs.el
^
|
@@ -95,9 +95,9 @@
Remove all of the messages (files) within the current folder, and
then remove the folder (directory) itself.
-Run the abnormal hook `mh-kill-folder-suppress-prompt-hooks'. The
-hook functions are called with no arguments and should return a
-non-nil value to suppress the normal prompt when you remove a
+Run the abnormal hook `mh-kill-folder-suppress-prompt-functions'.
+The hook functions are called with no arguments and should return
+a non-nil value to suppress the normal prompt when you remove a
folder. This is useful for folders that are easily regenerated."
(interactive)
(if (or (run-hook-with-args-until-success
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/minibuffer.el
^
|
@@ -985,7 +985,11 @@
The available styles are listed in `completion-styles-alist'.
Note that `completion-category-overrides' may override these
-styles for specific categories, such as files, buffers, etc."
+styles for specific categories, such as files, buffers, etc.
+
+Note that Tramp host name completion (e.g., \"/ssh:ho<TAB>\")
+currently doesn't work if this list doesn't contain at least one
+of `basic', `emacs22' or `emacs21'."
:type completion--styles-type
:version "23.1")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/mouse.el
^
|
@@ -3049,7 +3049,7 @@
;; Show a tooltip.
(if mouse-drag-and-drop-region-show-tooltip
- (tooltip-show text-tooltip)
+ (tooltip-show (copy-sequence text-tooltip))
(tooltip-hide))
;; Show cursor and highlight the original region.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/dictionary.el
^
|
@@ -119,7 +119,7 @@
"exact"
"The default strategy for listing matching words within a popup window.
-The following algorithm (defined by the dictd server) are supported
+The following algorithms (defined by the dictd server) are supported
by the choice value:
- Exact match
@@ -130,7 +130,7 @@
The found word sounds similar to the searched word. For this match type
the soundex algorithm defined by Donald E. Knuth is used. It will only
- works with english words and the algorithm is not very reliable (i.e.,
+ work with English words and the algorithm is not very reliable (i.e.,
the soundex algorithm is quite simple).
- Levenshtein distance one
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/net-utils.el
^
|
@@ -23,11 +23,10 @@
;;; Commentary:
-;;
;; There are three main areas of functionality:
;;
;; * Wrap common network utility programs (ping, traceroute, netstat,
-;; nslookup, arp, route). Note that these wrappers are of the diagnostic
+;; nslookup, arp, route). Note that these wrappers are of the diagnostic
;; functions of these programs only.
;;
;; * Implement some very basic protocols in Emacs Lisp (finger and whois)
@@ -39,7 +38,7 @@
;;; Code:
;; On some systems, programs like ifconfig are not in normal user
-;; path, but rather in /sbin, /usr/sbin, etc (but non-root users can
+;; path, but rather in /sbin, /usr/sbin, etc. (but non-root users can
;; still use them for queries). Actually the trend these
;; days is for /sbin to be a symlink to /usr/sbin, but we still need to
;; search both for older systems.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/rcirc.el
^
|
@@ -3437,7 +3437,7 @@
configure a specific option or \"-PARAMETER\" to disable a
previously specified feature. SENDER is passed on to
`rcirc-handler-generic'. PROCESS is the process object for the
-current connection. Note that this is not the behaviour as
+current connection. Note that this is not the behavior as
specified in RFC2812, where 005 stood for RPL_BOUNCE."
(rcirc-handler-generic process "005" sender args text)
(with-rcirc-process-buffer process
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/shr.el
^
|
@@ -820,7 +820,7 @@
(let* ((props (copy-sequence (text-properties-at (point))))
(face (plist-get props 'face)))
;; We don't want to use the faces on the indentation, because
- ;; that's ugly, but we do want to use the background colour.
+ ;; that's ugly, but we do want to use the background color.
(when face
(setq props (plist-put props 'face (shr-face-background face))))
(add-text-properties gap-start (point) props))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-adb.el
^
|
@@ -815,10 +815,10 @@
;; Determine input.
(if (null infile)
(setq input (tramp-get-remote-null-device v))
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
- (setq input (tramp-file-local-name infile))
+ (setq input (tramp-unquote-file-local-name infile))
;; INFILE must be copied to remote host.
(setq input (tramp-make-tramp-temp-file v)
tmpinput (tramp-make-tramp-file-name v input))
@@ -849,7 +849,7 @@
(setcar (cdr destination) (expand-file-name (cadr destination)))
(if (tramp-equal-remote default-directory (cadr destination))
;; stderr is on the same remote host.
- (setq stderr (tramp-file-local-name (cadr destination)))
+ (setq stderr (tramp-unquote-file-local-name (cadr destination)))
;; stderr must be copied to remote host. The temporary
;; file must be deleted after execution.
(setq stderr (tramp-make-tramp-temp-file v)
@@ -870,7 +870,8 @@
(setq ret (tramp-adb-send-command-and-check
v (format
"(cd %s; %s)"
- (tramp-shell-quote-argument localname) command)
+ (tramp-unquote-shell-quote-argument localname)
+ command)
t))
(unless (natnump ret) (setq ret 1))
;; We should add the output anyway.
@@ -900,8 +901,7 @@
;; Cleanup. We remove all file cache values for the connection,
;; because the remote process could have changed them.
(when tmpinput (delete-file tmpinput))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
@@ -986,6 +986,10 @@
(name1 name)
(i 0))
+ (when (string-match-p "[[:multibyte:]]" command)
+ (tramp-error
+ v 'file-error "Cannot apply multi-byte command `%s'" command))
+
(while (get-process name1)
;; NAME must be unique as process name.
(setq i (1+ i)
@@ -1108,9 +1112,9 @@
tramp-prefix-port-format ":"
(cond ((member host devices) host)
;; This is the case when the host is connected to the default port.
- ((member (format "%s%s%d" host tramp-prefix-port-format port)
+ ((member (format "%s%s%s" host tramp-prefix-port-format port)
devices)
- (format "%s:%d" host port))
+ (format "%s:%s" host port))
;; An empty host name shall be mapped as well, when there
;; is exactly one entry in `devices'.
((and (zerop (length host)) (= (length devices) 1))
@@ -1264,7 +1268,7 @@
(if (zerop (length device))
(tramp-error vec 'file-error "Device %s not connected" host))
(with-tramp-progress-reporter vec 3 "Opening adb shell connection"
- (let* ((coding-system-for-read 'utf-8-dos) ;is this correct?
+ (let* ((coding-system-for-read 'utf-8-dos) ; Is this correct?
(process-connection-type tramp-process-connection-type)
(args (if (> (length host) 0)
(list "-s" device "shell")
@@ -1368,6 +1372,24 @@
`(:application tramp :protocol ,tramp-adb-method)
'tramp-adb-connection-local-default-shell-profile))
+;; `shell-mode' tries to open remote files like "/adb::~/.history".
+;; This fails, because the tilde cannot be expanded. Tell
+;; `tramp-handle-expand-file-name' to tolerate this.
+(defun tramp-adb-tolerate-tilde (orig-fun)
+ "Advice for `shell-mode' to tolerate tilde in remote file names."
+ (let ((tramp-tolerate-tilde
+ (or tramp-tolerate-tilde
+ (equal (file-remote-p default-directory 'method)
+ tramp-adb-method))))
+ (funcall orig-fun)))
+
+(add-function
+ :around (symbol-function #'shell-mode) #'tramp-adb-tolerate-tilde)
+(add-hook 'tramp-adb-unload-hook
+ (lambda ()
+ (remove-function
+ (symbol-function #'shell-mode) #'tramp-adb-tolerate-tilde)))
+
(add-hook 'tramp-unload-hook
(lambda ()
(unload-feature 'tramp-adb 'force)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-archive.el
^
|
@@ -188,6 +188,8 @@
"\\)" ;; \1
"\\(" "/" ".*" "\\)" "\\'"))) ;; \2
+(put #'tramp-archive-autoload-file-name-regexp 'tramp-autoload t)
+
;; In older Emacsen (prior 27.1), `tramp-archive-autoload-file-name-regexp'
;; is not autoloaded. So we cannot expect it to be known in
;; tramp-loaddefs.el. But it exists, when tramp-archive.el is loaded.
@@ -337,6 +339,13 @@
(tramp-archive-run-real-handler
#'file-directory-p (list archive)))
(tramp-archive-run-real-handler operation args)
+ ;; The default directory of the Tramp connection buffer
+ ;; cannot be accessed. (Bug#56628)
+ ;; FIXME: It is superfluous to set it every single loop.
+ ;; But there is no place to set it when creating the buffer.
+ (with-current-buffer
+ (tramp-get-buffer (tramp-archive-dissect-file-name filename))
+ (setq default-directory (file-name-as-directory archive)))
;; Now run the handler.
(let ((tramp-methods (cons `(,tramp-archive-method) tramp-methods))
(tramp-gvfs-methods tramp-archive-all-gvfs-methods)
@@ -354,24 +363,29 @@
(progn (defun tramp-archive-autoload-file-name-handler (operation &rest args)
"Load Tramp archive file name handler, and perform OPERATION."
(defvar tramp-archive-autoload)
- (when tramp-archive-enabled
- ;; We cannot use `tramp-compat-temporary-file-directory' here due
- ;; to autoload. When installing Tramp's GNU ELPA package, there
- ;; might be an older, incompatible version active. We try to
- ;; overload this.
- (let ((default-directory temporary-file-directory)
- (tramp-archive-autoload t))
- (apply #'tramp-autoload-file-name-handler operation args)))))
+ (let (;; We cannot use `tramp-compat-temporary-file-directory' here
+ ;; due to autoload. When installing Tramp's GNU ELPA package,
+ ;; there might be an older, incompatible version active. We
+ ;; try to overload this.
+ (default-directory temporary-file-directory)
+ (tramp-archive-autoload tramp-archive-enabled))
+ (apply #'tramp-autoload-file-name-handler operation args))))
+
+(put #'tramp-archive-autoload-file-name-handler 'tramp-autoload t)
;;;###autoload
(progn (defun tramp-register-archive-file-name-handler ()
"Add archive file name handler to `file-name-handler-alist'."
- (when tramp-archive-enabled
+ (when (and tramp-archive-enabled
+ (not
+ (rassq #'tramp-archive-file-name-handler file-name-handler-alist)))
(add-to-list 'file-name-handler-alist
(cons (tramp-archive-autoload-file-name-regexp)
#'tramp-archive-autoload-file-name-handler))
(put #'tramp-archive-autoload-file-name-handler 'safe-magic t))))
+(put #'tramp-register-archive-file-name-handler 'tramp-autoload t)
+
;;;###autoload
(progn
(add-hook 'after-init-hook #'tramp-register-archive-file-name-handler)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-cache.el
^
|
@@ -49,8 +49,6 @@
;; an open connection. Examples: "scripts" keeps shell script
;; definitions already sent to the remote shell, "last-cmd-time" is
;; the time stamp a command has been sent to the remote process.
-;; "lock-pid" is the timestamp a (network) process is created, it is
-;; used instead of the pid in file locks.
;;
;; - The key is nil. These are temporary properties related to the
;; local machine. Examples: "parse-passwd" and "parse-group" keep
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-cmds.el
^
|
@@ -51,6 +51,7 @@
(when syntax
(customize-set-variable 'tramp-syntax syntax)))
+;;;###tramp-autoload
(defun tramp-list-tramp-buffers ()
"Return a list of all Tramp connection buffers."
(append
@@ -61,6 +62,7 @@
(all-completions
"*trace tramp" (mapcar #'list (mapcar #'buffer-name (buffer-list))))))
+;;;###tramp-autoload
(defun tramp-list-remote-buffers ()
"Return a list of all buffers with remote `default-directory'."
(delq
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-crypt.el
^
|
@@ -23,50 +23,50 @@
;;; Commentary:
-;; Access functions for crypted remote files. It uses encfs to
+;; Access functions for encrypted remote files. It uses encfs to
;; encrypt / decrypt the files on a remote directory. A remote
-;; directory, which shall include crypted files, must be declared in
+;; directory where you wish files to be encrypted must be declared in
;; `tramp-crypt-directories' via command `tramp-crypt-add-directory'.
;; All files in that directory, including all subdirectories, are
-;; stored there encrypted. This includes file names and directory
+;; stored encrypted. This includes file names and directory
;; names.
;; This package is just responsible for the encryption part. Copying
-;; of the crypted files is still the responsibility of the remote file
-;; name handlers.
+;; of the encrypted files is still the responsibility of the remote
+;; file name handlers.
;; A password protected encfs configuration file is created the very
-;; first time you access a crypted remote directory. It is kept in
-;; your user directory "~/.emacs.d/" with the url-encoded directory
-;; name as part of the basename, and ".encfs6.xml" as suffix. Do not
-;; lose this file and the corresponding password; otherwise there is
-;; no way to decrypt your crypted files.
+;; first time you access an encrypted remote directory. It is kept in
+;; your user directory (usually "~/.emacs.d/") with the url-encoded
+;; directory name as part of the basename, and ".encfs6.xml" as
+;; suffix. Do not lose this file and the corresponding password;
+;; otherwise there is no way to decrypt your encrypted files.
;; If the user option `tramp-crypt-save-encfs-config-remote' is
;; non-nil (the default), the encfs configuration file ".encfs6.xml"
-;; is also kept in the crypted remote directory. It depends on you,
+;; is also kept in the encrypted remote directory. It depends on you,
;; whether you regard the password protection of this file as
-;; sufficient.
+;; sufficient security.
;; If you use a remote file name with a quoted localname part, this
;; localname and the corresponding file will not be encrypted/
-;; decrypted. For example, if you have a crypted remote directory
-;; "/nextcloud:user@host:/crypted_dir", the command
+;; decrypted. For example, if you have an encrypted remote directory
+;; "/nextcloud:user@host:/encrypted_dir", the command
;;
-;; C-x d /nextcloud:user@host:/crypted_dir
+;; C-x d /nextcloud:user@host:/encrypted_dir
;;
;; will show the directory listing with the plain file names, and the
;; command
;;
-;; C-x d /nextcloud:user@host:/:/crypted_dir
+;; C-x d /nextcloud:user@host:/:/encrypted_dir
;;
;; will show the directory with the encrypted file names, and visiting
-;; a file will show its crypted contents. However, it is highly
-;; discouraged to mix crypted and not crypted files in the same
+;; a file will show its encrypted contents. However, it is highly
+;; discouraged to mix encrypted and non-encrypted files in the same
;; directory.
-;; If a remote directory shall not include crypted files anymore, it
-;; must be indicated by the command `tramp-crypt-remove-directory'.
+;; To disable encryption for a particular remote directory, use the
+;; command `tramp-crypt-remove-directory'.
;;; Code:
@@ -78,7 +78,7 @@
(autoload 'text-property-search-forward "text-property-search")
(defconst tramp-crypt-method "crypt"
- "Method name for crypted remote directories.")
+ "Method name for encrypted remote directories.")
(defcustom tramp-crypt-encfs-program "encfs"
"Name of the encfs program."
@@ -96,7 +96,7 @@
"Configuration option for encfs.
This could be either \"--standard\" or \"--paranoia\". The file
name IV chaining mode mode will always be disabled when
-initializing a new crypted remote directory."
+initializing a new encrypted remote directory."
:group 'tramp
:version "28.1"
:type '(choice (const "--standard")
@@ -120,7 +120,7 @@
They are completed by \"M-x TAB\" only when encryption support is enabled."
(and tramp-crypt-enabled
;; `tramp-crypt-remove-directory' needs to be completed only in
- ;; case we have already crypted directories.
+ ;; case we have already encrypted directories.
(or (not (eq symbol #'tramp-crypt-remove-directory))
tramp-crypt-directories)))
@@ -129,21 +129,21 @@
"Encfs configuration file name.")
(defcustom tramp-crypt-save-encfs-config-remote t
- "Whether to keep the encfs configuration file in the crypted remote directory."
+ "Whether to keep the encfs configuration file in the encrypted remote directory."
:group 'tramp
:version "28.1"
:type 'boolean)
;;;###tramp-autoload
(defvar tramp-crypt-directories nil
- "List of crypted remote directories.")
+ "List of encrypted remote directories.")
;; It must be a `defsubst' in order to push the whole code into
;; tramp-loaddefs.el. Otherwise, there would be recursive autoloading.
;;;###tramp-autoload
(defsubst tramp-crypt-file-name-p (name)
- "Return the crypted remote directory NAME belongs to.
-If NAME doesn't belong to a crypted remote directory, retun nil."
+ "Return the encrypted remote directory NAME belongs to.
+If NAME doesn't belong to an encrypted remote directory, return nil."
(catch 'crypt-file-name-p
(and tramp-crypt-enabled (stringp name)
(not (tramp-compat-file-name-quoted-p name))
@@ -192,9 +192,9 @@
;; `file-name-nondirectory' performed by default handler.
;; `file-name-sans-versions' performed by default handler.
(file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
- (file-notify-add-watch . ignore)
- (file-notify-rm-watch . ignore)
- (file-notify-valid-p . ignore)
+ (file-notify-add-watch . tramp-handle-file-notify-add-watch)
+ (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
+ (file-notify-valid-p . tramp-handle-file-notify-valid-p)
(file-ownership-preserved-p . tramp-crypt-handle-file-ownership-preserved-p)
(file-readable-p . tramp-crypt-handle-file-readable-p)
(file-regular-p . tramp-handle-file-regular-p)
@@ -207,7 +207,7 @@
(find-backup-file-name . tramp-handle-find-backup-file-name)
;; `get-file-buffer' performed by default handler.
(insert-directory . tramp-crypt-handle-insert-directory)
- ;; `insert-file-contents' performed by default handler.
+ (insert-file-contents . tramp-handle-insert-file-contents)
(load . tramp-handle-load)
(lock-file . tramp-crypt-handle-lock-file)
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
@@ -240,7 +240,7 @@
Operations not mentioned here will be handled by the default Emacs primitives.")
(defsubst tramp-crypt-file-name-for-operation (operation &rest args)
- "Like `tramp-file-name-for-operation', but for crypted remote files."
+ "Like `tramp-file-name-for-operation', but for encrypted remote files."
(let ((tfnfo (apply #'tramp-file-name-for-operation operation args)))
;; `tramp-file-name-for-operation' returns already the first argument
;; if it is remote. So we check a possible second argument.
@@ -264,7 +264,7 @@
;;;###tramp-autoload
(defun tramp-crypt-file-name-handler (operation &rest args)
- "Invoke the crypted remote file related OPERATION.
+ "Invoke the encrypted remote file related OPERATION.
First arg specifies the OPERATION, second arg is a list of
arguments to pass to the OPERATION."
(if-let ((filename
@@ -409,7 +409,7 @@
t))))
(defun tramp-crypt-do-encrypt-or-decrypt-file-name (op name)
- "Return encrypted / decrypted NAME if NAME belongs to a crypted directory.
+ "Return encrypted / decrypted NAME if NAME belongs to an encrypted directory.
OP must be `encrypt' or `decrypt'. Raise an error if this fails.
Otherwise, return NAME."
(if-let ((tramp-crypt-enabled t)
@@ -438,17 +438,17 @@
name))
(defsubst tramp-crypt-encrypt-file-name (name)
- "Return encrypted NAME if NAME belongs to a crypted directory.
+ "Return encrypted NAME if NAME belongs to an encrypted directory.
Otherwise, return NAME."
(tramp-crypt-do-encrypt-or-decrypt-file-name 'encrypt name))
(defsubst tramp-crypt-decrypt-file-name (name)
- "Return decrypted NAME if NAME belongs to a crypted directory.
+ "Return decrypted NAME if NAME belongs to an encrypted directory.
Otherwise, return NAME."
(tramp-crypt-do-encrypt-or-decrypt-file-name 'decrypt name))
(defun tramp-crypt-do-encrypt-or-decrypt-file (op root infile outfile)
- "Encrypt / decrypt file INFILE to OUTFILE according to crypted directory ROOT.
+ "Encrypt / decrypt file INFILE to OUTFILE according to encrypted directory ROOT.
Both files must be local files. OP must be `encrypt' or `decrypt'.
If OP ist `decrypt', the basename of INFILE must be an encrypted file name.
Raise an error if this fails."
@@ -470,12 +470,12 @@
(write-region nil nil outfile)))))
(defsubst tramp-crypt-encrypt-file (root infile outfile)
- "Encrypt file INFILE to OUTFILE according to crypted directory ROOT.
+ "Encrypt file INFILE to OUTFILE according to encrypted directory ROOT.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-fuse.el
^
|
@@ -44,6 +44,17 @@
(delete-file (tramp-fuse-local-file-name filename) trash)
(tramp-flush-file-properties v localname)))
+(defvar tramp-fuse-remove-hidden-files nil
+ "Remove hidden files from directory listings.")
+
+(defsubst tramp-fuse-remove-hidden-files (files)
+ "Remove hidden files from FILES."
+ (if tramp-fuse-remove-hidden-files
+ (cl-remove-if
+ (lambda (x) (and (stringp x) (string-match-p "\\.fuse_hidden" x)))
+ files)
+ files))
+
(defun tramp-fuse-handle-directory-files
(directory &optional full match nosort count)
"Like `directory-files' for Tramp files."
@@ -75,7 +86,8 @@
result)))
(setq result (cons item result))))
;; Return result.
- (if nosort result (sort result #'string<))))))
+ (tramp-fuse-remove-hidden-files
+ (if nosort result (sort result #'string<)))))))
(defun tramp-fuse-handle-file-attributes (filename &optional id-format)
"Like `file-attributes' for Tramp files."
@@ -92,20 +104,21 @@
(defun tramp-fuse-handle-file-name-all-completions (filename directory)
"Like `file-name-all-completions' for Tramp files."
- (all-completions
- filename
- (delete-dups
- (append
- (file-name-all-completions
- filename (tramp-fuse-local-file-name directory))
- ;; Some storage systems do not return "." and "..".
- (let (result)
- (dolist (item '(".." ".") result)
- (when (string-prefix-p filename item)
- (catch 'match
- (dolist (elt completion-regexp-list)
- (unless (string-match-p elt item) (throw 'match nil)))
- (setq result (cons (concat item "/") result))))))))))
+ (tramp-fuse-remove-hidden-files
+ (all-completions
+ filename
+ (delete-dups
+ (append
+ (file-name-all-completions
+ filename (tramp-fuse-local-file-name directory))
+ ;; Some storage systems do not return "." and "..".
+ (let (result)
+ (dolist (item '(".." ".") result)
+ (when (string-prefix-p filename item)
+ (catch 'match
+ (dolist (elt completion-regexp-list)
+ (unless (string-match-p elt item) (throw 'match nil)))
+ (setq result (cons (concat item "/") result)))))))))))
(defun tramp-fuse-handle-file-readable-p (filename)
"Like `file-readable-p' for Tramp files."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-gvfs.el
^
|
@@ -87,7 +87,7 @@
;; For hostname completion, information is retrieved from the zeroconf
;; daemon (for the "afp", "dav", "davs", and "sftp" methods). The
;; zeroconf daemon is pre-configured to discover services in the
-;; "local" domain. If another domain shall be used for discovering
+;; "local" domain. If another domain should be used for discovering
;; services, the user option `tramp-gvfs-zeroconf-domain' can be set
;; accordingly.
@@ -841,6 +841,8 @@
(tramp-file-name-method (tramp-dissect-file-name filename))))
(and (stringp method) (member method tramp-gvfs-methods)))))
+(defvar tramp-gvfs-dbus-event-vector)
+
;;;###tramp-autoload
(defun tramp-gvfs-file-name-handler (operation &rest args)
"Invoke the GVFS related OPERATION and ARGS.
@@ -848,7 +850,11 @@
arguments to pass to the OPERATION."
(unless tramp-gvfs-enabled
(tramp-user-error nil "Package `tramp-gvfs' not supported"))
- (if-let ((fn (assoc operation tramp-gvfs-file-name-handler-alist)))
+ (if-let ((filename (apply #'tramp-file-name-for-operation operation args))
+ (tramp-gvfs-dbus-event-vector
+ (and (tramp-tramp-file-p filename)
+ (tramp-dissect-file-name filename)))
+ (fn (assoc operation tramp-gvfs-file-name-handler-alist)))
(save-match-data (apply (cdr fn) args))
(tramp-run-real-handler operation args)))
@@ -942,7 +948,8 @@
(defvar tramp-gvfs-dbus-event-vector nil
"Current Tramp file name to be used, as vector.
It is needed when D-Bus signals or errors arrive, because there
-is no information where to trace the message.")
+is no information where to trace the message.
+The global value will always be nil; it is bound where needed.")
(defun tramp-gvfs-dbus-event-error (event err)
"Called when a D-Bus error message arrives, see `dbus-event-error-functions'."
@@ -1160,10 +1167,9 @@
(tramp-get-connection-property v "default-location" "~")
nil t localname 1)))
;; Tilde expansion is not possible.
- (when (string-match-p "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname)
- (tramp-error
- v 'file-error
- "Cannot expand tilde in file `%s'" name))
+ (when (and (not tramp-tolerate-tilde)
+ (string-match-p "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname))
+ (tramp-error v 'file-error "Cannot expand tilde in file `%s'" name))
(unless (tramp-run-real-handler #'file-name-absolute-p (list localname))
(setq localname (concat "/" localname)))
;; We do not pass "/..".
@@ -1181,7 +1187,9 @@
;; No tilde characters in file name, do normal
;; `expand-file-name' (this does "/./" and "/../").
(tramp-make-tramp-file-name
- v (tramp-run-real-handler #'expand-file-name (list localname))))))
+ v (if (string-match-p "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname)
+ localname
+ (tramp-run-real-handler #'expand-file-name (list localname)))))))
(defun tramp-gvfs-get-directory-attributes (directory)
"Return GVFS attributes association list of all files in DIRECTORY."
@@ -1396,7 +1404,8 @@
"Like `file-executable-p' for Tramp files."
(with-parsed-tramp-file-name filename nil
(with-tramp-file-property v localname "file-executable-p"
- (tramp-check-cached-permissions v ?x))))
+ (or (tramp-check-cached-permissions v ?x)
+ (tramp-check-cached-permissions v ?s)))))
(defun tramp-gvfs-handle-file-name-all-completions (filename directory)
"Like `file-name-all-completions' for Tramp files."
@@ -1612,22 +1621,18 @@
(tramp-file-name-user vec)
(when-let ((localname
(tramp-get-connection-property
- (tramp-get-process vec) "share"
- (tramp-get-connection-property vec "default-location" nil))))
+ (tramp-get-process vec) "share" nil)))
(tramp-compat-file-attribute-user-id
- (file-attributes
- (tramp-make-tramp-file-name vec localname) id-format)))))
+ (file-attributes (tramp-make-tramp-file-name vec localname) id-format)))))
(defun tramp-gvfs-handle-get-remote-gid (vec id-format)
"The gid of the remote connection VEC, in ID-FORMAT.
ID-FORMAT valid values are `string' and `integer'."
(when-let ((localname
(tramp-get-connection-property
- (tramp-get-process vec) "share"
- (tramp-get-connection-property vec "default-location" nil))))
+ (tramp-get-process vec) "share" nil)))
(tramp-compat-file-attribute-group-id
- (file-attributes
- (tramp-make-tramp-file-name vec localname) id-format))))
+ (file-attributes (tramp-make-tramp-file-name vec localname) id-format))))
(defun tramp-gvfs-handle-set-file-uid-gid (filename &optional uid gid)
"Like `tramp-set-file-uid-gid' for Tramp files."
@@ -1776,22 +1781,26 @@
(list
t ;; handled.
nil ;; no abort of D-Bus.
- (with-tramp-connection-property (tramp-get-process v) message
- ;; In theory, there can be several choices.
- ;; Until now, there is only the question whether
- ;; to accept an unknown host signature or certificate.
- (with-temp-buffer
- ;; Preserve message for `progress-reporter'.
- (with-temp-message ""
- (insert message)
- (goto-char (point-max))
- (if noninteractive
- (message "%s" message)
- (pop-to-buffer (current-buffer)))
- (if (yes-or-no-p
- (buffer-substring
- (line-beginning-position) (point)))
- 0 1)))))
+ ;; Preserve message for `progress-reporter'.
+ (with-temp-message ""
+ (if noninteractive
+ ;; Keep regression tests running.
+ (progn
+ (message "%s" message)
+ 0)
+ (with-tramp-connection-property (tramp-get-process v) message
+ ;; In theory, there can be several choices.
+ ;; Until now, there is only the question
+ ;; whether to accept an unknown host
+ ;; signature or certificate.
+ (with-temp-buffer
+ (insert message)
+ (goto-char (point-max))
+ (pop-to-buffer (current-buffer))
+ (if (yes-or-no-p
+ (buffer-substring
+ (line-beginning-position) (point)))
+ 0 1))))))
;; When QUIT is raised, we shall return this
;; information to D-Bus.
@@ -2119,10 +2128,6 @@
(unless (tramp-connectable-p vec)
(throw 'non-essential 'non-essential))
- ;; We set the file name, in case there are incoming D-Bus signals or
- ;; D-Bus errors.
- (setq tramp-gvfs-dbus-event-vector vec)
-
;; For password handling, we need a process bound to the connection
;; buffer. Therefore, we create a dummy process. Maybe there is a
;; better solution?
@@ -2134,9 +2139,6 @@
(process-put p 'vector vec)
(set-process-query-on-exit-flag p nil)
- ;; Mark process for filelock.
- (tramp-set-connection-property p "lock-pid" (truncate (time-to-seconds)))
-
;; Set connection-local variables.
(tramp-set-connection-local-variables vec)))
@@ -2256,13 +2258,7 @@
COMMAND is a command from the gvfs-* utilities. It is replaced
by the corresponding gio tool call if available. `call-process'
is applied, and it returns t if the return code is zero."
- (let* ((locale (tramp-get-local-locale vec))
- (process-environment
- (append
- `(,(format "LANG=%s" locale)
- ,(format "LANGUAGE=%s" locale)
- ,(format "LC_ALL=%s" locale))
- process-environment)))
+ (let ((locale (tramp-get-local-locale vec)))
(when (tramp-gvfs-gio-tool-p vec)
;; Use gio tool.
(setq args (cons (cdr (assoc command tramp-gvfs-gio-mapping))
@@ -2272,7 +2268,14 @@
(with-current-buffer (tramp-get-connection-buffer vec)
(tramp-gvfs-maybe-open-connection vec)
(erase-buffer)
- (or (zerop (apply #'tramp-call-process vec command nil t nil args))
+ (or (zerop
+ (apply
+ #'tramp-call-process vec "env" nil t nil
+ (append `(,(format "LANG=%s" locale)
+ ,(format "LANGUAGE=%s" locale)
+ ,(format "LC_ALL=%s" locale)
+ ,command)
+ args)))
;; Remove information about mounted connection.
(and (tramp-flush-file-properties vec "/") nil)))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-rclone.el
^
|
@@ -106,9 +106,9 @@
(file-name-nondirectory . tramp-handle-file-name-nondirectory)
;; `file-name-sans-versions' performed by default handler.
(file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
- (file-notify-add-watch . ignore)
- (file-notify-rm-watch . ignore)
- (file-notify-valid-p . ignore)
+ (file-notify-add-watch . tramp-handle-file-notify-add-watch)
+ (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
+ (file-notify-valid-p . tramp-handle-file-notify-valid-p)
(file-ownership-preserved-p . ignore)
(file-readable-p . tramp-fuse-handle-file-readable-p)
(file-regular-p . tramp-handle-file-regular-p)
@@ -362,10 +362,6 @@
(process-put p 'vector vec)
(set-process-query-on-exit-flag p nil)
- ;; Mark process for filelock.
- (tramp-set-connection-property
- p "lock-pid" (truncate (time-to-seconds)))
-
;; Set connection-local variables.
(tramp-set-connection-local-variables vec)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-sh.el
^
|
@@ -115,7 +115,7 @@
"Which ssh Control* arguments to use.
If it is a string, it should have the form
-\"-o ControlMaster=auto -o ControlPath=\\='tramp.%%r@%%h:%%p\\='
+\"-o ControlMaster=auto -o ControlPath=tramp.%%C
-o ControlPersist=no\". Percent characters in the ControlPath
spec must be doubled, because the string is used as format string.
@@ -134,6 +134,15 @@
The string is used in `tramp-methods'.")
+(defvar tramp-scp-force-scp-protocol nil
+ "Force scp protocol.
+
+It is the string \"-O\" if supported by the local scp (since
+release 8.6), otherwise the string \"\". If it is nil, it will
+be auto-detected by Tramp.
+
+The string is used in `tramp-methods'.")
+
;; Initialize `tramp-methods' with the supported methods.
;;;###tramp-autoload
(tramp--with-startup
@@ -170,7 +179,7 @@
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "scp")
(tramp-copy-args (("-P" "%p") ("-p" "%k")
- ("%x") ("-q") ("-r") ("%c")))
+ ("%x") ("%y") ("-q") ("-r") ("%c")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)))
(add-to-list 'tramp-methods
@@ -186,7 +195,7 @@
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "scp")
(tramp-copy-args (("-P" "%p") ("-p" "%k")
- ("%x") ("-q") ("-r") ("%c")))
+ ("%x") ("%y") ("-q") ("-r") ("%c")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)))
(add-to-list 'tramp-methods
@@ -1189,12 +1198,18 @@
;; The scripts could fail, for example with huge file size.
(tramp-do-file-attributes-with-ls v localname id-format))))))))
+(defconst tramp-sunos-unames (regexp-opt '("SunOS 5.10" "SunOS 5.11"))
+ "Regexp to determine remote SunOS.")
+
(defun tramp-sh--quoting-style-options (vec)
"Quoting style options to be used for VEC."
(or
(tramp-get-ls-command-with
vec "--quoting-style=literal --show-control-chars")
- (tramp-get-ls-command-with vec "-w")
+ ;; ls on Solaris does not return an error in that case. We've got
+ ;; reports for "SunOS 5.11" so far.
+ (unless (tramp-check-remote-uname vec tramp-sunos-unames)
+ (tramp-get-ls-command-with vec "-w"))
""))
(defun tramp-do-file-attributes-with-ls (vec localname &optional id-format)
@@ -1574,6 +1589,7 @@
;; Examine `file-attributes' cache to see if request can be
;; satisfied without remote operation.
(or (tramp-check-cached-permissions v ?x)
+ (tramp-check-cached-permissions v ?s)
(tramp-run-test "-x" filename)))))
(defun tramp-sh-handle-file-readable-p (filename)
@@ -2304,7 +2320,8 @@
?h (or host "") ?u (or user "") ?p (or port "")
?r listener ?c options ?k (if keep-date " " "")
?n (concat "2>" (tramp-get-remote-null-device v))
- ?x (tramp-scp-strict-file-name-checking v))
+ ?x (tramp-scp-strict-file-name-checking v)
+ ?y (tramp-scp-force-scp-protocol v))
copy-program (tramp-get-method-parameter v 'tramp-copy-program)
copy-keep-date (tramp-get-method-parameter
v 'tramp-copy-keep-date)
@@ -2663,7 +2680,9 @@
;; Try to insert the amount of free space.
(goto-char (point-min))
;; First find the line to put it on.
- (when (re-search-forward "^\\([[:space:]]*total\\)" nil t)
+ (when (and (re-search-forward "^\\([[:space:]]*total\\)" nil t)
+ ;; Emacs 29.1 or later.
+ (not (fboundp 'dired--insert-disk-space)))
(when-let ((available (get-free-disk-space ".")))
;; Replace "total" with "total used", to avoid confusion.
(replace-match "\\1 used in directory")
@@ -2817,8 +2836,10 @@
(string-match-p "sh$" program)
(= (length args) 2)
(string-equal "-c" (car args))
- ;; Don't if there is a string.
- (not (string-match-p "'\\|\"" (cadr args)))))
+ ;; Don't if there is a quoted string.
+ (not (string-match-p "'\\|\"" (cadr args)))
+ ;; Check, that /dev/tty is usable.
+ (tramp-get-remote-dev-tty v)))
;; When PROGRAM is nil, we just provide a tty.
(args (if (not heredoc) args
(let ((i 250))
@@ -3080,10 +3101,10 @@
;; Determine input.
(if (null infile)
(setq input (tramp-get-remote-null-device v))
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
- (setq input (tramp-file-local-name infile))
+ (setq input (tramp-unquote-file-local-name infile))
;; INFILE must be copied to remote host.
(setq input (tramp-make-tramp-temp-file v)
tmpinput (tramp-make-tramp-file-name v input 'nohop))
@@ -3114,7 +3135,7 @@
(setcar (cdr destination) (expand-file-name (cadr destination)))
(if (tramp-equal-remote default-directory (cadr destination))
;; stderr is on the same remote host.
- (setq stderr (tramp-file-local-name (cadr destination)))
+ (setq stderr (tramp-unquote-file-local-name (cadr destination)))
;; stderr must be copied to remote host. The temporary
;; file must be deleted after execution.
(setq stderr (tramp-make-tramp-temp-file v)
@@ -3135,7 +3156,8 @@
(setq ret (tramp-send-command-and-check
v (format
"cd %s && %s"
- (tramp-shell-quote-argument localname) command)
+ (tramp-unquote-shell-quote-argument localname)
+ command)
t t t))
(unless (natnump ret) (setq ret 1))
;; We should add the output anyway.
@@ -3167,8 +3189,7 @@
;; Cleanup. We remove all file cache values for the connection,
;; because the remote process could have changed them.
(when tmpinput (delete-file tmpinput))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
@@ -3985,9 +4006,6 @@
switch
(tramp-shell-quote-argument localname)))))
-(defconst tramp-sunos-unames (regexp-opt '("SunOS 5.10" "SunOS 5.11"))
- "Regexp to determine remote SunOS.")
-
(defun tramp-find-executable
(vec progname dirlist &optional ignore-tilde ignore-path)
"Search for PROGNAME in $PATH and all directories mentioned in DIRLIST.
@@ -4093,13 +4111,10 @@
;; The algorithm is as follows: we try a list of several commands.
;; For each command, we first run `$cmd /' -- this should return
;; true, as the root directory always exists. And then we run
- ;; `$cmd /this\ file\ does\ not\ exist ', hoping that the file indeed
- ;; does not exist. This should return false. We use the first
- ;; command we find that seems to work.
+ ;; `$cmd /\ this\ file\ does\ not\ exist\ ', hoping that the file
+ ;; indeed does not exist. This should return false. We use the
+ ;; first command we find that seems to work.
;; The list of commands to try is as follows:
- ;; `ls -d' This works on most systems, but NetBSD 1.4
- ;; has a bug: `ls' always returns zero exit
- ;; status, even for files which don't exist.
;; `test -e' Some Bourne shells have a `test' builtin
;; which does not know the `-e' option.
;; `/bin/test -e' For those, the `test' binary on disk normally
@@ -4107,6 +4122,10 @@
;; is sometimes `/bin/test' and sometimes it's
;; `/usr/bin/test'.
;; `/usr/bin/test -e' In case `/bin/test' does not exist.
+ ;; `ls -d' This works on most systems, but NetBSD 1.4
+ ;; has a bug: `ls' always returns zero exit
+ ;; status, even for files which don't exist.
+
(unless (or
(ignore-errors
(and (setq result (format "%s -e" (tramp-get-test-command vec)))
@@ -4766,13 +4785,13 @@
(if (zerop
(tramp-call-process
vec "ssh" nil nil nil
- "-G" "-o" "ControlPath='tramp.%C'" "0.0.0.1"))
+ "-G" "-o" "ControlPath=tramp.%C" "0.0.0.1"))
(setq tramp-ssh-controlmaster-options
(concat tramp-ssh-controlmaster-options
- " -o ControlPath='tramp.%%C'"))
+ " -o ControlPath=tramp.%%C"))
(setq tramp-ssh-controlmaster-options
(concat tramp-ssh-controlmaster-options
- " -o ControlPath='tramp.%%r@%%h:%%p'")))
+ " -o ControlPath=tramp.%%r@%%h:%%p")))
(when (zerop
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-smb.el
^
|
@@ -1126,7 +1126,9 @@
;; Insert size information.
(when full-directory-p
(insert
- (if avail
+ (if (and avail
+ ;; Emacs 29.1 or later.
+ (not (fboundp 'dired--insert-disk-space)))
(format "total used in directory %s available %s\n" used avail)
(format "total %s\n" used))))
@@ -1284,10 +1286,10 @@
;; Determine input.
(when infile
- (setq infile (expand-file-name infile))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
(if (tramp-equal-remote default-directory infile)
;; INFILE is on the same remote host.
- (setq input (tramp-file-local-name infile))
+ (setq input (tramp-unquote-file-local-name infile))
;; INFILE must be copied to remote host.
(setq input (tramp-make-tramp-temp-file v)
tmpinput (tramp-make-tramp-file-name v input))
@@ -1376,8 +1378,7 @@
(when tmpinput (delete-file tmpinput))
(unless outbuf
(kill-buffer (tramp-get-connection-property v "process-buffer" nil)))
-
- (unless process-file-side-effects
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))
;; Return exit status.
@@ -1630,7 +1631,7 @@
v 3 (format "Moving tmp file %s to %s" tmpfile filename)
(unwind-protect
(unless (tramp-smb-send-command
- v (format "put %s \"%s\""
+ v (format "put \"%s\" \"%s\""
tmpfile (tramp-smb-get-localname v)))
(tramp-error v 'file-error "Cannot write `%s'" filename))
(delete-file tmpfile)))
@@ -1694,9 +1695,8 @@
(when (string-match "\\(\\$\\$\\)\\(/\\|$\\)" localname)
(setq localname (replace-match "$" nil nil localname 1)))
- ;; A period followed by a space, or trailing periods and spaces,
- ;; are not supported.
- (when (string-match-p "\\. \\|\\.$\\| $" localname)
+ ;; A trailing space is not supported.
+ (when (string-match-p " $" localname)
(tramp-error
vec 'file-error
"Invalid file name %s" (tramp-make-tramp-file-name vec localname)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-sshfs.el
^
|
@@ -51,11 +51,14 @@
(add-to-list 'tramp-methods
`(,tramp-sshfs-method
(tramp-mount-args (("-C") ("-p" "%p")
+ ("-o" "dir_cache=no")
+ ("-o" "transform_symlinks")
("-o" "idmap=user,reconnect")))
;; These are for remote processes.
(tramp-login-program "ssh")
- (tramp-login-args (("-q")("-l" "%u") ("-p" "%p")
- ("-e" "none") ("%h") ("%l")))
+ (tramp-login-args (("-q") ("-l" "%u") ("-p" "%p")
+ ("-e" "none") ("-t" "-t")
+ ("%h") ("%l")))
(tramp-direct-async t)
(tramp-remote-shell ,tramp-default-remote-shell)
(tramp-remote-shell-login ("-l"))
@@ -106,9 +109,9 @@
(file-name-nondirectory . tramp-handle-file-name-nondirectory)
;; `file-name-sans-versions' performed by default handler.
(file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
- (file-notify-add-watch . ignore)
- (file-notify-rm-watch . ignore)
- (file-notify-valid-p . ignore)
+ (file-notify-add-watch . tramp-handle-file-notify-add-watch)
+ (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
+ (file-notify-valid-p . tramp-handle-file-notify-valid-p)
(file-ownership-preserved-p . ignore)
(file-readable-p . tramp-handle-file-readable-p)
(file-regular-p . tramp-handle-file-regular-p)
@@ -117,7 +120,7 @@
(file-symlink-p . tramp-handle-file-symlink-p)
(file-system-info . tramp-sshfs-handle-file-system-info)
(file-truename . tramp-handle-file-truename)
- (file-writable-p . tramp-handle-file-writable-p)
+ (file-writable-p . tramp-sshfs-handle-file-writable-p)
(find-backup-file-name . tramp-handle-find-backup-file-name)
;; `get-file-buffer' performed by default handler.
(insert-directory . tramp-handle-insert-directory)
@@ -136,7 +139,7 @@
(set-file-acl . ignore)
(set-file-modes . tramp-sshfs-handle-set-file-modes)
(set-file-selinux-context . ignore)
- (set-file-times . ignore)
+ (set-file-times . tramp-sshfs-handle-set-file-times)
(set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
(shell-command . tramp-handle-shell-command)
(start-file-process . tramp-handle-start-file-process)
@@ -219,6 +222,10 @@
;;`file-system-info' exists since Emacs 27.1.
(tramp-compat-funcall 'file-system-info (tramp-fuse-local-file-name filename)))
+(defun tramp-sshfs-handle-file-writable-p (filename)
+ "Like `file-writable-p' for Tramp files."
+ (file-writable-p (tramp-fuse-local-file-name filename)))
+
(defun tramp-sshfs-handle-insert-file-contents
(filename &optional visit beg end replace)
"Like `insert-file-contents' for Tramp files."
@@ -239,16 +246,69 @@
(error "Implementation does not handle immediate return"))
(with-parsed-tramp-file-name (expand-file-name default-directory) nil
- (let ((command
+ (let ((coding-system-for-read 'utf-8-dos) ; Is this correct?
+ (command
(format
"cd %s && exec %s"
- localname
- (mapconcat #'tramp-shell-quote-argument (cons program args) " "))))
+ (tramp-unquote-shell-quote-argument localname)
+ (mapconcat #'tramp-shell-quote-argument (cons program args) " ")))
+ input tmpinput stderr tmpstderr outbuf)
+
+ ;; Determine input.
+ (if (null infile)
+ (setq input (tramp-get-remote-null-device v))
+ (setq infile (tramp-compat-file-name-unquote (expand-file-name infile)))
+ (if (tramp-equal-remote default-directory infile)
+ ;; INFILE is on the same remote host.
+ (setq input (tramp-unquote-file-local-name infile))
+ ;; INFILE must be copied to remote host.
+ (setq input (tramp-make-tramp-temp-file v)
+ tmpinput (tramp-make-tramp-file-name v input 'nohop))
+ (copy-file infile tmpinput t)))
+ (when input (setq command (format "%s <%s" command input)))
+
+ ;; Determine output.
+ (cond
+ ;; Just a buffer.
+ ((bufferp destination)
+ (setq outbuf destination))
+ ;; A buffer name.
+ ((stringp destination)
+ (setq outbuf (get-buffer-create destination)))
+ ;; (REAL-DESTINATION ERROR-DESTINATION)
+ ((consp destination)
+ ;; output.
+ (cond
+ ((bufferp (car destination))
+ (setq outbuf (car destination)))
+ ((stringp (car destination))
+ (setq outbuf (get-buffer-create (car destination))))
+ ((car destination)
+ (setq outbuf (current-buffer))))
+ ;; stderr.
+ (cond
+ ((stringp (cadr destination))
+ (setcar (cdr destination) (expand-file-name (cadr destination)))
+ (if (tramp-equal-remote default-directory (cadr destination))
+ ;; stderr is on the same remote host.
+ (setq stderr (tramp-unquote-file-local-name (cadr destination)))
+ ;; stderr must be copied to remote host. The temporary
+ ;; file must be deleted after execution.
+ (setq stderr (tramp-make-tramp-temp-file v)
+ tmpstderr (tramp-make-tramp-file-name v stderr))))
+ ;; stderr to be discarded.
+ ((null (cadr destination))
+ (setq stderr (tramp-get-remote-null-device v)))))
+ ;; 't
+ (destination
+ (setq outbuf (current-buffer))))
+ (when stderr (setq command (format "%s 2>%s" command stderr)))
+
(unwind-protect
(apply
#'tramp-call-process
v (tramp-get-method-parameter v 'tramp-login-program)
- infile destination display
+ nil outbuf display
(tramp-expand-args
v 'tramp-login-args
?h (or (tramp-file-name-host v) "")
@@ -256,7 +316,20 @@
?p (or (tramp-file-name-port v) "")
?l command))
- (unless process-file-side-effects
+ ;; Synchronize stderr.
+ (when tmpstderr
+ (tramp-cleanup-connection v 'keep-debug 'keep-password)
+ (tramp-fuse-unmount v))
+
+ ;; Provide error file.
+ (when tmpstderr
+ (rename-file tmpstderr (cadr destination) t))
+
+ ;; Cleanup. We remove all file cache values for the
+ ;; connection, because the remote process could have changed
+ ;; them.
+ (when tmpinput (delete-file tmpinput))
+ (when process-file-side-effects
(tramp-flush-directory-properties v ""))))))
(defun tramp-sshfs-handle-rename-file
@@ -285,6 +358,15 @@
(tramp-compat-set-file-modes
(tramp-fuse-local-file-name filename) mode flag))))
+(defun tramp-sshfs-handle-set-file-times (filename &optional timestamp flag)
+ "Like `set-file-times' for Tramp files."
+ (or (file-exists-p filename) (write-region "" nil filename nil 0))
+ (with-parsed-tramp-file-name filename nil
+ (unless (and (eq flag 'nofollow) (file-symlink-p filename))
+ (tramp-flush-file-properties v localname)
+ (tramp-compat-set-file-times
+ (tramp-fuse-local-file-name filename) timestamp flag))))
+
(defun tramp-sshfs-handle-write-region
(start end filename &optional append visit lockname mustbenew)
"Like `write-region' for Tramp files."
@@ -313,6 +395,13 @@
start end (tramp-fuse-local-file-name filename) append 'nomessage)
(tramp-flush-file-properties v localname))
+ ;; Set file modification time.
+ (when (or (eq visit t) (stringp visit))
+ (set-visited-file-modtime
+ (or (tramp-compat-file-attribute-modification-time
+ (file-attributes filename))
+ (current-time))))
+
;; Unlock file.
(when file-locked
;; `unlock-file' exists since Emacs 28.1.
@@ -345,9 +434,6 @@
(process-put p 'vector vec)
(set-process-query-on-exit-flag p nil)
- ;; Mark process for filelock.
- (tramp-set-connection-property p "lock-pid" (truncate (time-to-seconds)))
-
;; Set connection-local variables.
(tramp-set-connection-local-variables vec)))
@@ -386,6 +472,24 @@
(with-tramp-connection-property
vec "gid-string" (tramp-get-local-gid 'string)))
+;; `shell-mode' tries to open remote files like "/sshfs:user@host:~/.history".
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp-sudoedit.el
^
|
@@ -99,9 +99,9 @@
(file-name-nondirectory . tramp-handle-file-name-nondirectory)
;; `file-name-sans-versions' performed by default handler.
(file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
- (file-notify-add-watch . ignore)
- (file-notify-rm-watch . ignore)
- (file-notify-valid-p . ignore)
+ (file-notify-add-watch . tramp-handle-file-notify-add-watch)
+ (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
+ (file-notify-valid-p . tramp-handle-file-notify-valid-p)
(file-ownership-preserved-p . ignore)
(file-readable-p . tramp-sudoedit-handle-file-readable-p)
(file-regular-p . tramp-handle-file-regular-p)
@@ -336,7 +336,7 @@
(if (and delete-by-moving-to-trash trash)
(move-file-to-trash filename)
(unless (tramp-sudoedit-send-command
- v "rm" (tramp-compat-file-name-unquote localname))
+ v "rm" "-f" (tramp-compat-file-name-unquote localname))
;; Propagate the error.
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
@@ -789,9 +789,6 @@
(process-put p 'vector vec)
(set-process-query-on-exit-flag p nil)
- ;; Mark process for filelock.
- (tramp-set-connection-property p "lock-pid" (truncate (time-to-seconds)))
-
;; Set connection-local variables.
(tramp-set-connection-local-variables vec)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/tramp.el
^
|
@@ -106,8 +106,8 @@
4 activities
5 internal
6 sent and received strings
- 7 file caching
- 8 connection properties
+ 7 connection properties
+ 8 file caching
9 test commands
10 traces (huge)
11 call traces (maintainer only)."
@@ -185,7 +185,7 @@
;; Since Emacs 26.1, `system-name' can return nil at build time if
;; Emacs is compiled with "--no-build-details". We do expect it to be
-;; a string. (Bug#44481)
+;; a string. (Bug#44481, Bug#54294)
(defconst tramp-system-name (or (system-name) "")
"The system name Tramp is running locally.")
@@ -238,7 +238,7 @@
unchanged after expansion (i.e. no host, no user or no port
were specified), that sublist is not used. For e.g.
- '((\"-a\" \"-b\") (\"-l\" \"%u\"))
+ \\='((\"-a\" \"-b\") (\"-l\" \"%u\"))
that means that (\"-l\" \"%u\") is used only if the user was
specified, and it is thus effectively optional.
@@ -255,6 +255,8 @@
- \"%n\" expands to \"2>/dev/null\".
- \"%x\" is replaced by the `tramp-scp-strict-file-name-checking'
argument if it is supported.
+ - \"%y\" is replaced by the `tramp-scp-force-scp-protocol'
+ argument if it is supported.
The existence of `tramp-login-args', combined with the
absence of `tramp-copy-args', is an indication that the
@@ -495,7 +497,8 @@
;; either lower case or upper case letters. See
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38079#20>.
(defcustom tramp-restricted-shell-hosts-alist
- (when (eq system-type 'windows-nt)
+ (when (and (eq system-type 'windows-nt)
+ (not (string-match-p "sh$" tramp-encoding-shell)))
(list (format "\\`\\(%s\\|%s\\)\\'"
(regexp-quote (downcase tramp-system-name))
(regexp-quote (upcase tramp-system-name)))))
@@ -609,7 +612,7 @@
"Regexp matching password-like prompts.
The regexp should match at end of buffer.
-This variable is, by default, initialised from
+This variable is, by default, initialized from
`password-word-equivalents' when Tramp is loaded, and it is
usually more convenient to add new passphrases to that variable
instead of altering this variable.
@@ -1409,8 +1412,11 @@
;; internal data structure. Convenience functions for internal
;; data structure.
-;; The basic structure for remote file names. We use a list :type,
-;; in order to be compatible with Emacs 25.
+;; The basic structure for remote file names. We use a list :type, in
+;; order to be compatible with Emacs 25. We must autoload it in
+;; tramp-loaddefs.el, because some functions, which need it, wouldn't
+;; work otherwise when unloading / reloading Tramp. (Bug#50869)
+;;;###tramp-autoload
(cl-defstruct (tramp-file-name (:type list) :named)
method user domain host port localname hop)
@@ -2186,10 +2192,14 @@
(defun tramp-test-message (fmt-string &rest arguments)
"Emit a Tramp message according `default-directory'."
- (if (tramp-tramp-file-p default-directory)
- (apply #'tramp-message
- (tramp-dissect-file-name default-directory) 0 fmt-string arguments)
- (apply #'message fmt-string arguments)))
+ (cond
+ ((tramp-tramp-file-p default-directory)
+ (apply #'tramp-message
+ (tramp-dissect-file-name default-directory) 0 fmt-string arguments))
+ ((tramp-file-name-p (car tramp-current-connection))
+ (apply #'tramp-message
+ (car tramp-current-connection) 0 fmt-string arguments))
+ (t (apply #'message fmt-string arguments))))
(put #'tramp-test-message 'tramp-suppress-trace t)
@@ -2676,17 +2686,21 @@
(load "tramp" 'noerror 'nomessage)))
(apply operation args)))
+(put #'tramp-autoload-file-name-handler 'tramp-autoload t)
+
;; `tramp-autoload-file-name-handler' must be registered before
;; evaluation of site-start and init files, because there might exist
;; remote files already, f.e. files kept via recentf-mode.
;;;###autoload
(progn (defun tramp-register-autoload-file-name-handlers ()
"Add Tramp file name handlers to `file-name-handler-alist' during autoload."
- (add-to-list 'file-name-handler-alist
- (cons tramp-autoload-file-name-regexp
- #'tramp-autoload-file-name-handler))
- (put #'tramp-autoload-file-name-handler 'safe-magic t)))
+ (unless (rassq #'tramp-file-name-handler file-name-handler-alist)
+ (add-to-list 'file-name-handler-alist
+ (cons tramp-autoload-file-name-regexp
+ #'tramp-autoload-file-name-handler))
+ (put #'tramp-autoload-file-name-handler 'safe-magic t))))
+(put #'tramp-register-autoload-file-name-handlers 'tramp-autoload t)
;;;###autoload (tramp-register-autoload-file-name-handlers)
(defun tramp-use-absolute-autoload-file-names ()
@@ -2799,6 +2813,7 @@
(string-prefix-p "tramp-" (symbol-name (cdr fnh))))
(setq file-name-handler-alist (delq fnh file-name-handler-alist))))))
+(put #'tramp-unload-file-name-handlers 'tramp-autoload t)
(add-hook 'tramp-unload-hook #'tramp-unload-file-name-handlers)
;;; File name handler functions for completion mode:
@@ -3378,6 +3393,10 @@
(if (file-directory-p dir) dir (file-name-directory dir)) nil
(tramp-flush-directory-properties v localname)))
+(defvar tramp-tolerate-tilde nil
+ "Indicator, that not expandable tilde shall be tolerated.
+Let-bind it when necessary.")
+
(defun tramp-handle-expand-file-name (name &optional dir)
"Like `expand-file-name' for Tramp files."
;; If DIR is not given, use DEFAULT-DIRECTORY or "/".
@@ -3394,6 +3413,10 @@
(with-parsed-tramp-file-name name nil
(unless (tramp-run-real-handler #'file-name-absolute-p (list localname))
(setq localname (concat "/" localname)))
+ ;; Tilde expansion is not possible.
+ (when (and (not tramp-tolerate-tilde)
+ (string-match-p "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname))
+ (tramp-error v 'file-error "Cannot expand tilde in file `%s'" name))
;; Do not keep "/..".
(when (string-match-p "^/\\.\\.?$" localname)
(setq localname "/"))
@@ -3403,7 +3426,9 @@
(let ((default-directory tramp-compat-temporary-file-directory))
(tramp-make-tramp-file-name
v (tramp-drop-volume-letter
- (tramp-run-real-handler #'expand-file-name (list localname))))))))
+ (if (string-match-p "\\`\\(~[^/]*\\)\\(.*\\)\\'" localname)
+ localname
+ (tramp-run-real-handler #'expand-file-name (list localname)))))))))
(defun tramp-handle-file-accessible-directory-p (filename)
"Like `file-accessible-directory-p' for Tramp files."
@@ -3793,7 +3818,7 @@
;; When we shall insert only a part of the file, we
;; copy this part. This works only for the shell file
- ;; name handlers. It doesn't work for crypted files.
+ ;; name handlers. It doesn't work for encrypted files.
(when (and (or beg end)
(tramp-sh-file-name-handler-p v)
(null tramp-crypt-enabled))
@@ -3890,16 +3915,19 @@
(insert-file-contents-literally lockname)
(buffer-string))))))
+(defvar tramp-lock-pid nil
+ "A random number local for every connection.
+Do not set it manually, it is used buffer-local in `tramp-get-lock-pid'.")
+
(defun tramp-get-lock-pid (file)
"Determine pid for lockfile of FILE."
- ;; Some Tramp methods do not offer a connection process, but just a
- ;; network process as a place holder. Those processes use the
- ;; "lock-pid" connection property as fake pid, in fact it is the
- ;; time stamp the process is created.
- (let ((p (tramp-get-process (tramp-dissect-file-name file))))
- (number-to-string
- (or (process-id p)
- (tramp-get-connection-property p "lock-pid" (emacs-pid))))))
+ ;; Not all Tramp methods use an own process. So we use a random
+ ;; number, which is as good as a process id.
+ (with-current-buffer
+ (tramp-get-connection-buffer (tramp-dissect-file-name file))
+ (or tramp-lock-pid
+ (setq-local
+ tramp-lock-pid (number-to-string (random most-positive-fixnum))))))
(defconst tramp-lock-file-info-regexp
;; USER@HOST.PID[:BOOT_TIME]
@@ -3910,9 +3938,11 @@
"Like `file-locked-p' for Tramp files."
(when-let ((info (tramp-get-lock-file file))
(match (string-match tramp-lock-file-info-regexp info)))
- (or (and (string-equal (match-string 1 info) (user-login-name))
- (string-equal (match-string 2 info) (system-name))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/net/trampver.el
^
|
@@ -7,7 +7,7 @@
;; Maintainer: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
;; Package: tramp
-;; Version: 2.5.2.28.1
+;; Version: 2.5.3.28.2
;; Package-Requires: ((emacs "25.1"))
;; Package-Type: multi
;; URL: https://www.gnu.org/software/tramp/
@@ -40,7 +40,7 @@
;; ./configure" to change them.
;;;###tramp-autoload
-(defconst tramp-version "2.5.2.28.1"
+(defconst tramp-version "2.5.3.28.2"
"This version of Tramp.")
;;;###tramp-autoload
@@ -58,6 +58,7 @@
;; `emacs-repository-get-branch' has been introduced with Emacs 27.1.
(with-no-warnings
(and (stringp dir) (file-directory-p dir)
+ (executable-find "git")
(emacs-repository-get-branch dir)))))
"The repository branch of the Tramp sources.")
@@ -70,13 +71,14 @@
(dir (or (locate-dominating-file (locate-library "tramp") ".git")
source-directory)))
(and (stringp dir) (file-directory-p dir)
+ (executable-find "git")
(emacs-repository-get-version dir))))
"The repository revision of the Tramp sources.")
;; Check for Emacs version.
(let ((x (if (not (string-lessp emacs-version "25.1"))
"ok"
- (format "Tramp 2.5.2.28.1 is not fit for %s"
+ (format "Tramp 2.5.3.28.2 is not fit for %s"
(replace-regexp-in-string "\n" "" (emacs-version))))))
(unless (string-equal "ok" x) (error "%s" x)))
@@ -102,7 +104,7 @@
("2.3.3" . "26.1") ("2.3.3.26.1" . "26.1") ("2.3.5.26.2" . "26.2")
("2.3.5.26.3" . "26.3")
("2.4.3.27.1" . "27.1") ("2.4.5.27.2" . "27.2")
- ("2.5.2.28.1" . "28.1")))
+ ("2.5.2.28.1" . "28.1") ("2.5.3.28.2" . "28.2")))
(add-hook 'tramp-unload-hook
(lambda ()
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ChangeLog.1
^
|
@@ -4001,7 +4001,7 @@
buffer.
(org-agenda-ignore-drawer-properties): New option.
(org-agenda-prepare-buffers):
- Honour `org-agenda-ignore-drawer-properties'.
+ Honor `org-agenda-ignore-drawer-properties'.
* org-clock.el (org-clock-goto): Recenter to thrd line
@@ -4134,7 +4134,7 @@
(orgstruct-heading-prefix-regexp, orgstruct-setup-hook):
New options.
(orgstruct-initialized): New variable.
- (org-get-local-variables): Honour state property.
+ (org-get-local-variables): Honor state property.
(org-run-like-in-org-mode): Use `let' instead of `progv'. Do not
override variables with non-default values.
(org-forward-heading-same-level): Do not skip to headlines on
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ob-core.el
^
|
@@ -480,7 +480,7 @@
evaluates to a string. The closure is evaluated when the source
block is being evaluated (e.g. during execution or export), with
point at the source block. It is not possible to use an
-arbitrary function symbol (e.g. 'some-func), since org uses
+arbitrary function symbol (e.g. `some-func'), since org uses
lexical binding. To achieve the same functionality, call the
function within a closure (e.g. (lambda () (some-func))).
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ob-julia.el
^
|
@@ -26,6 +26,9 @@
;; Org-Babel support for evaluating julia code
;;
;; Based on ob-R.el by Eric Schulte and Dan Davison.
+;;
+;; Session support requires the installation of the DataFrames and CSV
+;; Julia packages.
;;; Code:
(require 'cl-lib)
@@ -62,6 +65,7 @@
(defvar ess-current-process-name) ; dynamically scoped
(defvar ess-local-process-name) ; dynamically scoped
(defvar ess-eval-visibly-p) ; dynamically scoped
+(defvar ess-local-customize-alist); dynamically scoped
(defun org-babel-edit-prep:julia (info)
(let ((session (cdr (assq :session (nth 2 info)))))
(when (and session
@@ -250,8 +254,8 @@
(defun org-babel-julia-evaluate-external-process
(body result-type result-params column-names-p)
"Evaluate BODY in external julia process.
-If RESULT-TYPE equals 'output then return standard output as a
-string. If RESULT-TYPE equals 'value then return the value of the
+If RESULT-TYPE equals `output' then return standard output as a
+string. If RESULT-TYPE equals `value' then return the value of the
last statement in BODY, as elisp."
(cl-case result-type
(value
@@ -274,14 +278,15 @@
(defun org-babel-julia-evaluate-session
(session body result-type result-params column-names-p)
"Evaluate BODY in SESSION.
-If RESULT-TYPE equals 'output then return standard output as a
-string. If RESULT-TYPE equals 'value then return the value of the
+If RESULT-TYPE equals `output' then return standard output as a
+string. If RESULT-TYPE equals `value' then return the value of the
last statement in BODY, as elisp."
(cl-case result-type
(value
(with-temp-buffer
(insert (org-babel-chomp body))
- (let ((ess-local-process-name
+ (let ((ess-local-customize-alist t)
+ (ess-local-process-name
(process-name (get-buffer-process session)))
(ess-eval-visibly-p nil))
(ess-eval-buffer nil)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ob-lua.el
^
|
@@ -395,7 +395,7 @@
(org-babel-lua-table-or-string results)))))
(defun org-babel-lua-read-string (string)
- "Strip 's from around Lua string."
+ "Strip \\=' characters from around Lua string."
(org-unbracket-string "'" "'" string))
(provide 'ob-lua)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ob-table.el
^
|
@@ -84,7 +84,7 @@
#+end_src
NOTE: The quotation marks around the function name,
-'source-block', are optional.
+`source-block', are optional.
NOTE: By default, string variable names are interpreted as
references to source-code blocks, to force interpretation of a
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ob-tangle.el
^
|
@@ -581,7 +581,10 @@
(error "Not in tangled code"))
(setq body (buffer-substring body-start end)))
;; Go to the beginning of the relative block in Org file.
- (org-link-open-from-string link)
+ ;; Explicitly allow fuzzy search even if user customized
+ ;; otherwise.
+ (let (org-link-search-must-match-exact-headline)
+ (org-link-open-from-string link))
(setq target-buffer (current-buffer))
(if (string-match "[^ \t\n\r]:\\([[:digit:]]+\\)" block-name)
(let ((n (string-to-number (match-string 1 block-name))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/oc-basic.el
^
|
@@ -73,6 +73,7 @@
(require 'seq)
(declare-function org-open-at-point "org" (&optional arg))
+(declare-function org-open-file "org" (path &optional in-emacs line search))
(declare-function org-element-interpret-data "org-element" (data))
(declare-function org-element-property "org-element" (property element))
@@ -189,7 +190,14 @@
(cons 'year
(cond
((consp date)
- (caar date))
+ (let ((year (caar date)))
+ (cond
+ ((numberp year) (number-to-string year))
+ ((stringp year) year)
+ (t
+ (error
+ "First element of CSL-JSON date-parts should be a number or string, got %s: %S"
+ (type-of year) year)))))
((stringp date)
(replace-regexp-in-string
(rx
@@ -233,6 +241,8 @@
entries)))
entries))
+(defvar org-cite-basic--file-id-cache nil
+ "Hash table linking files to their hash.")
(defun org-cite-basic--parse-bibliography (&optional info)
"List all entries available in the buffer.
@@ -245,14 +255,19 @@
as symbols, and values as strings or nil.
Optional argument INFO is the export state, as a property list."
+ (unless (hash-table-p org-cite-basic--file-id-cache)
+ (setq org-cite-basic--file-id-cache (make-hash-table :test #'equal)))
(if (plist-member info :cite-basic/bibliography)
(plist-get info :cite-basic/bibliography)
(let ((results nil))
(dolist (file (org-cite-list-bibliography-files))
(when (file-readable-p file)
(with-temp-buffer
- (insert-file-contents file)
- (let* ((file-id (cons file (org-buffer-hash)))
+ (when (or (org-file-has-changed-p file)
+ (not (gethash file org-cite-basic--file-id-cache)))
+ (insert-file-contents file)
+ (puthash file (org-buffer-hash) org-cite-basic--file-id-cache))
+ (let* ((file-id (cons file (gethash file org-cite-basic--file-id-cache)))
(entries
(or (cdr (assoc file-id org-cite-basic--bibliography-cache))
(let ((table
@@ -727,19 +742,24 @@
(t
(clrhash org-cite-basic--completion-cache)
(dolist (key (org-cite-basic--all-keys))
- (let ((completion
- (concat
- (let ((author (org-cite-basic--get-field 'author key nil t)))
- (if author
- (truncate-string-to-width
- (replace-regexp-in-string " and " "; " author)
- org-cite-basic-author-column-end nil ?\s)
- (make-string org-cite-basic-author-column-end ?\s)))
- org-cite-basic-column-separator
- (let ((date (org-cite-basic--get-year key nil 'no-suffix)))
- (format "%4s" (or date "")))
- org-cite-basic-column-separator
- (org-cite-basic--get-field 'title key nil t))))
+ (let* ((entry (org-cite-basic--get-entry
+ key
+ ;; Supply pre-calculated bibliography to avoid
+ ;; performance degradation.
+ (list :cite-basic/bibliography entries)))
+ (completion
+ (concat
+ (let ((author (org-cite-basic--get-field 'author entry nil 'raw)))
+ (if author
+ (truncate-string-to-width
+ (replace-regexp-in-string " and " "; " author)
+ org-cite-basic-author-column-end nil ?\s)
+ (make-string org-cite-basic-author-column-end ?\s)))
+ org-cite-basic-column-separator
+ (let ((date (org-cite-basic--get-year entry nil 'no-suffix)))
+ (format "%4s" (or date "")))
+ org-cite-basic-column-separator
+ (org-cite-basic--get-field 'title entry nil t))))
(puthash completion key org-cite-basic--completion-cache)))
(unless (map-empty-p org-cite-basic--completion-cache) ;no key
(puthash entries t org-cite-basic--completion-cache)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/oc-biblatex.el
^
|
@@ -164,12 +164,7 @@
(mapconcat (lambda (r)
(org-cite-biblatex--atomic-arguments (list r) info))
(org-cite-get-references citation)
- "")
- ;; According to BibLaTeX manual, left braces or brackets
- ;; following a multicite command could be parsed as other
- ;; arguments. So we stop any further parsing by inserting
- ;; a \relax unconditionally.
- "\\relax")))
+ ""))))
(defun org-cite-biblatex--command (citation info base &optional multi no-opt)
"Return biblatex command using BASE name for CITATION object.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ol.el
^
|
@@ -937,7 +937,7 @@
(defun org-link-decode (s)
"Decode percent-encoded parts in string S.
-E.g. \"%C3%B6\" becomes the german o-Umlaut."
+E.g. \"%C3%B6\" becomes the German o-Umlaut."
(replace-regexp-in-string "\\(%[0-9A-Za-z]\\{2\\}\\)+"
#'org-link--decode-compound s t t))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-agenda.el
^
|
@@ -1615,7 +1615,7 @@
The different possibilities will be tried in sequence, and testing stops
if one comparison returns a \"not-equal\". For example, the default
- '(time-up category-keep priority-down)
+ `(time-up category-keep priority-down)'
means: Pull out all entries having a specified time of day and sort them,
in order to make a time schedule for the current day the first thing in the
agenda listing for the day. Of the entries without a time indication, keep
@@ -4124,7 +4124,7 @@
If the header at `org-hd-marker' is blocked according to
`org-entry-blocked-p', then if `org-agenda-dim-blocked-tasks' is
-'invisible and the header is not blocked by checkboxes, set the
+`invisible' and the header is not blocked by checkboxes, set the
text property `org-todo-blocked' to `invisible', otherwise set it
to t."
(when (get-text-property 0 'todo-state entry)
@@ -4859,7 +4859,7 @@
;;;###autoload
(defun org-todo-list (&optional arg)
- "Show all (not done) TODO entries from all agenda file in a single list.
+ "Show all (not done) TODO entries from all agenda files in a single list.
The prefix arg can be used to select a specific TODO keyword and limit
the list to these. When using `\\[universal-argument]', you will be prompted
for a keyword. A numeric prefix directly selects the Nth keyword in
@@ -5732,7 +5732,7 @@
(org-before-first-heading-p)
(and org-agenda-include-inactive-timestamps
(org-at-clock-log-p))
- (not (eq 'timestamp (org-element-type (org-element-context)))))
+ (not (org-at-timestamp-p 'agenda)))
(throw :skip nil))
(org-agenda-skip))
(let* ((pos (match-beginning 0))
@@ -7180,12 +7180,13 @@
(concat
(substring x 0 (match-end 1))
(unless (string= org-agenda-todo-keyword-format "")
- (format org-agenda-todo-keyword-format
- (match-string 2 x)))
- ;; Remove `display' property as the icon could leak
- ;; on the white space.
- (org-add-props " " (org-plist-delete (text-properties-at 0 x)
- 'display))
+ (format org-agenda-todo-keyword-format
+ (match-string 2 x)))
+ (unless (string= org-agenda-todo-keyword-format "")
+ ;; Remove `display' property as the icon could leak
+ ;; on the white space.
+ (org-add-props " " (org-plist-delete (text-properties-at 0 x)
+ 'display)))
(substring x (match-end 3)))))))
x)))
@@ -7398,7 +7399,7 @@
When in a restricted subtree, remove it.
The restriction will span over the entire file if TYPE is `file',
-or if type is '(4), or if the cursor is before the first headline
+or if type is \\='(4), or if the cursor is before the first headline
in the file. Otherwise, only apply the restriction to the current
subtree."
(interactive "P")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-clock.el
^
|
@@ -1106,7 +1106,7 @@
60))
(keep
(or (and (memq ch '(?k ?K))
- (read-number "Keep how many minutes? " default))
+ (read-number "Keep how many minutes: " default))
(and (memq ch '(?t ?T))
(floor
(/ (float-time
@@ -1114,7 +1114,7 @@
60)))))
(gotback
(and (memq ch '(?g ?G))
- (read-number "Got back how many minutes ago? " default)))
+ (read-number "Got back how many minutes ago: " default)))
(subtractp (memq ch '(?s ?S)))
(barely-started-p (org-time-less-p
(org-time-subtract last-valid (cdr clock))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-compat.el
^
|
@@ -72,6 +72,35 @@
(defvar org-table1-hline-regexp)

+;;; Emacs < 29 compatibility
+
+(defvar org-file-has-changed-p--hash-table (make-hash-table :test #'equal)
+ "Internal variable used by `org-file-has-changed-p'.")
+
+(if (fboundp 'file-has-changed-p)
+ (defalias 'org-file-has-changed-p #'file-has-changed-p)
+ (defun org-file-has-changed-p (file &optional tag)
+ "Return non-nil if FILE has changed.
+The size and modification time of FILE are compared to the size
+and modification time of the same FILE during a previous
+invocation of `org-file-has-changed-p'. Thus, the first invocation
+of `org-file-has-changed-p' always returns non-nil when FILE exists.
+The optional argument TAG, which must be a symbol, can be used to
+limit the comparison to invocations with identical tags; it can be
+the symbol of the calling function, for example."
+ (let* ((file (directory-file-name (expand-file-name file)))
+ (remote-file-name-inhibit-cache t)
+ (fileattr (file-attributes file 'integer))
+ (attr (and fileattr
+ (cons (file-attribute-size fileattr)
+ (file-attribute-modification-time fileattr))))
+ (sym (concat (symbol-name tag) "@" file))
+ (cachedattr (gethash sym org-file-has-changed-p--hash-table)))
+ (when (not (equal attr cachedattr))
+ (puthash sym attr org-file-has-changed-p--hash-table)))))
+
+
+
;;; Emacs < 28.1 compatibility
(if (fboundp 'directory-empty-p)
@@ -84,6 +113,11 @@

;;; Emacs < 27.1 compatibility
+(if (version< emacs-version "27.1")
+ (defsubst org-replace-buffer-contents (source &optional _max-secs _max-costs)
+ (replace-buffer-contents source))
+ (defalias 'org-replace-buffer-contents #'replace-buffer-contents))
+
(unless (fboundp 'proper-list-p)
;; `proper-list-p' was added in Emacs 27.1. The function below is
;; taken from Emacs subr.el 200195e824b^.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-faces.el
^
|
@@ -38,8 +38,7 @@
:group 'org-faces)
(defface org-hide
- '((default :inherit fixed-pitch)
- (((background light)) (:foreground "white"))
+ '((((background light)) (:foreground "white"))
(((background dark)) (:foreground "black")))
"Face used to hide leading stars in headlines.
The foreground color of this face should be equal to the background
@@ -202,8 +201,7 @@
:group 'org-faces)
(defface org-date
- '((default :inherit fixed-pitch)
- (((class color) (background light)) (:foreground "Purple" :underline t))
+ '((((class color) (background light)) (:foreground "Purple" :underline t))
(((class color) (background dark)) (:foreground "Cyan" :underline t))
(t (:underline t)))
"Face for date/time stamps."
@@ -379,8 +377,7 @@
(sexp :tag "Face")))))
(defface org-table ;Copied from `font-lock-function-name-face'
- '((default :inherit fixed-pitch)
- (((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
+ '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
(((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue"))
(((class color) (min-colors 16) (background light)) (:foreground "Blue"))
(((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue"))
@@ -396,8 +393,7 @@
:group 'org-faces)
(defface org-formula
- '((default :inherit fixed-pitch)
- (((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
+ '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
(((class color) (min-colors 88) (background dark)) (:foreground "chocolate1"))
(((class color) (min-colors 8) (background light)) (:foreground "red"))
(((class color) (min-colors 8) (background dark)) (:foreground "red"))
@@ -405,12 +401,12 @@
"Face for formulas."
:group 'org-faces)
-(defface org-code '((t :inherit (fixed-pitch shadow)))
+(defface org-code '((t :inherit shadow))
"Face for fixed-width text like code snippets."
:group 'org-faces
:version "22.1")
-(defface org-meta-line '((t :inherit (fixed-pitch font-lock-comment-face)))
+(defface org-meta-line '((t :inherit font-lock-comment-face))
"Face for meta lines starting with \"#+\"."
:group 'org-faces
:version "22.1")
@@ -437,7 +433,7 @@
#+EMAIL: and #+DATE: keywords."
:group 'org-faces)
-(defface org-block `((t :inherit (fixed-pitch shadow)
+(defface org-block `((t :inherit shadow
,@(and (>= emacs-major-version 27) '(:extend t))))
"Face used for text inside various blocks.
@@ -459,7 +455,7 @@
"Face used for the line delimiting the end of source blocks."
:group 'org-faces)
-(defface org-verbatim '((t (:inherit (fixed-pitch shadow))))
+(defface org-verbatim '((t (:inherit shadow)))
"Face for fixed-with text like code snippets."
:group 'org-faces
:version "22.1")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-plot.el
^
|
@@ -280,7 +280,7 @@
collect (cons n (/ (length m) normaliser)))))
(defun org--plot/prime-factors (value)
- "Return the prime decomposition of VALUE, e.g. for 12, '(3 2 2)."
+ "Return the prime decomposition of VALUE, e.g. for 12, \\='(3 2 2)."
(let ((factors '(1)) (i 1))
(while (/= 1 value)
(setq i (1+ i))
@@ -682,9 +682,10 @@
(looking-at "[[:space:]]*#\\+"))
(setf params (org-plot/collect-options params))))
;; Dump table to datafile
- (if-let ((dump-func (plist-get type :data-dump)))
- (funcall dump-func table data-file num-cols params)
- (org-plot/gnuplot-to-data table data-file params))
+ (let ((dump-func (plist-get type :data-dump)))
+ (if dump-func
+ (funcall dump-func table data-file num-cols params)
+ (org-plot/gnuplot-to-data table data-file params)))
;; Check type of ind column (timestamp? text?)
(when (plist-get params :check-ind-type)
(let* ((ind (1- (plist-get params :ind)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-src.el
^
|
@@ -1235,7 +1235,7 @@
(insert (with-current-buffer write-back-buf (buffer-string))))
(save-restriction
(narrow-to-region beg end)
- (replace-buffer-contents write-back-buf 0.1 nil)
+ (org-replace-buffer-contents write-back-buf 0.1 nil)
(goto-char (point-max))))
(when (and expecting-bol (not (bolp))) (insert "\n")))
(kill-buffer write-back-buf)
@@ -1283,7 +1283,7 @@
(buffer-string))))
(save-restriction
(narrow-to-region beg end)
- (replace-buffer-contents write-back-buf 0.1 nil)
+ (org-replace-buffer-contents write-back-buf 0.1 nil)
(goto-char (point-max))))
(when (and expecting-bol (not (bolp))) (insert "\n")))))
(when write-back-buf (kill-buffer write-back-buf))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-table.el
^
|
@@ -462,14 +462,14 @@
(when pos (goto-char pos))
(goto-char (line-beginning-position))
(let ((end (line-end-position)) str)
- (backward-char)
+ (goto-char (1- pos))
(while (progn (forward-char 1) (< (point) end))
(let ((ov (car (overlays-at (point)))))
(if (not ov)
(push (char-to-string (char-after)) str)
(push (overlay-get ov 'display) str)
(goto-char (1- (overlay-end ov))))))
- (format "%s" (mapconcat #'identity (reverse str) "")))))
+ (format "|%s" (mapconcat #'identity (reverse str) "")))))
(defvar-local org-table-header-overlay nil)
(defun org-table-header-set-header ()
@@ -5465,7 +5465,7 @@
(nreverse table)))))
(defun org-table-collapse-header (table &optional separator max-header-lines)
- "Collapse the lines before 'hline into a single header.
+ "Collapse the lines before `hline' into a single header.
The given TABLE is a list of lists as returned by `org-table-to-lisp'.
The leading lines before the first `hline' symbol are considered
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org-version.el
^
|
@@ -5,13 +5,13 @@
(defun org-release ()
"The release version of Org.
Inserted by installing Org mode or when a release is made."
- (let ((org-release "9.5.2"))
+ (let ((org-release "9.5.5"))
org-release))
;;;###autoload
(defun org-git-version ()
"The Git version of Org mode.
Inserted by installing Org or when a release is made."
- (let ((org-git-version "release_9.5.2-25-gaf6f12"))
+ (let ((org-git-version "release_9.5.5"))
org-git-version))

(provide 'org-version)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/org.el
^
|
@@ -9,7 +9,7 @@
;; Homepage: https://orgmode.org
;; Package-Requires: ((emacs "25.1"))
-;; Version: 9.5.2
+;; Version: 9.5.5
;; This file is part of GNU Emacs.
;;
@@ -199,6 +199,7 @@
(declare-function org-update-radio-target-regexp "ol" ())
(defvar org-element-paragraph-separate)
+(defvar org-element--timestamp-regexp)
(defvar org-indent-indentation-per-level)
(defvar org-radio-target-regexp)
(defvar org-target-link-regexp)
@@ -246,7 +247,7 @@
(if compile
(progn
(byte-compile-file tangled-file)
- (load tangled-file)
+ (load-file (byte-compile-dest-file tangled-file))
(message "Compiled and loaded %s" tangled-file))
(load-file tangled-file)
(message "Loaded %s" tangled-file))))
@@ -1693,7 +1694,7 @@
(const :tag "Never kill a hidden subtree with C-k" error)))
(defcustom org-special-ctrl-o t
- "Non-nil means, make `C-o' insert a row in tables."
+ "Non-nil means, make `open-line' (\\[open-line]) insert a row in tables."
:group 'org-edit-structure
:type 'boolean)
@@ -3300,7 +3301,7 @@
%i: The LaTeX fragment to be converted.
For example, this could be used with LaTeXML as
-\"latexmlc 'literal:%i' --profile=math --preload=siunitx.sty 2>/dev/null\"."
+\"latexmlc \\='literal:%i\\=' --profile=math --preload=siunitx.sty 2>/dev/null\"."
:group 'org-latex
:package-version '(Org . "9.4")
:type '(choice
@@ -15011,16 +15012,25 @@
When at a timestamp, return the position of the point as a symbol
among `bracket', `after', `year', `month', `hour', `minute',
`day' or a number of character from the last know part of the
-time stamp.
+time stamp. If diary sexp timestamps, any point inside the timestamp
+is considered `day' (i.e. only `bracket', `day', and `after' return
+values are possible).
When matching, the match groups are the following:
- group 1: year
- group 2: month
- group 3: day number
- group 4: day name
+ group 1: year, if any
+ group 2: month, if any
+ group 3: day number, if any
+ group 4: day name, if any
group 5: hours, if any
group 6: minutes, if any"
- (let* ((regexp (if extended org-ts-regexp3 org-ts-regexp2))
+ (let* ((regexp
+ (if extended
+ (if (eq extended 'agenda)
+ (rx-to-string
+ `(or (regexp ,org-ts-regexp3)
+ (regexp ,org-element--timestamp-regexp)))
+ org-ts-regexp3)
+ org-ts-regexp2))
(pos (point))
(match?
(let ((boundaries (org-in-regexp regexp)))
@@ -15051,7 +15061,8 @@
((org-pos-in-match-range pos 8) 'minute)
((or (org-pos-in-match-range pos 4)
(org-pos-in-match-range pos 5)) 'day)
- ((and (> pos (or (match-end 8) (match-end 5)))
+ ((and (or (match-end 8) (match-end 5))
+ (> pos (or (match-end 8) (match-end 5)))
(< pos (match-end 0)))
(- pos (or (match-end 8) (match-end 5))))
(t 'day))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox-ascii.el
^
|
@@ -948,12 +948,18 @@
(when description
(let ((dest (if (equal type "fuzzy")
(org-export-resolve-fuzzy-link link info)
- (org-export-resolve-id-link link info))))
- (concat
- (org-ascii--fill-string
- (format "[%s] %s" anchor (org-ascii--describe-datum dest info))
- width info)
- "\n\n"))))
+ ;; Ignore broken links. On broken link,
+ ;; `org-export-resolve-id-link' will throw an
+ ;; error and we will return nil.
+ (condition-case nil
+ (org-export-resolve-id-link link info)
+ (org-link-broken nil)))))
+ (when dest
+ (concat
+ (org-ascii--fill-string
+ (format "[%s] %s" anchor (org-ascii--describe-datum dest info))
+ width info)
+ "\n\n")))))
;; Do not add a link that cannot be resolved and doesn't have
;; any description: destination is already visible in the
;; paragraph.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox-html.el
^
|
@@ -442,7 +442,7 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
- .org-svg { width: 90%; }
+ .org-svg { }
</style>"
"The default style specification for exported HTML files.
You can use `org-html-head' and `org-html-head-extra' to add to
@@ -2909,7 +2909,7 @@
(defun org-html--unlabel-latex-environment (latex-frag)
"Change environment in LATEX-FRAG string to an unnumbered one.
-For instance, change an 'equation' environment to 'equation*'."
+For instance, change an `equation' environment to `equation*'."
(replace-regexp-in-string
"\\`[ \t]*\\\\begin{\\([^*]+?\\)}"
"\\1*"
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox-icalendar.el
^
|
@@ -276,14 +276,14 @@
;;; Define Back-End
(org-export-define-derived-backend 'icalendar 'ascii
- :translate-alist '((clock . ignore)
- (footnote-definition . ignore)
- (footnote-reference . ignore)
+ :translate-alist '((clock . nil)
+ (footnote-definition . nil)
+ (footnote-reference . nil)
(headline . org-icalendar-entry)
(inner-template . org-icalendar-inner-template)
- (inlinetask . ignore)
- (planning . ignore)
- (section . ignore)
+ (inlinetask . nil)
+ (planning . nil)
+ (section . nil)
(template . org-icalendar-template))
:options-alist
'((:exclude-tags
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox-md.el
^
|
@@ -193,11 +193,11 @@
;; A link refers internally to HEADLINE.
(org-element-map (plist-get info :parse-tree) 'link
(lambda (link)
- (eq headline
- (pcase (org-element-property :type link)
- ((or "custom-id" "id") (org-export-resolve-id-link link info))
- ("fuzzy" (org-export-resolve-fuzzy-link link info))
- (_ nil))))
+ (equal headline
+ ;; Ignore broken links.
+ (condition-case nil
+ (org-export-resolve-id-link link info)
+ (org-link-broken nil))))
info t))))
(defun org-md--headline-title (style level title &optional anchor tags)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox-publish.el
^
|
@@ -839,7 +839,7 @@
latter case, optional argument BACKEND has to be set to the
back-end where the option is defined, e.g.,
- (org-publish-find-property file :subtitle 'latex)
+ (org-publish-find-property file :subtitle \\='latex)
Return value may be a string or a list, depending on the type of
PROPERTY, i.e. \"behavior\" parameter from `org-export-options-alist'."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/org/ox.el
^
|
@@ -1908,8 +1908,10 @@
(org-element-property :archivedp data)))
(let ((transcoder (org-export-transcoder data info)))
(or (and (functionp transcoder)
- (broken-link-handler
- (funcall transcoder data nil info)))
+ (if (eq type 'link)
+ (broken-link-handler
+ (funcall transcoder data nil info))
+ (funcall transcoder data nil info)))
;; Export snippets never return a nil value so
;; that white spaces following them are never
;; ignored.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/outline.el
^
|
@@ -176,13 +176,22 @@
map))
(defcustom outline-minor-mode-cycle-filter nil
- "Filter out positions on the heading available for cycling."
+ "Control where on a heading the visibility-cycling commands are bound to keys.
+This option controls, in Outline minor mode, where on a heading typing
+the key sequences bound to visibility-cycling commands like `outline-cycle'
+and `outline-cycle-buffer' will invoke those commands. By default, you can
+invoke these commands by typing `TAB' and `S-TAB' anywhere on a heading line,
+but customizing this option can make those bindings be in effect only at
+specific positions on the heading, like only at the line's beginning or
+line's end. This allows these keys to be bound to their usual commands,
+as determined by the major mode, elsewhere on the heading lines.
+This option is only in effect when `outline-minor-mode-cycle' is non-nil."
:type '(choice (const :tag "Everywhere" nil)
(const :tag "At line beginning" bolp)
(const :tag "Not at line beginning"
(lambda () (not (bolp))))
(const :tag "At line end" eolp)
- (function :tag "Custom filter"))
+ (function :tag "Custom filter function"))
:version "28.1")
(defun outline-minor-mode-cycle--bind (map key binding &optional filter)
@@ -349,28 +358,33 @@
(set-default sym val)))
(defcustom outline-minor-mode-cycle nil
- "Enable cycling of headings in `outline-minor-mode'.
-When enabled, it puts a keymap with cycling keys on heading lines.
-When point is on a heading line, then typing `TAB' cycles between `hide all',
-`headings only' and `show all' (`outline-cycle'). Typing `S-TAB' on
-a heading line cycles the whole buffer (`outline-cycle-buffer').
-Typing these keys anywhere outside heading lines uses their default bindings."
+ "Enable visibility-cycling commands on headings in `outline-minor-mode'.
+If enabled, typing `TAB' on a heading line cycles the visibility
+state of that heading's body between `hide all', `headings only'
+and `show all' (`outline-cycle'), and typing `S-TAB' on a heading
+line likewise cycles the visibility state of the whole buffer
+\(`outline-cycle-buffer').
+Typing these keys anywhere outside heading lines invokes their default
+bindings, per the current major mode."
:type 'boolean
:version "28.1")
;;;###autoload(put 'outline-minor-mode-cycle 'safe-local-variable 'booleanp)
(defcustom outline-minor-mode-highlight nil
- "Highlight headings in `outline-minor-mode' using font-lock keywords.
-Non-nil value works well only when outline font-lock keywords
-don't conflict with the major mode's font-lock keywords.
-When t, it puts outline faces only if there are no major mode's faces
-on headings. When `override', it completely overwrites major mode's
-faces with outline faces. When `append', it tries to append outline
-faces to major mode's faces."
- :type '(choice (const :tag "No highlighting" nil)
- (const :tag "Overwrite major mode faces" override)
- (const :tag "Append outline faces to major mode faces" append)
- (const :tag "Highlight separately from major mode faces" t))
+ "Whether to highlight headings in `outline-minor-mode' using font-lock keywords.
+This option controles whether `outline-minor-mode' will use its font-lock
+keywords to highlight headings, which could potentially conflict with
+font-lock faces defined by the major mode. Thus, a non-nil value will
+work well only when there's no such conflict.
+If the value is t, use outline faces only if there are no major mode's
+font-lock faces on headings. When `override', completely overwrite major
+mode's font-lock faces with outline faces. When `append', try to append
+outline font-lock faces to those of major mode."
+ :type '(choice (const :tag "Do not use outline font-lock highlighting" nil)
+ (const :tag "Overwrite major mode font-lock faces" override)
+ (const :tag "Append outline font-lock faces to major mode's"
+ append)
+ (const :tag "Highlight with outline font-lock faces only if major mode doesn't" t))
:version "28.1")
;;;###autoload(put 'outline-minor-mode-highlight 'safe-local-variable 'symbolp)
@@ -1244,11 +1258,14 @@
(save-excursion (outline-end-of-subtree) (point)))))
(defun outline-cycle ()
- "Cycle between `hide all', `headings only' and `show all'.
+ "Cycle visibility state of the current heading line's body.
-`Hide all' means hide all subheadings and their bodies.
-`Headings only' means show sub headings but not their bodies.
-`Show all' means show all subheadings and their bodies."
+This cycles the visibility of the current heading line's subheadings
+and body between `hide all', `headings only' and `show all'.
+
+`Hide all' means hide all the subheadings and their bodies.
+`Headings only' means show the subheadings, but not their bodies.
+`Show all' means show all the subheadings and their bodies."
(interactive)
(condition-case nil
(pcase (outline--cycle-state)
@@ -1270,7 +1287,15 @@
"Internal variable used for tracking buffer cycle state.")
(defun outline-cycle-buffer ()
- "Cycle the whole buffer like in `outline-cycle'."
+ "Cycle visibility state of the body lines of the whole buffer.
+
+This cycles the visibility of all the subheadings and bodies of all
+the heading lines in the buffer. It cycles them between `hide all',
+`headings only' and `show all'.
+
+`Hide all' means hide all the buffer's subheadings and their bodies.
+`Headings only' means show all the subheadings, but not their bodies.
+`Show all' means show all the buffer's subheadings and their bodies."
(interactive)
(let (has-top-level)
(save-excursion
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/play/doctor.el
^
|
@@ -1579,13 +1579,14 @@
(equal doctor-found 'killing))
(memq 'yourself doctor-sent)))
(setq doctor--suicide-flag t)
- (doctor-type '(If you are really suicidal\, you might
- want to contact the Samaritans via
- E-mail: jo@samaritans.org or\, at your option\,
- anonymous E-mail: samaritans@anon.twwells.com\ \.
- or find a Befrienders crisis center at
- https://www.befrienders.org/\ \.
- (doc$ doctor--please) (doc$ doctor--continue) \.)))
+ (doctor-type '( If you are really suicidal\, you might
+ want to contact the Samaritans via
+ e-mail: jo@samaritans.org \.
+ or find a Befrienders crisis center at
+ https://www.befrienders.org/\ \.
+ you can also find other suicide crisis lines at
+ https://en.wikipedia.org/wiki/List_of_suicide_crisis_lines \.
+ (doc$ doctor--please) (doc$ doctor--continue) \.)))
(t (doctor-type (doc$ doctor--deathlst)))))
(defun doctor-foul ()
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/play/fortune.el
^
|
@@ -1,6 +1,6 @@
;;; fortune.el --- use fortune to create signatures -*- lexical-binding: t -*-
-;; Copyright (C) 1999, 2001-2022 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2022 Free Software Foundation, Inc.
;; Author: Holger Schauer <Holger.Schauer@gmx.de>
;; Keywords: games utils mail
@@ -21,38 +21,48 @@
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
+
;; This utility allows you to automatically cut regions to a fortune
;; file. In case that the region stems from an article buffer (mail or
;; news), it will try to automatically determine the author of the
-;; fortune. It will also allow you to compile your fortune-database
+;; fortune. It will also allow you to compile your fortune database
;; as well as providing a function to extract a fortune for use as your
;; signature.
+;;
;; Of course, it can simply display a fortune, too.
;; Use prefix arguments to specify different fortune databases.
-
+;;
;;; Installation:
-
-;; Please check the customize settings -- you will at least have to
-;; modify the values of `fortune-dir' and `fortune-file'.
-
+;;
+;; Please type `M-x customize-group RET fortune RET' -- you will at
+;; least have to modify the user options `fortune-dir' and
+;; `fortune-file'.
+;;
;; I then use this in my .gnus:
-;;(message "Making new signature: %s" (fortune-to-signature "~/fortunes/"))
+;;
+;; (message "Making new signature: %s"
+;; (fortune-to-signature "~/fortunes/"))
+;;
;; This automagically creates a new signature when starting up Gnus.
-;; Note that the call to fortune-to-signature specifies a directory in which
-;; several fortune-files and their databases are stored.
-
-;; If you like to get a new signature for every message, you can also hook
-;; it into message-mode:
-;; (add-hook 'message-setup-hook 'fortune-to-signature)
-;; This time no fortune-file is specified, so fortune-to-signature would use
-;; the default-file as specified by fortune-file.
-
-;; I have also this in my .gnus:
-;;(add-hook 'gnus-article-mode-hook
-;; (lambda ()
-;; (define-key gnus-article-mode-map "i" 'fortune-from-region)))
+;; Note that the call to `fortune-to-signature' specifies a directory
+;; in which several fortune files and their databases are stored.
+;;
+;; To get a new signature for every message, you can hook it into
+;; `message-mode':
+;;
+;; (add-hook 'message-setup-hook #'fortune-to-signature)
+;;
+;; This time no fortune file is specified, so `fortune-to-signature'
+;; would use the default file as specified by `fortune-file'.
+;;
+;; I also have this in my .gnus:
+;;
+;; (add-hook 'gnus-article-mode-hook
+;; (lambda ()
+;; (define-key gnus-article-mode-map "i" #'fortune-from-region)))
+;;
;; which allows marking a region and then pressing "i" so that the marked
-;; region will be automatically added to my favorite fortune-file.
+;; region will be automatically added to my favorite fortune file.
;;; Code:
@@ -166,7 +176,7 @@
(fortune-compile file)))))
(defun fortune-ask-file ()
- "Asks the user for a file-name."
+ "Ask the user for the file name of the fortune file."
(expand-file-name
(read-file-name
"Fortune file to use: "
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/play/mpuz.el
^
|
@@ -161,7 +161,7 @@
;; A puzzle also uses a board displaying a multiplication.
-;; Every digit appears in the board, crypted or not.
+;; Every digit appears in the board, encrypted or not.
;;------------------------------------------------------
(defvar mpuz-board (make-vector 10 nil)
"The board associates to any digit the list of squares where it appears.")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/printing.el
^
|
@@ -63,10 +63,6 @@
;; spool and to despool PostScript buffer. So, `printing' provides an
;; interface to ps-print package and it also provides some extra stuff.
;;
-;; To download the latest ps-print package see
-;; `https://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage'.
-;; Please, see README file for ps-print installation instructions.
-;;
;; `printing' was inspired by:
;;
;; print-nt.el Frederic Corne <frederic.corne@erli.fr>
@@ -942,11 +938,6 @@
;;
;; Below are some URL where you can find good utilities.
;;
-;; * For `printing' package:
-;;
-;; printing `https://www.emacswiki.org/cgi-bin/emacs/download/printing.el'
-;; ps-print `https://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage'
-;;
;; * For GNU or Unix system:
;;
;; gs, gv `https://www.gnu.org/software/ghostscript/ghostscript.html'
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/bug-reference.el
^
|
@@ -142,7 +142,7 @@
t)))
;; All groups 2..10 are within bounds.
(cons m-b1 m-e1)
- ;; The regexp doesn't fulfil the contract of
+ ;; The regexp doesn't fulfill the contract of
;; bug-reference-bug-regexp, so fall back to the old behavior.
(unless (member bug-reference-bug-regexp
bug-reference--nonconforming-regexps)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/cc-engine.el
^
|
@@ -1668,9 +1668,13 @@
Return the result of `forward-comment' if it gets called, nil otherwise."
`(if (not comment-end-can-be-escaped)
(forward-comment -1)
- (when (and (< (skip-syntax-backward " >") 0)
- (eq (char-after) ?\n))
- (forward-char))
+ (let ((dist (skip-syntax-backward " >")))
+ (when (and
+ (< dist 0)
+ (progn
+ (skip-syntax-forward " " (- (point) dist 1))
+ (eq (char-after) ?\n)))
+ (forward-char)))
(cond
((and (eq (char-before) ?\n)
(eq (char-before (1- (point))) ?\\))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/cc-fonts.el
^
|
@@ -1826,7 +1826,7 @@
;; font-lock-keyword-face. It always returns NIL to inhibit this and
;; prevent a repeat invocation. See elisp/lispref page "Search-based
;; Fontification".
- (let (mode capture-default id-start id-end declaration sub-begin sub-end)
+ (let (mode capture-default id-start id-end declaration sub-begin sub-end tem)
(while (and (< (point) limit)
(search-forward "[" limit t))
(when (progn (backward-char)
@@ -1838,15 +1838,18 @@
(char-after)))
;; Is the first element of the list a bare "=" or "&"?
(when mode
- (forward-char)
- (c-forward-syntactic-ws)
- (if (memq (char-after) '(?, ?\]))
- (progn
- (setq capture-default mode)
- (when (eq (char-after) ?,)
- (forward-char)
- (c-forward-syntactic-ws)))
- (c-backward-token-2)))
+ (setq tem nil)
+ (save-excursion
+ (forward-char)
+ (c-forward-syntactic-ws)
+ (if (memq (char-after) '(?, ?\]))
+ (progn
+ (setq capture-default mode)
+ (when (eq (char-after) ?,)
+ (forward-char)
+ (c-forward-syntactic-ws))
+ (setq tem (point)))))
+ (if tem (goto-char tem)))
;; Go round the following loop once per captured item. We use "\\s)"
;; rather than "\\]" here to avoid infinite looping in this situation:
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/cc-mode.el
^
|
@@ -787,43 +787,44 @@
`c-basic-common-init' for details. It's only optional to be
compatible with old code; callers should always specify it."
- (unless mode
- ;; Called from an old third party package. The fallback is to
- ;; initialize for C.
- (c-init-language-vars-for 'c-mode))
+ (let (case-fold-search)
+ (unless mode
+ ;; Called from an old third party package. The fallback is to
+ ;; initialize for C.
+ (c-init-language-vars-for 'c-mode))
- (c-basic-common-init mode c-default-style)
- (when mode
- ;; Only initialize font locking if we aren't called from an old package.
- (c-font-lock-init))
+ (c-basic-common-init mode c-default-style)
+ (when mode
+ ;; Only initialize font locking if we aren't called from an old package.
+ (c-font-lock-init))
- ;; Starting a mode is a sort of "change". So call the change functions...
- (save-restriction
- (widen)
- (setq c-new-BEG (point-min))
- (setq c-new-END (point-max))
- (save-excursion
- (let (before-change-functions after-change-functions)
- (mapc (lambda (fn)
- (funcall fn (point-min) (point-max)))
- c-get-state-before-change-functions)
- (mapc (lambda (fn)
- (funcall fn (point-min) (point-max)
- (- (point-max) (point-min))))
- c-before-font-lock-functions))))
+ ;; Starting a mode is a sort of "change". So call the change functions...
+ (save-restriction
+ (widen)
+ (setq c-new-BEG (point-min))
+ (setq c-new-END (point-max))
+ (save-excursion
+ (let (before-change-functions after-change-functions)
+ (mapc (lambda (fn)
+ (funcall fn (point-min) (point-max)))
+ c-get-state-before-change-functions)
+ (mapc (lambda (fn)
+ (funcall fn (point-min) (point-max)
+ (- (point-max) (point-min))))
+ c-before-font-lock-functions))))
- (set (make-local-variable 'outline-regexp) "[^#\n\^M]")
- (set (make-local-variable 'outline-level) 'c-outline-level)
- (set (make-local-variable 'add-log-current-defun-function)
- (lambda ()
- (or (c-cpp-define-name) (car (c-defun-name-and-limits nil)))))
- (let ((rfn (assq mode c-require-final-newline)))
- (when rfn
- (if (boundp 'mode-require-final-newline)
- (and (cdr rfn)
- (set (make-local-variable 'require-final-newline)
- mode-require-final-newline))
- (set (make-local-variable 'require-final-newline) (cdr rfn))))))
+ (set (make-local-variable 'outline-regexp) "[^#\n\^M]")
+ (set (make-local-variable 'outline-level) 'c-outline-level)
+ (set (make-local-variable 'add-log-current-defun-function)
+ (lambda ()
+ (or (c-cpp-define-name) (car (c-defun-name-and-limits nil)))))
+ (let ((rfn (assq mode c-require-final-newline)))
+ (when rfn
+ (if (boundp 'mode-require-final-newline)
+ (and (cdr rfn)
+ (set (make-local-variable 'require-final-newline)
+ mode-require-final-newline))
+ (set (make-local-variable 'require-final-newline) (cdr rfn)))))))
(defun c-count-cfss (lv-alist)
;; LV-ALIST is an alist like `file-local-variables-alist'. Count how many
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/cperl-mode.el
^
|
@@ -32,11 +32,6 @@
;; the MooseX::Declare CPAN module, as well as Perl 5.10 keyword
;; support.
-;; The latest version is available from
-;; https://github.com/jrockway/cperl-mode
-;;
-;; (perhaps in the moosex-declare branch)
-
;; You can either fine-tune the bells and whistles of this mode or
;; bulk enable them by putting
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/ebnf2ps.el
^
|
@@ -45,20 +45,12 @@
;;
;; (require 'ebnf2ps)
;;
-;; ebnf2ps uses ps-print package (version 5.2.3 or later), so see ps-print to
+;; ebnf2ps uses ps-print package (bundled with Emacs), so see ps-print to
;; know how to set options like landscape printing, page headings, margins,
;; etc.
;;
-;; NOTE: ps-print zebra stripes and line number options doesn't have effect on
-;; ebnf2ps, they behave as it's turned off.
-;;
-;; For good performance, be sure to byte-compile ebnf2ps.el, e.g.
-;;
-;; M-x byte-compile-file <give the path to ebnf2ps.el when prompted>
-;;
-;; This will generate ebnf2ps.elc, which will be loaded instead of ebnf2ps.el.
-;;
-;; ebnf2ps was tested with GNU Emacs 20.4.1.
+;; NOTE: ps-print zebra stripes and line number options don't have an
+;; effect on ebnf2ps, they behave as if it's turned off.
;;
;;
;; Using ebnf2ps
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/ebrowse.el
^
|
@@ -3633,7 +3633,12 @@
;;;###autoload
(defun ebrowse-tags-query-replace (from to)
"Query replace FROM with TO in all files of a class tree.
-With prefix arg, process files of marked classes only."
+With prefix arg, process files of marked classes only.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time."
(interactive
"sTree query replace (regexp): \nsTree query replace %s by: ")
(setq ebrowse-tags-loop-call
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/elisp-mode.el
^
|
@@ -1710,7 +1710,7 @@
(defalias 'elisp-eldoc-documentation-function 'elisp--documentation-one-liner
"Return Elisp documentation for the thing at point as one-line string.
This is meant as a backward compatibility aide to the \"old\"
-Elisp eldoc behaviour. Consider variable docstrings and function
+Elisp eldoc behavior. Consider variable docstrings and function
signatures only, in this order. If none applies, returns nil.
Changes to `eldoc-documentation-functions' and
`eldoc-documentation-strategy' are _not_ reflected here. As such
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/etags.el
^
|
@@ -1702,7 +1702,7 @@
;;;###autoload
(defalias 'next-file 'tags-next-file)
(make-obsolete 'next-file
- "use tags-next-file or fileloop-initialize and fileloop-next-file instead" "27.1")
+ "use `tags-next-file' or `fileloop-initialize' and `fileloop-next-file' instead" "27.1")
;;;###autoload
(defun tags-next-file (&optional initialize novisit)
"Select next file among files in current tags table.
@@ -1836,7 +1836,13 @@
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
with the command \\[fileloop-continue].
-For non-interactive use, superseded by `fileloop-initialize-replace'."
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
+For non-interactive use, this is superseded by `fileloop-initialize-replace'."
(declare (advertised-calling-convention (from to &optional delimited) "27.1"))
(interactive (query-replace-read-args "Tags query replace (regexp)" t t))
(fileloop-initialize-replace
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/f90.el
^
|
@@ -116,12 +116,11 @@
;; non-nil, the line numbers are never touched.
;; 2) Multi-; statements like "do i=1,20 ; j=j+i ; end do" are not handled
;; correctly, but I imagine them to be rare.
-;; 3) Regexps for hilit19 are no longer supported.
-;; 4) For FIXED FORMAT code, use fortran mode.
-;; 5) Preprocessor directives, i.e., lines starting with # are left-justified
+;; 3) For FIXED FORMAT code, use fortran mode.
+;; 4) Preprocessor directives, i.e., lines starting with # are left-justified
;; and are untouched by all case-changing commands. There is, at present, no
;; mechanism for treating multi-line directives (continued by \ ).
-;; 6) f77 do-loops do 10 i=.. ; ; 10 continue are not correctly indented.
+;; 5) f77 do-loops do 10 i=.. ; ; 10 continue are not correctly indented.
;; You are urged to use f90-do loops (with labels if you wish).
;; List of user commands
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/flymake.el
^
|
@@ -1664,9 +1664,9 @@
in the resulting buffer.
Flymake backends that somehow gain sporadic information about
-diagnostics in neighbouring files may freely modify this variable
+diagnostics in neighboring files may freely modify this variable
by adding or removing entries to for those files. If the
-information about those neighbouring files is acquired repeatedly
+information about those neighboring files is acquired repeatedly
and reliably, it may be more sensible to report them as
\"foreign\" diagnostics instead.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/gdb-mi.el
^
|
@@ -2809,7 +2809,7 @@
pieces)
(forward-char))
(t
- (warn "Unrecognised escape char: %c" (following-char))))
+ (warn "Unrecognized escape char: %c" (following-char))))
(setq start (point)))
(push (buffer-substring start (1- (point))) pieces)
(let ((s (apply #'concat (nreverse pieces))))
@@ -3076,6 +3076,45 @@
'gdb-breakpoints-mode
'gdb-invalidate-breakpoints)
+(defun gdb-breakpoints--add-breakpoint-row (tbl bkpt)
+ (let ((at (gdb-mi--field bkpt 'at))
+ (pending (gdb-mi--field bkpt 'pending))
+ (addr (gdb-mi--field bkpt 'addr))
+ (func (gdb-mi--field bkpt 'func))
+ (type (gdb-mi--field bkpt 'type)))
+ (if (and (not func) (string-equal addr "<MULTIPLE>"))
+ (setq func ""))
+ (gdb-table-add-row tbl
+ (list
+ (gdb-mi--field bkpt 'number)
+ (or type "")
+ (or (gdb-mi--field bkpt 'disp) "")
+ (let ((flag (gdb-mi--field bkpt 'enabled)))
+ (if (string-equal flag "y")
+ (eval-when-compile
+ (propertize "y" 'font-lock-face
+ font-lock-warning-face))
+ (eval-when-compile
+ (propertize "n" 'font-lock-face
+ font-lock-comment-face))))
+ addr
+ (or (gdb-mi--field bkpt 'times) "")
+ (if (and type (string-match ".*watchpoint" type))
+ (gdb-mi--field bkpt 'what)
+ (or (and (equal func "") "")
+ pending at
+ (concat "in "
+ (propertize (or func "unknown")
+ 'font-lock-face
+ font-lock-function-name-face)
+ (gdb-frame-location bkpt)))))
+ ;; Add clickable properties only for
+ ;; breakpoints with file:line information
+ (append (list 'gdb-breakpoint bkpt)
+ (when func
+ '(help-echo "mouse-2, RET: visit breakpoint"
+ mouse-face highlight))))))
+
(defun gdb-breakpoints-list-handler-custom ()
(let ((breakpoints-list (gdb-mi--field
(gdb-mi--field (gdb-mi--partial-output 'bkpt)
@@ -3088,37 +3127,14 @@
(add-to-list 'gdb-breakpoints-list
(cons (gdb-mi--field breakpoint 'number)
breakpoint))
- (let ((at (gdb-mi--field breakpoint 'at))
- (pending (gdb-mi--field breakpoint 'pending))
- (func (gdb-mi--field breakpoint 'func))
- (type (gdb-mi--field breakpoint 'type)))
- (gdb-table-add-row table
- (list
- (gdb-mi--field breakpoint 'number)
- (or type "")
- (or (gdb-mi--field breakpoint 'disp) "")
- (let ((flag (gdb-mi--field breakpoint 'enabled)))
- (if (string-equal flag "y")
- (eval-when-compile
- (propertize "y" 'font-lock-face
- font-lock-warning-face))
- (eval-when-compile
- (propertize "n" 'font-lock-face
- font-lock-comment-face))))
- (gdb-mi--field breakpoint 'addr)
- (or (gdb-mi--field breakpoint 'times) "")
- (if (and type (string-match ".*watchpoint" type))
- (gdb-mi--field breakpoint 'what)
- (or pending at
- (concat "in "
- (propertize (or func "unknown")
- 'font-lock-face font-lock-function-name-face)
- (gdb-frame-location breakpoint)))))
- ;; Add clickable properties only for breakpoints with file:line
- ;; information
- (append (list 'gdb-breakpoint breakpoint)
- (when func '(help-echo "mouse-2, RET: visit breakpoint"
- mouse-face highlight))))))
+ ;; Add the breakpoint/header row to the table.
+ (gdb-breakpoints--add-breakpoint-row table breakpoint)
+ ;; If this breakpoint has multiple locations, add them as well.
+ (when-let ((locations (gdb-mi--field breakpoint 'locations)))
+ (dolist (loc locations)
+ (add-to-list 'gdb-breakpoints-list
+ (cons (gdb-mi--field loc 'number) loc))
+ (gdb-breakpoints--add-breakpoint-row table loc))))
(insert (gdb-table-string table " "))
(gdb-place-breakpoints)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/hideif.el
^
|
@@ -109,7 +109,7 @@
;;
;; Extensively modified by Luke Lee in 2013 to support complete C expression
;; evaluation and argumented macro expansion; C++11, C++14, C++17, GCC
-;; extension literals and gcc/clang matching behaviours are supported in 2021.
+;; extension literals and gcc/clang matching behaviors are supported in 2021.
;; Various floating point types and operations are also supported but the
;; actual precision is limited by the Emacs internal floating representation,
;; which is the C data type "double" or IEEE binary64 format.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/project.el
^
|
@@ -1040,6 +1040,10 @@
(defun project-query-replace-regexp (from to)
"Query-replace REGEXP in all the files of the project.
Stops when a match is found and prompts for whether to replace it.
+At that prompt, the user must type a character saying what to do
+with the match. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
If you exit the `query-replace', you can later continue the
`query-replace' loop using the command \\[fileloop-continue]."
(interactive
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/python.el
^
|
@@ -1620,23 +1620,20 @@
;; are somehow out of whack. This has been
;; observed when using `syntax-ppss' during
;; narrowing.
- (cl-assert (>= string-start last-string-end)
- :show-args
- "\
-Overlapping strings detected (start=%d, last-end=%d)")
- (goto-char string-start)
- (if (python-syntax-context 'paren)
- ;; Ended up inside a paren, roll again.
- (python-nav-end-of-statement t)
- ;; This is not inside a paren, move to the
- ;; end of this string.
- (goto-char (+ (point)
- (python-syntax-count-quotes
- (char-after (point)) (point))))
- (setq last-string-end
- (or (re-search-forward
- (rx (syntax string-delimiter)) nil t)
- (goto-char (point-max))))))
+ (when (>= string-start last-string-end)
+ (goto-char string-start)
+ (if (python-syntax-context 'paren)
+ ;; Ended up inside a paren, roll again.
+ (python-nav-end-of-statement t)
+ ;; This is not inside a paren, move to the
+ ;; end of this string.
+ (goto-char (+ (point)
+ (python-syntax-count-quotes
+ (char-after (point)) (point))))
+ (setq last-string-end
+ (or (re-search-forward
+ (rx (syntax string-delimiter)) nil t)
+ (goto-char (point-max)))))))
((python-syntax-context 'paren)
;; The statement won't end before we've escaped
;; at least one level of parenthesis.
@@ -5572,6 +5569,8 @@
(defcustom python-forward-sexp-function #'python-nav-forward-sexp
"Function to use when navigating between expressions."
:version "28.1"
+ :group 'python
+ :group 'python-flymake
:type '(choice (const :tag "Python blocks" python-nav-forward-sexp)
(const :tag "CC-mode like" nil)
function))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/sh-script.el
^
|
@@ -1412,7 +1412,7 @@
(pop-to-buffer (process-buffer (sh-shell-process t))))
(defun sh-send-text (text)
- "Send the text to the `sh-shell-process'."
+ "Send TEXT to `sh-shell-process'."
(comint-send-string (sh-shell-process t) (concat text "\n")))
(defun sh-cd-here ()
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/vhdl-mode.el
^
|
@@ -153,7 +153,11 @@
(defvar lazy-lock-defer-on-scrolling)
(defvar lazy-lock-defer-on-the-fly)
(defvar speedbar-attached-frame)
-
+(defvar arch-alist)
+(defvar pack-alist)
+(defvar file-alist)
+(defvar unit-alist)
+(defvar rule-alist)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Variables
@@ -8396,30 +8400,30 @@
((visible-list (vhdl-get-visible-signals))
;; define syntactic regions where signals are read
(scan-regions-list
- '(;; right-hand side of signal/variable assignment
+ `(;; right-hand side of signal/variable assignment
;; (special case: "<=" is relational operator in a condition)
- ((vhdl-re-search-forward "[<:]=" proc-end t)
- (vhdl-re-search-forward ";\\|\\<\\(then\\|loop\\|report\\|severity\\|is\\)\\>" proc-end t))
+ ((vhdl-re-search-forward "[<:]=" ,proc-end t)
+ (vhdl-re-search-forward ";\\|\\<\\(then\\|loop\\|report\\|severity\\|is\\)\\>" ,proc-end t))
;; if condition
- ((vhdl-re-search-forward "^\\s-*if\\>" proc-end t)
- (vhdl-re-search-forward "\\<then\\>" proc-end t))
+ ((vhdl-re-search-forward "^\\s-*if\\>" ,proc-end t)
+ (vhdl-re-search-forward "\\<then\\>" ,proc-end t))
;; elsif condition
- ((vhdl-re-search-forward "\\<elsif\\>" proc-end t)
- (vhdl-re-search-forward "\\<then\\>" proc-end t))
+ ((vhdl-re-search-forward "\\<elsif\\>" ,proc-end t)
+ (vhdl-re-search-forward "\\<then\\>" ,proc-end t))
;; while loop condition
- ((vhdl-re-search-forward "^\\s-*while\\>" proc-end t)
- (vhdl-re-search-forward "\\<loop\\>" proc-end t))
+ ((vhdl-re-search-forward "^\\s-*while\\>" ,proc-end t)
+ (vhdl-re-search-forward "\\<loop\\>" ,proc-end t))
;; exit/next condition
- ((vhdl-re-search-forward "\\<\\(exit\\|next\\)\\s-+\\w+\\s-+when\\>" proc-end t)
- (vhdl-re-search-forward ";" proc-end t))
+ ((vhdl-re-search-forward "\\<\\(exit\\|next\\)\\s-+\\w+\\s-+when\\>" ,proc-end t)
+ (vhdl-re-search-forward ";" ,proc-end t))
;; assert condition
- ((vhdl-re-search-forward "\\<assert\\>" proc-end t)
- (vhdl-re-search-forward "\\(\\<report\\>\\|\\<severity\\>\\|;\\)" proc-end t))
+ ((vhdl-re-search-forward "\\<assert\\>" ,proc-end t)
+ (vhdl-re-search-forward "\\(\\<report\\>\\|\\<severity\\>\\|;\\)" ,proc-end t))
;; case expression
- ((vhdl-re-search-forward "^\\s-*case\\>" proc-end t)
- (vhdl-re-search-forward "\\<is\\>" proc-end t))
+ ((vhdl-re-search-forward "^\\s-*case\\>" ,proc-end t)
+ (vhdl-re-search-forward "\\<is\\>" ,proc-end t))
;; parameter list of procedure call, array index
- ((and (re-search-forward "^\\s-*\\(\\w\\|\\.\\)+[ \t\n\r\f]*(" proc-end t)
+ ((and (re-search-forward "^\\s-*\\(\\w\\|\\.\\)+[ \t\n\r\f]*(" ,proc-end t)
(1- (point)))
(progn (backward-char) (forward-sexp)
(while (looking-at "(") (forward-sexp)) (point)))))
@@ -14948,10 +14952,10 @@
(vhdl-speedbar-expand-units directory)
(vhdl-aput 'vhdl-directory-alist directory (list (list directory))))
-(defun vhdl-speedbar-insert-hierarchy ( ent-alist-arg conf-alist-arg pack-alist
- ent-inst-list depth)
- "Insert hierarchy of ENT-ALIST, CONF-ALIST, and PACK-ALIST."
- (if (not (or ent-alist conf-alist pack-alist))
+(defun vhdl-speedbar-insert-hierarchy ( ent-alist-arg conf-alist-arg
+ package-alist ent-inst-list depth)
+ "Insert hierarchy of ENT-ALIST, CONF-ALIST, and PACKAGE-ALIST."
+ (if (not (or ent-alist conf-alist package-alist))
(vhdl-speedbar-make-title-line "No VHDL design units!" depth)
(let ((ent-alist ent-alist-arg)
(conf-alist conf-alist-arg)
@@ -14981,15 +14985,15 @@
'vhdl-speedbar-configuration-face depth)
(setq conf-alist (cdr conf-alist)))
;; insert packages
- (when pack-alist (vhdl-speedbar-make-title-line "Packages:" depth))
- (while pack-alist
- (setq pack-entry (car pack-alist))
+ (when package-alist (vhdl-speedbar-make-title-line "Packages:" depth))
+ (while package-alist
+ (setq pack-entry (car package-alist))
(vhdl-speedbar-make-pack-line
(nth 0 pack-entry) (nth 1 pack-entry)
(cons (nth 2 pack-entry) (nth 3 pack-entry))
(cons (nth 7 pack-entry) (nth 8 pack-entry))
depth)
- (setq pack-alist (cdr pack-alist))))))
+ (setq package-alist (cdr package-alist))))))
(declare-function speedbar-line-directory "speedbar" (&optional depth))
@@ -17208,6 +17212,7 @@
(unless (or (assoc directory vhdl-file-alist)
(vhdl-load-cache directory))
(vhdl-scan-directory-contents directory))))
+ (defvar rule-alist) ; we need it to be dynamically bound
(let* ((directory (abbreviate-file-name (vhdl-default-directory)))
(project (vhdl-project-p))
(ent-alist (vhdl-aget vhdl-entity-alist (or project directory)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/progmodes/xref.el
^
|
@@ -701,7 +701,13 @@
"Perform interactive replacement of FROM with TO in all displayed xrefs.
This command interactively replaces FROM with TO in the names of the
-references displayed in the current *xref* buffer."
+references displayed in the current *xref* buffer.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+"
(interactive
(let ((fr (read-regexp "Xref query-replace (regexp)" ".*")))
(list fr
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ps-print.el
^
|
@@ -1320,11 +1320,11 @@
;; Known bugs and limitations of ps-print
;; --------------------------------------
;;
-;; Automatic font-attribute detection doesn't work well, especially with
-;; hilit19 and older versions of get-create-face. Users having problems with
-;; auto-font detection should use the lists `ps-italic-faces', `ps-bold-faces'
-;; and `ps-underlined-faces' and/or turn off automatic detection by setting
-;; `ps-auto-font-detect' to nil.
+;; Automatic font-attribute detection doesn't work well. Users having
+;; problems with auto-font detection should use the lists
+;; `ps-italic-faces', `ps-bold-faces' and `ps-underlined-faces' and/or
+;; turn off automatic detection by setting `ps-auto-font-detect' to
+;; nil.
;;
;; Still too slow; could use some hand-optimization.
;;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/recentf.el
^
|
@@ -29,7 +29,7 @@
;; automatically saved across Emacs sessions.
;; You can customize the number of recent files displayed, the
-;; location of the menu and others options. Type:
+;; location of the menu and other options. Type:
;;
;; M-x customize-group RET recentf RET
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/repeat.el
^
|
@@ -418,7 +418,7 @@
(and (commandp s)
(get s 'repeat-map)
(push (get s 'repeat-map) keymaps))))))
- (message "Repeat mode is enabled for %d commands and %d keymaps; see `describe-repeat-maps'."
+ (message "Repeat mode is enabled for %d commands and %d keymaps; see `describe-repeat-maps'"
(length commands)
(length (delete-dups keymaps))))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/replace.el
^
|
@@ -357,7 +357,9 @@
(defun query-replace (from-string to-string &optional delimited start end backward region-noncontiguous-p)
"Replace some occurrences of FROM-STRING with TO-STRING.
As each match is found, the user must type a character saying
-what to do with it. For directions, type \\[help-command] at that time.
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
In Transient Mark mode, if the mark is active, operate on the contents
of the region. Otherwise, operate from point to the end of the buffer's
@@ -427,7 +429,9 @@
(defun query-replace-regexp (regexp to-string &optional delimited start end backward region-noncontiguous-p)
"Replace some things after point matching REGEXP with TO-STRING.
As each match is found, the user must type a character saying
-what to do with it. For directions, type \\[help-command] at that time.
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
In Transient Mark mode, if the mark is active, operate on the contents
of the region. Otherwise, operate from point to the end of the buffer's
@@ -524,7 +528,9 @@
using `search-forward-regexp' and `replace-match' is preferred.
As each match is found, the user must type a character saying
-what to do with it. For directions, type \\[help-command] at that time.
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
TO-EXPR is a Lisp expression evaluated to compute each replacement. It may
reference `replace-count' to get the number of replacements already made.
@@ -610,6 +616,11 @@
to pull the last incremental search regexp to the minibuffer
that reads REGEXP.
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
A prefix argument N says to use each replacement string N times
before rotating to the next.
Fourth and fifth arg START and END specify the region to operate on.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/server.el
^
|
@@ -27,12 +27,12 @@
;;; Commentary:
-;; This Lisp code is run in Emacs when it is to operate as
-;; a server for other processes.
+;; This library allows Emacs to operate as a server for other
+;; processes.
-;; Load this library and do M-x server-edit to enable Emacs as a server.
+;; Load this library and do `M-x server-start' to enable Emacs as a server.
;; Emacs opens up a socket for communication with clients. If there are no
-;; client buffers to edit, server-edit acts like (switch-to-buffer
+;; client buffers to edit, `server-edit' acts like (switch-to-buffer
;; (other-buffer))
;; When some other program runs "the editor" to edit a file,
@@ -42,10 +42,10 @@
;; Note that any number of clients may dispatch files to Emacs to be edited.
-;; When you finish editing a Server buffer, again call server-edit
+;; When you finish editing a Server buffer, again call `server-edit'
;; to mark that buffer as done for the client and switch to the next
;; Server buffer. When all the buffers for a client have been edited
-;; and exited with server-edit, the client "editor" will return
+;; and exited with `server-edit', the client "editor" will return
;; to the program that invoked it.
;; Your editing commands and Emacs's display output go to and from
@@ -54,25 +54,28 @@
;; the client. This is possible in four cases:
;; 1. On a window system, where Emacs runs in one window and the
-;; program that wants to use "the editor" runs in another.
+;; program that wants to use "the editor" runs in another.
-;; 2. On a multi-terminal system, where Emacs runs on one terminal and the
-;; program that wants to use "the editor" runs on another.
+;; 2. On a multi-terminal system, where Emacs runs on one terminal and
+;; the program that wants to use "the editor" runs on another.
-;; 3. When the program that wants to use "the editor" is running
-;; as a subprocess of Emacs.
+;; 3. When the program that wants to use "the editor" is running as a
+;; subprocess of Emacs.
-;; 4. On a system with job control, when Emacs is suspended, the program
-;; that wants to use "the editor" will stop and display
-;; "Waiting for Emacs...". It can then be suspended, and Emacs can be
-;; brought into the foreground for editing. When done editing, Emacs is
-;; suspended again, and the client program is brought into the foreground.
+;; 4. On a system with job control, when Emacs is suspended, the
+;; program that wants to use "the editor" will stop and display
+;; "Waiting for Emacs...". It can then be suspended, and Emacs can
+;; be brought into the foreground for editing. When done editing,
+;; Emacs is suspended again, and the client program is brought into
+;; the foreground.
-;; The buffer local variable "server-buffer-clients" lists
+;; The buffer local variable `server-buffer-clients' lists
;; the clients who are waiting for this buffer to be edited.
-;; The global variable "server-clients" lists all the waiting clients,
+;; The global variable `server-clients' lists all the waiting clients,
;; and which files are yet to be edited for each.
+;;; Code:
+
;; Todo:
;; - handle command-line-args-left.
@@ -80,8 +83,6 @@
;; to here.
;; - fix up handling of the client's environment (place it in the terminal?).
-;;; Code:
-
(eval-when-compile (require 'cl-lib))
(defgroup server nil
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/ses.el
^
|
@@ -3782,7 +3782,7 @@
(default (and cur-printer (ses--locprn-def cur-printer)))
create-printer)
(cond
- ;; cancelled operation => do nothing
+ ;; canceled operation => do nothing
((eq definition t))
;; no change => do nothing
((and cur-printer (equal definition default)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/shell.el
^
|
@@ -1060,41 +1060,25 @@
(accept-process-output proc)
(goto-char pt)))
(goto-char pmark) (delete-char 1) ; remove the extra newline
- ;; That's the dirlist. Grab it & parse it.
- (let* ((dls (buffer-substring-no-properties
- (match-beginning 0) (1- (match-end 0))))
- (dlsl nil)
- (pos 0)
- (ds nil))
- ;; Split the dirlist into whitespace and non-whitespace chunks.
- ;; dlsl will be a reversed list of tokens.
- (while (string-match "\\(\\S-+\\|\\s-+\\)" dls pos)
- (push (match-string 1 dls) dlsl)
- (setq pos (match-end 1)))
-
- ;; Prepend trailing entries until they form an existing directory,
- ;; whitespace and all. Discard the next whitespace and repeat.
- (while dlsl
- (let ((newelt "")
- tem1 tem2)
- (while newelt
- ;; We need tem1 because we don't want to prepend
- ;; `comint-file-name-prefix' repeatedly into newelt via tem2.
- (setq tem1 (pop dlsl)
- tem2 (concat comint-file-name-prefix tem1 newelt))
- (cond ((file-directory-p tem2)
- (push tem2 ds)
- (when (string= " " (car dlsl))
- (pop dlsl))
- (setq newelt nil))
- (t
- (setq newelt (concat tem1 newelt)))))))
-
- (with-demoted-errors "Couldn't cd: %s"
- (shell-cd (car ds))
- (setq shell-dirstack (cdr ds)
- shell-last-dir (car shell-dirstack))
- (shell-dirstack-message))))
+ ;; That's the dirlist. grab it & parse it.
+ (let* ((dl (buffer-substring (match-beginning 2) (1- (match-end 2))))
+ (dl-len (length dl))
+ (ds '()) ; new dir stack
+ (i 0))
+ (while (< i dl-len)
+ ;; regexp = optional whitespace, (non-whitespace), optional whitespace
+ (string-match "\\s *\\(\\S +\\)\\s *" dl i) ; pick off next dir
+ (setq ds (cons (concat comint-file-name-prefix
+ (substring dl (match-beginning 1)
+ (match-end 1)))
+ ds))
+ (setq i (match-end 0)))
+ (let ((ds (nreverse ds)))
+ (with-demoted-errors "Couldn't cd: %s"
+ (shell-cd (car ds))
+ (setq shell-dirstack (cdr ds)
+ shell-last-dir (car shell-dirstack))
+ (shell-dirstack-message)))))
(if started-at-pmark (goto-char (marker-position pmark)))))
;; For your typing convenience:
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/simple.el
^
|
@@ -222,7 +222,7 @@
(defcustom next-error-find-buffer-function #'ignore
"Function called to find a `next-error' capable buffer.
-This functions takes the same three arguments as the function
+This function takes the same three arguments as the function
`next-error-find-buffer', and should return the buffer to be
used by the subsequent invocation of the command `next-error'
and `previous-error'.
@@ -5183,7 +5183,7 @@
boundary in the current buffer."
(let ((cur (car kill-ring)))
(kill-new (if before-p (concat string cur) (concat cur string))
- (or (string= cur "")
+ (or (= (length cur) 0)
(null (get-text-property 0 'yank-handler cur)))))
(when (and kill-append-merge-undo (not buffer-read-only))
(let ((prev buffer-undo-list)
@@ -8398,7 +8398,19 @@
:global t :group 'mode-line)
(define-minor-mode auto-save-mode
- "Toggle auto-saving in the current buffer (Auto Save mode)."
+ "Toggle auto-saving in the current buffer (Auto Save mode).
+
+When this mode is enabled, Emacs periodically saves each file-visiting
+buffer in a separate \"auto-save file\". This is a safety measure to
+prevent you from losing more than a limited amount of work if the
+system crashes.
+
+Auto-saving does not alter the file visited by the buffer: the visited
+file is changed only when you request saving it explicitly (such as
+with \\[save-buffer]). If you want to save the buffer into its
+visited files automatically, use \\[auto-save-visited-mode]).
+
+For more details, see Info node `(emacs) Auto Save'."
:variable ((and buffer-auto-save-file-name
;; If auto-save is off because buffer has shrunk,
;; then toggling should turn it on.
@@ -8735,9 +8747,10 @@
paraphernalia if Gnus is running, particularly
the Gcc: header for archiving.
-Additional valid symbols may be available; check with the author of
-your package for details. The function should return non-nil if it
-succeeds.
+Additional valid symbols may be available; check in the manual of
+your mail user agent package for details. You may also define
+your own symbol to be used as value for this variable using
+`define-mail-user-agent'.
See also `read-mail-command' concerning reading mail."
:type '(radio (function-item :tag "Message package"
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/so-long.el
^
|
@@ -38,7 +38,7 @@
;; compacted into the smallest file size possible, which often entails removing
;; newlines should they not be strictly necessary). This can result in lines
;; which are many thousands of characters long, and most programming modes
-;; simply aren't optimised (remotely) for this scenario, so performance can
+;; simply aren't optimized (remotely) for this scenario, so performance can
;; suffer significantly.
;;
;; When so-long detects such a file, it calls the command `so-long', which
@@ -90,7 +90,7 @@
;; * Overview of modes and commands
;; --------------------------------
;; - `global-so-long-mode' - A global minor mode which enables the automated
-;; behaviour, causing the user's preferred action to be invoked whenever a
+;; behavior, causing the user's preferred action to be invoked whenever a
;; newly-visited file contains excessively long lines.
;; - `so-long-mode' - A major mode, and the default action.
;; - `so-long-minor-mode' - A minor mode version of the major mode, and an
@@ -111,7 +111,7 @@
;;
;; On rare occasions you may choose to manually invoke the `so-long' command,
;; which invokes your preferred `so-long-action' (exactly as the automatic
-;; behaviour would do if it had detected long lines). You might use this if a
+;; behavior would do if it had detected long lines). You might use this if a
;; problematic file did not meet your configured criteria, and you wished to
;; trigger the performance improvements manually.
;;
@@ -120,7 +120,7 @@
;; available to `so-long' but, like any other mode, they can be invoked directly
;; if you have a need to do that (see also "Other ways of using so-long" below).
;;
-;; If the behaviour ever triggers when you did not want it to, you can use the
+;; If the behavior ever triggers when you did not want it to, you can use the
;; `so-long-revert' command to restore the buffer to its original state.
;; * Basic configuration
@@ -199,7 +199,7 @@
;;
;; Note that `so-long-minor-modes' is not useful for other global minor modes
;; (as distinguished from globalized minor modes), but in some cases it will be
-;; possible to inhibit or otherwise counter-act the behaviour of a global mode
+;; possible to inhibit or otherwise counter-act the behavior of a global mode
;; by overriding variables, or by employing hooks (see below). You would need
;; to inspect the code for a given global mode (on a case by case basis) to
;; determine whether it's possible to inhibit it for a single buffer -- and if
@@ -211,7 +211,7 @@
;; If `so-long-action' is set to either `so-long-mode' or `so-long-minor-mode',
;; the buffer-local value for each variable in the list is set to the associated
;; value in the alist. Use this to enforce values which will improve
-;; performance or otherwise avoid undesirable behaviours. If `so-long-revert'
+;; performance or otherwise avoid undesirable behaviors. If `so-long-revert'
;; is called, then the original values are restored.
;; * Retaining minor modes and settings when switching to `so-long-mode'
@@ -273,7 +273,7 @@
;; `so-long-mode', completely bypassing the automated decision process.
;; Refer to M-: (info "(emacs) Specifying File Variables") RET
;;
-;; If so-long itself causes problems, disable the automated behaviour with
+;; If so-long itself causes problems, disable the automated behavior with
;; M-- M-x global-so-long-mode, or M-: (global-so-long-mode 0)
;; * Example configuration
@@ -313,7 +313,7 @@
;; (add-hook 'js-mode-hook 'my-js-mode-hook)
;;
;; (defun my-js-mode-hook ()
-;; "Custom `js-mode' behaviours."
+;; "Custom `js-mode' behaviors."
;; (setq-local so-long-max-lines 100)
;; (setq-local so-long-threshold 1000))
;;
@@ -327,7 +327,7 @@
;; (add-hook 'nxml-mode-hook 'my-nxml-mode-hook)
;;
;; (defun my-nxml-mode-hook ()
-;; "Custom `nxml-mode' behaviours."
+;; "Custom `nxml-mode' behaviors."
;; (require 'so-long)
;; (setq-local so-long-variable-overrides
;; (remove '(bidi-inhibit-bpa . t) so-long-variable-overrides)))
@@ -380,7 +380,7 @@
;; meaning you would need to add to `safe-local-variable-values' in order to
;; avoid being queried about them.
;;
-;; Finally, the `so-long-predicate' user option enables the automated behaviour
+;; Finally, the `so-long-predicate' user option enables the automated behavior
;; to be determined by a custom function, if greater control is needed.
;; * Implementation notes
@@ -397,7 +397,7 @@
;; * Caveats
;; ---------
-;; The variables affecting the automated behaviour of this library (such as
+;; The variables affecting the automated behavior of this library (such as
;; `so-long-action') can be used as file- or dir-local values in Emacs 26+, but
;; not in previous versions of Emacs. This is on account of improvements made
;; to `normal-mode' in 26.1, which altered the execution order with respect to
@@ -412,7 +412,7 @@
;;
;; 1.1.2 - Use `so-long-mode-line-active' face on `mode-name' in `so-long-mode'.
;; 1.1.1 - Identical to 1.1, but fixing an incorrect GNU ELPA release.
-;; 1.1 - Utilise `buffer-line-statistics' in Emacs 28+, with the new
+;; 1.1 - Utilize `buffer-line-statistics' in Emacs 28+, with the new
;; `so-long-predicate' function `so-long-statistics-excessive-p'.
;; - Increase `so-long-threshold' from 250 to 10,000.
;; - Increase `so-long-max-lines' from 5 to 500.
@@ -449,7 +449,7 @@
;; - Added sgml-mode and nxml-mode to `so-long-target-modes'.
;; 0.7.4 - Refactored the handling of `whitespace-mode'.
;; 0.7.3 - Added customization group `so-long' with user options.
-;; - Added `so-long-original-values' to generalise the storage and
+;; - Added `so-long-original-values' to generalize the storage and
;; restoration of values from the original mode upon `so-long-revert'.
;; - Added `so-long-revert-hook'.
;; 0.7.2 - Remember the original major mode even with M-x `so-long-mode'.
@@ -462,7 +462,7 @@
;; 0.6 - Added `so-long-minor-modes' and `so-long-hook'.
;; 0.5 - Renamed library to "so-long.el".
;; - Added explicit `so-long-enable' command to activate our advice.
-;; 0.4 - Amended/documented behaviour with file-local 'mode' variables.
+;; 0.4 - Amended/documented behavior with file-local 'mode' variables.
;; 0.3 - Defer to a file-local 'mode' variable.
;; 0.2 - Initial release to EmacsWiki.
;; 0.1 - Experimental.
@@ -490,7 +490,7 @@
;; automatically."; however `so-long--ensure-enabled' may forcibly re-enable
;; it contrary to the user's expectations, so for the present this should be
;; considered internal-use only (with `global-so-long-mode' the interface
- ;; for enabling or disabling the automated behaviour). FIXME: Establish a
+ ;; for enabling or disabling the automated behavior). FIXME: Establish a
;; way to support the original use-case, or rename to `so-long--enabled'.
"Internal use. Non-nil when any `so-long' functionality has been used.")
@@ -586,7 +586,7 @@
(defcustom so-long-invisible-buffer-function #'so-long-deferred
"Function called in place of `so-long' when the buffer is not displayed.
-This affects the behaviour of `global-so-long-mode'.
+This affects the behavior of `global-so-long-mode'.
We treat invisible buffers differently from displayed buffers because, in
cases where a library is using a buffer for behind-the-scenes processing,
@@ -618,7 +618,7 @@
'so-long-detected-long-line-p)
"Function called after `set-auto-mode' to decide whether action is needed.
-This affects the behaviour of `global-so-long-mode'.
+This affects the behavior of `global-so-long-mode'.
Only called if the major mode is a member of `so-long-target-modes'.
@@ -642,7 +642,7 @@
(defun so-long--action-type ()
"Generate a :type for `so-long-action' based on `so-long-action-alist'."
;; :type seemingly cannot be a form to be evaluated on demand, so we
- ;; endeavour to keep it up-to-date with `so-long-action-alist' by
+ ;; endeavor to keep it up-to-date with `so-long-action-alist' by
;; calling this from `so-long--action-alist-setter'.
`(radio ,@(mapcar (lambda (x) (list 'const :tag (cadr x) (car x)))
(assq-delete-all nil so-long-action-alist))
@@ -703,7 +703,7 @@
The value `longlines-mode' causes that minor mode to be enabled. See
longlines.el for more details.
-Each action likewise determines the behaviour of `so-long-revert'.
+Each action likewise determines the behavior of `so-long-revert'.
If the value is nil, or not defined in `so-long-action-alist', then no action
will be taken."
@@ -753,7 +753,7 @@
(defcustom so-long-file-local-mode-function 'so-long-mode-downgrade
"Function to call during `set-auto-mode' when a file-local mode is set.
-This affects the behaviour of `global-so-long-mode'.
+This affects the behavior of `global-so-long-mode'.
The specified function will be called with a single argument, being the
file-local mode which was established.
@@ -855,7 +855,7 @@
or `so-long-minor-mode'. If `so-long-revert' is subsequently invoked, then the
disabled modes are re-enabled by calling them with the numeric argument 1.
-`so-long-hook' can be used where more custom behaviour is desired.
+`so-long-hook' can be used where more custom behavior is desired.
Please submit bug reports to recommend additional modes for this list, whether
they are in Emacs core, GNU ELPA, or elsewhere."
@@ -1312,7 +1312,7 @@
(if so-long-minor-mode ;; We are enabling the mode.
(progn
;; Housekeeping. `so-long-minor-mode' might be invoked directly rather
- ;; than via `so-long', so replicate the necessary behaviours. The minor
+ ;; than via `so-long', so replicate the necessary behaviors. The minor
;; mode also cares about whether `so-long' was already active, as we do
;; not want to remember values which were (potentially) overridden
;; already.
@@ -1387,9 +1387,9 @@
Use \\[so-long-commentary] for more information.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/subr.el
^
|
@@ -1754,6 +1754,8 @@
(make-obsolete-variable 'operating-system-release nil "28.1")
(make-obsolete 'run-window-configuration-change-hook nil "27.1")
+(make-obsolete 'process-filter-multibyte-p nil "23.1")
+(make-obsolete 'set-process-filter-multibyte nil "23.1")
(make-obsolete-variable 'command-debug-status
"expect it to be removed in a future version." "25.2")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/term.el
^
|
@@ -78,7 +78,7 @@
;; directory/username/host tracking: the only drawback is that you will
;; have to modify your shell start-up script. It's worth it, believe me :).
;;
-;; When you rlogin/su/telnet and the account you access has a modified
+;; When you ssh/sudo/su and the account you access has a modified
;; startup script, you will be able to access the remote files as usual
;; with C-x C-f, if it's needed you will have to enter a password,
;; otherwise the file should get loaded straight away.
|
[-]
[+]
|
Added |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/term/fbterm.el
^
|
@@ -0,0 +1,27 @@
+;;; fbterm.el -*- lexical-binding:t -*-
+
+;; Copyright (C) 2022 Free Software Foundation, Inc.
+
+;; Note that, in some versions of fbterm, the TERM environment
+;; variable is set to "linux". When that's the case, the code below
+;; will not be executed, and only 8 colors will be available. It is
+;; therefore necessary, with these versions of fbterm, to set that
+;; environment variable to "fbterm" to enable its 256 color mode
+;; extension. See also the node "Emacs in a Linux console" of the
+;; Emacs FAQ.
+
+(require 'term/xterm)
+
+(defun terminal-init-fbterm ()
+ "Terminal initialization function for fbterm."
+
+ ;; fbterm can't display underlines, even though its terminfo data
+ ;; says it can.
+ (tty-no-underline)
+
+ ;; fbterm supports xterm's 256 color mode extension.
+ (xterm-register-default-colors xterm-standard-colors))
+
+(provide 'term/fbterm)
+
+;;; fbterm.el ends here
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/term/linux.el
^
|
@@ -17,6 +17,10 @@
(ignore-errors (when gpm-mouse-mode (require 't-mouse) (gpm-mouse-enable)))
+ ;; Don't translate ESC TAB to backtab as directed
+ ;; by ncurses-6.3.
+ (define-key input-decode-map "\e\t" nil)
+
;; Make Latin-1 input characters work, too.
;; Meta will continue to work, because the kernel
;; turns that into Escape.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/textmodes/artist.el
^
|
@@ -46,8 +46,8 @@
;;
;; * Rubber-banding: When drawing lines you can interactively see the
;; result while holding the mouse button down and moving the mouse. If
-;; your machine is not fast enough (a 386 is a bit to slow, but a
-;; pentium is well enough), you can turn this feature off. You will
+;; your machine is not fast enough (a 386 is a bit too slow, but a
+;; Pentium is good enough), you can turn this feature off. You will
;; then see 1's and 2's which mark the 1st and 2nd endpoint of the line
;; you are drawing.
;;
@@ -75,10 +75,10 @@
;; * Flood-filling: You can fill any area with a certain character by
;; flood-filling.
;;
-;; * Cut copy and paste: You can cut, copy and paste rectangular
+;; * Cut, copy and paste: You can cut, copy and paste rectangular
;; regions. Artist also interfaces with the rect package (this can be
;; turned off if it causes you any trouble) so anything you cut in
-;; artist can be yanked with C-x r y and vice versa.
+;; artist can be yanked with `C-x r y' and vice versa.
;;
;; * Drawing with keys: Everything you can do with the mouse, you can
;; also do without the mouse.
@@ -86,7 +86,7 @@
;; * Arrows: After having drawn a (straight) line or a (straight)
;; poly-line, you can set arrows on the line-ends by typing < or >.
;;
-;; * Aspect-ratio: You can set the variable artist-aspect-ratio to
+;; * Aspect-ratio: You can set the user option `artist-aspect-ratio' to
;; reflect the height-width ratio for the font you are using. Squares
;; and circles are then drawn square/round. Note, that once your
;; ascii-file is shown with font with a different height-width ratio,
@@ -95,7 +95,7 @@
;; * Picture mode compatibility: Artist is picture mode compatible (this
;; can be turned off).
;;
-;; See the documentation for the function artist-mode for a detailed
+;; See the documentation for the function `artist-mode' for a detailed
;; description on how to use artist.
;;
;;
@@ -119,8 +119,8 @@
;;; Known bugs:
;; It is not possible to change between shifted and unshifted operation
-;; while drawing with the mouse. (See the comment in the function
-;; artist-shift-has-changed for further details.)
+;; while drawing with the mouse. (See the comment in the function
+;; `artist-shift-has-changed' for further details.)
;;; ChangeLog:
@@ -149,9 +149,9 @@
;;
;; 1.2.1 15-Nov-2000
;; New: Documentation fixes.
-;; Bugfix: Sets next-line-add-newlines to t while in artist-mode.
+;; Bugfix: Set `next-line-add-newlines' to t while in `artist-mode'.
;; Drawing with keys was confusing without this fix, if
-;; next-line-add-newlines was set to nil.
+;; `next-line-add-newlines' was set to nil.
;; Thanks to Tatsuo Furukawa <tatsuo@kobe.hp.com> for this.
;;
;; 1.2 22-Oct-2000
@@ -462,7 +462,7 @@
(if artist-picture-compatibility
(require 'picture))
-;; Variables that are made local in artist-mode-init
+;; Variables that are made local in `artist-mode-init'
(defvar artist-key-is-drawing nil)
(defvar artist-key-endpoint1 nil)
(defvar artist-key-poly-point-list nil)
@@ -1334,25 +1334,25 @@
This is a brief overview of the different variables. For more info,
see the documentation for the variables (type \\[describe-variable] <variable> RET).
- artist-rubber-banding Interactively do rubber-banding or not
- artist-first-char What to set at first/second point...
- artist-second-char ...when not rubber-banding
- artist-interface-with-rect If cut/copy/paste should interface with rect
- artist-arrows The arrows to use when drawing arrows
- artist-aspect-ratio Character height-to-width for squares
- artist-trim-line-endings Trimming of line endings
- artist-flood-fill-right-border Right border when flood-filling
- artist-flood-fill-show-incrementally Update display while filling
- artist-pointer-shape Pointer shape to use while drawing
- artist-ellipse-left-char Character to use for narrow ellipses
- artist-ellipse-right-char Character to use for narrow ellipses
- artist-borderless-shapes If shapes should have borders
- artist-picture-compatibility Whether or not to be picture mode compatible
- artist-vaporize-fuzziness Tolerance when recognizing lines
- artist-spray-interval Seconds between repeated sprayings
- artist-spray-radius Size of the spray-area
- artist-spray-chars The spray-\"color\"
- artist-spray-new-chars Initial spray-\"color\"
+ `artist-rubber-banding' Interactively do rubber-banding or not
+ `artist-first-char' What to set at first/second point...
+ `artist-second-char' ...when not rubber-banding
+ `artist-interface-with-rect' Should cut/copy/paste interface with rect
+ `artist-arrows' The arrows to use when drawing arrows
+ `artist-aspect-ratio' Character height-to-width for squares
+ `artist-trim-line-endings' Trimming of line endings
+ `artist-flood-fill-right-border' Right border when flood-filling
+ `artist-flood-fill-show-incrementally' Update display while filling
+ `artist-pointer-shape' Pointer shape to use while drawing
+ `artist-ellipse-left-char' Character to use for narrow ellipses
+ `artist-ellipse-right-char' Character to use for narrow ellipses
+ `artist-borderless-shapes' If shapes should have borders
+ `artist-picture-compatibility' Picture mode compatibility on or off
+ `artist-vaporize-fuzziness' Tolerance when recognizing lines
+ `artist-spray-interval' Seconds between repeated sprayings
+ `artist-spray-radius' Size of the spray-area
+ `artist-spray-chars' The spray-\"color\"
+ `artist-spray-new-char' Initial spray-\"color\"
Hooks
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/textmodes/dns-mode.el
^
|
@@ -165,7 +165,7 @@
;;;###autoload
(define-derived-mode dns-mode text-mode "DNS"
"Major mode for viewing and editing DNS master files.
-This mode is inherited from text mode. It add syntax
+This mode is derived from text mode. It adds syntax
highlighting, and some commands for handling DNS master files.
Its keymap inherits from `text-mode' and it has the same
variables for customizing indentation. It has its own abbrev
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/textmodes/etc-authors-mode.el
^
|
@@ -2,7 +2,7 @@
;; Copyright (C) 2021-2022 Free Software Foundation, Inc.
-;; Author: Stefan Kangas <stefan@marxist.se>
+;; Author: Stefan Kangas <stefankangas@gmail.com>
;; Keywords: internal
;; This file is part of GNU Emacs.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/textmodes/reftex-global.el
^
|
@@ -88,6 +88,12 @@
(defun reftex-query-replace-document (&optional from to delimited)
"Do `query-replace-regexp' of FROM with TO over the entire document.
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
with the command \\[tags-loop-continue].
No active TAGS table is required."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/textmodes/rst.el
^
|
@@ -48,10 +48,10 @@
;; the contents of this package and how to use it.
;;
;; For more information about reStructuredText, see
-;; http://docutils.sourceforge.net/rst.html
+;; https://docutils.sourceforge.io/rst.html
;;
;; For full details on how to use the contents of this file, see
-;; http://docutils.sourceforge.net/docs/user/emacs.html
+;; https://docutils.sourceforge.io/docs/user/emacs.html
;;
;; There are a number of convenient key bindings provided by rst-mode. For the
;; bindings, try C-c C-h when in rst-mode. There are also many variables that
@@ -72,7 +72,7 @@
;;; DOWNLOAD
;; The latest release of this file lies in the docutils source code repository:
-;; http://docutils.svn.sourceforge.net/svnroot/docutils/trunk/docutils/tools/editors/emacs/rst.el
+;; https://sourceforge.net/p/docutils/code/HEAD/tree/trunk/docutils/tools/editors/emacs/rst.el
;;; INSTALLATION
@@ -81,7 +81,7 @@
;; (require 'rst)
;;
;; If you are using `.txt' as a standard extension for reST files as
-;; http://docutils.sourceforge.net/FAQ.html#what-s-the-standard-filename-extension-for-a-restructuredtext-file
+;; https://docutils.sourceforge.io/FAQ.html#what-s-the-standard-filename-extension-for-a-restructuredtext-file
;; suggests you may use one of the `Local Variables in Files' mechanism Emacs
;; provides to set the major mode automatically. For instance you may use::
;;
@@ -274,7 +274,7 @@
(defgroup rst nil "Support for reStructuredText documents."
:group 'text
:version "23.1"
- :link '(url-link "http://docutils.sourceforge.net/rst.html"))
+ :link '(url-link "https://docutils.sourceforge.io/rst.html"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -3786,7 +3786,7 @@
(defvar rst-font-lock-keywords
;; The reST-links in the comments below all relate to sections in
- ;; http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html.
+ ;; https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html.
`(;; FIXME: Block markup is not recognized in blocks after explicit markup
;; start.
@@ -4402,7 +4402,7 @@
;; FIXME: Add `rst-compile-html-preview'.
-;; FIXME: Add support for `restview` (http://mg.pov.lt/restview/). May be a
+;; FIXME: Add support for `restview` (https://mg.pov.lt/restview/). May be a
;; more general facility for calling commands on a reST file would make
;; sense.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/uniquify.el
^
|
@@ -110,7 +110,7 @@
post-forward-angle-brackets could be:
(defun my-post-forward-angle-brackets (base extra-string)
- (concat base \"<\" (mapconcat #'identity extra-string \"/\") \">\"))
+ (concat base \"<\" (mapconcat #\\='identity extra-string \"/\") \">\"))
The \"mumble\" part may be stripped as well, depending on the
setting of `uniquify-strip-common-suffix'. For more options that
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/url/url-http.el
^
|
@@ -698,7 +698,7 @@
;; gives the URI of the proxy. The recipient is expected
;; to repeat this single request via the proxy. 305
;; responses MUST only be generated by origin servers.
- (error "Redirection thru a proxy server not supported: %s"
+ (error "Redirection through a proxy server not supported: %s"
redirect-uri))
(_
;; Treat everything like '300'
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/diff-mode.el
^
|
@@ -27,8 +27,8 @@
;; to the corresponding source file.
;; Inspired by Pavel Machek's patch-mode.el (<pavel@@atrey.karlin.mff.cuni.cz>)
-;; Some efforts were spent to have it somewhat compatible with XEmacs's
-;; diff-mode as well as with compilation-minor-mode
+;; Some efforts were spent to have it somewhat compatible with
+;; `compilation-minor-mode'.
;; Bugs:
@@ -2053,7 +2053,7 @@
(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
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/ediff.el
^
|
@@ -89,12 +89,11 @@
;; underlining. However, if the region is already underlined by some other
;; overlays, there is no simple way to temporarily remove that residual
;; underlining. This problem occurs when a buffer is highlighted with
-;; hilit19.el or font-lock.el packages. If this residual highlighting gets
-;; in the way, you can do the following. Both font-lock.el and hilit19.el
-;; provide commands for unhighlighting buffers. You can either place these
-;; commands in `ediff-prepare-buffer-hook' (which will unhighlight every
-;; buffer used by Ediff) or you can execute them interactively, at any time
-;; and on any buffer.
+;; font-lock.el. If this residual highlighting gets in the way, you
+;; can use the font-lock.el commands for unhighlighting buffers.
+;; Either place these commands in `ediff-prepare-buffer-hook' (which will
+;; unhighlight every buffer used by Ediff) or execute them
+;; interactively, which you can do at any time and in any buffer.
;;; Acknowledgments:
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-bzr.el
^
|
@@ -640,7 +640,7 @@
;; Could run `bzr status' in the directory and see if it succeeds, but
;; that's relatively expensive.
(defalias 'vc-bzr-responsible-p #'vc-bzr-root
- "Return non-nil if FILE is (potentially) controlled by bzr.
+ "Return the directory if FILE is (potentially) controlled by bzr.
The criterion is that there is a `.bzr' directory in the same
or a superior directory.")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-cvs.el
^
|
@@ -308,11 +308,12 @@
(vc-switches 'CVS 'register)))
(defun vc-cvs-responsible-p (file)
- "Return non-nil if CVS thinks it is responsible for FILE."
- (file-directory-p (expand-file-name "CVS"
- (if (file-directory-p file)
- file
- (file-name-directory file)))))
+ "Return the directory if CVS thinks it is responsible for FILE."
+ (let ((dir (if (file-directory-p file)
+ file
+ (file-name-directory file))))
+ (and (file-directory-p (expand-file-name "CVS" dir))
+ (file-name-directory (expand-file-name "CVS" dir)))))
(defun vc-cvs-could-register (file)
"Return non-nil if FILE could be registered in CVS.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-dav.el
^
|
@@ -136,10 +136,10 @@
"Find the version control state of all files in DIR in a fast way."
)
-(defun vc-dav-responsible-p (_url)
- "Return non-nil if DAV considers itself `responsible' for URL."
+(defun vc-dav-responsible-p (url)
+ "Return the URL if DAV considers itself `responsible' for URL."
;; Check for DAV support on the web server.
- t)
+ url)
;;; Unimplemented functions
;;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-dir.el
^
|
@@ -924,7 +924,7 @@
"Search through all marked files for a match for REGEXP.
For marked directories, use the files displayed from those directories.
Stops when a match is found.
-To continue searching for next match, use command \\[tags-loop-continue]."
+To continue searching for next match, use command \\[fileloop-continue]."
(interactive "sSearch marked files (regexp): ")
(tags-search regexp
(mapcar #'car (vc-dir-marked-only-files-and-states))))
@@ -933,8 +933,14 @@
"Do `query-replace-regexp' of FROM with TO, on all marked files.
If a directory is marked, then use the files displayed for that directory.
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
+
+As each match is found, the user must type a character saying
+what to do with it. Type SPC or `y' to replace the match,
+DEL or `n' to skip and go to the next match. For more directions,
+type \\[help-command] at that time.
+
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
-with the command \\[tags-loop-continue]."
+with the command \\[fileloop-continue]."
;; FIXME: this is almost a copy of `dired-do-query-replace-regexp'. This
;; should probably be made generic and used in both places instead of
;; duplicating it here.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-rcs.el
^
|
@@ -288,12 +288,13 @@
(match-string 1))))))
(defun vc-rcs-responsible-p (file)
- "Return non-nil if RCS thinks it would be responsible for registering FILE."
+ "Return the directory if RCS thinks it would be responsible for FILE."
;; TODO: check for all the patterns in vc-rcs-master-templates
- (file-directory-p (expand-file-name "RCS"
- (if (file-directory-p file)
- file
- (file-name-directory file)))))
+ (let ((dir (if (file-directory-p file)
+ file
+ (file-name-directory file))))
+ (and (file-directory-p (expand-file-name "RCS" dir))
+ (file-name-directory (expand-file-name "RCS" dir)))))
(defun vc-rcs-receive-file (file rev)
"Implementation of receive-file for RCS."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-sccs.el
^
|
@@ -212,11 +212,15 @@
(vc-sccs-do-command nil 0 "get" (vc-master-name file)))))
(defun vc-sccs-responsible-p (file)
- "Return non-nil if SCCS thinks it would be responsible for registering FILE."
+ "Return the directory if SCCS thinks it would be responsible for FILE."
;; TODO: check for all the patterns in vc-sccs-master-templates
- (or (file-directory-p (expand-file-name "SCCS" (file-name-directory file)))
- (stringp (vc-sccs-search-project-dir (or (file-name-directory file) "")
- (file-name-nondirectory file)))))
+ (or (and (file-directory-p
+ (expand-file-name "SCCS" (file-name-directory file)))
+ file)
+ (let ((dir (vc-sccs-search-project-dir (or (file-name-directory file) "")
+ (file-name-nondirectory file))))
+ (and (stringp dir)
+ dir))))
(defun vc-sccs-checkin (files comment &optional rev)
"SCCS-specific version of `vc-backend-checkin'."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc-src.el
^
|
@@ -242,11 +242,13 @@
(vc-src-command nil files "add"))
(defun vc-src-responsible-p (file)
- "Return non-nil if SRC thinks it would be responsible for registering FILE."
- (file-directory-p (expand-file-name ".src"
- (if (file-directory-p file)
- file
- (file-name-directory file)))))
+ "Return the directory if SRC thinks it would be responsible for FILE."
+ (let ((dir (expand-file-name ".src"
+ (if (file-directory-p file)
+ file
+ (file-name-directory file)))))
+ (and (file-directory-p dir)
+ dir)))
(defun vc-src-checkin (files comment &optional _rev)
"SRC-specific version of `vc-backend-checkin'.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/vc/vc.el
^
|
@@ -220,7 +220,7 @@
;;
;; - responsible-p (file)
;;
-;; Return non-nil if this backend considers itself "responsible" for
+;; Return the directory if this backend considers itself "responsible" for
;; FILE, which can also be a directory. This function is used to find
;; out what backend to use for registration of new files and for things
;; like change log generation. The default implementation always
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/wdired.el
^
|
@@ -27,16 +27,16 @@
;; wdired.el (the "w" is for writable) provides an alternative way of
;; renaming files.
;;
-;; Have you ever wanted to use C-x r t (string-rectangle), M-%
-;; (query-replace), M-c (capitalize-word), etc... to change the name of
-;; the files in a "dired" buffer? Now you can do this. All the power
-;; of Emacs commands are available when renaming files!
+;; Have you ever wanted to use `C-x r t' (`string-rectangle'), `M-%'
+;; (`query-replace'), `M-c' (`capitalize-word'), etc... to change the
+;; name of the files in a Dired buffer? Now you can do this. All the
+;; power of Emacs commands are available when renaming files!
;;
;; This package provides a function that makes the filenames of a
-;; dired buffer editable, by changing the buffer mode (which inhibits
-;; all of the commands of dired mode). Here you can edit the names of
-;; one or more files and directories, and when you press C-c C-c, the
-;; renaming takes effect and you are back to dired mode.
+;; Dired buffer editable, by changing the buffer mode (which inhibits
+;; all of the commands of Dired mode). Here you can edit the names of
+;; one or more files and directories, and when you press `C-c C-c',
+;; the renaming takes effect and you are back to dired mode.
;;
;; Other things you can do with WDired:
;;
@@ -46,11 +46,11 @@
;; - Change the target of symbolic links.
;;
;; - Change the permission bits of the filenames (in systems with a
-;; working unix-alike `dired-chmod-program'). See and customize the
-;; variable `wdired-allow-to-change-permissions'. To change a single
-;; char (toggling between its two more usual values) you can press
-;; the space bar over it or left-click the mouse. To set any char to
-;; an specific value (this includes the SUID, SGID and STI bits) you
+;; working unix-alike "chmod"). See and customize the variable
+;; `wdired-allow-to-change-permissions'. To change a single char
+;; (toggling between its two more usual values), you can press the
+;; space bar over it or left-click the mouse. To set any char to a
+;; specific value (this includes the SUID, SGID and STI bits) you
;; can use the key labeled as the letter you want. Please note that
;; permissions of the links cannot be changed in that way, because
;; the change would affect to their targets, and this would not be
@@ -58,18 +58,14 @@
;;
;; - Mark files for deletion, by deleting their whole filename.
-;;; Usage:
+;; * Usage:
-;; You can edit the names of the files by typing C-x C-q or by
-;; executing M-x wdired-change-to-wdired-mode. Use C-c C-c when
-;; finished or C-c C-k to abort. While editing filenames, a new
-;; submenu "WDired" is available at top level. You can customize the
-;; behavior of this package from this menu.
-
-;;; Change Log:
-
-;; Previous versions with complete changelogs were posted to
-;; gnu.emacs.sources.
+;; You can edit the names of the files by typing `C-x C-q' or
+;; `M-x wdired-change-to-wdired-mode'. Use `C-c C-c' when
+;; finished or `C-c C-k' to abort.
+;;
+;; You can customize the behavior of this package from the "WDired"
+;; menu or with `M-x customize-group RET wdired RET'.
;;; Code:
@@ -127,8 +123,8 @@
newlines), but if you want your changes to be useful, you better put a
intelligible value.
-Anyway, the real change of the permissions is done by the external
-program `dired-chmod-program', which must exist."
+The real change of the permissions is done by the external
+program \"chmod\", which must exist."
:type '(choice (const :tag "Not allowed" nil)
(const :tag "Toggle/set bits" t)
(other :tag "Bits freely editable" advanced)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/whitespace.el
^
|
@@ -276,116 +276,116 @@
It's a list containing some or all of the following values:
- face enable all visualization via faces (see below).
+ face enable all visualization via faces (see below).
- trailing trailing blanks are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- tabs TABs are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- spaces SPACEs and HARD SPACEs are visualized via
- faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- lines lines which have columns beyond
- `whitespace-line-column' are highlighted via
- faces.
- Whole line is highlighted.
- It has precedence over `lines-tail' (see
- below).
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- lines-tail lines which have columns beyond
- `whitespace-line-column' are highlighted via
- faces.
- But only the part of line which goes
- beyond `whitespace-line-column' column.
- It has effect only if `lines' (see above)
- is not present in `whitespace-style'
- and if `face' (see above) is present in
- `whitespace-style'.
-
- newline NEWLINEs are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
+ trailing trailing blanks are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ tabs TABs are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ spaces SPACEs and HARD SPACEs are visualized via
+ faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ lines lines which have columns beyond
+ `whitespace-line-column' are highlighted via
+ faces.
+ Whole line is highlighted.
+ It has precedence over `lines-tail' (see
+ below).
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ lines-tail lines which have columns beyond
+ `whitespace-line-column' are highlighted via
+ faces.
+ But only the part of line which goes
+ beyond `whitespace-line-column' column.
+ It has effect only if `lines' (see above)
+ is not present in `whitespace-style'
+ and if `face' (see above) is present in
+ `whitespace-style'.
+
+ newline NEWLINEs are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
missing-newline-at-eof Missing newline at the end of the file is
visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
- empty empty lines at beginning and/or end of buffer
- are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- indentation::tab `tab-width' or more SPACEs at beginning of line
- are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- indentation::space TABs at beginning of line are visualized via
- faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- indentation `tab-width' or more SPACEs at beginning of line
- are visualized, if `indent-tabs-mode' (which
- see) is non-nil; otherwise, TABs at beginning
- of line are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- big-indent Big indentations are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-after-tab::tab `tab-width' or more SPACEs after a TAB
- are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-after-tab::space TABs are visualized when `tab-width' or
- more SPACEs occur after a TAB, via
- faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-after-tab `tab-width' or more SPACEs after a TAB
- are visualized, if `indent-tabs-mode'
- (which see) is non-nil; otherwise,
- the TABs are visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-before-tab::tab SPACEs before TAB are visualized via
- faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-before-tab::space TABs are visualized when SPACEs occur
- before TAB, via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
-
- space-before-tab SPACEs before TAB are visualized, if
- `indent-tabs-mode' (which see) is
- non-nil; otherwise, the TABs are
- visualized via faces.
- It has effect only if `face' (see above)
- is present in `whitespace-style'.
+ empty empty lines at beginning and/or end of buffer
+ are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ indentation::tab `tab-width' or more SPACEs at beginning of line
+ are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ indentation::space TABs at beginning of line are visualized via
+ faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ indentation `tab-width' or more SPACEs at beginning of line
+ are visualized, if `indent-tabs-mode' (which
+ see) is non-nil; otherwise, TABs at beginning
+ of line are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ big-indent Big indentations are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-after-tab::tab `tab-width' or more SPACEs after a TAB
+ are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-after-tab::space TABs are visualized when `tab-width' or
+ more SPACEs occur after a TAB, via
+ faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-after-tab `tab-width' or more SPACEs after a TAB
+ are visualized, if `indent-tabs-mode'
+ (which see) is non-nil; otherwise,
+ the TABs are visualized via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-before-tab::tab SPACEs before TAB are visualized via
+ faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-before-tab::space TABs are visualized when SPACEs occur
+ before TAB, via faces.
+ It has effect only if `face' (see above)
+ is present in `whitespace-style'.
+
+ space-before-tab SPACEs before TAB are visualized, if
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/lisp/windmove.el
^
|
@@ -787,7 +787,7 @@
(const :tag "Hyper" hyper)
(const :tag "Super" super)
(const :tag "Alt" alt))))
- "Customisation type for windmove modifiers.")
+ "Customization type for windmove modifiers.")
(defcustom windmove-default-keybindings nil
"Default keybindings for regular windmove commands.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/make-dist
^
|
@@ -485,6 +485,8 @@
esac
echo "Creating tar file"
taropt='--numeric-owner --owner=0 --group=0 --mode=go+u,go-w'
+ tar -H ustar -cf /dev/null $tempdir/src/lisp.h 2>/dev/null &&
+ taropt="$taropt -H ustar"
tar --sort=name -cf /dev/null $tempdir/src/lisp.h 2>/dev/null &&
taropt="$taropt --sort=name"
[ "$verbose" = "yes" ] && taropt="$taropt --verbose"
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/msdos/sed1v2.inp
^
|
@@ -179,6 +179,8 @@
/^PAXCTL_dumped *=/s/=.*$/=/
/^PAXCTL_notdumped *=/s/=.*$/=/
/^DUMPING *=/s/@DUMPING@/unexec/
+/^[ \t]*MAKE_PDUMPER_FINGERPRINT = *$/c\
+MAKE_PDUMPER_FINGERPRINT =
/^lisp\.mk:/,/^$/c\
lisp.mk: $(lispsource)/loadup.el\
@rm -f $@\
@@ -190,6 +192,10 @@
/^ [ ]*\$(AM_V_at)\$(libsrc)\/make-docfile -d/s!make-docfile!make-docfile -o $(etc)/DOC!
/ > \$(etc)\/DOC *$/s/ >.*$//
+/^\$(etc)\/DOC/,/^$/{
+ /^$/i\
+ cd ../src
+}
/^ [ ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-docfile.*>.*globals.tmp/s!make-docfile!make-docfile -o globals.tmp!
/^ [ ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-doc/s!>.*$!!
/^\$(libsrc)\/make-docfile\$(EXEEXT): /i\
@@ -255,4 +261,4 @@
s| -I\. -I\$(srcdir)| -I.|
/^ *test "X/d
/\$(CC) -o \$@.tmp/s/\$@.tmp/\$@/
-/mv \$@.tmp \$@/d
\ No newline at end of file
+/mv \$@.tmp \$@/d
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/msdos/sed2v2.inp
^
|
@@ -67,7 +67,7 @@
/^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
/^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
-/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "28.1"/
+/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "28.2"/
/^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/msdos/sedlibmk.inp
^
|
@@ -180,11 +180,14 @@
/^GL_GNULIB_ENVIRON *=/s/@GL_GNULIB_ENVIRON@/1/
/^GL_GNULIB_FDATASYNC *=/s/@GL_GNULIB_FDATASYNC@/1/
/^GL_GNULIB_GETLOADAVG *=/s/@GL_GNULIB_GETLOADAVG@/1/
+/^GL_GNULIB_GETRANDOM *=/s/@GL_GNULIB_GETRANDOM@/1/
/^GL_GNULIB_UNISTD_H_GETOPT *=/s/@GL_GNULIB_UNISTD_H_GETOPT@/1/
+/^GL_GNULIB_MEMMEM *=/s/@GL_GNULIB_MEMMEM@/1/
/^GL_GNULIB_MEMRCHR *=/s/@GL_GNULIB_MEMRCHR@/1/
/^GL_GNULIB_MEMPCPY *=/s/@GL_GNULIB_MEMPCPY@/1/
/^GL_GNULIB_MKOSTEMP *=/s/@GL_GNULIB_MKOSTEMP@/1/
/^GL_GNULIB_MKTIME *=/s/@GL_GNULIB_MKTIME@/1/
+/^GL_GNULIB_SIGDESCR_NP *=/s/@GL_GNULIB_SIGDESCR_NP@/1/
/^GL_GNULIB_TIME_R *=/s/@GL_GNULIB_TIME_R@/1/
/^GL_GNULIB_TIMEGM *=/s/@GL_GNULIB_TIMEGM@/1/
/^GL_GNULIB_TIME_RZ *=/s/@GL_GNULIB_TIME_RZ@/1/
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/nt/README.W32
^
|
@@ -1,7 +1,7 @@
Copyright (C) 2001-2022 Free Software Foundation, Inc.
See the end of the file for license conditions.
- Emacs version 28.1 for MS-Windows
+ Emacs version 28.2 for MS-Windows
This README file describes how to set up and run a precompiled
distribution of the latest version of GNU Emacs for MS-Windows. You
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/alloc.c
^
|
@@ -6145,6 +6145,11 @@
mark_fringe_data ();
#endif
+
+#ifdef HAVE_NS
+ mark_nsterm ();
+#endif
+
/* Everything is now marked, except for the data in font caches,
undo lists, and finalizers. The first two are compacted by
removing an items which aren't reachable otherwise. */
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/buffer.c
^
|
@@ -5580,7 +5580,7 @@
DEFVAR_PER_BUFFER ("mode-line-format", &BVAR (current_buffer, mode_line_format),
Qnil,
- doc: /* Template for displaying mode line for current buffer.
+ doc: /* Template for displaying mode line for a window's buffer.
The value may be nil, a string, a symbol or a list.
@@ -5593,6 +5593,9 @@
`risky-local-variable' property, all properties in any strings, as
well as all :eval and :propertize forms in the value, are ignored.
+When the value is processed, the window's buffer is temporarily the
+current buffer.
+
A list whose car is a string or list is processed by processing each
of the list elements recursively, as separate mode line constructs,
and concatenating the results.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/callproc.c
^
|
@@ -1335,7 +1335,8 @@
}
static int
-emacs_posix_spawn_init_attributes (posix_spawnattr_t *attributes)
+emacs_posix_spawn_init_attributes (posix_spawnattr_t *attributes,
+ const sigset_t *oldset)
{
int error = posix_spawnattr_init (attributes);
if (error != 0)
@@ -1377,11 +1378,7 @@
goto out;
/* Stop blocking SIGCHLD in the child. */
- sigset_t oldset;
- error = pthread_sigmask (SIG_SETMASK, NULL, &oldset);
- if (error != 0)
- goto out;
- error = posix_spawnattr_setsigmask (attributes, &oldset);
+ error = posix_spawnattr_setsigmask (attributes, oldset);
if (error != 0)
goto out;
@@ -1392,23 +1389,6 @@
return error;
}
-static int
-emacs_posix_spawn_init (posix_spawn_file_actions_t *actions,
- posix_spawnattr_t *attributes, int std_in,
- int std_out, int std_err, const char *cwd)
-{
- int error = emacs_posix_spawn_init_actions (actions, std_in,
- std_out, std_err, cwd);
- if (error != 0)
- return error;
-
- error = emacs_posix_spawn_init_attributes (attributes);
- if (error != 0)
- return error;
-
- return 0;
-}
-
#endif
/* Start a new asynchronous subprocess. If successful, return zero
@@ -1443,9 +1423,12 @@
if (use_posix_spawn)
{
/* Initialize optional attributes before blocking. */
- int error
- = emacs_posix_spawn_init (&actions, &attributes, std_in,
- std_out, std_err, cwd);
+ int error = emacs_posix_spawn_init_actions (&actions, std_in,
+ std_out, std_err, cwd);
+ if (error != 0)
+ return error;
+
+ error = emacs_posix_spawn_init_attributes (&attributes, oldset);
if (error != 0)
return error;
}
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/comp.c
^
|
@@ -4193,7 +4193,7 @@
}
if (NILP (base_dir))
error ("Cannot find suitable directory for output in "
- "`comp-native-load-path'.");
+ "`native-comp-eln-load-path'.");
}
if (!file_name_absolute_p (SSDATA (base_dir)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/dispnew.c
^
|
@@ -1837,7 +1837,18 @@
if (FRAME_WINDOW_P (f))
adjust_frame_glyphs_for_window_redisplay (f);
else
- adjust_frame_glyphs_for_frame_redisplay (f);
+ {
+ adjust_frame_glyphs_for_frame_redisplay (f);
+ eassert (FRAME_INITIAL_P (f)
+ || noninteractive
+ || !initialized
+ || (f->current_matrix
+ && f->current_matrix->nrows > 0
+ && f->current_matrix->rows
+ && f->desired_matrix
+ && f->desired_matrix->nrows > 0
+ && f->desired_matrix->rows));
+ }
/* Don't forget the buffer for decode_mode_spec. */
adjust_decode_mode_spec_buffer (f);
@@ -2118,6 +2129,19 @@
adjust_glyph_matrix (NULL, f->current_matrix, 0, 0, matrix_dim);
SET_FRAME_GARBAGED (f);
}
+ }
+ else if (!FRAME_INITIAL_P (f) && !noninteractive && initialized)
+ {
+ if (!f->desired_matrix->nrows || !f->desired_matrix->rows)
+ {
+ adjust_glyph_matrix (NULL, f->desired_matrix, 0, 0, matrix_dim);
+ SET_FRAME_GARBAGED (f);
+ }
+ if (!f->current_matrix->nrows || !f->current_matrix->rows)
+ {
+ adjust_glyph_matrix (NULL, f->current_matrix, 0, 0, matrix_dim);
+ SET_FRAME_GARBAGED (f);
+ }
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/emacs.c
^
|
@@ -940,20 +940,24 @@
sprintf (dump_file, "%s%c%s%s",
path_exec, DIRECTORY_SEP, argv0_base, suffix);
#if !defined (NS_SELF_CONTAINED)
- /* Assume the Emacs binary lives in a sibling directory as set up by
- the default installation configuration. */
- const char *go_up = "../../../../bin/";
- needed += (strip_suffix ? strlen (strip_suffix) : 0)
- - strlen (suffix) + strlen (go_up);
- if (exec_bufsize < needed)
- {
- xfree (emacs_executable);
- emacs_executable = xpalloc (NULL, &exec_bufsize, needed - exec_bufsize,
- -1, 1);
- }
- sprintf (emacs_executable, "%s%c%s%s%s",
- path_exec, DIRECTORY_SEP, go_up, argv0_base,
- strip_suffix ? strip_suffix : "");
+ if (!(emacs_executable && *emacs_executable))
+ {
+ /* If we didn't find the Emacs binary, assume that it lives in a
+ sibling directory as set up by the default installation
+ configuration. */
+ const char *go_up = "../../../../bin/";
+ needed += (strip_suffix ? strlen (strip_suffix) : 0)
+ - strlen (suffix) + strlen (go_up);
+ if (exec_bufsize < needed)
+ {
+ xfree (emacs_executable);
+ emacs_executable = xpalloc (NULL, &exec_bufsize,
+ needed - exec_bufsize, -1, 1);
+ }
+ sprintf (emacs_executable, "%s%c%s%s%s",
+ path_exec, DIRECTORY_SEP, go_up, argv0_base,
+ strip_suffix ? strip_suffix : "");
+ }
#endif
result = pdumper_load (dump_file, emacs_executable);
@@ -1365,7 +1369,7 @@
related to the GUI system, like -font, -geometry, and -title, and
then processes the rest of arguments whose priority is below
those that are related to the GUI system. The arguments
- porcessed by 'command-line' are removed from 'command-line-args';
+ processed by 'command-line' are removed from 'command-line-args';
the arguments processed by 'command-line-1' aren't, they are only
removed from 'command-line-args-left'.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/fileio.c
^
|
@@ -3510,8 +3510,9 @@
Only the 12 low bits of MODE are used. If optional FLAG is `nofollow',
do not follow FILENAME if it is a symbolic link.
-Interactively, mode bits are read by `read-file-modes', which accepts
-symbolic notation, like the `chmod' command from GNU Coreutils. */)
+Interactively, prompt for FILENAME, and read MODE with
+`read-file-modes', which accepts symbolic notation, like the `chmod'
+command from GNU Coreutils. */)
(Lisp_Object filename, Lisp_Object mode, Lisp_Object flag)
{
CHECK_FIXNUM (mode);
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/filelock.c
^
|
@@ -413,14 +413,13 @@
Return 0 if successful, an error number on failure. */
static int
-lock_file_1 (char *lfname, bool force)
+lock_file_1 (Lisp_Object lfname, bool force)
{
- /* Call this first because it can GC. */
intmax_t boot = get_boot_time ();
-
Lisp_Object luser_name = Fuser_login_name (Qnil);
- char const *user_name = STRINGP (luser_name) ? SSDATA (luser_name) : "";
Lisp_Object lhost_name = Fsystem_name ();
+
+ char const *user_name = STRINGP (luser_name) ? SSDATA (luser_name) : "";
char const *host_name = STRINGP (lhost_name) ? SSDATA (lhost_name) : "";
char lock_info_str[MAX_LFINFO + 1];
intmax_t pid = getpid ();
@@ -439,7 +438,7 @@
user_name, host_name, pid))
return ENAMETOOLONG;
- return create_lock_file (lfname, lock_info_str, force);
+ return create_lock_file (SSDATA (lfname), lock_info_str, force);
}
/* Return true if times A and B are no more than one second apart. */
@@ -496,7 +495,7 @@
or an errno value if something is wrong with the locking mechanism. */
static int
-current_lock_owner (lock_info_type *owner, char *lfname)
+current_lock_owner (lock_info_type *owner, Lisp_Object lfname)
{
int ret;
lock_info_type local_owner;
@@ -510,7 +509,7 @@
owner = &local_owner;
/* If nonexistent lock file, all is well; otherwise, got strange error. */
- lfinfolen = read_lock_data (lfname, owner->user);
+ lfinfolen = read_lock_data (SSDATA (lfname), owner->user);
if (lfinfolen < 0)
return errno == ENOENT || errno == ENOTDIR ? 0 : errno;
if (MAX_LFINFO < lfinfolen)
@@ -581,7 +580,7 @@
/* The owner process is dead or has a strange pid, so try to
zap the lockfile. */
else
- return unlink (lfname) < 0 ? errno : 0;
+ return unlink (SSDATA (lfname)) < 0 ? errno : 0;
}
else
{ /* If we wanted to support the check for stale locks on remote machines,
@@ -600,7 +599,7 @@
Return positive errno value if cannot lock for any other reason. */
static int
-lock_if_free (lock_info_type *clasher, char *lfname)
+lock_if_free (lock_info_type *clasher, Lisp_Object lfname)
{
int err;
while ((err = lock_file_1 (lfname, 0)) == EEXIST)
@@ -619,10 +618,14 @@
return err;
}
+/* Return the encoded name of the lock file for FN, or nil if none. */
+
static Lisp_Object
make_lock_file_name (Lisp_Object fn)
{
- return call1 (Qmake_lock_file_name, Fexpand_file_name (fn, Qnil));
+ Lisp_Object lock_file_name = call1 (Qmake_lock_file_name,
+ Fexpand_file_name (fn, Qnil));
+ return !NILP (lock_file_name) ? ENCODE_FILE (lock_file_name) : Qnil;
}
/* lock_file locks file FN,
@@ -646,7 +649,6 @@
static Lisp_Object
lock_file (Lisp_Object fn)
{
- char *lfname = NULL;
lock_info_type lock_info;
/* Don't do locking while dumping Emacs.
@@ -655,13 +657,13 @@
if (will_dump_p ())
return Qnil;
+ Lisp_Object lfname = Qnil;
if (create_lockfiles)
{
/* Create the name of the lock-file for file fn */
- Lisp_Object lock_filename = make_lock_file_name (fn);
- if (NILP (lock_filename))
+ lfname = make_lock_file_name (fn);
+ if (NILP (lfname))
return Qnil;
- lfname = SSDATA (ENCODE_FILE (lock_filename));
}
/* See if this file is visited and has changed on disk since it was
@@ -670,11 +672,11 @@
if (!NILP (subject_buf)
&& NILP (Fverify_visited_file_modtime (subject_buf))
&& !NILP (Ffile_exists_p (fn))
- && !(lfname && current_lock_owner (NULL, lfname) == -2))
+ && !(!NILP (lfname) && current_lock_owner (NULL, lfname) == -2))
call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
/* Don't do locking if the user has opted out. */
- if (lfname)
+ if (!NILP (lfname))
{
/* Try to lock the lock. FIXME: This ignores errors when
lock_if_free returns a positive errno value. */
@@ -702,15 +704,12 @@
static Lisp_Object
unlock_file (Lisp_Object fn)
{
- char *lfname;
-
- Lisp_Object lock_filename = make_lock_file_name (fn);
- if (NILP (lock_filename))
+ Lisp_Object lfname = make_lock_file_name (fn);
+ if (NILP (lfname))
return Qnil;
- lfname = SSDATA (ENCODE_FILE (lock_filename));
int err = current_lock_owner (0, lfname);
- if (err == -2 && unlink (lfname) != 0 && errno != ENOENT)
+ if (err == -2 && unlink (SSDATA (lfname)) != 0 && errno != ENOENT)
err = errno;
if (0 < err)
report_file_errno ("Unlocking file", fn, err);
@@ -854,10 +853,9 @@
return call2 (handler, Qfile_locked_p, filename);
}
- Lisp_Object lock_filename = make_lock_file_name (filename);
- if (NILP (lock_filename))
+ Lisp_Object lfname = make_lock_file_name (filename);
+ if (NILP (lfname))
return Qnil;
- char *lfname = SSDATA (ENCODE_FILE (lock_filename));
owner = current_lock_owner (&locker, lfname);
switch (owner)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/fns.c
^
|
@@ -3112,7 +3112,7 @@
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
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/font.c
^
|
@@ -4199,26 +4199,33 @@
DEFUN ("font-get", Ffont_get, Sfont_get, 2, 2, 0,
doc: /* Return the value of FONT's property KEY.
FONT is a font-spec, a font-entity, or a font-object.
-KEY is any symbol, but these are reserved for specific meanings:
- :family, :weight, :slant, :width, :foundry, :adstyle, :registry,
- :size, :name, :script, :otf
+KEY can be any symbol, but these are reserved for specific meanings:
+ :foundry, :family, :adstyle, :registry, :weight, :slant, :width,
+ :size, :dpi, :spacing, :avgwidth, :script, :lang, :otf
See the documentation of `font-spec' for their meanings.
-In addition, if FONT is a font-entity or a font-object, values of
-:script and :otf are different from those of a font-spec as below:
-The value of :script may be a list of scripts that are supported by the font.
-
-The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are lists
-representing the OpenType features supported by the font by this form:
- ((SCRIPT (LANGSYS FEATURE ...) ...) ...)
-SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType
-Layout tags.
+If FONT is a font-entity or a font-object, then values of
+:script and :otf properties are different from those of a font-spec
+as below:
+
+ The value of :script may be a list of scripts that are supported by
+ the font.
+
+ The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are
+ lists representing the OpenType features supported by the font, of
+ this form: ((SCRIPT (LANGSYS FEATURE ...) ...) ...), where
+ SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType
+ Layout tags. See `otf-script-alist' for the OpenType script tags.
In addition to the keys listed above, the following keys are reserved
for the specific meanings as below:
-The value of :combining-capability is non-nil if the font-backend of
-FONT supports rendering of combining characters for non-OTF fonts. */)
+ The value of :type is a symbol that identifies the font backend to be
+ used, such as `ftcrhb' or `xfthb' on X , `harfbuzz' or `uniscribe' on
+ MS-Windows, `ns' on Cocoa/GNUstep, etc.
+
+ The value of :combining-capability is non-nil if the font-backend of
+ FONT supports rendering of combining characters for non-OTF fonts. */)
(Lisp_Object font, Lisp_Object key)
{
int idx;
@@ -4346,7 +4353,9 @@
allowed in `font-spec'.
If FONT is a font-entity or a font-object, KEY must not be the one
-accepted by `font-spec'. */)
+accepted by `font-spec'.
+
+See also `font-get' for KEYs that have special meanings. */)
(Lisp_Object font, Lisp_Object prop, Lisp_Object val)
{
int idx;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/fontset.c
^
|
@@ -1450,28 +1450,30 @@
DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 5, 0,
doc: /*
-Modify fontset NAME to use FONT-SPEC for TARGET characters.
+Modify FONTSET to use font specification in FONT-SPEC for displaying CHARACTERS.
-NAME is a fontset name (a string), nil for the fontset of FRAME,
-or t for the default fontset.
+FONTSET should be a fontset name (a string); or nil, meaning the
+fontset of FRAME; or t, meaning the default fontset.
-TARGET may be a single character to use FONT-SPEC for.
+CHARACTERS may be a single character to use FONT-SPEC for.
-TARGET may be a cons (FROM . TO), where FROM and TO are characters.
+CHARACTERS may be a cons (FROM . TO), where FROM and TO are characters.
In that case, use FONT-SPEC for all the characters in the range
between FROM and TO (inclusive).
-TARGET may be a script symbol. In that case, use FONT-SPEC for
+CHARACTERS may be a script symbol. In that case, use FONT-SPEC for
all the characters that belong to the script. See the variable
-`script-representative-chars' for the list of known scripts.
+`script-representative-chars' for the list of known scripts, and
+see the variable `char-script-table' for the script of any specific
+character.
-TARGET may be a charset. In that case, use FONT-SPEC for all
-the characters in the charset. See `list-character-sets' and
+CHARACTERS may be a charset symbol. In that case, use FONT-SPEC for
+all the characters in the charset. See `list-character-sets' and
`list-charset-chars' for the list of character sets and their
characters.
-TARGET may be nil. In that case, use FONT-SPEC for any character for
-which no font-spec is specified.
+CHARACTERS may be nil. In that case, use FONT-SPEC for any
+character for which no font-spec is specified in FONTSET.
FONT-SPEC may one of these:
* A font-spec object made by the function `font-spec' (which see).
@@ -1479,25 +1481,28 @@
REGISTRY is a font registry name. FAMILY may contain foundry
name, and REGISTRY may contain encoding name.
* A font name string.
- * nil, which explicitly specifies that there's no font for TARGET.
+ * nil, which explicitly specifies that there's no font for CHARACTERS.
-Optional 4th argument FRAME is a frame, or nil for the selected frame,
-to be considered in the case that NAME is nil.
+Optional 4th argument FRAME is a frame whose fontset should be modified;
+it is used if FONTSET is nil. If FONTSET is nil and FRAME is omitted
+or nil, that stands for the fontset of the selected frame.
Optional 5th argument ADD, if non-nil, specifies how to add FONT-SPEC
-to the previously set font specifications for TARGET. If it is
-`prepend', FONT-SPEC is prepended. If it is `append', FONT-SPEC is
-appended. By default, FONT-SPEC overrides the previous settings. */)
- (Lisp_Object name, Lisp_Object target, Lisp_Object font_spec, Lisp_Object frame, Lisp_Object add)
+to the previously set font specifications for CHARACTERS. If it is
+`prepend', FONT-SPEC is prepended to the existing font specifications.
+If it is `append', FONT-SPEC is appended. By default, FONT-SPEC
+overwrites the previous settings. */)
+ (Lisp_Object fontset, Lisp_Object characters, Lisp_Object font_spec,
+ Lisp_Object frame, Lisp_Object add)
{
- Lisp_Object fontset;
+ Lisp_Object fontset_obj;
Lisp_Object font_def, registry, family;
Lisp_Object range_list;
struct charset *charset = NULL;
Lisp_Object fontname;
bool ascii_changed = 0;
- fontset = check_fontset_name (name, &frame);
+ fontset_obj = check_fontset_name (fontset, &frame);
fontname = Qnil;
if (CONSP (font_spec))
@@ -1555,18 +1560,18 @@
else
font_def = Qnil;
- if (CHARACTERP (target))
+ if (CHARACTERP (characters))
{
- if (XFIXNAT (target) < 0x80)
+ if (XFIXNAT (characters) < 0x80)
error ("Can't set a font for partial ASCII range");
- range_list = list1 (Fcons (target, target));
+ range_list = list1 (Fcons (characters, characters));
}
- else if (CONSP (target))
+ else if (CONSP (characters))
{
Lisp_Object from, to;
- from = Fcar (target);
- to = Fcdr (target);
+ from = Fcar (characters);
+ to = Fcdr (characters);
CHECK_CHARACTER (from);
CHECK_CHARACTER (to);
if (XFIXNAT (from) < 0x80)
@@ -1575,38 +1580,38 @@
error ("Can't set a font for partial ASCII range");
ascii_changed = 1;
}
- range_list = list1 (target);
+ range_list = list1 (characters);
}
- else if (SYMBOLP (target) && !NILP (target))
+ else if (SYMBOLP (characters) && !NILP (characters))
{
Lisp_Object script_list;
Lisp_Object val;
range_list = Qnil;
script_list = XCHAR_TABLE (Vchar_script_table)->extras[0];
- if (! NILP (Fmemq (target, script_list)))
+ if (! NILP (Fmemq (characters, script_list)))
{
- if (EQ (target, Qlatin))
+ if (EQ (characters, Qlatin))
ascii_changed = 1;
- val = list1 (target);
+ val = list1 (characters);
map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table,
val);
range_list = Fnreverse (XCDR (val));
}
- if (CHARSETP (target))
+ if (CHARSETP (characters))
{
- CHECK_CHARSET_GET_CHARSET (target, charset);
+ CHECK_CHARSET_GET_CHARSET (characters, charset);
if (charset->ascii_compatible_p)
ascii_changed = 1;
}
else if (NILP (range_list))
error ("Invalid script or charset name: %s",
- SDATA (SYMBOL_NAME (target)));
+ SDATA (SYMBOL_NAME (characters)));
}
- else if (NILP (target))
+ else if (NILP (characters))
range_list = list1 (Qnil);
else
- error ("Invalid target for setting a font");
+ error ("Invalid second argument for setting a font in a fontset");
if (ascii_changed)
{
@@ -1614,7 +1619,7 @@
if (NILP (font_spec))
error ("Can't set ASCII font to nil");
- val = CHAR_TABLE_REF (fontset, 0);
+ val = CHAR_TABLE_REF (fontset_obj, 0);
if (! NILP (val) && EQ (add, Qappend))
/* We are going to change just an additional font for ASCII. */
ascii_changed = 0;
@@ -1622,7 +1627,7 @@
if (charset)
{
- Lisp_Object arg = CALLN (Fvector, fontset, font_def, add,
+ Lisp_Object arg = CALLN (Fvector, fontset_obj, font_def, add,
ascii_changed ? Qt : Qnil, range_list);
map_charset_chars (set_fontset_font, Qnil, arg, charset,
@@ -1631,15 +1636,15 @@
range_list = AREF (arg, 4);
}
for (; CONSP (range_list); range_list = XCDR (range_list))
- FONTSET_ADD (fontset, XCAR (range_list), font_def, add);
+ FONTSET_ADD (fontset_obj, XCAR (range_list), font_def, add);
if (ascii_changed)
{
Lisp_Object tail, fr;
- int fontset_id = XFIXNUM (FONTSET_ID (fontset));
+ int fontset_id = XFIXNUM (FONTSET_ID (fontset_obj));
- set_fontset_ascii (fontset, fontname);
- name = FONTSET_NAME (fontset);
+ set_fontset_ascii (fontset_obj, fontname);
+ fontset = FONTSET_NAME (fontset_obj);
FOR_EACH_FRAME (tail, fr)
{
struct frame *f = XFRAME (fr);
@@ -1657,17 +1662,17 @@
font_object = font_open_by_spec (f, font_spec);
if (! NILP (font_object))
{
- update_auto_fontset_alist (font_object, fontset);
- AUTO_FRAME_ARG (arg, Qfont, Fcons (name, font_object));
+ update_auto_fontset_alist (font_object, fontset_obj);
+ AUTO_FRAME_ARG (arg, Qfont, Fcons (fontset, font_object));
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/frame.c
^
|
@@ -1564,6 +1564,19 @@
if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
last_nonminibuf_frame = XFRAME (selected_frame);
+ /* If the selected window in the target frame is its mini-window, we move
+ to a different window, the most recently used one, unless there is a
+ valid active minibuffer in the mini-window. */
+ if (EQ (f->selected_window, f->minibuffer_window)
+ /* The following test might fail if the mini-window contains a
+ non-active minibuffer. */
+ && NILP (Fminibufferp (XWINDOW (f->minibuffer_window)->contents, Qt)))
+ {
+ Lisp_Object w = call1 (Qget_mru_window, frame);
+ if (WINDOW_LIVE_P (w)) /* W can be nil in minibuffer-only frames. */
+ Fset_frame_selected_window (frame, w, Qnil);
+ }
+
Fselect_window (f->selected_window, norecord);
/* We want to make sure that the next event generates a frame-switch
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/frame.h
^
|
@@ -123,6 +123,7 @@
/* This frame's selected window.
Each frame has its own window hierarchy
and one of the windows in it is selected within the frame.
+ This window may be the mini-window of the frame, if any.
The selected window of the selected frame is Emacs's selected window. */
Lisp_Object selected_window;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/ftcrfont.c
^
|
@@ -568,7 +568,11 @@
ftcrfont_info->ft_size = ft_face->size;
hb_font_t *hb_font = fthbfont_begin_hb_font (font, position_unit);
- if (ftcrfont_info->bitmap_position_unit)
+ /* HarfBuzz 5 correctly scales bitmap-only fonts without position
+ unit adjustment.
+ (https://github.com/harfbuzz/harfbuzz/issues/489) */
+ if (!hb_version_atleast (5, 0, 0)
+ && ftcrfont_info->bitmap_position_unit)
*position_unit = ftcrfont_info->bitmap_position_unit;
return hb_font;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/indent.c
^
|
@@ -866,8 +866,10 @@
DEFUN ("current-indentation", Fcurrent_indentation, Scurrent_indentation,
0, 0, 0,
doc: /* Return the indentation of the current line.
-This is the horizontal position of the character
-following any initial whitespace. */)
+This is the horizontal position of the character following any initial
+whitespace.
+Text that has an invisible property is considered as having width 0, unless
+`buffer-invisibility-spec' specifies that it is replaced by an ellipsis. */)
(void)
{
ptrdiff_t posbyte;
@@ -985,6 +987,9 @@
This function ignores line-continuation;
there is no upper limit on the column number a character can have
and horizontal scrolling has no effect.
+Text that has an invisible property is considered as having width 0,
+unless `buffer-invisibility-spec' specifies that it is replaced by
+an ellipsis.
If specified column is within a character, point goes after that character.
If it's past end of line, point goes to end of line.
@@ -2197,7 +2202,10 @@
}
else
it_overshoot_count =
- !(it.method == GET_FROM_IMAGE || it.method == GET_FROM_STRETCH);
+ /* If image_id is negative, it's a fringe bitmap, which by
+ definition doesn't affect display in the text area. */
+ !((it.method == GET_FROM_IMAGE && it.image_id >= 0)
+ || it.method == GET_FROM_STRETCH);
if (start_x_given)
{
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/lisp.h
^
|
@@ -2998,7 +2998,7 @@
INLINE void
CHECK_INTEGER (Lisp_Object x)
{
- CHECK_TYPE (INTEGERP (x), Qnumberp, x);
+ CHECK_TYPE (INTEGERP (x), Qintegerp, x);
}
INLINE void
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/macfont.m
^
|
@@ -2628,6 +2628,9 @@
font->pixel_size = size;
font->driver = &macfont_driver;
font->encoding_charset = font->repertory_charset = -1;
+ /* Clear font->space_width so macfont_monospace_width_multiplier may
+ not be confused by an uninitialized value. */
+ font->space_width = 0;
block_input ();
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/minibuf.c
^
|
@@ -197,20 +197,12 @@
return;
if (FRAME_LIVE_P (f)
&& !EQ (f->minibuffer_window, of->minibuffer_window)
- && WINDOW_LIVE_P (f->minibuffer_window) /* F not a tootip frame */
+ && WINDOW_LIVE_P (f->minibuffer_window) /* F not a tooltip frame */
&& WINDOW_LIVE_P (of->minibuffer_window))
{
zip_minibuffer_stacks (f->minibuffer_window, of->minibuffer_window);
if (for_deletion && XFRAME (MB_frame) != of)
MB_frame = selected_frame;
- if (!for_deletion
- && MINI_WINDOW_P (XWINDOW (FRAME_SELECTED_WINDOW (of))))
- {
- Lisp_Object old_frame;
- XSETFRAME (old_frame, of);
- Fset_frame_selected_window (old_frame,
- Fframe_first_window (old_frame), Qnil);
- }
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/msdos.h
^
|
@@ -22,6 +22,10 @@
#include <dpmi.h>
#include "termhooks.h" /* struct terminal */
+struct terminal;
+
+extern unsigned int _dos_commit(int);
+#define tcdrain(f) _dos_commit(f)
int dos_ttraw (struct tty_display_info *);
int dos_ttcooked (void);
@@ -57,6 +61,11 @@
int fstatat (int, char const *, struct stat *, int);
int unsetenv (const char *);
int faccessat (int, const char *, int, int);
+int openat (int, const char *, int, int);
+int fchmodat (int, const char *, mode_t, int);
+int futimens (int, const struct timespec[2]);
+int utimensat (int, const char *, const struct timespec[2], int);
+
void msdos_fatal_signal (int);
void syms_of_msdos (void);
int pthread_sigmask (int, const sigset_t *, sigset_t *);
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/nsterm.h
^
|
@@ -683,6 +683,7 @@
int em_whole;
}
+- (void) mark;
- (instancetype) initFrame: (NSRect )r window: (Lisp_Object)win;
- (void)setFrame: (NSRect)r;
@@ -1347,4 +1348,7 @@
#define NSControlStateValueOff NSOffState
#define NSBezelStyleRounded NSRoundedBezelStyle
#endif
+
+extern void mark_nsterm (void);
+
#endif /* HAVE_NS */
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/nsterm.m
^
|
@@ -9039,6 +9039,16 @@
return ret;
}
+- (void) mark
+{
+ if (window)
+ {
+ Lisp_Object win;
+ XSETWINDOW (win, window);
+ mark_object (win);
+ }
+}
+
- (void)resetCursorRects
{
@@ -9780,6 +9790,26 @@
return ret;
}
+void
+mark_nsterm (void)
+{
+ NSTRACE ("mark_nsterm");
+ Lisp_Object tail, frame;
+ FOR_EACH_FRAME (tail, frame)
+ {
+ struct frame *f = XFRAME (frame);
+ if (FRAME_NS_P (f))
+ {
+ NSArray *subviews = [[FRAME_NS_VIEW (f) superview] subviews];
+ for (int i = [subviews count] - 1; i >= 0; --i)
+ {
+ id scroller = [subviews objectAtIndex: i];
+ if ([scroller isKindOfClass: [EmacsScroller class]])
+ [scroller mark];
+ }
+ }
+ }
+}
void
syms_of_nsterm (void)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/print.c
^
|
@@ -944,7 +944,14 @@
errmsg = Fget (errname, Qerror_message);
/* During loadup 'substitute-command-keys' might not be available. */
if (!NILP (Ffboundp (Qsubstitute_command_keys)))
- errmsg = call1 (Qsubstitute_command_keys, errmsg);
+ {
+ /* `substitute-command-keys' may bug out, which would lead
+ to infinite recursion when we're called from
+ skip_debugger, so ignore errors. */
+ Lisp_Object subs = safe_call1 (Qsubstitute_command_keys, errmsg);
+ if (!NILP (subs))
+ errmsg = subs;
+ }
file_error = Fmemq (Qfile_error, error_conditions);
}
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/sysdep.c
^
|
@@ -4027,6 +4027,9 @@
#elif defined DARWIN_OS
+#define HAVE_RUSAGE_INFO_CURRENT (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101000)
+#define HAVE_PROC_PIDINFO (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)
+
Lisp_Object
system_process_attributes (Lisp_Object pid)
{
@@ -4130,6 +4133,7 @@
attrs = Fcons (Fcons (Qtpgid, INT_TO_INTEGER (proc.kp_eproc.e_tpgid)),
attrs);
+#if HAVE_RUSAGE_INFO_CURRENT
rusage_info_current ri;
if (proc_pid_rusage(proc_id, RUSAGE_INFO_CURRENT, (rusage_info_t *) &ri) == 0)
{
@@ -4143,6 +4147,24 @@
attrs = Fcons (Fcons (Qmajflt, INT_TO_INTEGER (ri.ri_pageins)), attrs);
}
+#else /* !HAVE_RUSAGE_INFO_CURRENT */
+ struct rusage *rusage = proc.kp_proc.p_ru;
+ if (rusage)
+ {
+ attrs = Fcons (Fcons (Qminflt, INT_TO_INTEGER (rusage->ru_minflt)),
+ attrs);
+ attrs = Fcons (Fcons (Qmajflt, INT_TO_INTEGER (rusage->ru_majflt)),
+ attrs);
+
+ attrs = Fcons (Fcons (Qutime, make_lisp_timeval (rusage->ru_utime)),
+ attrs);
+ attrs = Fcons (Fcons (Qstime, make_lisp_timeval (rusage->ru_stime)),
+ attrs);
+ struct timespec t = timespec_add (timeval_to_timespec (rusage->ru_utime),
+ timeval_to_timespec (rusage->ru_stime));
+ attrs = Fcons (Fcons (Qtime, make_lisp_time (t)), attrs);
+ }
+#endif /* !HAVE_RUSAGE_INFO_CURRENT */
starttime = proc.kp_proc.p_starttime;
attrs = Fcons (Fcons (Qnice, make_fixnum (proc.kp_proc.p_nice)), attrs);
@@ -4152,6 +4174,7 @@
t = timespec_sub (now, timeval_to_timespec (starttime));
attrs = Fcons (Fcons (Qetime, make_lisp_time (t)), attrs);
+#if HAVE_PROC_PIDINFO
struct proc_taskinfo taskinfo;
if (proc_pidinfo (proc_id, PROC_PIDTASKINFO, 0, &taskinfo, sizeof (taskinfo)) > 0)
{
@@ -4159,6 +4182,7 @@
attrs = Fcons (Fcons (Qrss, make_fixnum (taskinfo.pti_resident_size / 1024)), attrs);
attrs = Fcons (Fcons (Qthcount, make_fixnum (taskinfo.pti_threadnum)), attrs);
}
+#endif /* HAVE_PROC_PIDINFO */
#ifdef KERN_PROCARGS2
char args[ARG_MAX];
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/terminal.c
^
|
@@ -402,7 +402,7 @@

DEFUN ("frame-terminal", Fframe_terminal, Sframe_terminal, 0, 1, 0,
doc: /* Return the terminal that FRAME is displayed on.
-If FRAME is nil, the selected frame is used.
+If FRAME is nil, use the selected frame.
The terminal device is represented by its integer identifier. */)
(Lisp_Object frame)
@@ -421,10 +421,12 @@
DEFUN ("terminal-live-p", Fterminal_live_p, Sterminal_live_p, 1, 1, 0,
doc: /* Return non-nil if OBJECT is a terminal which has not been deleted.
-Value is nil if OBJECT is not a live display terminal.
-If object is a live display terminal, the return value indicates what
-sort of output terminal it uses. See the documentation of `framep' for
-possible return values. */)
+Return nil if OBJECT is not a live display terminal.
+OBJECT may be a terminal object, a frame, or nil (meaning the
+selected frame's terminal).
+If OBJECT is a live display terminal, return what sort of output
+terminal it uses. See the documentation of `framep' for possible
+return values. */)
(Lisp_Object object)
{
struct terminal *t = decode_terminal (object);
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/w32notify.c
^
|
@@ -40,8 +40,8 @@
and returns. That causes the WaitForSingleObjectEx function call
inside watch_worker to return, but the thread won't terminate until
the event telling to do so will be signaled. The completion
- routine issued another call to ReadDirectoryChangesW as quickly as
- possible. (Except when it does not, see below.)
+ routine then issues another call to ReadDirectoryChangesW as quickly
+ as possible. (Except when it does not, see below.)
In a GUI session, the WM_EMACS_FILENOTIFY message posted to the
message queue gets dispatched to the main Emacs window procedure,
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/window.c
^
|
@@ -554,7 +554,9 @@
frame is active. */
Fselect_frame (frame, norecord);
/* Fselect_frame called us back so we've done all the work already. */
- eassert (EQ (window, selected_window));
+ eassert (EQ (window, selected_window)
+ || (EQ (window, f->minibuffer_window)
+ && NILP (Fminibufferp (XWINDOW (window)->contents, Qt))));
return window;
}
else
@@ -1232,7 +1234,7 @@
Clip the number to a reasonable value if out of range.
Return the new number. NCOL should be zero or positive.
-Note that if `automatic-hscrolling' is non-nil, you cannot scroll the
+Note that if `auto-hscroll-mode' is non-nil, you cannot scroll the
window so that the location of point moves off-window. */)
(Lisp_Object window, Lisp_Object ncol)
{
@@ -1850,13 +1852,24 @@
DEFUN ("set-window-start", Fset_window_start, Sset_window_start, 2, 3, 0,
doc: /* Make display in WINDOW start at position POS in WINDOW's buffer.
WINDOW must be a live window and defaults to the selected one. Return
-POS. Optional third arg NOFORCE non-nil inhibits next redisplay from
-overriding motion of point in order to display at this exact start.
+POS.
+
+Optional third arg NOFORCE non-nil prevents next redisplay from
+moving point if displaying the window at POS makes point invisible;
+redisplay will then choose the WINDOW's start position by itself in
+that case, i.e. it will disregard POS if adhering to it will make
+point not visible in the window.
For reliable setting of WINDOW start position, make sure point is
at a position that will be visible when that start is in effect,
otherwise there's a chance POS will be disregarded, e.g., if point
-winds up in a partially-visible line. */)
+winds up in a partially-visible line.
+
+The setting of the WINDOW's start position takes effect during the
+next redisplay cycle, not immediately. If NOFORCE is nil or
+omitted, forcing the display of WINDOW to start at POS cancels
+any setting of WINDOW's vertical scroll (\"vscroll\") amount
+set by `set-window-vscroll' and by scrolling functions. */)
(Lisp_Object window, Lisp_Object pos, Lisp_Object noforce)
{
register struct window *w = decode_live_window (window);
@@ -6620,7 +6633,7 @@
considered to be part of the visible height of the line.
*/
h += extra_line_spacing;
- while (-it.current_y > h)
+ while (-it.current_y > h && it.what != IT_EOB)
move_it_by_lines (&it, 1);
charpos = IT_CHARPOS (it);
@@ -8296,7 +8309,8 @@
Vscroll_preserve_screen_position = Qnil;
DEFVAR_LISP ("window-point-insertion-type", Vwindow_point_insertion_type,
- doc: /* Type of marker to use for `window-point'. */);
+ doc: /* Insertion type of marker to use for `window-point'.
+See `marker-insertion-type' for the meaning of the possible values. */);
Vwindow_point_insertion_type = Qnil;
DEFSYM (Qwindow_point_insertion_type, "window-point-insertion-type");
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/xdisp.c
^
|
@@ -774,7 +774,7 @@
static bool message_cleared_p;
/* A scratch glyph row with contents used for generating truncation
- glyphs. Also used in direct_output_for_insert. */
+ glyphs and overlay-arrow glyphs. */
#define MAX_SCRATCH_GLYPHS 100
static struct glyph_row scratch_glyph_row;
@@ -7408,8 +7408,8 @@
if (c >= 0)
{
glyphless_method = CHAR_TABLE_REF (Vglyphless_char_display, c);
- if (CONSP (glyphless_method))
- glyphless_method = FRAME_WINDOW_P (it->f)
+ if (CONSP (glyphless_method))
+ glyphless_method = FRAME_WINDOW_P (it->f)
? XCAR (glyphless_method)
: XCDR (glyphless_method);
}
@@ -10788,11 +10788,51 @@
non-zero X coordinate. */
reseat_at_previous_visible_line_start (&it);
it.current_x = it.hpos = 0;
+
+ int start_x;
if (IT_CHARPOS (it) != start)
- move_it_to (&it, start, -1, -1, -1, MOVE_TO_POS);
+ {
+ void *it1data = NULL;
+ struct it it1;
+
+ SAVE_IT (it1, it, it1data);
+ move_it_to (&it, start, -1, -1, -1, MOVE_TO_POS);
+ /* We could have a display property at START, in which case
+ asking move_it_to to stop at START will overshoot and stop at
+ position after START. So we try again, stopping before
+ START, and account for the width of the last buffer position
+ manually. */
+ if (IT_CHARPOS (it) > start && start > BEGV)
+ {
+ ptrdiff_t it1pos = IT_CHARPOS (it1);
+ int it1_x = it1.current_x;
+
+ RESTORE_IT (&it, &it1, it1data);
+ /* If START - 1 is the beginning of screen line, move_it_to
+ will not move, so we need to use a lower-level
+ move_it_in_display_line subroutine, and tell it to move
+ just 1 pixel, so it stops at the next display element. */
+ if (start - 1 > it1pos)
+ move_it_to (&it, start - 1, -1, -1, -1, MOVE_TO_POS);
+ else
+ move_it_in_display_line (&it, start, it1_x + 1,
+ MOVE_TO_POS | MOVE_TO_X);
+ start_x = it.current_x;
+ /* If we didn't change our buffer position, the pixel width
+ of what's here was not yet accounted for; do it manually. */
+ if (IT_CHARPOS (it) == start - 1)
+ start_x += it.pixel_width;
+ }
+ else
+ {
+ start_x = it.current_x;
+ bidi_unshelve_cache (it1data, true);
+ }
+ }
+ else
+ start_x = it.current_x;
/* Now move to TO. */
- int start_x = it.current_x;
int move_op = MOVE_TO_POS | MOVE_TO_Y;
int to_x = -1;
it.current_y = start_y;
@@ -12756,8 +12796,9 @@
mode_line_noprop_buf; then display the title. */
record_unwind_protect (unwind_format_mode_line,
format_mode_line_unwind_data
- (NULL, current_buffer, Qnil, false));
+ (f, current_buffer, selected_window, false));
+ Fselect_window (f->selected_window, Qt);
set_buffer_internal_1
(XBUFFER (XWINDOW (f->selected_window)->contents));
fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format;
@@ -21613,7 +21654,7 @@
struct buffer *buffer = XBUFFER (w->contents);
struct buffer *old = current_buffer;
const unsigned char *arrow_string = SDATA (overlay_arrow_string);
- ptrdiff_t arrow_len = SCHARS (overlay_arrow_string);
+ ptrdiff_t arrow_len = SBYTES (overlay_arrow_string), char_num = 0;
const unsigned char *arrow_end = arrow_string + arrow_len;
const unsigned char *p;
struct it it;
@@ -21644,7 +21685,7 @@
p += it.len;
/* Get its face. */
- ilisp = make_fixnum (p - arrow_string);
+ ilisp = make_fixnum (char_num++);
face = Fget_text_property (ilisp, Qface, overlay_arrow_string);
it.face_id = compute_char_face (f, it.char_to_display, face);
@@ -30505,9 +30546,9 @@
/* When no suitable font is found, display this character by
the method specified in the first extra slot of
Vglyphless_char_display. */
- Lisp_Object acronym = lookup_glyphless_char_display (-1, it);
+ Lisp_Object acronym = lookup_glyphless_char_display (-1, it);
- eassert (it->what == IT_GLYPHLESS);
+ eassert (it->what == IT_GLYPHLESS);
produce_glyphless_glyph (it, true,
STRINGP (acronym) ? acronym : Qnil);
goto done;
@@ -35780,14 +35821,18 @@
`empty-box': display as an empty box
`thin-space': display as 1-pixel width space
`zero-width': don't display
+Any other value is interpreted as `empty-box'.
An element may also be a cons cell (GRAPHICAL . TEXT), which specifies the
display method for graphical terminals and text terminals respectively.
GRAPHICAL and TEXT should each have one of the values listed above.
-The char-table has one extra slot to control the display of a character for
-which no font is found. This slot only takes effect on graphical terminals.
-Its value should be an ASCII acronym string, `hex-code', `empty-box', or
-`thin-space'. The default is `empty-box'.
+The char-table has one extra slot to control the display of characters for
+which no font is found on graphical terminals, and characters that cannot
+be displayed by text-mode terminals. Its value should be an ASCII acronym
+string, `hex-code', `empty-box', or `thin-space'. The default is `hex-code'.
+
+With the obvious exception of `zero-width', all the other representations
+are displayed using the face `glyphless-char'.
If a character has a non-nil entry in an active display table, the
display table takes effect; in this case, Emacs does not consult
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/src/xfaces.c
^
|
@@ -928,7 +928,7 @@
Scolor_values_from_color_spec,
1, 1, 0,
doc: /* Parse color SPEC as a numeric color and return (RED GREEN BLUE).
-This function recognises the following formats for SPEC:
+This function recognizes the following formats for SPEC:
#RGB, where R, G and B are hex numbers of equal length, 1-4 digits each.
rgb:R/G/B, where R, G, and B are hex numbers, 1-4 digits each.
@@ -1463,9 +1463,9 @@
};
/* Order by which font selection chooses fonts. The default values
- mean `first, find a best match for the font width, then for the
- font height, then for weight, then for slant.' This variable can be
- set via set-face-font-sort-order. */
+ mean "first, find a best match for the font width, then for the
+ font height, then for weight, then for slant." This variable can be
+ set via 'internal-set-font-selection-order'. */
static int font_sort_order[4];
@@ -1516,16 +1516,22 @@
Otherwise, FAMILY must be a string, possibly containing wildcards
`?' and `*'.
If FRAME is omitted or nil, use the selected frame.
+
Each element of the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT
SLANT FIXED-P FULL REGISTRY-AND-ENCODING].
-FAMILY is the font family name. POINT-SIZE is the size of the
-font in 1/10 pt. WIDTH, WEIGHT, and SLANT are symbols describing the
-width, weight and slant of the font. These symbols are the same as for
-face attributes. FIXED-P is non-nil if the font is fixed-pitch.
-FULL is the full name of the font, and REGISTRY-AND-ENCODING is a string
-giving the registry and encoding of the font.
-The result list is sorted according to the current setting of
-the face font sort order. */)
+
+FAMILY is the font family name.
+POINT-SIZE is the size of the font in 1/10 pt.
+WIDTH, WEIGHT, and SLANT are symbols describing the width, weight
+ and slant of the font. These symbols are the same as for face
+ attributes, see `set-face-attribute'.
+FIXED-P is non-nil if the font is fixed-pitch.
+FULL is the full name of the font.
+REGISTRY-AND-ENCODING is a string giving the registry and encoding of
+ the font.
+
+The resulting list is sorted according to the current setting of
+the face font sort order, see `face-font-selection-order'. */)
(Lisp_Object family, Lisp_Object frame)
{
Lisp_Object font_spec, list, *drivers, vec;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/ChangeLog.1
^
|
@@ -65,7 +65,7 @@
2015-03-10 Paul Eggert <eggert@cs.ucla.edu>
- Prefer "initialize" to "initialise"
+ Prefer "initialize"
* indent/js-indent-init-t.js: Rename from
indent/js-indent-first-initialiser-t.js.
* indent/js-indent-init-dynamic.js: Rename from
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/calc/calc-tests.el
^
|
@@ -445,7 +445,7 @@
(t ; n<k<0
0))))
((natnump k)
- ;; Generalisation for any n, integral k≥0: use falling product
+ ;; Generalization for any n, integral k≥0: use falling product
(/ (apply '* (number-sequence n (- n (1- k)) -1))
(calc-tests--fac k)))
(t (error "Case not covered"))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/calendar/icalendar-tests.el
^
|
@@ -651,8 +651,8 @@
Argument EXPECTED-OUTPUT expected iCalendar result string.
Optional argument ALARMS the value of `icalendar-export-alarms' for this test.
-European style input data must use german month names. American
-and ISO style input data must use english month names."
+European style input data must use German month names. American
+and ISO style input data must use English month names."
(let ((tz (getenv "TZ"))
(calendar-date-style 'iso)
(icalendar-recurring-start-year 2000)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/cedet/semantic-utest-c.el
^
|
@@ -94,7 +94,7 @@
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.1-9ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.1 (Ubuntu 4.3.1-9ubuntu1)"
- ;; My debian box:
+ ;; My Debian box:
"Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../../../sources/gcc/configure --prefix=/usr/local/glibc-2.3.6/x86_64/apps/gcc-4.2.3 --with-gmp=/usr/local/gcc/gmp --with-mpfr=/usr/local/gcc/mpfr --enable-languages=c,c++,fortran --with-as=/usr/local/glibc-2.3.6/x86_64/apps/gcc-4.2.3/bin/as --with-ld=/usr/local/glibc-2.3.6/x86_64/apps/gcc-4.2.3/bin/ld --disable-multilib
@@ -123,13 +123,13 @@
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)"
- ;; David Engster's german gcc on ubuntu 4.3
+ ;; David Engster's German gcc on Ubuntu 4.3
"Es werden eingebaute Spezifikationen verwendet.
Ziel: i486-linux-gnu
Konfiguriert mit: ../src/configure -v --with-pkgversion='Ubuntu 4.3.2-1ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread-Modell: posix
gcc-Version 4.3.2 (Ubuntu 4.3.2-1ubuntu12)"
- ;; Damien Deville bsd
+ ;; Damien Deville BSD
"Using built-in specs.
Target: i386-undermydesk-freebsd
Configured with: FreeBSD/i386 system compiler
@@ -139,7 +139,7 @@
"A bunch of sample gcc -v outputs from different machines.")
(defvar semantic-gcc-test-strings-fail
- '(;; A really old solaris box I found
+ '(;; A really old Solaris box I found
"Reading specs from /usr/local/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)"
)
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/emacs-lisp/bytecomp-tests.el
^
|
@@ -38,7 +38,7 @@
bytecomp-test-var)
(defun bytecomp-test-identity (x)
- "Identity, but hidden from some optimisations."
+ "Identity, but hidden from some optimizations."
x)
(defmacro bytecomp-test-loop (outer1 outer2 inner1 inner2)
@@ -556,7 +556,7 @@
((not x) 3)))
'("a" "b" "c" "d" nil))
- ;; `let' and `let*' optimisations with body being constant or variable
+ ;; `let' and `let*' optimizations with body being constant or variable
(let* (a
(b (progn (setq a (cons 1 a)) 2))
(c (1+ b))
@@ -582,7 +582,7 @@
(let* (x y)
'a)
- ;; Check empty-list optimisations.
+ ;; Check empty-list optimizations.
(mapcar (lambda (x) (member x nil)) '("a" 2 nil))
(mapcar (lambda (x) (memql x nil)) '(a 2 nil))
(mapcar (lambda (x) (memq x nil)) '(a nil))
@@ -597,7 +597,7 @@
(list (mapcar (lambda (x) (assoc (setq n (1+ n)) nil)) '(a "nil"))
n))
- ;; Exercise variable-aliasing optimisations.
+ ;; Exercise variable-aliasing optimizations.
(let ((a (list 1)))
(let ((b a))
(let ((a (list 2)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/help-fns-tests.el
^
|
@@ -63,13 +63,13 @@
(ert-deftest help-fns-test-lisp-defun ()
(let ((regexp (if (featurep 'native-compile)
- "a native compiled Lisp function in .+subr\\.el"
- "a compiled Lisp function in .+subr\\.el"))
+ "a native-compiled Lisp function in .+subr\\.el"
+ "a byte-compiled Lisp function in .+subr\\.el"))
(result (help-fns-tests--describe-function 'last)))
(should (string-match regexp result))))
(ert-deftest help-fns-test-lisp-defsubst ()
- (let ((regexp "a compiled Lisp function in .+subr\\.el")
+ (let ((regexp "a byte-compiled Lisp function in .+subr\\.el")
(result (help-fns-tests--describe-function 'posn-window)))
(should (string-match regexp result))))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/net/tramp-archive-tests.el
^
|
@@ -926,28 +926,31 @@
(file-attributes %S \"/\")) \
(message \"tramp-archive loaded: %%s\" \
(featurep 'tramp-archive))))"))
- (dolist (default-directory
- `(,temporary-file-directory
- ;; Starting Emacs in a directory which has
- ;; `tramp-archive-file-name-regexp' syntax is
- ;; supported only with Emacs > 27.2 (sigh!).
- ;; (Bug#48476)
- ,(file-name-as-directory tramp-archive-test-directory)))
- (dolist (file `("/mock::foo" ,(concat tramp-archive-test-archive "foo")))
- (should
- (string-match
- (format
- "tramp-archive loaded: %s[[:ascii:]]+tramp-archive loaded: %s"
- (tramp-archive-file-name-p default-directory)
- (or (tramp-archive-file-name-p default-directory)
- (tramp-archive-file-name-p file)))
- (shell-command-to-string
- (format
- "%s -batch -Q -L %s --eval %s"
- (shell-quote-argument
- (expand-file-name invocation-name invocation-directory))
- (mapconcat #'shell-quote-argument load-path " -L ")
- (shell-quote-argument (format code file))))))))))
+ (dolist (enabled '(t nil))
+ (dolist (default-directory
+ `(,temporary-file-directory
+ ;; Starting Emacs in a directory which has
+ ;; `tramp-archive-file-name-regexp' syntax is
+ ;; supported only with Emacs > 27.2 (sigh!).
+ ;; (Bug#48476)
+ ,(file-name-as-directory tramp-archive-test-directory)))
+ (dolist (file `("/mock::foo" ,(concat tramp-archive-test-archive "foo")))
+ (should
+ (string-match
+ (format
+ "tramp-archive loaded: %s[[:ascii:]]+tramp-archive loaded: %s"
+ (tramp-archive-file-name-p default-directory)
+ (or (tramp-archive-file-name-p default-directory)
+ (and enabled (tramp-archive-file-name-p file))))
+ (shell-command-to-string
+ (format
+ "%s -batch -Q -L %s --eval %s --eval %s"
+ (shell-quote-argument
+ (expand-file-name invocation-name invocation-directory))
+ (mapconcat #'shell-quote-argument load-path " -L ")
+ (shell-quote-argument
+ (format "(setq tramp-archive-enabled %s)" enabled))
+ (shell-quote-argument (format code file)))))))))))
(ert-deftest tramp-archive-test45-delay-load ()
"Check that `tramp-archive' is loaded lazily, only when needed."
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/net/tramp-tests.el
^
|
@@ -68,6 +68,7 @@
(defvar tramp-connection-properties)
(defvar tramp-copy-size-limit)
(defvar tramp-display-escape-sequence-regexp)
+(defvar tramp-fuse-remove-hidden-files)
(defvar tramp-fuse-unmount-on-cleanup)
(defvar tramp-inline-compress-start-size)
(defvar tramp-persistency-file-name)
@@ -160,13 +161,6 @@
;; Return result.
(cdr tramp--test-enabled-checked))
-(defsubst tramp--test-expensive-test ()
- "Whether expensive tests are run."
- (ert-select-tests
- (ert--stats-selector ert--current-run-stats)
- (list (make-ert-test :name (ert-test-name (ert-running-test))
- :body nil :tags '(:expensive-test)))))
-
(defun tramp--test-make-temp-name (&optional local quoted)
"Return a temporary file name for test.
If LOCAL is non-nil, a local file name is returned.
@@ -2034,17 +2028,7 @@
:type 'user-error)
(should-error
(expand-file-name "/method:user1@host1|ssh:user2@host2:/path/to/file")
- :type 'user-error))
-
- ;; Samba does not support file names with periods followed by
- ;; spaces, and trailing periods or spaces.
- (when (tramp--test-smb-p)
- (dolist (file '("foo." "foo. bar" "foo "))
- (should-error
- (tramp-smb-get-localname
- (tramp-dissect-file-name
- (expand-file-name file tramp-test-temporary-file-directory)))
- :type 'file-error))))
+ :type 'user-error)))
(ert-deftest tramp-test04-substitute-in-file-name ()
"Check `substitute-in-file-name'."
@@ -2298,7 +2282,7 @@
"Check `file-exist-p', `write-region' and `delete-file'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let ((tmp-name (tramp--test-make-temp-name nil quoted)))
(should-not (file-exists-p tmp-name))
(write-region "foo" nil tmp-name)
@@ -2306,8 +2290,10 @@
(delete-file tmp-name)
(should-not (file-exists-p tmp-name))
- ;; Trashing files doesn't work on MS Windows, and for crypted remote files.
- (unless (or (tramp--test-windows-nt-p) (tramp--test-crypt-p))
+ ;; Trashing files doesn't work when `system-move-file-to-trash'
+ ;; is defined (on MS-Windows and macOS), and for encrypted
+ ;; remote files.
+ (unless (or (fboundp 'system-move-file-to-trash) (tramp--test-crypt-p))
(let ((trash-directory (tramp--test-make-temp-name 'local quoted))
(delete-by-moving-to-trash t))
(make-directory trash-directory)
@@ -2331,7 +2317,7 @@
"Check `file-local-copy'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let ((tmp-name1 (tramp--test-make-temp-name nil quoted))
tmp-name2)
(unwind-protect
@@ -2363,7 +2349,7 @@
"Check `insert-file-contents'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let ((tmp-name (tramp--test-make-temp-name nil quoted)))
(unwind-protect
(with-temp-buffer
@@ -2400,7 +2386,7 @@
"Check `write-region'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let ((tmp-name (tramp--test-make-temp-name nil quoted))
(inhibit-message t))
(unwind-protect
@@ -2541,8 +2527,9 @@
(skip-unless (tramp--test-enabled))
;; `filename-non-special' has been fixed in Emacs 27.1, see Bug#29579.
- (dolist (quoted (if (and (tramp--test-expensive-test) (tramp--test-emacs27-p))
- '(nil t) '(nil)))
+ (dolist (quoted
+ (if (and (tramp--test-expensive-test-p) (tramp--test-emacs27-p))
+ '(nil t) '(nil)))
(let ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (tramp--test-make-temp-name nil quoted))
(tmp-name3 (tramp--test-make-temp-name 'local quoted)))
@@ -2569,7 +2556,7 @@
(with-temp-buffer
(insert-file-contents target)
(should (string-equal (buffer-string) "foo")))
- (when (tramp--test-expensive-test)
+ (when (tramp--test-expensive-test-p)
(should-error
(copy-file source target)
:type 'file-already-exists))
@@ -2588,7 +2575,8 @@
(make-directory target)
(should (file-directory-p target))
;; This has been changed in Emacs 26.1.
- (when (and (tramp--test-expensive-test) (tramp--test-emacs26-p))
+ (when (and (tramp--test-expensive-test-p)
+ (tramp--test-emacs26-p))
(should-error
(copy-file source target)
:type 'file-already-exists)
@@ -2653,8 +2641,9 @@
(skip-unless (tramp--test-enabled))
;; `filename-non-special' has been fixed in Emacs 27.1, see Bug#29579.
- (dolist (quoted (if (and (tramp--test-expensive-test) (tramp--test-emacs27-p))
- '(nil t) '(nil)))
+ (dolist (quoted
+ (if (and (tramp--test-expensive-test-p) (tramp--test-emacs27-p))
+ '(nil t) '(nil)))
(let ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (tramp--test-make-temp-name nil quoted))
(tmp-name3 (tramp--test-make-temp-name 'local quoted)))
@@ -2684,7 +2673,7 @@
(should (string-equal (buffer-string) "foo")))
(write-region "foo" nil source)
(should (file-exists-p source))
- (when (tramp--test-expensive-test)
+ (when (tramp--test-expensive-test-p)
(should-error
(rename-file source target)
:type 'file-already-exists))
@@ -2703,7 +2692,8 @@
(make-directory target)
(should (file-directory-p target))
;; This has been changed in Emacs 26.1.
- (when (and (tramp--test-expensive-test) (tramp--test-emacs26-p))
+ (when (and (tramp--test-expensive-test-p)
+ (tramp--test-emacs26-p))
(should-error
(rename-file source target)
:type 'file-already-exists)
@@ -2771,7 +2761,7 @@
This tests also `file-directory-p' and `file-accessible-directory-p'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let* ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (expand-file-name "foo/bar" tmp-name1))
(unusual-file-mode-1 #o740)
@@ -2809,7 +2799,7 @@
"Check `delete-directory'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let* ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (expand-file-name "foo" tmp-name1)))
;; Delete empty directory.
@@ -2833,9 +2823,12 @@
(should-not (file-directory-p tmp-name1))
;; Trashing directories works only since Emacs 27.1. It doesn't
- ;; work on MS Windows, for crypted remote directories and for ange-ftp.
- (when (and (not (tramp--test-windows-nt-p)) (not (tramp--test-crypt-p))
- (not (tramp--test-ftp-p)) (tramp--test-emacs27-p))
+ ;; work when `system-move-file-to-trash' is defined (on MS
+ ;; Windows and macOS), for encrypted remote directories and for
+ ;; ange-ftp.
+ (when (and (not (fboundp 'system-move-file-to-trash))
+ (not (tramp--test-crypt-p)) (not (tramp--test-ftp-p))
+ (tramp--test-emacs27-p))
(let ((trash-directory (tramp--test-make-temp-name 'local quoted))
(delete-by-moving-to-trash t))
(make-directory trash-directory)
@@ -2883,7 +2876,7 @@
(skip-unless (tramp--test-enabled))
(skip-unless (or (tramp--test-emacs26-p) (not (tramp--test-rclone-p))))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
+ (dolist (quoted (if (tramp--test-expensive-test-p) '(nil t) '(nil)))
(let* ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (tramp--test-make-temp-name nil quoted))
(tmp-name3 (expand-file-name
@@ -2994,8 +2987,9 @@
"Check `directory-files'."
(skip-unless (tramp--test-enabled))
- (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/so-long-tests/so-long-tests.el
^
|
@@ -59,7 +59,7 @@
(declare-function so-long-tests-assert-and-revert "so-long-tests-helpers")
(declare-function so-long-tests-predicates "so-long-tests-helpers")
-;; Enable the automated behaviour for all tests.
+;; Enable the automated behavior for all tests.
(global-so-long-mode 1)
(ert-deftest so-long-tests-threshold-under ()
@@ -210,7 +210,7 @@
;; From Emacs 27 the `display-buffer' call is insufficient.
;; The various 'window change functions' are now invoked by the
;; redisplay, and redisplay does nothing at all in batch mode,
- ;; so we cannot test under this revised behaviour. Refer to:
+ ;; so we cannot test under this revised behavior. Refer to:
;; https://lists.gnu.org/r/emacs-devel/2019-10/msg00971.html
;; For interactive (non-batch) test runs, calling `redisplay'
;; does do the trick; so do that first.
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/lisp/so-long-tests/spelling-tests.el
^
|
@@ -57,7 +57,7 @@
(unwind-protect
(cl-letf (((symbol-function 'ispell-command-loop)
(lambda (_miss _guess word _start _end)
- (message "Unrecognised word: %s." word)
+ (message "Unrecognized word: %s." word)
(throw 'mistake t))))
(catch 'mistake
(find-library "so-long")
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/src/comp-resources/comp-test-funcs.el
^
|
@@ -515,6 +515,8 @@
(defun comp-test-47868-4-f ()
#(" " 0 1 (face font-lock-keyword-face)))
+(defun comp-test-48029-nonascii-žžž-f (arg)
+ (when arg t))

;;;;;;;;;;;;;;;;;;;;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/src/comp-tests.el
^
|
@@ -489,11 +489,6 @@
(should (string= (comp-test-45635-f :height 180 :family "PragmataPro Liga")
"PragmataPro Liga")))
-(comp-deftest 45603-1 ()
- "<https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-12/msg01994.html>"
- (load (native-compile (ert-resource-file "comp-test-45603.el")))
- (should (fboundp #'comp-test-45603--file-local-name)))
-
(comp-deftest 46670-1 ()
"<https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-02/msg01413.html>"
(should (string= (comp-test-46670-2-f "foo") "foo"))
@@ -513,6 +508,11 @@
(should (eq (comp-test-47868-1-f) (comp-test-47868-3-f)))
(should (eq (comp-test-47868-2-f) (comp-test-47868-4-f))))
+(comp-deftest 48029-1 ()
+ "<https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-07/msg00666.html>"
+ (should (subr-native-elisp-p
+ (symbol-function 'comp-test-48029-nonascii-žžž-f))))
+

;;;;;;;;;;;;;;;;;;;;;
;; Tromey's tests. ;;
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/src/fns-tests.el
^
|
@@ -788,7 +788,7 @@
(should (equal 1 (string-distance "ab" "a我b")))
(should (equal 1 (string-distance "我" "她")))
- ;; correct behaviour with empty strings
+ ;; correct behavior with empty strings
(should (equal 0 (string-distance "" "")))
(should (equal 0 (string-distance "" "" t)))
(should (equal 1 (string-distance "x" "")))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/src/keymap-tests.el
^
|
@@ -125,7 +125,7 @@
;; ...)
(ert-deftest keymap-lookup-key/mixed-case ()
- "Backwards compatibility behaviour (Bug#50752)."
+ "Backwards compatibility behavior (Bug#50752)."
(let ((map (make-keymap)))
(define-key map [menu-bar foo bar] 'foo)
(should (eq (lookup-key map [menu-bar foo bar]) 'foo))
|
[-]
[+]
|
Changed |
_service:tar_git:emacs-28.2.0.tar.xz/emacs/test/src/process-tests.el
^
|
@@ -939,7 +939,7 @@
(< (float-time) (+ t0 limit)))
(sit-for 0.1)))
(should status)
- (should-not (assq :error status))
+ (should-not (plist-get status ':error))
(should buf)
(should (> (buffer-size buf) 0))
)
|