aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2025-01-25 10:06:19 -0500
committerEli Zaretskii2025-01-25 10:06:19 -0500
commit6016967e858e12f07c3cf4ade35cddef7b91a0d4 (patch)
treeeafea5f10d6432b3de53dab534604193cafe98e8
parente8f173f0ba9327033781429ea9a1d99ff8d2f751 (diff)
parent67903f5909db5c6140eeffebfaf818b4f93625d5 (diff)
downloademacs-6016967e858e12f07c3cf4ade35cddef7b91a0d4.tar.gz
emacs-6016967e858e12f07c3cf4ade35cddef7b91a0d4.zip
Merge from origin/emacs-30
67903f5909d Restore the old behavior of `bookmark-write-file' 062da7003f9 ; Improve prompts and error messages in 'info-look' 52dc01f1c8b ; * admin/admin.el (set-version): Note about Android. fb282da2a07 Avoid double spaces around abbrevations in Texinfo bc1ab8ac3d8 ; * doc/emacs/custom.texi (Init Rebinding): Fix spacing. b41ef43af19 ; Fix previous change 5638b1d6bd4 Ispell: Use "personal dictionary" terminology consistently cc791e7499f ; Check man pages for mistakes less frequently 4ed4792e3b9 ; * admin/release-process: Minor copy-edits. 4a867c823b7 Add language server "ruff server" for Python 9e687c2871f Fix go-ts-mode type declaration indentation (Bug#75785) f751b3afa4f ; Minor improvements for doc strings in map.el cda78edc7d9 ; Fix typos ce50a1d3c18 ; * src/w32.c (w32_memory_info): Fix coding style of last... 58d3d4820ad Fix bug in w32_memory_info 77386412050 Avoid crashes in redisplay due to problematic font setups 0e3687e6006 Improve 'key-valid-p' docstring 9878092d2b9 Minor copyedits in internals.texi 4726900fdc5 Better document side-effect free and pure C functions 04c475a39f2 ; Fix documentation about faces of tool-tip text # Conflicts: # admin/codespell/codespell.exclude
-rw-r--r--ChangeLog.38
-rw-r--r--ChangeLog.412
-rw-r--r--admin/admin.el5
-rw-r--r--admin/codespell/codespell.exclude13
-rw-r--r--admin/make-tarball.txt5
-rwxr-xr-xadmin/nt/dist-build/build-dep-zips.py8
-rw-r--r--admin/nt/dist-build/emacs.nsi6
-rw-r--r--admin/release-process22
-rw-r--r--doc/emacs/custom.texi2
-rw-r--r--doc/emacs/dired.texi2
-rw-r--r--doc/emacs/emacs.texi8
-rw-r--r--doc/emacs/emerge-xtra.texi2
-rw-r--r--doc/emacs/files.texi2
-rw-r--r--doc/emacs/fixit.texi4
-rw-r--r--doc/emacs/frames.texi2
-rw-r--r--doc/emacs/misc.texi2
-rw-r--r--doc/emacs/modes.texi2
-rw-r--r--doc/emacs/mule.texi5
-rw-r--r--doc/emacs/windows.texi2
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--doc/lispref/elisp.texi2
-rw-r--r--doc/lispref/frames.texi2
-rw-r--r--doc/lispref/functions.texi4
-rw-r--r--doc/lispref/hash.texi8
-rw-r--r--doc/lispref/internals.texi18
-rw-r--r--doc/lispref/keymaps.texi4
-rw-r--r--doc/lispref/lists.texi4
-rw-r--r--doc/lispref/modes.texi2
-rw-r--r--doc/lispref/nonascii.texi4
-rw-r--r--doc/lispref/processes.texi2
-rw-r--r--doc/lispref/searching.texi2
-rw-r--r--doc/lispref/syntax.texi2
-rw-r--r--doc/lispref/text.texi6
-rw-r--r--doc/misc/calc.texi6
-rw-r--r--doc/misc/cc-mode.texi16
-rw-r--r--doc/misc/efaq.texi10
-rw-r--r--doc/misc/eglot.texi2
-rw-r--r--doc/misc/erc.texi2
-rw-r--r--doc/misc/eshell.texi6
-rw-r--r--doc/misc/flymake.texi2
-rw-r--r--doc/misc/gnus-faq.texi2
-rw-r--r--doc/misc/gnus.texi8
-rw-r--r--doc/misc/idlwave.texi4
-rw-r--r--doc/misc/wisent.texi2
-rw-r--r--etc/PROBLEMS4
-rw-r--r--etc/future-bug2
-rw-r--r--lisp/bookmark.el3
-rw-r--r--lisp/calendar/calendar.el2
-rw-r--r--lisp/emacs-lisp/map.el22
-rw-r--r--lisp/info-look.el7
-rw-r--r--lisp/keymap.el3
-rw-r--r--lisp/progmodes/eglot.el2
-rw-r--r--lisp/progmodes/go-ts-mode.el1
-rw-r--r--lisp/progmodes/meta-mode.el2
-rw-r--r--lisp/textmodes/ispell.el10
-rw-r--r--lisp/tooltip.el4
-rw-r--r--lisp/type-break.el4
-rw-r--r--nextstep/README12
-rw-r--r--src/ChangeLog.32
-rw-r--r--src/frame.c10
-rw-r--r--src/keyboard.c2
-rw-r--r--src/w32.c6
-rw-r--r--src/xdisp.c7
63 files changed, 185 insertions, 154 deletions
diff --git a/ChangeLog.3 b/ChangeLog.3
index 41bbdbbdc9a..0a744120218 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -47356,7 +47356,7 @@
47356 possible bug. 47356 possible bug.
47357 47357
47358 * lisp/progmodes/flymake.el (flymake--mode-line-counter): Must 47358 * lisp/progmodes/flymake.el (flymake--mode-line-counter): Must
47359 explicily create a new string unpropertized string 47359 explicitly create a new string unpropertized string
47360 47360
473612020-12-31 João Távora <joaotavora@gmail.com> 473612020-12-31 João Távora <joaotavora@gmail.com>
47362 47362
@@ -160588,7 +160588,7 @@
160588 to be replaced with an appropriate character reference. Make 160588 to be replaced with an appropriate character reference. Make
160589 ‘sgml-quote’ do that. 160589 ‘sgml-quote’ do that.
160590 160590
160591 While at it, fix entiteis not being unquoted if they lack closing 160591 While at it, fix entities not being unquoted if they lack closing
160592 semicolon (e.g. ‘&amp’) occurring at the very end of a region. 160592 semicolon (e.g. ‘&amp’) occurring at the very end of a region.
160593 Even though unlikely, make ‘sgml-quote’ handle this scenario. 160593 Even though unlikely, make ‘sgml-quote’ handle this scenario.
160594 160594
@@ -186568,7 +186568,7 @@
186568 Delete a Flymake obsolete alias that can't possibly work 186568 Delete a Flymake obsolete alias that can't possibly work
186569 186569
186570 The function `flymake-ler-make-ler' can't possibly work as an backward 186570 The function `flymake-ler-make-ler' can't possibly work as an backward
186571 compatible interface to existing extensinos (even purely hypothetical 186571 compatible interface to existing extensions (even purely hypothetical
186572 ones, since none are known). This is because every diagnostic 186572 ones, since none are known). This is because every diagnostic
186573 considered by Flymake has to passed to a report-fn function. 186573 considered by Flymake has to passed to a report-fn function.
186574 186574
@@ -223233,7 +223233,7 @@
223233 called any longer. 223233 called any longer.
223234 223234
223235 Furthermore, when newline has whitespace syntax, ‘\s-$’ regular 223235 Furthermore, when newline has whitespace syntax, ‘\s-$’ regular
223236 expression ends up matching empty lins since ‘\s-’ matches newline 223236 expression ends up matching empty lines since ‘\s-’ matches newline
223237 characetr of proceeding line. This leads to needless loop iterations. 223237 characetr of proceeding line. This leads to needless loop iterations.
223238 223238
223239 Since previous change to ‘delete-trailing-whitespace’ already introduced 223239 Since previous change to ‘delete-trailing-whitespace’ already introduced
diff --git a/ChangeLog.4 b/ChangeLog.4
index 7fe62f97ddb..0f7ae920588 100644
--- a/ChangeLog.4
+++ b/ChangeLog.4
@@ -342,7 +342,7 @@
342 342
343 Improve documentation for 'while-let' 343 Improve documentation for 'while-let'
344 344
345 * doc/lispref/control.texi (Conditionals): Reorganise describing 345 * doc/lispref/control.texi (Conditionals): Reorganize describing
346 what's overlapping between the macros (and between the macros 346 what's overlapping between the macros (and between the macros
347 and let*), and then improve the documentation for 'while-let'. 347 and let*), and then improve the documentation for 'while-let'.
348 348
@@ -15155,7 +15155,7 @@
15155 15155
15156 Remove unnecessary (delq nil...). 15156 Remove unnecessary (delq nil...).
15157 15157
15158 This is presumed to be an artifacto of an old default. 15158 This is presumed to be an artifact of an old default.
15159 15159
15160 * lisp/which-key.el (which-key-replacement-alist): 15160 * lisp/which-key.el (which-key-replacement-alist):
15161 Remove unnecessary (delq nil...). 15161 Remove unnecessary (delq nil...).
@@ -50535,7 +50535,7 @@
50535 50535
50536 The Emacs regexp engine interprets character ranges from ASCII to raw 50536 The Emacs regexp engine interprets character ranges from ASCII to raw
50537 bytes, such as [a-\xfe], as not including non-ASCII Unicode at all; 50537 bytes, such as [a-\xfe], as not including non-ASCII Unicode at all;
50538 ranges from non-ACII Unicode to raw bytes, such as [ü-\x91], are 50538 ranges from non-ASCII Unicode to raw bytes, such as [ü-\x91], are
50539 ignored entirely. 50539 ignored entirely.
50540 50540
50541 To make rx produce a translation that works as intended, split ranges 50541 To make rx produce a translation that works as intended, split ranges
@@ -53275,7 +53275,7 @@
53275 53275
53276 * lisp/emacs-lisp/cl-macs.el (cl--slet): Add `nowarn` arg. 53276 * lisp/emacs-lisp/cl-macs.el (cl--slet): Add `nowarn` arg.
53277 (cl--defsubst-expand): Use it. 53277 (cl--defsubst-expand): Use it.
53278 (cl-defstruct): Silence warnings abour lexical shadowing when a slot's 53278 (cl-defstruct): Silence warnings about lexical shadowing when a slot's
53279 name happens to be the same as a dynbound var. 53279 name happens to be the same as a dynbound var.
53280 53280
532812023-06-25 Stefan Monnier <monnier@iro.umontreal.ca> 532812023-06-25 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -68708,7 +68708,7 @@
68708 works. 68708 works.
68709 68709
68710 * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): 68710 * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
68711 Instead of re-using local variables through mutation, bind them at 68711 Instead of reusing local variables through mutation, bind them at
68712 point of use. This ensures that there is no value leakage by mistake 68712 point of use. This ensures that there is no value leakage by mistake
68713 and actually reduces the static size of the bytecode of this function 68713 and actually reduces the static size of the bytecode of this function
68714 somewhat. 68714 somewhat.
@@ -75501,7 +75501,7 @@
75501 4004dde6ea Avoid positional arguments to define-minor-mode 75501 4004dde6ea Avoid positional arguments to define-minor-mode
75502 cb85f9c274 Fix typo in use-package docstring 75502 cb85f9c274 Fix typo in use-package docstring
75503 30b35d6d62 Update use-package.texi 75503 30b35d6d62 Update use-package.texi
75504 9be2580f5f optimization: constand folding for read-kbd-macro 75504 9be2580f5f optimization: constant folding for read-kbd-macro
75505 1143f14d65 bind-keys-form: error for repeat sub-keywords without :rep... 75505 1143f14d65 bind-keys-form: error for repeat sub-keywords without :rep...
75506 c4bd2aa3b8 bind-key-form: allow :continue keyword inside repeat map 75506 c4bd2aa3b8 bind-key-form: allow :continue keyword inside repeat map
75507 5ef327ce9f bind-key-form: allow :exit keyword inside repeat map 75507 5ef327ce9f bind-key-form: allow :exit keyword inside repeat map
diff --git a/admin/admin.el b/admin/admin.el
index a6a6aa76bb8..5cbf5ed3f5c 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -131,6 +131,11 @@ Root must be the root of an Emacs source tree."
131 (set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor 131 (set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor
132 "\\\\newcommand{\\\\versionemacs}\\[0\\]\ 132 "\\\\newcommand{\\\\versionemacs}\\[0\\]\
133{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))) 133{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
134 ;; Note: There's also the "android:versionCode=" property in
135 ;; java/AndroidManifest.xml, whose value is the major Emacs version,
136 ;; but if we increase it, upgraded installation will be unable to be
137 ;; downgraded to previous Emacs releases. (The corresponding
138 ;; "android:versionName=" value there is updated by configure.)
134 (let* ((oldversion 139 (let* ((oldversion
135 (with-temp-buffer 140 (with-temp-buffer
136 (insert-file-contents (expand-file-name "README" root)) 141 (insert-file-contents (expand-file-name "README" root))
diff --git a/admin/codespell/codespell.exclude b/admin/codespell/codespell.exclude
index f11918f53f3..5ebe467bcfe 100644
--- a/admin/codespell/codespell.exclude
+++ b/admin/codespell/codespell.exclude
@@ -1749,3 +1749,16 @@ All the characters whose Unicode general-category is Nd now have the
1749 (skipp (or (erc--memq-msg-prop 'erc--skip 'stamp) 1749 (skipp (or (erc--memq-msg-prop 'erc--skip 'stamp)
1750 (when (and fullp culled (not skipp) (< 1 beg 3 end)) 1750 (when (and fullp culled (not skipp) (< 1 beg 3 end))
1751 ((not skipp)) 1751 ((not skipp))
1752 (elisp--safe-macroexpand-all): Make the warning more discrete.
1753|PACK|UNPK|INDX|BLD |LEN |... |
1754@key{INDX} removes an integer @var{n}, then builds a vector of
1755integers from 1 to @var{n}. @kbd{INV INDX} takes three numbers
1756(sref STRING INDX) returns the character in STRING at INDEX. INDEX
1757;; |PACK|UNPK|INDX|BLD |LEN |... |
1758 ( "INDX" (progn calc-num-prefix calc-index) "\C-u\excalc-index\r" )
1759 (calc-enter-result 3 "indx" (cons 'calcFunc-index (calc-top-list-n 3)))
1760 (calc-enter-result 0 "indx" (list 'calcFunc-index
1761 (elisp--safe-macroexpand-all): Make the warning more discreet.
1762 dee6b36286 If use-package-verbose is t, show loading times when :afte...
1763 267fc6d00c4 ruby-smie-rules: Fix misindentation of a method call afte...
1764 b0181dafb9e Improve documentation of 'enable-local-variables' in Emac...
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index 8e23165b257..858f381cb61 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -172,11 +172,6 @@ General steps (for each step, check for possible errors):
1724. autoreconf -i -I m4 --force 1724. autoreconf -i -I m4 --force
173 make bootstrap 173 make bootstrap
174 174
175 The below script checks for any mistakes in the source text of
176 manual pages. Fix any errors and re-run the script to verify.
177
178 ./admin/check-man-pages
179
180 Then do this: 175 Then do this:
181 176
182 make -C etc/refcards 177 make -C etc/refcards
diff --git a/admin/nt/dist-build/build-dep-zips.py b/admin/nt/dist-build/build-dep-zips.py
index 567e8eb2133..af3036eb8e6 100755
--- a/admin/nt/dist-build/build-dep-zips.py
+++ b/admin/nt/dist-build/build-dep-zips.py
@@ -30,7 +30,7 @@ EMACS_MAJOR_VERSION= os.getenv('EMACS_MAJOR_VERSION') or "30"
30# Base URI for the package sources mapped in PKG_REQ 30# Base URI for the package sources mapped in PKG_REQ
31SRC_REPO="https://repo.msys2.org/mingw/sources" 31SRC_REPO="https://repo.msys2.org/mingw/sources"
32 32
33# Map items in `dynamic-library-alist' to source pakages 33# Map items in `dynamic-library-alist' to source packages
34PKG_REQ='''mingw-w64-x86_64-giflib 34PKG_REQ='''mingw-w64-x86_64-giflib
35mingw-w64-x86_64-gnutls 35mingw-w64-x86_64-gnutls
36mingw-w64-x86_64-harfbuzz 36mingw-w64-x86_64-harfbuzz
@@ -47,7 +47,7 @@ mingw-w64-x86_64-xpm-nox
47mingw-w64-x86_64-tree-sitter 47mingw-w64-x86_64-tree-sitter
48mingw-w64-x86_64-sqlite3'''.split() 48mingw-w64-x86_64-sqlite3'''.split()
49 49
50# Emacs style path to dependancy DLLs on build system 50# Emacs style path to dependency DLLs on build system
51DLL_SRC="c:/msys64/mingw64/bin" 51DLL_SRC="c:/msys64/mingw64/bin"
52 52
53# libraries we never include 53# libraries we never include
@@ -110,7 +110,7 @@ def gather_deps():
110 print("Deps updated in", os.getcwd(), "as", zipfile) 110 print("Deps updated in", os.getcwd(), "as", zipfile)
111 os.chdir("../") 111 os.chdir("../")
112 112
113# Return dependancies listed in Emacs 113# Return dependencies listed in Emacs
114def init_deps(): 114def init_deps():
115 return '''libXpm-nox4.dll 115 return '''libXpm-nox4.dll
116libpng16-16.dll 116libpng16-16.dll
@@ -382,7 +382,7 @@ parser.add_argument("-d", help="dry run",
382parser.add_argument("-l", help="list dependencies", 382parser.add_argument("-l", help="list dependencies",
383 action="store_true") 383 action="store_true")
384 384
385parser.add_argument("-e", help="extract direct dependancies", 385parser.add_argument("-e", help="extract direct dependencies",
386 action="store_true") 386 action="store_true")
387 387
388args = parser.parse_args() 388args = parser.parse_args()
diff --git a/admin/nt/dist-build/emacs.nsi b/admin/nt/dist-build/emacs.nsi
index b8226d69423..4a5de4f85f9 100644
--- a/admin/nt/dist-build/emacs.nsi
+++ b/admin/nt/dist-build/emacs.nsi
@@ -92,7 +92,7 @@ Section "Uninstall"
92 # remove All Users shortcuts only 92 # remove All Users shortcuts only
93 # SetShellVarContext all 93 # SetShellVarContext all
94 94
95 # retreive/recalculate uninstaller location 95 # retrieve/recalculate uninstaller location
96 StrCpy $UninstallerPath "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe" 96 StrCpy $UninstallerPath "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe"
97 97
98 # remove registry key 98 # remove registry key
@@ -101,7 +101,7 @@ Section "Uninstall"
101 # delete uninstaller 101 # delete uninstaller
102 Delete "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe" 102 Delete "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe"
103 103
104 # retreive/reclculate startmenu shortcuts location 104 # retrieve/recalculate startmenu shortcuts location
105 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder 105 !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
106 StrCpy $StartMenuFolder "$SMPROGRAMS\$StartMenuFolder" 106 StrCpy $StartMenuFolder "$SMPROGRAMS\$StartMenuFolder"
107 107
@@ -120,7 +120,7 @@ Section "Uninstall"
120 # we're basically using GOTO, above, so we should get here.. 120 # we're basically using GOTO, above, so we should get here..
121 startMenuDeleteLoopDone: 121 startMenuDeleteLoopDone:
122 122
123 # next we remove stuff from program-files/instalation path 123 # next we remove stuff from program-files/installation path
124 # start with recursive delete of the Emacs we installed 124 # start with recursive delete of the Emacs we installed
125 RMDir /r "$INSTDIR\emacs-${VERSION_BRANCH}" 125 RMDir /r "$INSTDIR\emacs-${VERSION_BRANCH}"
126 126
diff --git a/admin/release-process b/admin/release-process
index d66bc48f70d..7240ff10a29 100644
--- a/admin/release-process
+++ b/admin/release-process
@@ -90,7 +90,8 @@ documentation (or decide no updates are necessary) for those that aren't.
90 90
91** Try to reorder NEWS: most important things first, related items together. 91** Try to reorder NEWS: most important things first, related items together.
92 92
93** For a major release, add a "New in Emacs XX" section to faq.texi. 93** For a major release, add a "New in Emacs XX" section to efaq.texi.
94This should highlight some of the more significant changes.
94 95
95** cusver-check from admin.el can help find new defcustoms missing 96** cusver-check from admin.el can help find new defcustoms missing
96:version tags. This asks for new and old Lisp directories; use the one 97:version tags. This asks for new and old Lisp directories; use the one
@@ -113,14 +114,14 @@ Check for node names using problematic characters:
113Sadly makeinfo does not warn about such characters. 114Sadly makeinfo does not warn about such characters.
114 115
115Check for major new features added since the last release (e.g. new 116Check for major new features added since the last release (e.g. new
116lisp files), and add the relevant authors to the Acknowledgments in 117Lisp files), and add the relevant authors to the Acknowledgments in
117doc/emacs/ack.texi and emacs.texi. To find new files, you could run a 118doc/emacs/ack.texi and emacs.texi. To find new files, you could run a
118command such as this: 119command such as this:
119 120
120 $ diff -rq emacs-NN.MM emacs-XX.YY | grep "^Only in emacs-XX" 121 $ git diff --name-status emacs-NN emacs-XX | grep -E "^A"
121 122
122where NN.MM is the previous Emacs version, and XX.YY is the new version. 123where emacs-NN is the previous Emacs release branch, and emacs-XX is the
123This assumes you have the source trees of both versions available. 124new one.
124 125
125For major releases, rewrite the "Antinews" appendix of the User Manual 126For major releases, rewrite the "Antinews" appendix of the User Manual
126(doc/emacs/anti.texi) to describe features lost by downgrading to the 127(doc/emacs/anti.texi) to describe features lost by downgrading to the
@@ -129,10 +130,6 @@ significant changes and new features in the upcoming release, then
129describe the "benefits" from losing those features. Be funny, use 130describe the "benefits" from losing those features. Be funny, use
130humor. The text written for the previous releases can serve as an example. 131humor. The text written for the previous releases can serve as an example.
131 132
132The Emacs FAQ (doc/misc/efaq.texi) also has a "What's new" section;
133for major releases a new section should be added listing the
134significant changes.
135
136Check cross-references between the manuals (e.g. from emacs to elisp) 133Check cross-references between the manuals (e.g. from emacs to elisp)
137are correct. You can use something like the following in the info 134are correct. You can use something like the following in the info
138directory in the Emacs build tree: 135directory in the Emacs build tree:
@@ -225,6 +222,13 @@ https://publicsuffix.org/list/public_suffix_list.dat
225- leim/SKK-DIC/SKK-JISYO.L 222- leim/SKK-DIC/SKK-JISYO.L
226https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L 223https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L
227 224
225** Check for mistakes in man pages.
226
227The below script checks for any mistakes in the source text of
228manual pages. Fix any errors and re-run the script to verify.
229
230 ./admin/check-man-pages
231
228* BUGS 232* BUGS
229 233
230** Check for modes which bind M-s that conflicts with a new global binding M-s 234** Check for modes which bind M-s that conflicts with a new global binding M-s
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 8bfbde62add..cbb37ac09c7 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -2043,7 +2043,7 @@ sequences. For example, to bind @kbd{C-c h} to the string
2043@end example 2043@end example
2044 2044
2045 Non-@acronym{ASCII} characters can be specified directly in the 2045 Non-@acronym{ASCII} characters can be specified directly in the
2046string. To bind to e.g. @samp{ol@'a}, use: 2046string. To bind to, for example, @samp{ol@'a}, use:
2047 2047
2048@example 2048@example
2049(keymap-global-set "C-c h" (key-description "ol@'a")) 2049(keymap-global-set "C-c h" (key-description "ol@'a"))
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 065663194c9..07142e71713 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -749,7 +749,7 @@ window with a Dired buffer, or the most recently used window with
749a Dired buffer, or to use any other function. When the value is 749a Dired buffer, or to use any other function. When the value is
750a function, it will be called with no arguments and is expected to 750a function, it will be called with no arguments and is expected to
751return a list of directories which will be used as defaults 751return a list of directories which will be used as defaults
752(i.e. default target and ``future history''). 752(i.e., default target and ``future history'').
753 753
754 Here are the file-manipulating Dired commands that operate on files. 754 Here are the file-manipulating Dired commands that operate on files.
755 755
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 7606fd3c382..1a096e5d814 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -462,7 +462,7 @@ File Handling
462* Copying and Naming:: Copying, naming and renaming files. 462* Copying and Naming:: Copying, naming and renaming files.
463* Misc File Ops:: Other things you can do on files. 463* Misc File Ops:: Other things you can do on files.
464* Compressed Files:: Accessing compressed files. 464* Compressed Files:: Accessing compressed files.
465* File Archives:: Operating on tar, zip, jar etc. archive files. 465* File Archives:: Operating on tar, zip, jar etc.@: archive files.
466* Remote Files:: Accessing files on other machines. 466* Remote Files:: Accessing files on other machines.
467* Quoted File Names:: Quoting special characters in file names. 467* Quoted File Names:: Quoting special characters in file names.
468* File Name Cache:: Completion against a list of files you often use. 468* File Name Cache:: Completion against a list of files you often use.
@@ -588,7 +588,7 @@ International Character Set Support
588 588
589Major and Minor Modes 589Major and Minor Modes
590 590
591* Major Modes:: Text mode vs. Lisp mode vs. C mode... 591* Major Modes:: Text mode vs.@: Lisp mode vs.@: C mode...
592* Minor Modes:: Each minor mode is a feature you can turn on 592* Minor Modes:: Each minor mode is a feature you can turn on
593 independently of any others. 593 independently of any others.
594* Choosing Modes:: How modes are chosen when visiting files. 594* Choosing Modes:: How modes are chosen when visiting files.
@@ -909,7 +909,7 @@ Tags Tables
909Merging Files with Emerge 909Merging Files with Emerge
910 910
911* Overview of Emerge:: How to start Emerge. Basic concepts. 911* Overview of Emerge:: How to start Emerge. Basic concepts.
912* Submodes of Emerge:: Fast mode vs. Edit mode. 912* Submodes of Emerge:: Fast mode vs.@: Edit mode.
913 Skip Prefers mode and Auto Advance mode. 913 Skip Prefers mode and Auto Advance mode.
914* State of Difference:: You do the merge by specifying state A or B 914* State of Difference:: You do the merge by specifying state A or B
915 for each difference. 915 for each difference.
@@ -1121,7 +1121,7 @@ Hyperlinking and Navigation Features
1121* Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers. 1121* Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers.
1122* Browse-URL:: Following URLs. 1122* Browse-URL:: Following URLs.
1123* Goto Address mode:: Activating URLs. 1123* Goto Address mode:: Activating URLs.
1124* FFAP:: Finding files etc. at point. 1124* FFAP:: Finding files etc.@: at point.
1125 1125
1126Emacs Lisp Packages 1126Emacs Lisp Packages
1127 1127
diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi
index cea0424814e..d80c3f3b3a3 100644
--- a/doc/emacs/emerge-xtra.texi
+++ b/doc/emacs/emerge-xtra.texi
@@ -23,7 +23,7 @@ and @ref{Top,, Ediff, ediff, The Ediff Manual}.
23 23
24@menu 24@menu
25* Overview of Emerge:: How to start Emerge. Basic concepts. 25* Overview of Emerge:: How to start Emerge. Basic concepts.
26* Submodes of Emerge:: Fast mode vs. Edit mode. 26* Submodes of Emerge:: Fast mode vs.@: Edit mode.
27 Skip Prefers mode and Auto Advance mode. 27 Skip Prefers mode and Auto Advance mode.
28* State of Difference:: You do the merge by specifying state A or B 28* State of Difference:: You do the merge by specifying state A or B
29 for each difference. 29 for each difference.
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 87c4638be04..3db291d68e9 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -34,7 +34,7 @@ on file directories.
34* Copying and Naming:: Copying, naming and renaming files. 34* Copying and Naming:: Copying, naming and renaming files.
35* Misc File Ops:: Other things you can do on files. 35* Misc File Ops:: Other things you can do on files.
36* Compressed Files:: Accessing compressed files. 36* Compressed Files:: Accessing compressed files.
37* File Archives:: Operating on tar, zip, jar etc. archive files. 37* File Archives:: Operating on tar, zip, jar etc.@: archive files.
38* Remote Files:: Accessing files on other machines. 38* Remote Files:: Accessing files on other machines.
39* Quoted File Names:: Quoting special characters in file names. 39* Quoted File Names:: Quoting special characters in file names.
40* File Name Cache:: Completion against a list of files you often use. 40* File Name Cache:: Completion against a list of files you often use.
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index 1ebc76fa949..f240057aa69 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -371,7 +371,7 @@ Accept the incorrect word---treat it as correct, but only in this
371editing session and for this buffer. 371editing session and for this buffer.
372 372
373@item i 373@item i
374Insert this word in your private dictionary file so that it will be 374Insert this word in your personal dictionary file so that it will be
375considered correct from now on, even in future sessions. 375considered correct from now on, even in future sessions.
376 376
377@item m 377@item m
@@ -379,7 +379,7 @@ Like @kbd{i}, but you can also specify dictionary completion
379information. 379information.
380 380
381@item u 381@item u
382Insert the lower-case version of this word in your private dictionary 382Insert the lower-case version of this word in your personal dictionary
383file. 383file.
384 384
385@item l @var{word} @key{RET} 385@item l @var{word} @key{RET}
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 696d3df44ae..e0d8a607072 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1233,7 +1233,7 @@ or bottom of the window during drag.
1233 Emacs can also optionally drag the region with the mouse into 1233 Emacs can also optionally drag the region with the mouse into
1234another portion of this or another buffer. To enable that, customize 1234another portion of this or another buffer. To enable that, customize
1235the variable @code{mouse-drag-and-drop-region} to a non-@code{nil} 1235the variable @code{mouse-drag-and-drop-region} to a non-@code{nil}
1236value. Normally, the text is moved, i.e. cut and pasted, when the 1236value. Normally, the text is moved, i.e.@: cut and pasted, when the
1237destination is the same buffer as the origin; dropping the region on 1237destination is the same buffer as the origin; dropping the region on
1238another buffer copies the text instead. If the value of this variable 1238another buffer copies the text instead. If the value of this variable
1239names a modifier key, such as @samp{shift}, @samp{control} or 1239names a modifier key, such as @samp{shift}, @samp{control} or
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 4d63d891087..22af77b62c6 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -3011,7 +3011,7 @@ URLs and other types of links occurring in Emacs buffer text.
3011* Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers. 3011* Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers.
3012* Browse-URL:: Following URLs. 3012* Browse-URL:: Following URLs.
3013* Goto Address mode:: Activating URLs. 3013* Goto Address mode:: Activating URLs.
3014* FFAP:: Finding files etc. at point. 3014* FFAP:: Finding files etc.@: at point.
3015@end menu 3015@end menu
3016 3016
3017@node EWW 3017@node EWW
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi
index 3089a2543e5..c3008a48b04 100644
--- a/doc/emacs/modes.texi
+++ b/doc/emacs/modes.texi
@@ -23,7 +23,7 @@ words as you type (@pxref{Auto Fill}). Minor modes are independent of
23one another, and of the selected major mode. 23one another, and of the selected major mode.
24 24
25@menu 25@menu
26* Major Modes:: Text mode vs. Lisp mode vs. C mode... 26* Major Modes:: Text mode vs.@: Lisp mode vs.@: C mode...
27* Minor Modes:: Each minor mode is a feature you can turn on 27* Minor Modes:: Each minor mode is a feature you can turn on
28 independently of any others. 28 independently of any others.
29* Choosing Modes:: How modes are chosen when visiting files. 29* Choosing Modes:: How modes are chosen when visiting files.
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 4db0febbef8..397315867e4 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -516,8 +516,9 @@ do the highlighting in the buffer showing the possible characters,
516rather than in the echo area. 516rather than in the echo area.
517 517
518 To enter characters according to the @dfn{p@=iny@=in} transliteration 518 To enter characters according to the @dfn{p@=iny@=in} transliteration
519method instead, use the @code{chinese-sisheng} input method. This is 519method instead, use the @code{chinese-sisheng} input method. This is a
520a composition based method, where e.g. @kbd{pi1} results in @samp{p@=i}. 520composition based method, where, for example, @kbd{pi1} results in
521@samp{p@=i}.
521 522
522 In Japanese input methods, first you input a whole word using 523 In Japanese input methods, first you input a whole word using
523phonetic spelling; then, after the word is in the buffer, Emacs 524phonetic spelling; then, after the word is in the buffer, Emacs
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index c5502b54091..a992f26fcdd 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -713,7 +713,7 @@ you customize the value of @code{tab-line-format} in Lisp to add
713 The command @code{global-window-tool-bar-mode} toggles the display of 713 The command @code{global-window-tool-bar-mode} toggles the display of
714a tool bar at the top of each window. When enabled, multiple windows 714a tool bar at the top of each window. When enabled, multiple windows
715can display their own tool bar simultaneously. To conserve space, a 715can display their own tool bar simultaneously. To conserve space, a
716window tool bar is hidden if there are no buttons to show, i.e. if 716window tool bar is hidden if there are no buttons to show, i.e.@: if
717@code{tool-bar-map} is @code{nil}. 717@code{tool-bar-map} is @code{nil}.
718 718
719@findex window-tool-bar-mode 719@findex window-tool-bar-mode
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 2c94e7f407e..b041678d8c8 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -3812,7 +3812,7 @@ the @code{let} body finishes, it takes that binding off of the stack,
3812revealing the one it had (if any) before the @code{let} expression. 3812revealing the one it had (if any) before the @code{let} expression.
3813 3813
3814@node Lexical vs Dynamic Binding Example 3814@node Lexical vs Dynamic Binding Example
3815@unnumberedsubsubsec Example of Lexical vs. Dynamic Binding 3815@unnumberedsubsubsec Example of Lexical vs.@: Dynamic Binding
3816In some cases, both lexical and dynamic binding behave identically. 3816In some cases, both lexical and dynamic binding behave identically.
3817However, in other cases, they can change the meaning of your program. 3817However, in other cases, they can change the meaning of your program.
3818For example, see what happens in this code under lexical binding: 3818For example, see what happens in this code under lexical binding:
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index c6ac904a704..1400cb37dd7 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -560,7 +560,7 @@ Multisession Variables
560 560
561Functions 561Functions
562 562
563* What Is a Function:: Lisp functions vs. primitives; terminology. 563* What Is a Function:: Lisp functions vs.@: primitives; terminology.
564* Lambda Expressions:: How functions are expressed as Lisp objects. 564* Lambda Expressions:: How functions are expressed as Lisp objects.
565* Function Names:: A symbol can serve as the name of a function. 565* Function Names:: A symbol can serve as the name of a function.
566* Defining Functions:: Lisp expressions for defining functions. 566* Defining Functions:: Lisp expressions for defining functions.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 7470716a587..c71b977550e 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -4759,7 +4759,7 @@ and secondary selections by saving the value supplied into a variable
4759subsequent calls to @code{gui-get-selection} return. 4759subsequent calls to @code{gui-get-selection} return.
4760 4760
4761 From the clipboard, @code{gui-get-selection} is capable of returning 4761 From the clipboard, @code{gui-get-selection} is capable of returning
4762UTF-8 string data of the type @code{STRING}, the @code{TAREGTS} data 4762UTF-8 string data of the type @code{STRING}, the @code{TARGETS} data
4763type, or image and application data of any MIME type. 4763type, or image and application data of any MIME type.
4764@code{gui-set-selection} sets only string data, much as under 4764@code{gui-set-selection} sets only string data, much as under
4765MS-Windows, although this data is not affected by the value of 4765MS-Windows, although this data is not affected by the value of
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 770d54a0038..6b02624c680 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -11,7 +11,7 @@ explains what functions are, how they accept arguments, and how to
11define them. 11define them.
12 12
13@menu 13@menu
14* What Is a Function:: Lisp functions vs. primitives; terminology. 14* What Is a Function:: Lisp functions vs.@: primitives; terminology.
15* Lambda Expressions:: How functions are expressed as Lisp objects. 15* Lambda Expressions:: How functions are expressed as Lisp objects.
16* Function Names:: A symbol can serve as the name of a function. 16* Function Names:: A symbol can serve as the name of a function.
17* Defining Functions:: Lisp expressions for defining functions. 17* Defining Functions:: Lisp expressions for defining functions.
@@ -1469,7 +1469,7 @@ that don't require them.
1469The type specializer, @code{(@var{arg} @var{type})}, can specify one 1469The type specializer, @code{(@var{arg} @var{type})}, can specify one
1470of the @dfn{system types} in the following list. When a parent type 1470of the @dfn{system types} in the following list. When a parent type
1471is specified, an argument whose type is any of its more specific child 1471is specified, an argument whose type is any of its more specific child
1472types, as well as grand-children, grand-grand-children, etc. will also 1472types, as well as grand-children, grand-grand-children, etc.@: will also
1473be compatible. 1473be compatible.
1474 1474
1475@table @code 1475@table @code
diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi
index 3b40e3f2c59..f429d1512fd 100644
--- a/doc/lispref/hash.texi
+++ b/doc/lispref/hash.texi
@@ -291,10 +291,10 @@ the same integer.
291@end defun 291@end defun
292 292
293@defun sxhash-eql obj 293@defun sxhash-eql obj
294This function returns a hash code for Lisp object @var{obj} suitable 294This function returns a hash code for Lisp object @var{obj} suitable for
295for @code{eql} comparison. I.e. it reflects identity of @var{obj} 295@code{eql} comparison. In other words, it reflects identity of
296except for the case where the object is a bignum or a float number, 296@var{obj} except for the case where the object is a bignum or a float
297in which case a hash code is generated for the value. 297number, in which case a hash code is generated for the value.
298 298
299If two objects @var{obj1} and @var{obj2} are @code{eql}, then 299If two objects @var{obj1} and @var{obj2} are @code{eql}, then
300@code{(sxhash-eql @var{obj1})} and @code{(sxhash-eql @var{obj2})} are 300@code{(sxhash-eql @var{obj1})} and @code{(sxhash-eql @var{obj2})} are
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index ff09e0aca1c..652439f12d8 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -1021,7 +1021,7 @@ comment. @xref{Documentation Basics}, for more details.
1021(@code{int} and @code{bool}), the name of the C variable is the name 1021(@code{int} and @code{bool}), the name of the C variable is the name
1022of the Lisp variable with @code{-} replaced by @code{_}. When the 1022of the Lisp variable with @code{-} replaced by @code{_}. When the
1023variable has type @code{Lisp_Object}, the convention is to also prefix 1023variable has type @code{Lisp_Object}, the convention is to also prefix
1024the C variable name with @code{V}. i.e. 1024the C variable name with @code{V}. This is an example:
1025 1025
1026@smallexample 1026@smallexample
1027DEFVAR_INT ("my-int-variable", my_int_variable, 1027DEFVAR_INT ("my-int-variable", my_int_variable,
@@ -1038,7 +1038,6 @@ with @code{let}. In C sources, this is done by defining a
1038corresponding, constant symbol, and using @code{specbind}. By 1038corresponding, constant symbol, and using @code{specbind}. By
1039convention, @code{Qmy_lisp_variable} corresponds to 1039convention, @code{Qmy_lisp_variable} corresponds to
1040@code{Vmy_lisp_variable}; to define it, use the @code{DEFSYM} macro. 1040@code{Vmy_lisp_variable}; to define it, use the @code{DEFSYM} macro.
1041i.e.
1042 1041
1043@smallexample 1042@smallexample
1044DEFSYM (Qmy_lisp_variable, "my-lisp-variable"); 1043DEFSYM (Qmy_lisp_variable, "my-lisp-variable");
@@ -1050,17 +1049,17 @@ DEFSYM (Qmy_lisp_variable, "my-lisp-variable");
1050specbind (Qmy_lisp_variable, Qt); 1049specbind (Qmy_lisp_variable, Qt);
1051@end smallexample 1050@end smallexample
1052 1051
1053 In Lisp symbols sometimes need to be quoted, to achieve the same 1052 In Lisp, symbols sometimes need to be quoted. To achieve the same
1054effect in C you again use the corresponding constant symbol 1053effect in C, you again use the corresponding constant symbol
1055@code{Qmy_lisp_variable}. For example, when creating a buffer-local 1054@code{Qmy_lisp_variable}. For example, when creating a buffer-local
1056variable (@pxref{Buffer-Local Variables}) in Lisp you would write: 1055variable (@pxref{Buffer-Local Variables}) in Lisp, you would write:
1057 1056
1058@smallexample 1057@smallexample
1059(make-variable-buffer-local 'my-lisp-variable) 1058(make-variable-buffer-local 'my-lisp-variable)
1060@end smallexample 1059@end smallexample
1061 1060
1062In C the corresponding code uses @code{Fmake_variable_buffer_local} in 1061In C, the corresponding code uses @code{Fmake_variable_buffer_local} in
1063combination with @code{DEFSYM}, i.e. 1062combination with @code{DEFSYM}:
1064 1063
1065@smallexample 1064@smallexample
1066DEFSYM (Qmy_lisp_variable, "my-lisp-variable"); 1065DEFSYM (Qmy_lisp_variable, "my-lisp-variable");
@@ -1164,7 +1163,8 @@ functions.
1164 1163
1165 If you define a function which is side-effect free or pure, give it 1164 If you define a function which is side-effect free or pure, give it
1166a non-@code{nil} @code{side-effect-free} or @code{pure} property, 1165a non-@code{nil} @code{side-effect-free} or @code{pure} property,
1167respectively (@pxref{Standard Properties}). 1166respectively (@pxref{Standard Properties}). See the lists defined in
1167@samp{byte-opt.el}.
1168 1168
1169@node Writing Dynamic Modules 1169@node Writing Dynamic Modules
1170@section Writing Dynamically-Loaded Modules 1170@section Writing Dynamically-Loaded Modules
@@ -2745,7 +2745,7 @@ The window-relative vertical position of the line containing
2745@item window_end_valid 2745@item window_end_valid
2746This field is set to a non-zero value if @code{window_end_pos} and 2746This field is set to a non-zero value if @code{window_end_pos} and
2747@code{window_end_vpos} are truly valid. This is zero if nontrivial 2747@code{window_end_vpos} are truly valid. This is zero if nontrivial
2748redisplay is pre-empted, since in that case the display that 2748redisplay is preempted, since in that case the display that
2749@code{window_end_pos} was computed for did not get onto the screen. 2749@code{window_end_pos} was computed for did not get onto the screen.
2750 2750
2751@item cursor 2751@item cursor
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index eaba29a33e3..dc9666d4422 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -459,9 +459,9 @@ Here's an example:
459@kindex :repeat 459@kindex :repeat
460@kindex repeat-mode 460@kindex repeat-mode
461@cindex repeatable key bindings 461@cindex repeatable key bindings
462Each command in the keymap can be marked as `repeatable', i.e. usable 462Each command in the keymap can be marked as `repeatable', i.e.@: usable
463in @code{repeat-mode}, by putting a @code{repeat-map} property on it, 463in @code{repeat-mode}, by putting a @code{repeat-map} property on it,
464e.g. 464for example:
465 465
466@lisp 466@lisp
467(put 'undo 'repeat-map 'undo-repeat-map) 467(put 'undo 'repeat-map 'undo-repeat-map)
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index a660a9b7ecf..37a07421e94 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -1980,8 +1980,8 @@ valid property list.
1980 1980
1981@node Plists and Alists 1981@node Plists and Alists
1982@subsection Property Lists and Association Lists 1982@subsection Property Lists and Association Lists
1983@cindex plist vs. alist 1983@cindex plist vs.@: alist
1984@cindex alist vs. plist 1984@cindex alist vs.@: plist
1985 1985
1986@cindex property lists vs association lists 1986@cindex property lists vs association lists
1987 Association lists (@pxref{Association Lists}) are very similar to 1987 Association lists (@pxref{Association Lists}) are very similar to
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 7c532002670..25512df5320 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -2609,7 +2609,7 @@ The value of @code{global-mode-string} (which is part of
2609 2609
2610@item %o 2610@item %o
2611The degree of @dfn{travel} of the window through (the visible portion 2611The degree of @dfn{travel} of the window through (the visible portion
2612of) the buffer, i.e. the size of the text above the top of the window 2612of) the buffer, i.e.@: the size of the text above the top of the window
2613expressed as a percentage of all the text outside the window, or 2613expressed as a percentage of all the text outside the window, or
2614@samp{Top}, @samp{Bottom} or @samp{All}. 2614@samp{Top}, @samp{Bottom} or @samp{All}.
2615 2615
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index 345460e2cda..884f54b32ac 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -644,7 +644,7 @@ be consulted instead.
644Corresponds to Unicode language- and context-independent special 644Corresponds to Unicode language- and context-independent special
645lower-casing rules. The value of this property is a string (which may 645lower-casing rules. The value of this property is a string (which may
646be empty). For example for U+0130 @sc{latin capital letter i 646be empty). For example for U+0130 @sc{latin capital letter i
647with dot above} the value is @code{"i\u0307"} (i.e. a 2-character string 647with dot above} the value is @code{"i\u0307"} (i.e., a 2-character string
648consisting of @sc{latin small letter i} followed by U+0307 648consisting of @sc{latin small letter i} followed by U+0307
649@sc{combining dot above}). This mapping overrides the @code{lowercase} 649@sc{combining dot above}). This mapping overrides the @code{lowercase}
650property, and thus the current case table. For characters with no 650property, and thus the current case table. For characters with no
@@ -741,7 +741,7 @@ belongs, according to the Unicode Standard classification of the
741Unicode code space into script-specific blocks. This char-table has a 741Unicode code space into script-specific blocks. This char-table has a
742single extra slot whose value is the list of all script symbols. Note 742single extra slot whose value is the list of all script symbols. Note
743that Emacs's classification of characters into scripts is not a 1-for-1 743that Emacs's classification of characters into scripts is not a 1-for-1
744reflection of the Unicode standard, e.g. there is no @samp{symbol} 744reflection of the Unicode standard, for example there is no @samp{symbol}
745script in Unicode. 745script in Unicode.
746@end defvar 746@end defvar
747 747
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index e529a2c0822..804efb50162 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -3166,7 +3166,7 @@ machine you are using. The value is an alist whose elements have the
3166form @code{(@var{ifname} . @var{address})}. @var{ifname} is a string 3166form @code{(@var{ifname} . @var{address})}. @var{ifname} is a string
3167naming the interface, @var{address} has the same form as the 3167naming the interface, @var{address} has the same form as the
3168@var{local-address} and @var{remote-address} arguments to 3168@var{local-address} and @var{remote-address} arguments to
3169@code{make-network-process}, i.e. a vector of integers. By default 3169@code{make-network-process}, i.e.@: a vector of integers. By default
3170both IPv4 and IPv6 addresses are returned if possible. 3170both IPv4 and IPv6 addresses are returned if possible.
3171 3171
3172Optional argument @var{full} non-@code{nil} means to instead return a 3172Optional argument @var{full} non-@code{nil} means to instead return a
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 77362b3b401..09ff6202afa 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1835,7 +1835,7 @@ The optional argument @var{paren} can be any of the following:
1835@table @asis 1835@table @asis
1836@item a string 1836@item a string
1837The resulting regexp is preceded by @var{paren} and followed by 1837The resulting regexp is preceded by @var{paren} and followed by
1838@samp{\)}, e.g. use @samp{"\\(?1:"} to produce an explicitly 1838@samp{\)}. For example, use @samp{"\\(?1:"} to produce an explicitly
1839numbered group. 1839numbered group.
1840 1840
1841@item @code{words} 1841@item @code{words}
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index c4f6a073bb1..3ab349df8f3 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -996,7 +996,7 @@ character (similar to the second character in a syntax descriptor).
996 996
997@cindex syntax tables (accessing elements of) 997@cindex syntax tables (accessing elements of)
998Use @code{aref} (@pxref{Array Functions}) to get the raw syntax 998Use @code{aref} (@pxref{Array Functions}) to get the raw syntax
999descriptor of a character, e.g. @w{@code{(aref (syntax-table) ch)}}. 999descriptor of a character, for example @w{@code{(aref (syntax-table) ch)}}.
1000 1000
1001 Here are the syntax codes corresponding to the various syntax 1001 Here are the syntax codes corresponding to the various syntax
1002classes: 1002classes:
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 91ebd6cf233..bada8bd734b 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1696,7 +1696,7 @@ The @code{pixel-fill-width} helper function can be used to compute the
1696pixel width to use. If given no arguments, it'll return a value 1696pixel width to use. If given no arguments, it'll return a value
1697slightly less than the width of the current window. The first 1697slightly less than the width of the current window. The first
1698optional value, @var{columns}, specifies the number of columns using 1698optional value, @var{columns}, specifies the number of columns using
1699the standard, monospaced fonts, e.g. @code{fill-column}. The second 1699the standard, monospaced fonts, for example @code{fill-column}. The second
1700optional value is the window to use. You'd typically use it like 1700optional value is the window to use. You'd typically use it like
1701this: 1701this:
1702 1702
@@ -4971,7 +4971,7 @@ network. MD5 and SHA-1 are not collision resistant (i.e., it is
4971possible to deliberately design different pieces of data which have 4971possible to deliberately design different pieces of data which have
4972the same MD5 or SHA-1 hash), so you should not use them for anything 4972the same MD5 or SHA-1 hash), so you should not use them for anything
4973security-related. For security-related applications you should use 4973security-related. For security-related applications you should use
4974the other hash types, such as SHA-2 (e.g. @code{sha256} or 4974the other hash types, such as SHA-2 (e.g., @code{sha256} or
4975@code{sha512}). 4975@code{sha512}).
4976 4976
4977@defun secure-hash-algorithms 4977@defun secure-hash-algorithms
@@ -6137,7 +6137,7 @@ communicating endpoints is a matter of correctly designing the RPC
6137application: when synchronization is needed, requests (which are 6137application: when synchronization is needed, requests (which are
6138blocking) should be used; when it isn't, notifications should suffice. 6138blocking) should be used; when it isn't, notifications should suffice.
6139However, when Emacs acts as one of these endpoints, asynchronous 6139However, when Emacs acts as one of these endpoints, asynchronous
6140events (e.g. timer- or process-related) may be triggered while there 6140events (e.g., timer- or process-related) may be triggered while there
6141is still uncertainty about the state of the remote endpoint. 6141is still uncertainty about the state of the remote endpoint.
6142Furthermore, acting on these events may only sometimes demand 6142Furthermore, acting on these events may only sometimes demand
6143synchronization, depending on the event's specific nature. 6143synchronization, depending on the event's specific nature.
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index d4fbcabc1f1..57bd16cc87d 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -234,7 +234,7 @@ series of calculators, its many features include:
234@itemize @bullet 234@itemize @bullet
235@item 235@item
236Choice of algebraic or Reverse Polish notation (RPN), 236Choice of algebraic or Reverse Polish notation (RPN),
237i.e. stack-based, entry of calculations. 237i.e.@: stack-based, entry of calculations.
238 238
239@item 239@item
240Arbitrary precision integers and floating-point numbers. 240Arbitrary precision integers and floating-point numbers.
@@ -2630,8 +2630,8 @@ elements.) Calculations involving fractions will always
2630produce exact fractional results; Fraction mode only says 2630produce exact fractional results; Fraction mode only says
2631what to do when dividing two integers. 2631what to do when dividing two integers.
2632 2632
2633@cindex Fractions vs. floats 2633@cindex Fractions vs.@: floats
2634@cindex Floats vs. fractions 2634@cindex Floats vs.@: fractions
2635(@bullet{}) @strong{Exercise 4.} If fractional arithmetic is exact, 2635(@bullet{}) @strong{Exercise 4.} If fractional arithmetic is exact,
2636why would you ever use floating-point numbers instead? 2636why would you ever use floating-point numbers instead?
2637@xref{Modes Answer 4, 4}. (@bullet{}) 2637@xref{Modes Answer 4, 4}. (@bullet{})
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index f98a21743ac..7a3aa61b7ce 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -6164,7 +6164,7 @@ Line up the second entry of a brace block under the first, when the
6164first line is also contained in an arglist or an enclosing brace 6164first line is also contained in an arglist or an enclosing brace
6165@emph{on that line}. 6165@emph{on that line}.
6166 6166
6167I.e. handle something like the following: 6167In other words, handle something like the following:
6168 6168
6169@example 6169@example
6170@group 6170@group
@@ -6225,7 +6225,7 @@ Line up the second entry of a class (etc.) initializer
6225@code{c-basic-offset} characters in from the identifier when: 6225@code{c-basic-offset} characters in from the identifier when:
6226@enumerate 6226@enumerate
6227@item 6227@item
6228The type is a class, struct, union, etc. (but not an enum); 6228The type is a class, struct, union, etc.@: (but not an enum);
6229@item 6229@item
6230There is a brace block in the type declaration, specifying it; and 6230There is a brace block in the type declaration, specifying it; and
6231@item 6231@item
@@ -6233,7 +6233,7 @@ The first element of the initializer is on the same line as its
6233opening brace. 6233opening brace.
6234@end enumerate 6234@end enumerate
6235 6235
6236I.e. we have a construct like this: 6236In other words, we have a construct like this:
6237 6237
6238@example 6238@example
6239@group 6239@group
@@ -6267,7 +6267,7 @@ Line up the second entry of a class (etc.) initializer after its
6267opening brace when: 6267opening brace when:
6268@enumerate 6268@enumerate
6269@item 6269@item
6270The type is a class, struct, union, etc. (but not an enum); 6270The type is a class, struct, union, etc.@: (but not an enum);
6271@item 6271@item
6272There is a brace block in the type declaration, specifying it; and 6272There is a brace block in the type declaration, specifying it; and
6273@item 6273@item
@@ -6275,7 +6275,7 @@ The first element of the initializer is on the same line as its
6275opening brace. 6275opening brace.
6276@end enumerate 6276@end enumerate
6277 6277
6278I.e. we have a construct like this: 6278In other words, we have a construct like this:
6279 6279
6280@example 6280@example
6281@group 6281@group
@@ -6589,7 +6589,7 @@ function is the same as specifying a list @code{(c-lineup-assignments
6589@defun c-lineup-ternary-bodies 6589@defun c-lineup-ternary-bodies
6590@findex lineup-ternary-bodies @r{(c-)} 6590@findex lineup-ternary-bodies @r{(c-)}
6591Line up true and false branches of a ternary operator 6591Line up true and false branches of a ternary operator
6592(i.e. @code{?:}). More precisely, if the line starts with a colon 6592(i.e., @code{?:}). More precisely, if the line starts with a colon
6593which is a part of a said operator, align it with corresponding 6593which is a part of a said operator, align it with corresponding
6594question mark. For example: 6594question mark. For example:
6595 6595
@@ -7162,7 +7162,7 @@ is @code{nil}, all lines inside macro definitions are analyzed as
7162@end defopt 7162@end defopt
7163 7163
7164Sometimes you may want to indent particular directives 7164Sometimes you may want to indent particular directives
7165(e.g. @code{#pragma}) as though they were statements. To do this, see 7165(e.g., @code{#pragma}) as though they were statements. To do this, see
7166@ref{Indenting Directives}. 7166@ref{Indenting Directives}.
7167 7167
7168Because a macro can expand into anything at all, near where one is 7168Because a macro can expand into anything at all, near where one is
@@ -7354,7 +7354,7 @@ after the mode hooks have run.
7354@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7354@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7355 7355
7356Sometimes you may want to indent particular preprocessor directives 7356Sometimes you may want to indent particular preprocessor directives
7357(e.g. @code{#pragma}) as though they were statements. To do this, 7357(e.g., @code{#pragma}) as though they were statements. To do this,
7358first set up @code{c-cpp-indent-to-body-directives} to include the 7358first set up @code{c-cpp-indent-to-body-directives} to include the
7359directive name(s), then enable the ``indent to body'' feature with 7359directive name(s), then enable the ``indent to body'' feature with
7360@code{c-toggle-cpp-indent-to-body}. 7360@code{c-toggle-cpp-indent-to-body}.
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index b41b51df262..c85c7812b11 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -1889,8 +1889,8 @@ capabilities.
1889 1889
1890If by contrast you wish to @emph{disable} tty color support, either 1890If by contrast you wish to @emph{disable} tty color support, either
1891start emacs with the @samp{--color=no} command-line option, or ensure 1891start emacs with the @samp{--color=no} command-line option, or ensure
1892that the frame parameter @code{tty-color-mode} is @code{no}, e.g. by 1892that the frame parameter @code{tty-color-mode} is @code{no}, for example
1893putting the following in your init file: 1893by putting the following in your init file:
1894 1894
1895@lisp 1895@lisp
1896(push '(tty-color-mode . no) default-frame-alist) 1896(push '(tty-color-mode . no) default-frame-alist)
@@ -3686,9 +3686,9 @@ You can tell Emacs the shell's current directory with the command
3686@item 3686@item
3687Third party packages. 3687Third party packages.
3688 3688
3689Any package you install into Emacs can run arbitrary code with the 3689Any package you install into Emacs can run arbitrary code with the same
3690same privileges as the Emacs process itself. Be aware of this when 3690privileges as the Emacs process itself. Be aware of this when you use
3691you use the package system (e.g. @code{M-x list-packages}) with third 3691the package system (for example, @code{M-x list-packages}) with third
3692party archives. Use only third parties that you can trust! 3692party archives. Use only third parties that you can trust!
3693 3693
3694@item 3694@item
diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi
index af38adc094a..d7bd78e134b 100644
--- a/doc/misc/eglot.texi
+++ b/doc/misc/eglot.texi
@@ -872,7 +872,7 @@ If this is non-@code{nil}, and @kbd{M-.}
872(@code{xref-find-definitions}) lands you in a file outside of your 872(@code{xref-find-definitions}) lands you in a file outside of your
873project, such as a system-installed library or header file, 873project, such as a system-installed library or header file,
874transiently consider that file as managed by the same language server. 874transiently consider that file as managed by the same language server.
875That file is still outside your project (i.e. @code{project-find-file} 875That file is still outside your project (i.e., @code{project-find-file}
876won't find it), but Eglot and the server will consider it to be part 876won't find it), but Eglot and the server will consider it to be part
877of the workspace. The default is @code{nil}. 877of the workspace. The default is @code{nil}.
878 878
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index 878ec798b19..7c934d8bb3a 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -851,7 +851,7 @@ Examples of use:
851 851
852In the case of @code{:client-certificate t}, you will need to add a 852In the case of @code{:client-certificate t}, you will need to add a
853line like the following to your authinfo file 853line like the following to your authinfo file
854(e.g. @file{~/.authinfo.gpg}): 854(for example, @file{~/.authinfo.gpg}):
855 855
856@example 856@example
857machine irc.libera.chat key /home/bandali/my-cert.key cert /home/bandali/my-cert.crt 857machine irc.libera.chat key /home/bandali/my-cert.key cert /home/bandali/my-cert.crt
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 6f70b270c5a..465d3dede13 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -1642,7 +1642,7 @@ edited aliases.
1642 1642
1643Note that unlike aliases in Bash, arguments must be handled 1643Note that unlike aliases in Bash, arguments must be handled
1644explicitly. Within aliases, you can use the special variables 1644explicitly. Within aliases, you can use the special variables
1645@samp{$*}, @samp{$0}, @samp{$1}, @samp{$2}, etc. to refer to the 1645@samp{$*}, @samp{$0}, @samp{$1}, @samp{$2}, etc.@: to refer to the
1646arguments passed to the alias. 1646arguments passed to the alias.
1647 1647
1648@table @code 1648@table @code
@@ -2600,8 +2600,8 @@ glob patterns, the pattern will be removed from the input line, and
2600replaced by the completion. 2600replaced by the completion.
2601 2601
2602@kindex M-? 2602@kindex M-?
2603If you want to see the entire list of possible completions (e.g. when it's 2603If you want to see the entire list of possible completions (e.g., when
2604below the @code{completion-cycle-threshold}), press @kbd{M-?}. 2604it's below the @code{completion-cycle-threshold}), press @kbd{M-?}.
2605 2605
2606@subsection pcomplete 2606@subsection pcomplete
2607Pcomplete, short for programmable completion, is the completion 2607Pcomplete, short for programmable completion, is the completion
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 8782089613a..54835767928 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -582,7 +582,7 @@ function was called for the buffer. If the list is empty, this
582indicates that no changes have been recorded. If it is the first time 582indicates that no changes have been recorded. If it is the first time
583that this backend function is called for this activation of 583that this backend function is called for this activation of
584@code{flymake-mode}, then this argument isn't provided at all 584@code{flymake-mode}, then this argument isn't provided at all
585(i.e. it's not merely nil). 585(in other words, it's not merely nil).
586 586
587Each element is in the form (@var{beg} @var{end} @var{text}) where 587Each element is in the form (@var{beg} @var{end} @var{text}) where
588@var{beg} and @var{end} are buffer positions, and @var{text} is a 588@var{beg} and @var{end} are buffer positions, and @var{text} is a
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 914de5320f0..c4bec5a273f 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1054,7 +1054,7 @@ of the variables @code{shr-color-visible-distance-min} and
1054 messages? 1054 messages?
1055* FAQ 5-3:: How to set stuff like From, Organization, Reply-To, 1055* FAQ 5-3:: How to set stuff like From, Organization, Reply-To,
1056 signature...? 1056 signature...?
1057* FAQ 5-4:: Can I set things like From, Signature etc. group based on 1057* FAQ 5-4:: Can I set things like From, Signature etc.@: group based on
1058 the group I post too? 1058 the group I post too?
1059* FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly 1059* FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly
1060 spell-checking? 1060 spell-checking?
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 8a497ebb228..6ac07e89742 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -18612,7 +18612,7 @@ sending the diary message to them as well.
18612@cindex Gnus agent 18612@cindex Gnus agent
18613@cindex Gnus unplugged 18613@cindex Gnus unplugged
18614 18614
18615In olden times (ca. February '88), people used to run their newsreaders 18615In olden times (ca.@: February '88), people used to run their newsreaders
18616on big machines with permanent connections to the net. News transport 18616on big machines with permanent connections to the net. News transport
18617was dealt with by news servers, and all the newsreaders had to do was to 18617was dealt with by news servers, and all the newsreaders had to do was to
18618read news. Believe it or not. 18618read news. Believe it or not.
@@ -23349,7 +23349,7 @@ windows resized.
23349Lastly, it's possible to make Gnus window layouts ``atomic'' 23349Lastly, it's possible to make Gnus window layouts ``atomic''
23350(@pxref{Atomic Windows, , Atomic Windows, elisp, The GNU Emacs Lisp 23350(@pxref{Atomic Windows, , Atomic Windows, elisp, The GNU Emacs Lisp
23351Reference Manual}) by setting @code{gnus-use-atomic-windows} to 23351Reference Manual}) by setting @code{gnus-use-atomic-windows} to
23352@code{t}. This will ensure that pop-up buffers (e.g. help or 23352@code{t}. This will ensure that pop-up buffers (e.g., help or
23353completion buffers), will appear below or to the side of the entire 23353completion buffers), will appear below or to the side of the entire
23354Gnus window layout and not, for example, squashed between the summary 23354Gnus window layout and not, for example, squashed between the summary
23355and article buffers. 23355and article buffers.
@@ -24859,7 +24859,7 @@ particular spam group. You don't have to throw all mail into all the
24859spam tests. Another reason why this is nice is that messages to 24859spam tests. Another reason why this is nice is that messages to
24860mailing lists you have rules for don't have to have resource-intensive 24860mailing lists you have rules for don't have to have resource-intensive
24861blackhole checks performed on them. You could also specify different 24861blackhole checks performed on them. You could also specify different
24862spam checks for your nnmail split vs. your nnimap split. Go crazy. 24862spam checks for your nnmail split vs.@: your nnimap split. Go crazy.
24863 24863
24864You should set the @code{spam-use-*} variables for whatever spam back 24864You should set the @code{spam-use-*} variables for whatever spam back
24865ends you intend to use. The reason is that when loading 24865ends you intend to use. The reason is that when loading
@@ -26980,7 +26980,7 @@ appropriate name, don't you think?)
26980In any case, after spending all that energy on coming up with a new and 26980In any case, after spending all that energy on coming up with a new and
26981spunky name, we decided that the name was @emph{too} spunky, so we 26981spunky name, we decided that the name was @emph{too} spunky, so we
26982renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs. 26982renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs.
26983``@sc{gnus}''. New vs. old. 26983``@sc{gnus}''. New vs.@: old.
26984 26984
26985@menu 26985@menu
26986* Gnus Versions:: What Gnus versions have been released. 26986* Gnus Versions:: What Gnus versions have been released.
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 0e10e2078a4..a9a594dfcee 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -1333,7 +1333,7 @@ corresponding help (@pxref{Routine Info}).
1333When using completion and Emacs pops up a @file{*Completions*} buffer 1333When using completion and Emacs pops up a @file{*Completions*} buffer
1334with possible completions, clicking with @kbd{mouse-3} on a completion 1334with possible completions, clicking with @kbd{mouse-3} on a completion
1335item invokes help on that item (@pxref{Completion}). Items for which 1335item invokes help on that item (@pxref{Completion}). Items for which
1336help is available in the online system documentation (vs. just the 1336help is available in the online system documentation (vs.@: just the
1337program source itself) will be emphasized (e.g., colored blue). 1337program source itself) will be emphasized (e.g., colored blue).
1338@end itemize 1338@end itemize
1339@noindent 1339@noindent
@@ -3495,7 +3495,7 @@ Controls under what circumstances routine info is updated automatically.
3495 3495
3496@emph{Catalogs} are files containing scanned information on individual 3496@emph{Catalogs} are files containing scanned information on individual
3497routines, including arguments and keywords, calling sequence, file path, 3497routines, including arguments and keywords, calling sequence, file path,
3498class and procedure vs. function type, etc. They represent a way of 3498class and procedure vs.@: function type, etc. They represent a way of
3499extending the internal built-in information available for IDL system 3499extending the internal built-in information available for IDL system
3500routines (@pxref{Routine Info}) to other source collections. 3500routines (@pxref{Routine Info}) to other source collections.
3501 3501
diff --git a/doc/misc/wisent.texi b/doc/misc/wisent.texi
index 6c700779ba7..b49166b5791 100644
--- a/doc/misc/wisent.texi
+++ b/doc/misc/wisent.texi
@@ -126,7 +126,7 @@ It uses a fast but not so space-efficient encoding for the parse
126tables, described in Corbett's PhD thesis from Berkeley: 126tables, described in Corbett's PhD thesis from Berkeley:
127@quotation 127@quotation
128@cite{Static Semantics in Compiler Error Recovery}@* 128@cite{Static Semantics in Compiler Error Recovery}@*
129June 1985, Report No. UCB/CSD 85/251. 129June 1985, Report No.@: UCB/CSD 85/251.
130@end quotation 130@end quotation
131 131
132@item 132@item
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index e0aa05f3826..4496b9c7968 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1600,7 +1600,7 @@ https://lists.gnu.org/r/emacs-devel/2016-07/msg00154.html.
1600 1600
1601*** In Emacs built with GTK+ toolkit, menu-bar background becomes transparent. 1601*** In Emacs built with GTK+ toolkit, menu-bar background becomes transparent.
1602 1602
1603This happens when 'alpha-background' is less than 100. This is due a 1603This happens when 'alpha-background' is less than 100. This is due to a
1604GTK limitation, for which no workaround is currently known, 1604GTK limitation, for which no workaround is currently known,
1605unfortunately. 1605unfortunately.
1606 1606
@@ -1622,7 +1622,7 @@ after switching back from another virtual desktop. Setting the variable
1622 1622
1623*** Gnome desktop does not respect frame size specified in .Xresources 1623*** Gnome desktop does not respect frame size specified in .Xresources
1624 1624
1625This has been obeserved when running a GTK+ build of Emacs 29 from the 1625This has been observed when running a GTK+ build of Emacs 29 from the
1626launch pad on Ubuntu 24.04 with mutter as window manager. The problem 1626launch pad on Ubuntu 24.04 with mutter as window manager. The problem
1627can be resolved by running Emacs from the command line instead. 1627can be resolved by running Emacs from the command line instead.
1628 1628
diff --git a/etc/future-bug b/etc/future-bug
index c18dd995d66..a9c871d6cee 100644
--- a/etc/future-bug
+++ b/etc/future-bug
@@ -30,7 +30,7 @@ comments when you write it (sometime in 2198 as I recall).
30 30
31 31
32P.S. You'll be pleased to know that since (time-forward N) still works 32P.S. You'll be pleased to know that since (time-forward N) still works
33 for N >= 0, we've used it to pre-emptively update configure.ac. 33 for N >= 0, we've used it to preemptively update configure.ac.
34 Emacs now configures and builds on every platform that will ever 34 Emacs now configures and builds on every platform that will ever
35 be made. It wasn't easy, but at least that's one problem out of 35 be made. It wasn't easy, but at least that's one problem out of
36 the way for good. If you'd like the patch, just ask. 36 the way for good. If you'd like the patch, just ask.
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 215377635f7..298e27381e0 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1676,7 +1676,8 @@ for a file, defaulting to the file defined by variable
1676 ;; Rather than a single call to `pp' we make one per bookmark. 1676 ;; Rather than a single call to `pp' we make one per bookmark.
1677 ;; Apparently `pp' has a poor algorithmic complexity, so this 1677 ;; Apparently `pp' has a poor algorithmic complexity, so this
1678 ;; scales a lot better. bug#4485. 1678 ;; scales a lot better. bug#4485.
1679 (dolist (i bookmark-alist) (pp i (current-buffer))) 1679 (let ((pp-default-function #'pp-28))
1680 (dolist (i bookmark-alist) (pp i (current-buffer))))
1680 (insert ")\n") 1681 (insert ")\n")
1681 ;; Make sure the specified encoding can safely encode the 1682 ;; Make sure the specified encoding can safely encode the
1682 ;; bookmarks. If it cannot, suggest utf-8-emacs as default. 1683 ;; bookmarks. If it cannot, suggest utf-8-emacs as default.
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 75a942c6030..d0eb6ced3d0 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -102,7 +102,7 @@
102;; the absolute format (see e.g. `calendar-iso-from-absolute' in 102;; the absolute format (see e.g. `calendar-iso-from-absolute' in
103;; cal-iso.el). This representation is also useful for certain 103;; cal-iso.el). This representation is also useful for certain
104;; calculations; e.g. `calendar-day-of-week' is simply the absolute 104;; calculations; e.g. `calendar-day-of-week' is simply the absolute
105;; represention modulo 7, because December 31, 1BC is a Sunday. 105;; representation modulo 7, because December 31, 1BC is a Sunday.
106 106
107;; A note on free variables: 107;; A note on free variables:
108 108
diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
index 9c19dfdda78..72ff5e2221d 100644
--- a/lisp/emacs-lisp/map.el
+++ b/lisp/emacs-lisp/map.el
@@ -71,7 +71,7 @@ to match if any element of ARGS fails to match."
71 ,@(map--make-pcase-bindings args))) 71 ,@(map--make-pcase-bindings args)))
72 72
73(defmacro map-let (keys map &rest body) 73(defmacro map-let (keys map &rest body)
74 "Bind the variables in KEYS to the elements of MAP then evaluate BODY. 74 "Bind the variables in KEYS to the elements of MAP, then evaluate BODY.
75 75
76KEYS can be a list of symbols, in which case each element will be 76KEYS can be a list of symbols, in which case each element will be
77bound to the looked up value in MAP. 77bound to the looked up value in MAP.
@@ -192,7 +192,7 @@ or array."
192 "Associate KEY with VALUE in MAP and return VALUE. 192 "Associate KEY with VALUE in MAP and return VALUE.
193If KEY is already present in MAP, replace the associated value 193If KEY is already present in MAP, replace the associated value
194with VALUE. 194with VALUE.
195When MAP is an alist, test equality with TESTFN if non-nil, 195If MAP is an alist, test equality with TESTFN if non-nil,
196otherwise use `equal'. 196otherwise use `equal'.
197 197
198MAP can be an alist, plist, hash-table, or array." 198MAP can be an alist, plist, hash-table, or array."
@@ -318,7 +318,7 @@ The default implementation delegates to `map-do'."
318 318
319(cl-defgeneric map-apply (function map) 319(cl-defgeneric map-apply (function map)
320 "Apply FUNCTION to each element of MAP and return the result as a list. 320 "Apply FUNCTION to each element of MAP and return the result as a list.
321FUNCTION is called with two arguments, the key and the value. 321FUNCTION is called with two arguments, the key of an element and its value.
322The default implementation delegates to `map-do'." 322The default implementation delegates to `map-do'."
323 (let ((res '())) 323 (let ((res '()))
324 (map-do (lambda (k v) (push (funcall function k v) res)) map) 324 (map-do (lambda (k v) (push (funcall function k v) res)) map)
@@ -339,7 +339,7 @@ The default implementation delegates to `map-apply'."
339 map)) 339 map))
340 340
341(cl-defgeneric map-values-apply (function map) 341(cl-defgeneric map-values-apply (function map)
342 "Return the result of applying FUNCTION to each value in MAP. 342 "Return the result of applying FUNCTION to the value of each key in MAP.
343The default implementation delegates to `map-apply'." 343The default implementation delegates to `map-apply'."
344 (map-apply (lambda (_ val) 344 (map-apply (lambda (_ val)
345 (funcall function val)) 345 (funcall function val))
@@ -407,8 +407,9 @@ If MAP is a plist, TESTFN defaults to `eq'."
407 (not (eq v (gethash key map v))))) 407 (not (eq v (gethash key map v)))))
408 408
409(cl-defgeneric map-some (pred map) 409(cl-defgeneric map-some (pred map)
410 "Return the first non-nil (PRED key val) in MAP. 410 "Return the first non-nil value from applying PRED to elements of MAP.
411Return nil if no such element is found. 411Return nil if no such element is found.
412PRED is called with two arguments: the key of an element and its value.
412The default implementation delegates to `map-do'." 413The default implementation delegates to `map-do'."
413 ;; FIXME: Not sure if there's much benefit to defining it as defgeneric, 414 ;; FIXME: Not sure if there's much benefit to defining it as defgeneric,
414 ;; since as defined, I can't think of a map-type where we could provide an 415 ;; since as defined, I can't think of a map-type where we could provide an
@@ -422,7 +423,8 @@ The default implementation delegates to `map-do'."
422 nil)) 423 nil))
423 424
424(cl-defgeneric map-every-p (pred map) 425(cl-defgeneric map-every-p (pred map)
425 "Return non-nil if (PRED key val) is non-nil for all elements of MAP. 426 "Return non-nil if calling PRED on all elements of MAP returns non-nil.
427PRED is called with two arguments: the key of an element and its value.
426The default implementation delegates to `map-do'." 428The default implementation delegates to `map-do'."
427 ;; FIXME: Not sure if there's much benefit to defining it as defgeneric, 429 ;; FIXME: Not sure if there's much benefit to defining it as defgeneric,
428 ;; since as defined, I can't think of a map-type where we could provide an 430 ;; since as defined, I can't think of a map-type where we could provide an
@@ -436,7 +438,7 @@ The default implementation delegates to `map-do'."
436 438
437(defun map--merge (merge type &rest maps) 439(defun map--merge (merge type &rest maps)
438 "Merge into a map of TYPE all the key/value pairs in MAPS. 440 "Merge into a map of TYPE all the key/value pairs in MAPS.
439MERGE is a function that takes the target MAP, a KEY, and a 441MERGE is a function that takes the target MAP, a KEY and its
440VALUE, merges KEY and VALUE into MAP, and returns the result. 442VALUE, merges KEY and VALUE into MAP, and returns the result.
441MAP may be of a type other than TYPE." 443MAP may be of a type other than TYPE."
442 ;; Use a hash table internally if `type' is a list. This avoids 444 ;; Use a hash table internally if `type' is a list. This avoids
@@ -466,7 +468,7 @@ See `map-into' for all supported values of TYPE."
466(defun map-merge-with (type function &rest maps) 468(defun map-merge-with (type function &rest maps)
467 "Merge into a map of TYPE all the key/value pairs in MAPS. 469 "Merge into a map of TYPE all the key/value pairs in MAPS.
468When two maps contain the same key, call FUNCTION on the two 470When two maps contain the same key, call FUNCTION on the two
469values and use the value returned by it. 471values and use the value FUNCTION returns.
470Each of MAPS can be an alist, plist, hash-table, or array. 472Each of MAPS can be an alist, plist, hash-table, or array.
471See `map-into' for all supported values of TYPE." 473See `map-into' for all supported values of TYPE."
472 (let ((not-found (list nil))) 474 (let ((not-found (list nil)))
@@ -502,8 +504,8 @@ See `map-into' for all supported values of TYPE."
502 "Associate KEY with VALUE in MAP. 504 "Associate KEY with VALUE in MAP.
503If KEY is already present in MAP, replace the associated value 505If KEY is already present in MAP, replace the associated value
504with VALUE. 506with VALUE.
505This operates by modifying MAP in place. 507This operates by modifying MAP in place. If it cannot do that,
506If it cannot do that, it signals a `map-not-inplace' error. 508it signals the `map-not-inplace' error.
507To insert an element without modifying MAP, use `map-insert'." 509To insert an element without modifying MAP, use `map-insert'."
508 ;; `testfn' only exists for backward compatibility with `map-put'! 510 ;; `testfn' only exists for backward compatibility with `map-put'!
509 (declare (advertised-calling-convention (map key value) "27.1"))) 511 (declare (advertised-calling-convention (map key value) "27.1")))
diff --git a/lisp/info-look.el b/lisp/info-look.el
index 06ffd3c6625..01cea3e0a39 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -375,12 +375,13 @@ If optional argument QUERY is non-nil, query for the help mode."
375 (cons (symbol-name mode-spec) mode-spec))) 375 (cons (symbol-name mode-spec) mode-spec)))
376 (info-lookup->topic-value topic))) 376 (info-lookup->topic-value topic)))
377 (mode (completing-read 377 (mode (completing-read
378 (format "Use %s help mode: " topic) 378 (format "Major mode whose manuals to search for this %s: "
379 topic)
379 completions nil t nil 'info-lookup-history))) 380 completions nil t nil 'info-lookup-history)))
380 (or (setq mode (cdr (assoc mode completions))) 381 (or (setq mode (cdr (assoc mode completions)))
381 (error "No %s help available" topic)) 382 (error "No manuals available for %s" topic))
382 (or (info-lookup->mode-value topic mode) 383 (or (info-lookup->mode-value topic mode)
383 (error "No %s help available for `%s'" topic mode)) 384 (error "The manuals of `%s' have no %s help" mode topic))
384 (setq info-lookup-mode mode))) 385 (setq info-lookup-mode mode)))
385 386
386(defun info-lookup--item-to-mode (item mode) 387(defun info-lookup--item-to-mode (item mode)
diff --git a/lisp/keymap.el b/lisp/keymap.el
index d1ff52ea397..a12084a3ad4 100644
--- a/lisp/keymap.el
+++ b/lisp/keymap.el
@@ -343,6 +343,9 @@ Here are some example of valid key sequences.
343 \"C-c o\" (a two-key sequence: the key `c' with the control modifier 343 \"C-c o\" (a two-key sequence: the key `c' with the control modifier
344 followed by the key `o') 344 followed by the key `o')
345 \"H-<left>\" (the cursor control key named \"left\" with the hyper modifier) 345 \"H-<left>\" (the cursor control key named \"left\" with the hyper modifier)
346 \"RET\" (the \"return\" key, also available as \"C-m\")
347 \"<return>\" (the \"<return>\" function key, which can be bound separately
348 from \"RET\" on some systems)
346 \"M-RET\" (the \"return\" key with a meta modifier) 349 \"M-RET\" (the \"return\" key with a meta modifier)
347 \"C-M-<space>\" (the \"space\" key with both the control and meta modifiers) 350 \"C-M-<space>\" (the \"space\" key with both the control and meta modifiers)
348 351
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 161c6330426..05b9ce27ccb 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -249,7 +249,7 @@ automatically)."
249 . ,(eglot-alternatives 249 . ,(eglot-alternatives
250 '("pylsp" "pyls" ("basedpyright-langserver" "--stdio") 250 '("pylsp" "pyls" ("basedpyright-langserver" "--stdio")
251 ("pyright-langserver" "--stdio") 251 ("pyright-langserver" "--stdio")
252 "jedi-language-server" "ruff-lsp"))) 252 "jedi-language-server" ("ruff" "server") "ruff-lsp")))
253 ((js-json-mode json-mode json-ts-mode jsonc-mode) 253 ((js-json-mode json-mode json-ts-mode jsonc-mode)
254 . ,(eglot-alternatives '(("vscode-json-language-server" "--stdio") 254 . ,(eglot-alternatives '(("vscode-json-language-server" "--stdio")
255 ("vscode-json-languageserver" "--stdio") 255 ("vscode-json-languageserver" "--stdio")
diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el
index ccfdcb909e5..ef2af3cd5af 100644
--- a/lisp/progmodes/go-ts-mode.el
+++ b/lisp/progmodes/go-ts-mode.el
@@ -103,6 +103,7 @@
103 ((parent-is "parameter_list") parent-bol go-ts-mode-indent-offset) 103 ((parent-is "parameter_list") parent-bol go-ts-mode-indent-offset)
104 ((parent-is "select_statement") parent-bol 0) 104 ((parent-is "select_statement") parent-bol 0)
105 ((parent-is "type_case") parent-bol go-ts-mode-indent-offset) 105 ((parent-is "type_case") parent-bol go-ts-mode-indent-offset)
106 ((parent-is "type_declaration") parent-bol go-ts-mode-indent-offset)
106 ((parent-is "type_spec") parent-bol go-ts-mode-indent-offset) 107 ((parent-is "type_spec") parent-bol go-ts-mode-indent-offset)
107 ((parent-is "type_switch_statement") parent-bol 0) 108 ((parent-is "type_switch_statement") parent-bol 0)
108 ((parent-is "var_declaration") parent-bol go-ts-mode-indent-offset) 109 ((parent-is "var_declaration") parent-bol go-ts-mode-indent-offset)
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index e67245b0839..4fcfede3b00 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -198,7 +198,7 @@
198 ;; 198 ;;
199 ;; The expected syntax of an item is either "word" or "symbol", 199 ;; The expected syntax of an item is either "word" or "symbol",
200 ;; possibly ending with optional whitespace. Everything following 200 ;; possibly ending with optional whitespace. Everything following
201 ;; the item (but belonging to it) is expected to by skipable by 201 ;; the item (but belonging to it) is expected to by skippable by
202 ;; `forward-sexp'. The list of items is expected to be separated 202 ;; `forward-sexp'. The list of items is expected to be separated
203 ;; by commas and terminated by semicolons or equals signs. 203 ;; by commas and terminated by semicolons or equals signs.
204 ;; 204 ;;
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index d795589cb2c..b0f4e416a6e 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -56,7 +56,7 @@
56;; Commands in ispell-region: 56;; Commands in ispell-region:
57;; Character replacement: Replace word with choice. May query-replace. 57;; Character replacement: Replace word with choice. May query-replace.
58;; ` ': Accept word this time. 58;; ` ': Accept word this time.
59;; `i': Accept word and insert into private dictionary. 59;; `i': Accept word and insert into personal dictionary.
60;; `a': Accept word for this session. 60;; `a': Accept word for this session.
61;; `A': Accept word and place in buffer-local dictionary. 61;; `A': Accept word and place in buffer-local dictionary.
62;; `r': Replace word with typed-in value. Rechecked. 62;; `r': Replace word with typed-in value. Rechecked.
@@ -2193,7 +2193,7 @@ Global `ispell-quit' is set to start location to continue spell session."
2193 (insert (car guess) " ") 2193 (insert (car guess) " ")
2194 (setq guess (cdr guess))) 2194 (setq guess (cdr guess)))
2195 (insert (substitute-command-keys 2195 (insert (substitute-command-keys
2196 "\nUse option `i' to accept this spelling and put it in your private dictionary.\n")))) 2196 "\nUse option `i' to accept this spelling and put it in your personal dictionary.\n"))))
2197 (while choices 2197 (while choices
2198 (when (> (+ 7 (current-column) 2198 (when (> (+ 7 (current-column)
2199 (length (car choices)) 2199 (length (car choices))
@@ -2448,7 +2448,7 @@ Selections are:
2448 2448
2449\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer. 2449\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer.
2450\\`SPC' Accept word this time. 2450\\`SPC' Accept word this time.
2451\\`i' Accept word and insert into private dictionary. 2451\\`i' Accept word and insert into personal dictionary.
2452\\`a' Accept word for this session. 2452\\`a' Accept word for this session.
2453\\`A' Accept word and place in `buffer-local dictionary'. 2453\\`A' Accept word and place in `buffer-local dictionary'.
2454\\`r' Replace word with typed-in value. Rechecked. 2454\\`r' Replace word with typed-in value. Rechecked.
@@ -2482,7 +2482,7 @@ Selections are:
2482 2482
2483\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer. 2483\\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer.
2484\\`SPC' Accept word this time. 2484\\`SPC' Accept word this time.
2485\\`i' Accept word and insert into private dictionary. 2485\\`i' Accept word and insert into personal dictionary.
2486\\`a' Accept word for this session. 2486\\`a' Accept word for this session.
2487\\`A' Accept word and place in `buffer-local dictionary'. 2487\\`A' Accept word and place in `buffer-local dictionary'.
2488\\`r' Replace word with typed-in value. Rechecked. 2488\\`r' Replace word with typed-in value. Rechecked.
@@ -2502,7 +2502,7 @@ Selections are:
2502 2502
2503 2503
2504 (let ((help-1 (concat "[r/R]eplace word; [a/A]ccept for this session; " 2504 (let ((help-1 (concat "[r/R]eplace word; [a/A]ccept for this session; "
2505 "[i]nsert into private dictionary")) 2505 "[i]nsert into personal dictionary"))
2506 (help-2 (concat "[l]ook a word up in alternate dictionary; " 2506 (help-2 (concat "[l]ook a word up in alternate dictionary; "
2507 "e[x/X]it; [q]uit session")) 2507 "e[x/X]it; [q]uit session"))
2508 (help-3 (concat "[u]ncapitalized insert into dict. " 2508 (help-3 (concat "[u]ncapitalized insert into dict. "
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index a198a3d8d08..482af3bd7bf 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -135,8 +135,8 @@ of the `tooltip' face are used instead."
135 :inherit variable-pitch)) 135 :inherit variable-pitch))
136 "Face for tooltips. 136 "Face for tooltips.
137 137
138When using the GTK toolkit, this face will only be used if 138When using the GTK toolkit, NS, or Haiku, this face will only
139`x-gtk-use-system-tooltips' is non-nil." 139be used if `use-system-tooltips' is nil."
140 :group 'tooltip 140 :group 'tooltip
141 :group 'basic-faces) 141 :group 'basic-faces)
142 142
diff --git a/lisp/type-break.el b/lisp/type-break.el
index b36860e48ef..551af70a484 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -116,8 +116,8 @@ then there is no minimum threshold; as soon as the scheduled time has
116elapsed, the user will always be queried. 116elapsed, the user will always be queried.
117 117
118The second number is the maximum number of keystrokes that can be entered 118The second number is the maximum number of keystrokes that can be entered
119before a typing break is requested immediately, pre-empting the originally 119before a typing break is requested immediately, preempting the originally
120scheduled break. If this second value is nil, then no pre-emptive breaks 120scheduled break. If this second value is nil, then no preemptive breaks
121will occur; only scheduled ones will. 121will occur; only scheduled ones will.
122 122
123Keys with bucky bits (shift, control, meta, etc) are counted as only one 123Keys with bucky bits (shift, control, meta, etc) are counted as only one
diff --git a/nextstep/README b/nextstep/README
index 487ea52ead4..853d6bcda35 100644
--- a/nextstep/README
+++ b/nextstep/README
@@ -14,7 +14,7 @@ OpenStep and then Rhapsody, which became Mac OS X. In 2004 it was
14adapted to GNUstep, a free OpenStep implementation, and in 2008 it was 14adapted to GNUstep, a free OpenStep implementation, and in 2008 it was
15merged to the GNU Emacs trunk and released with Emacs 23. Around the 15merged to the GNU Emacs trunk and released with Emacs 23. Around the
16same time a separate Mac-only port using the Carbon APIs and 16same time a separate Mac-only port using the Carbon APIs and
17descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It 17descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It
18remains available externally under the name "mac".) 18remains available externally under the name "mac".)
19 19
20 20
@@ -48,12 +48,12 @@ Classes are declared like the following:
48 48
49 GUIDELINES 49 GUIDELINES
50 50
51* Adhere the to the FSF philosophy that a feature in GNU software 51* Adhere to the FSF philosophy that a feature in GNU software should not
52 should not only be available on non-free systems. 52 only be available on non-free systems.
53 53
54* People with varying Cocoa and Objective-C skills will read and 54* People with varying Cocoa and Objective-C skills will read and
55 modify the NS code over a long period of time. Keep the code simple 55 modify the NS code over a long period of time. Keep the code simple
56 and avoid language constructs that makes the code hard to maintain. 56 and avoid language constructs that make the code hard to maintain.
57 57
58* Don't use macros and types intended for the XCode Interface Builder, 58* Don't use macros and types intended for the XCode Interface Builder,
59 like 'IBAction'. 59 like 'IBAction'.
@@ -81,7 +81,7 @@ GNUstep. Even though they are less frequently used, this is important
81for a number of reasons: 81for a number of reasons:
82 82
83* It supports the GNUstep project and provides an Emacs with the same 83* It supports the GNUstep project and provides an Emacs with the same
84 look-and-feel as the rest of the system. 84 look and feel as the rest of the system.
85 85
86* This allows other Emacs developers to test their changes on the NS 86* This allows other Emacs developers to test their changes on the NS
87 interface without having access to a macOS machine. 87 interface without having access to a macOS machine.
@@ -93,7 +93,7 @@ for a number of reasons:
93 93
94 SEE ALSO 94 SEE ALSO
95 95
96The src/ns... files contains the C and Objective-C parts. 96The src/ns... files contain the C and Objective-C parts.
97 97
98The lisp/term/ns-win.el file contains the lisp part of the NS 98The lisp/term/ns-win.el file contains the lisp part of the NS
99interface. 99interface.
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3
index 3cb0d1ac453..5162519148d 100644
--- a/src/ChangeLog.3
+++ b/src/ChangeLog.3
@@ -15583,7 +15583,7 @@
15583 15583
155841989-04-29 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu) 155841989-04-29 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu)
15585 15585
15586 * xterm.c (x_term_init): Don't set visible bell, as it pre-empts 15586 * xterm.c (x_term_init): Don't set visible bell, as it preempts
15587 .emacs control. 15587 .emacs control.
15588 15588
155891989-04-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 155891989-04-26 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
diff --git a/src/frame.c b/src/frame.c
index c77b016b709..49203fce375 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -7153,11 +7153,11 @@ Gtk+ tooltips are not used) and on Windows. */);
7153 tooltip_reuse_hidden_frame = false; 7153 tooltip_reuse_hidden_frame = false;
7154 7154
7155 DEFVAR_BOOL ("use-system-tooltips", use_system_tooltips, 7155 DEFVAR_BOOL ("use-system-tooltips", use_system_tooltips,
7156 doc: /* Use the toolkit to display tooltips. 7156 doc: /* Whether to use the toolkit to display tooltips.
7157This option is only meaningful when Emacs is built with GTK+ or Haiku 7157This option is only meaningful when Emacs is built with GTK+, NS or Haiku
7158windowing support, and results in tooltips that look like those 7158windowing support, and, if it's non-nil (the default), it results in
7159displayed by other GTK+ or Haiku programs, but will not be able to 7159tooltips that look like those displayed by other GTK+/NS/Haiku programs,
7160display text properties inside tooltip text. */); 7160but will not be able to display text properties inside tooltip text. */);
7161 use_system_tooltips = true; 7161 use_system_tooltips = true;
7162 7162
7163 DEFVAR_LISP ("iconify-child-frame", iconify_child_frame, 7163 DEFVAR_LISP ("iconify-child-frame", iconify_child_frame,
diff --git a/src/keyboard.c b/src/keyboard.c
index 6208b333e9c..850b5e06480 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2675,7 +2675,7 @@ read_char (int commandflag, Lisp_Object map,
2675 /* Normal case: no input arrived during redisplay. */ 2675 /* Normal case: no input arrived during redisplay. */
2676 break; 2676 break;
2677 2677
2678 /* Input arrived and pre-empted redisplay. 2678 /* Input arrived and preempted redisplay.
2679 Process any events which are not user-visible. */ 2679 Process any events which are not user-visible. */
2680 swallow_events (false); 2680 swallow_events (false);
2681 /* If that cleared input_pending, try again to redisplay. */ 2681 /* If that cleared input_pending, try again to redisplay. */
diff --git a/src/w32.c b/src/w32.c
index deeca031f64..85916ad74a9 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -7681,7 +7681,7 @@ w32_memory_info (unsigned long long *totalram, unsigned long long *freeram,
7681{ 7681{
7682 MEMORYSTATUS memst; 7682 MEMORYSTATUS memst;
7683 MEMORY_STATUS_EX memstex; 7683 MEMORY_STATUS_EX memstex;
7684 7684 memstex.dwLength = sizeof (memstex);
7685 /* Use GlobalMemoryStatusEx if available, as it can report more than 7685 /* Use GlobalMemoryStatusEx if available, as it can report more than
7686 2GB of memory. */ 7686 2GB of memory. */
7687 if (global_memory_status_ex (&memstex)) 7687 if (global_memory_status_ex (&memstex))
@@ -7692,7 +7692,9 @@ w32_memory_info (unsigned long long *totalram, unsigned long long *freeram,
7692 *freeswap = memstex.ullAvailPageFile; 7692 *freeswap = memstex.ullAvailPageFile;
7693 return 0; 7693 return 0;
7694 } 7694 }
7695 else if (global_memory_status (&memst)) 7695
7696 memst.dwLength = sizeof (memst);
7697 if (global_memory_status (&memst))
7696 { 7698 {
7697 *totalram = memst.dwTotalPhys; 7699 *totalram = memst.dwTotalPhys;
7698 *freeram = memst.dwAvailPhys; 7700 *freeram = memst.dwAvailPhys;
diff --git a/src/xdisp.c b/src/xdisp.c
index 0497490928f..2676e982c9e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -6194,7 +6194,9 @@ handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
6194 { 6194 {
6195 struct face *face = FACE_FROM_ID (it->f, it->face_id); 6195 struct face *face = FACE_FROM_ID (it->f, it->face_id);
6196 it->voffset = - (XFLOATINT (value) 6196 it->voffset = - (XFLOATINT (value)
6197 * (normal_char_height (face->font, -1))); 6197 * (face->font
6198 ? normal_char_height (face->font, -1)
6199 : FRAME_LINE_HEIGHT (it->f)));
6198 } 6200 }
6199#endif /* HAVE_WINDOW_SYSTEM */ 6201#endif /* HAVE_WINDOW_SYSTEM */
6200 } 6202 }
@@ -32168,7 +32170,8 @@ produce_stretch_glyph (struct it *it)
32168 /* Compute height. */ 32170 /* Compute height. */
32169 if (FRAME_WINDOW_P (it->f)) 32171 if (FRAME_WINDOW_P (it->f))
32170 { 32172 {
32171 int default_height = normal_char_height (font, ' '); 32173 int default_height =
32174 font ? normal_char_height (font, ' ') : FRAME_LINE_HEIGHT (it->f);
32172 32175
32173 if ((prop = plist_get (plist, QCheight), !NILP (prop)) 32176 if ((prop = plist_get (plist, QCheight), !NILP (prop))
32174 && calc_pixel_width_or_height (&tem, it, prop, font, false, NULL)) 32177 && calc_pixel_width_or_height (&tem, it, prop, font, false, NULL))