diff --git a/ChangeLog.3 b/ChangeLog.3 index 41bbdbbdc9a..0a744120218 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -47356,7 +47356,7 @@ possible bug. * lisp/progmodes/flymake.el (flymake--mode-line-counter): Must - explicily create a new string unpropertized string + explicitly create a new string unpropertized string 2020-12-31 João Távora @@ -160588,7 +160588,7 @@ to be replaced with an appropriate character reference. Make ‘sgml-quote’ do that. - While at it, fix entiteis not being unquoted if they lack closing + While at it, fix entities not being unquoted if they lack closing semicolon (e.g. ‘&’) occurring at the very end of a region. Even though unlikely, make ‘sgml-quote’ handle this scenario. @@ -186568,7 +186568,7 @@ Delete a Flymake obsolete alias that can't possibly work The function `flymake-ler-make-ler' can't possibly work as an backward - compatible interface to existing extensinos (even purely hypothetical + compatible interface to existing extensions (even purely hypothetical ones, since none are known). This is because every diagnostic considered by Flymake has to passed to a report-fn function. @@ -223233,7 +223233,7 @@ called any longer. Furthermore, when newline has whitespace syntax, ‘\s-$’ regular - expression ends up matching empty lins since ‘\s-’ matches newline + expression ends up matching empty lines since ‘\s-’ matches newline characetr of proceeding line. This leads to needless loop iterations. 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 @@ Improve documentation for 'while-let' - * doc/lispref/control.texi (Conditionals): Reorganise describing + * doc/lispref/control.texi (Conditionals): Reorganize describing what's overlapping between the macros (and between the macros and let*), and then improve the documentation for 'while-let'. @@ -15155,7 +15155,7 @@ Remove unnecessary (delq nil...). - This is presumed to be an artifacto of an old default. + This is presumed to be an artifact of an old default. * lisp/which-key.el (which-key-replacement-alist): Remove unnecessary (delq nil...). @@ -50535,7 +50535,7 @@ The Emacs regexp engine interprets character ranges from ASCII to raw bytes, such as [a-\xfe], as not including non-ASCII Unicode at all; - ranges from non-ACII Unicode to raw bytes, such as [ü-\x91], are + ranges from non-ASCII Unicode to raw bytes, such as [ü-\x91], are ignored entirely. To make rx produce a translation that works as intended, split ranges @@ -53275,7 +53275,7 @@ * lisp/emacs-lisp/cl-macs.el (cl--slet): Add `nowarn` arg. (cl--defsubst-expand): Use it. - (cl-defstruct): Silence warnings abour lexical shadowing when a slot's + (cl-defstruct): Silence warnings about lexical shadowing when a slot's name happens to be the same as a dynbound var. 2023-06-25 Stefan Monnier @@ -68708,7 +68708,7 @@ works. * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): - Instead of re-using local variables through mutation, bind them at + Instead of reusing local variables through mutation, bind them at point of use. This ensures that there is no value leakage by mistake and actually reduces the static size of the bytecode of this function somewhat. @@ -75501,7 +75501,7 @@ 4004dde6ea Avoid positional arguments to define-minor-mode cb85f9c274 Fix typo in use-package docstring 30b35d6d62 Update use-package.texi - 9be2580f5f optimization: constand folding for read-kbd-macro + 9be2580f5f optimization: constant folding for read-kbd-macro 1143f14d65 bind-keys-form: error for repeat sub-keywords without :rep... c4bd2aa3b8 bind-key-form: allow :continue keyword inside repeat map 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." (set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor "\\\\newcommand{\\\\versionemacs}\\[0\\]\ {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))) + ;; Note: There's also the "android:versionCode=" property in + ;; java/AndroidManifest.xml, whose value is the major Emacs version, + ;; but if we increase it, upgraded installation will be unable to be + ;; downgraded to previous Emacs releases. (The corresponding + ;; "android:versionName=" value there is updated by configure.) (let* ((oldversion (with-temp-buffer (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 (skipp (or (erc--memq-msg-prop 'erc--skip 'stamp) (when (and fullp culled (not skipp) (< 1 beg 3 end)) ((not skipp)) + (elisp--safe-macroexpand-all): Make the warning more discrete. +|PACK|UNPK|INDX|BLD |LEN |... | +@key{INDX} removes an integer @var{n}, then builds a vector of +integers from 1 to @var{n}. @kbd{INV INDX} takes three numbers +(sref STRING INDX) returns the character in STRING at INDEX. INDEX +;; |PACK|UNPK|INDX|BLD |LEN |... | + ( "INDX" (progn calc-num-prefix calc-index) "\C-u\excalc-index\r" ) + (calc-enter-result 3 "indx" (cons 'calcFunc-index (calc-top-list-n 3))) + (calc-enter-result 0 "indx" (list 'calcFunc-index + (elisp--safe-macroexpand-all): Make the warning more discreet. + dee6b36286 If use-package-verbose is t, show loading times when :afte... + 267fc6d00c4 ruby-smie-rules: Fix misindentation of a method call afte... + 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): 4. autoreconf -i -I m4 --force make bootstrap - The below script checks for any mistakes in the source text of - manual pages. Fix any errors and re-run the script to verify. - - ./admin/check-man-pages - Then do this: 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 @@ # Base URI for the package sources mapped in PKG_REQ SRC_REPO="https://repo.msys2.org/mingw/sources" -# Map items in `dynamic-library-alist' to source pakages +# Map items in `dynamic-library-alist' to source packages PKG_REQ='''mingw-w64-x86_64-giflib mingw-w64-x86_64-gnutls mingw-w64-x86_64-harfbuzz @@ -47,7 +47,7 @@ mingw-w64-x86_64-tree-sitter mingw-w64-x86_64-sqlite3'''.split() -# Emacs style path to dependancy DLLs on build system +# Emacs style path to dependency DLLs on build system DLL_SRC="c:/msys64/mingw64/bin" # libraries we never include @@ -110,7 +110,7 @@ def gather_deps(): print("Deps updated in", os.getcwd(), "as", zipfile) os.chdir("../") -# Return dependancies listed in Emacs +# Return dependencies listed in Emacs def init_deps(): return '''libXpm-nox4.dll libpng16-16.dll @@ -382,7 +382,7 @@ def clean(): parser.add_argument("-l", help="list dependencies", action="store_true") -parser.add_argument("-e", help="extract direct dependancies", +parser.add_argument("-e", help="extract direct dependencies", action="store_true") args = 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" # remove All Users shortcuts only # SetShellVarContext all - # retreive/recalculate uninstaller location + # retrieve/recalculate uninstaller location StrCpy $UninstallerPath "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe" # remove registry key @@ -101,7 +101,7 @@ Section "Uninstall" # delete uninstaller Delete "$INSTDIR\Uninstall-${VERSION_BRANCH}.exe" - # retreive/reclculate startmenu shortcuts location + # retrieve/recalculate startmenu shortcuts location !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder StrCpy $StartMenuFolder "$SMPROGRAMS\$StartMenuFolder" @@ -120,7 +120,7 @@ Section "Uninstall" # we're basically using GOTO, above, so we should get here.. startMenuDeleteLoopDone: - # next we remove stuff from program-files/instalation path + # next we remove stuff from program-files/installation path # start with recursive delete of the Emacs we installed RMDir /r "$INSTDIR\emacs-${VERSION_BRANCH}" 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. ** Try to reorder NEWS: most important things first, related items together. -** For a major release, add a "New in Emacs XX" section to faq.texi. +** For a major release, add a "New in Emacs XX" section to efaq.texi. +This should highlight some of the more significant changes. ** cusver-check from admin.el can help find new defcustoms missing :version tags. This asks for new and old Lisp directories; use the one @@ -113,14 +114,14 @@ Check for node names using problematic characters: Sadly makeinfo does not warn about such characters. Check for major new features added since the last release (e.g. new -lisp files), and add the relevant authors to the Acknowledgments in +Lisp files), and add the relevant authors to the Acknowledgments in doc/emacs/ack.texi and emacs.texi. To find new files, you could run a command such as this: - $ diff -rq emacs-NN.MM emacs-XX.YY | grep "^Only in emacs-XX" + $ git diff --name-status emacs-NN emacs-XX | grep -E "^A" -where NN.MM is the previous Emacs version, and XX.YY is the new version. -This assumes you have the source trees of both versions available. +where emacs-NN is the previous Emacs release branch, and emacs-XX is the +new one. For major releases, rewrite the "Antinews" appendix of the User Manual (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 describe the "benefits" from losing those features. Be funny, use humor. The text written for the previous releases can serve as an example. -The Emacs FAQ (doc/misc/efaq.texi) also has a "What's new" section; -for major releases a new section should be added listing the -significant changes. - Check cross-references between the manuals (e.g. from emacs to elisp) are correct. You can use something like the following in the info directory in the Emacs build tree: @@ -225,6 +222,13 @@ https://publicsuffix.org/list/public_suffix_list.dat - leim/SKK-DIC/SKK-JISYO.L https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L +** Check for mistakes in man pages. + +The below script checks for any mistakes in the source text of +manual pages. Fix any errors and re-run the script to verify. + + ./admin/check-man-pages + * BUGS ** 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 @end example Non-@acronym{ASCII} characters can be specified directly in the -string. To bind to e.g. @samp{ol@'a}, use: +string. To bind to, for example, @samp{ol@'a}, use: @example (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 a Dired buffer, or to use any other function. When the value is a function, it will be called with no arguments and is expected to return a list of directories which will be used as defaults -(i.e. default target and ``future history''). +(i.e., default target and ``future history''). Here are the file-manipulating Dired commands that operate on files. 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 * Copying and Naming:: Copying, naming and renaming files. * Misc File Ops:: Other things you can do on files. * Compressed Files:: Accessing compressed files. -* File Archives:: Operating on tar, zip, jar etc. archive files. +* File Archives:: Operating on tar, zip, jar etc.@: archive files. * Remote Files:: Accessing files on other machines. * Quoted File Names:: Quoting special characters in file names. * File Name Cache:: Completion against a list of files you often use. @@ -588,7 +588,7 @@ International Character Set Support Major and Minor Modes -* Major Modes:: Text mode vs. Lisp mode vs. C mode... +* Major Modes:: Text mode vs.@: Lisp mode vs.@: C mode... * Minor Modes:: Each minor mode is a feature you can turn on independently of any others. * Choosing Modes:: How modes are chosen when visiting files. @@ -909,7 +909,7 @@ Tags Tables Merging Files with Emerge * Overview of Emerge:: How to start Emerge. Basic concepts. -* Submodes of Emerge:: Fast mode vs. Edit mode. +* Submodes of Emerge:: Fast mode vs.@: Edit mode. Skip Prefers mode and Auto Advance mode. * State of Difference:: You do the merge by specifying state A or B for each difference. @@ -1121,7 +1121,7 @@ Hyperlinking and Navigation Features * Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers. * Browse-URL:: Following URLs. * Goto Address mode:: Activating URLs. -* FFAP:: Finding files etc. at point. +* FFAP:: Finding files etc.@: at point. Emacs Lisp Packages 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}. @menu * Overview of Emerge:: How to start Emerge. Basic concepts. -* Submodes of Emerge:: Fast mode vs. Edit mode. +* Submodes of Emerge:: Fast mode vs.@: Edit mode. Skip Prefers mode and Auto Advance mode. * State of Difference:: You do the merge by specifying state A or B 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. * Copying and Naming:: Copying, naming and renaming files. * Misc File Ops:: Other things you can do on files. * Compressed Files:: Accessing compressed files. -* File Archives:: Operating on tar, zip, jar etc. archive files. +* File Archives:: Operating on tar, zip, jar etc.@: archive files. * Remote Files:: Accessing files on other machines. * Quoted File Names:: Quoting special characters in file names. * 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 editing session and for this buffer. @item i -Insert this word in your private dictionary file so that it will be +Insert this word in your personal dictionary file so that it will be considered correct from now on, even in future sessions. @item m @@ -379,7 +379,7 @@ Like @kbd{i}, but you can also specify dictionary completion information. @item u -Insert the lower-case version of this word in your private dictionary +Insert the lower-case version of this word in your personal dictionary file. @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. Emacs can also optionally drag the region with the mouse into another portion of this or another buffer. To enable that, customize the variable @code{mouse-drag-and-drop-region} to a non-@code{nil} -value. Normally, the text is moved, i.e. cut and pasted, when the +value. Normally, the text is moved, i.e.@: cut and pasted, when the destination is the same buffer as the origin; dropping the region on another buffer copies the text instead. If the value of this variable names 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. * Embedded WebKit Widgets:: Embedding browser widgets in Emacs buffers. * Browse-URL:: Following URLs. * Goto Address mode:: Activating URLs. -* FFAP:: Finding files etc. at point. +* FFAP:: Finding files etc.@: at point. @end menu @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 one another, and of the selected major mode. @menu -* Major Modes:: Text mode vs. Lisp mode vs. C mode... +* Major Modes:: Text mode vs.@: Lisp mode vs.@: C mode... * Minor Modes:: Each minor mode is a feature you can turn on independently of any others. * 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, rather than in the echo area. To enter characters according to the @dfn{p@=iny@=in} transliteration -method instead, use the @code{chinese-sisheng} input method. This is -a composition based method, where e.g. @kbd{pi1} results in @samp{p@=i}. +method instead, use the @code{chinese-sisheng} input method. This is a +composition based method, where, for example, @kbd{pi1} results in +@samp{p@=i}. In Japanese input methods, first you input a whole word using phonetic 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 The command @code{global-window-tool-bar-mode} toggles the display of a tool bar at the top of each window. When enabled, multiple windows can display their own tool bar simultaneously. To conserve space, a -window tool bar is hidden if there are no buttons to show, i.e. if +window tool bar is hidden if there are no buttons to show, i.e.@: if @code{tool-bar-map} is @code{nil}. @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, revealing the one it had (if any) before the @code{let} expression. @node Lexical vs Dynamic Binding Example -@unnumberedsubsubsec Example of Lexical vs. Dynamic Binding +@unnumberedsubsubsec Example of Lexical vs.@: Dynamic Binding In some cases, both lexical and dynamic binding behave identically. However, in other cases, they can change the meaning of your program. For 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 Functions -* What Is a Function:: Lisp functions vs. primitives; terminology. +* What Is a Function:: Lisp functions vs.@: primitives; terminology. * Lambda Expressions:: How functions are expressed as Lisp objects. * Function Names:: A symbol can serve as the name of a function. * 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 subsequent calls to @code{gui-get-selection} return. From the clipboard, @code{gui-get-selection} is capable of returning -UTF-8 string data of the type @code{STRING}, the @code{TAREGTS} data +UTF-8 string data of the type @code{STRING}, the @code{TARGETS} data type, or image and application data of any MIME type. @code{gui-set-selection} sets only string data, much as under MS-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 define them. @menu -* What Is a Function:: Lisp functions vs. primitives; terminology. +* What Is a Function:: Lisp functions vs.@: primitives; terminology. * Lambda Expressions:: How functions are expressed as Lisp objects. * Function Names:: A symbol can serve as the name of a function. * Defining Functions:: Lisp expressions for defining functions. @@ -1469,7 +1469,7 @@ that don't require them. The type specializer, @code{(@var{arg} @var{type})}, can specify one of the @dfn{system types} in the following list. When a parent type is specified, an argument whose type is any of its more specific child -types, as well as grand-children, grand-grand-children, etc. will also +types, as well as grand-children, grand-grand-children, etc.@: will also be compatible. @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. @end defun @defun sxhash-eql obj -This function returns a hash code for Lisp object @var{obj} suitable -for @code{eql} comparison. I.e. it reflects identity of @var{obj} -except for the case where the object is a bignum or a float number, -in which case a hash code is generated for the value. +This function returns a hash code for Lisp object @var{obj} suitable for +@code{eql} comparison. In other words, it reflects identity of +@var{obj} except for the case where the object is a bignum or a float +number, in which case a hash code is generated for the value. If two objects @var{obj1} and @var{obj2} are @code{eql}, then @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. (@code{int} and @code{bool}), the name of the C variable is the name of the Lisp variable with @code{-} replaced by @code{_}. When the variable has type @code{Lisp_Object}, the convention is to also prefix -the C variable name with @code{V}. i.e. +the C variable name with @code{V}. This is an example: @smallexample DEFVAR_INT ("my-int-variable", my_int_variable, @@ -1038,7 +1038,6 @@ with @code{let}. In C sources, this is done by defining a corresponding, constant symbol, and using @code{specbind}. By convention, @code{Qmy_lisp_variable} corresponds to @code{Vmy_lisp_variable}; to define it, use the @code{DEFSYM} macro. -i.e. @smallexample DEFSYM (Qmy_lisp_variable, "my-lisp-variable"); @@ -1050,17 +1049,17 @@ DEFSYM (Qmy_lisp_variable, "my-lisp-variable"); specbind (Qmy_lisp_variable, Qt); @end smallexample - In Lisp symbols sometimes need to be quoted, to achieve the same -effect in C you again use the corresponding constant symbol + In Lisp, symbols sometimes need to be quoted. To achieve the same +effect in C, you again use the corresponding constant symbol @code{Qmy_lisp_variable}. For example, when creating a buffer-local -variable (@pxref{Buffer-Local Variables}) in Lisp you would write: +variable (@pxref{Buffer-Local Variables}) in Lisp, you would write: @smallexample (make-variable-buffer-local 'my-lisp-variable) @end smallexample -In C the corresponding code uses @code{Fmake_variable_buffer_local} in -combination with @code{DEFSYM}, i.e. +In C, the corresponding code uses @code{Fmake_variable_buffer_local} in +combination with @code{DEFSYM}: @smallexample DEFSYM (Qmy_lisp_variable, "my-lisp-variable"); @@ -1164,7 +1163,8 @@ functions. If you define a function which is side-effect free or pure, give it a non-@code{nil} @code{side-effect-free} or @code{pure} property, -respectively (@pxref{Standard Properties}). +respectively (@pxref{Standard Properties}). See the lists defined in +@samp{byte-opt.el}. @node Writing Dynamic Modules @section Writing Dynamically-Loaded Modules @@ -2745,7 +2745,7 @@ The window-relative vertical position of the line containing @item window_end_valid This field is set to a non-zero value if @code{window_end_pos} and @code{window_end_vpos} are truly valid. This is zero if nontrivial -redisplay is pre-empted, since in that case the display that +redisplay is preempted, since in that case the display that @code{window_end_pos} was computed for did not get onto the screen. @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: @kindex :repeat @kindex repeat-mode @cindex repeatable key bindings -Each command in the keymap can be marked as `repeatable', i.e. usable +Each command in the keymap can be marked as `repeatable', i.e.@: usable in @code{repeat-mode}, by putting a @code{repeat-map} property on it, -e.g. +for example: @lisp (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. @node Plists and Alists @subsection Property Lists and Association Lists -@cindex plist vs. alist -@cindex alist vs. plist +@cindex plist vs.@: alist +@cindex alist vs.@: plist @cindex property lists vs association lists 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 @item %o The degree of @dfn{travel} of the window through (the visible portion -of) the buffer, i.e. the size of the text above the top of the window +of) the buffer, i.e.@: the size of the text above the top of the window expressed as a percentage of all the text outside the window, or @samp{Top}, @samp{Bottom} or @samp{All}. 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. Corresponds to Unicode language- and context-independent special lower-casing rules. The value of this property is a string (which may be empty). For example for U+0130 @sc{latin capital letter i -with dot above} the value is @code{"i\u0307"} (i.e. a 2-character string +with dot above} the value is @code{"i\u0307"} (i.e., a 2-character string consisting of @sc{latin small letter i} followed by U+0307 @sc{combining dot above}). This mapping overrides the @code{lowercase} property, and thus the current case table. For characters with no @@ -741,7 +741,7 @@ belongs, according to the Unicode Standard classification of the Unicode code space into script-specific blocks. This char-table has a single extra slot whose value is the list of all script symbols. Note that Emacs's classification of characters into scripts is not a 1-for-1 -reflection of the Unicode standard, e.g. there is no @samp{symbol} +reflection of the Unicode standard, for example there is no @samp{symbol} script in Unicode. @end defvar 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 form @code{(@var{ifname} . @var{address})}. @var{ifname} is a string naming the interface, @var{address} has the same form as the @var{local-address} and @var{remote-address} arguments to -@code{make-network-process}, i.e. a vector of integers. By default +@code{make-network-process}, i.e.@: a vector of integers. By default both IPv4 and IPv6 addresses are returned if possible. Optional 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: @table @asis @item a string The resulting regexp is preceded by @var{paren} and followed by -@samp{\)}, e.g. use @samp{"\\(?1:"} to produce an explicitly +@samp{\)}. For example, use @samp{"\\(?1:"} to produce an explicitly numbered group. @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). @cindex syntax tables (accessing elements of) Use @code{aref} (@pxref{Array Functions}) to get the raw syntax -descriptor of a character, e.g. @w{@code{(aref (syntax-table) ch)}}. +descriptor of a character, for example @w{@code{(aref (syntax-table) ch)}}. Here are the syntax codes corresponding to the various syntax classes: 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 pixel width to use. If given no arguments, it'll return a value slightly less than the width of the current window. The first optional value, @var{columns}, specifies the number of columns using -the standard, monospaced fonts, e.g. @code{fill-column}. The second +the standard, monospaced fonts, for example @code{fill-column}. The second optional value is the window to use. You'd typically use it like this: @@ -4971,7 +4971,7 @@ network. MD5 and SHA-1 are not collision resistant (i.e., it is possible to deliberately design different pieces of data which have the same MD5 or SHA-1 hash), so you should not use them for anything security-related. For security-related applications you should use -the other hash types, such as SHA-2 (e.g. @code{sha256} or +the other hash types, such as SHA-2 (e.g., @code{sha256} or @code{sha512}). @defun secure-hash-algorithms @@ -6137,7 +6137,7 @@ communicating endpoints is a matter of correctly designing the RPC application: when synchronization is needed, requests (which are blocking) should be used; when it isn't, notifications should suffice. However, when Emacs acts as one of these endpoints, asynchronous -events (e.g. timer- or process-related) may be triggered while there +events (e.g., timer- or process-related) may be triggered while there is still uncertainty about the state of the remote endpoint. Furthermore, acting on these events may only sometimes demand synchronization, 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: @itemize @bullet @item Choice of algebraic or Reverse Polish notation (RPN), -i.e. stack-based, entry of calculations. +i.e.@: stack-based, entry of calculations. @item Arbitrary precision integers and floating-point numbers. @@ -2630,8 +2630,8 @@ elements.) Calculations involving fractions will always produce exact fractional results; Fraction mode only says what to do when dividing two integers. -@cindex Fractions vs. floats -@cindex Floats vs. fractions +@cindex Fractions vs.@: floats +@cindex Floats vs.@: fractions (@bullet{}) @strong{Exercise 4.} If fractional arithmetic is exact, why would you ever use floating-point numbers instead? @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 first line is also contained in an arglist or an enclosing brace @emph{on that line}. -I.e. handle something like the following: +In other words, handle something like the following: @example @group @@ -6225,7 +6225,7 @@ Line up the second entry of a class (etc.) initializer @code{c-basic-offset} characters in from the identifier when: @enumerate @item -The type is a class, struct, union, etc. (but not an enum); +The type is a class, struct, union, etc.@: (but not an enum); @item There is a brace block in the type declaration, specifying it; and @item @@ -6233,7 +6233,7 @@ The first element of the initializer is on the same line as its opening brace. @end enumerate -I.e. we have a construct like this: +In other words, we have a construct like this: @example @group @@ -6267,7 +6267,7 @@ Line up the second entry of a class (etc.) initializer after its opening brace when: @enumerate @item -The type is a class, struct, union, etc. (but not an enum); +The type is a class, struct, union, etc.@: (but not an enum); @item There is a brace block in the type declaration, specifying it; and @item @@ -6275,7 +6275,7 @@ The first element of the initializer is on the same line as its opening brace. @end enumerate -I.e. we have a construct like this: +In other words, we have a construct like this: @example @group @@ -6589,7 +6589,7 @@ function is the same as specifying a list @code{(c-lineup-assignments @defun c-lineup-ternary-bodies @findex lineup-ternary-bodies @r{(c-)} Line up true and false branches of a ternary operator -(i.e. @code{?:}). More precisely, if the line starts with a colon +(i.e., @code{?:}). More precisely, if the line starts with a colon which is a part of a said operator, align it with corresponding question mark. For example: @@ -7162,7 +7162,7 @@ is @code{nil}, all lines inside macro definitions are analyzed as @end defopt Sometimes you may want to indent particular directives -(e.g. @code{#pragma}) as though they were statements. To do this, see +(e.g., @code{#pragma}) as though they were statements. To do this, see @ref{Indenting Directives}. Because a macro can expand into anything at all, near where one is @@ -7354,7 +7354,7 @@ after the mode hooks have run. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Sometimes you may want to indent particular preprocessor directives -(e.g. @code{#pragma}) as though they were statements. To do this, +(e.g., @code{#pragma}) as though they were statements. To do this, first set up @code{c-cpp-indent-to-body-directives} to include the directive name(s), then enable the ``indent to body'' feature with @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. If by contrast you wish to @emph{disable} tty color support, either start emacs with the @samp{--color=no} command-line option, or ensure -that the frame parameter @code{tty-color-mode} is @code{no}, e.g. by -putting the following in your init file: +that the frame parameter @code{tty-color-mode} is @code{no}, for example +by putting the following in your init file: @lisp (push '(tty-color-mode . no) default-frame-alist) @@ -3686,9 +3686,9 @@ You can tell Emacs the shell's current directory with the command @item Third party packages. -Any package you install into Emacs can run arbitrary code with the -same privileges as the Emacs process itself. Be aware of this when -you use the package system (e.g. @code{M-x list-packages}) with third +Any package you install into Emacs can run arbitrary code with the same +privileges as the Emacs process itself. Be aware of this when you use +the package system (for example, @code{M-x list-packages}) with third party archives. Use only third parties that you can trust! @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-.} (@code{xref-find-definitions}) lands you in a file outside of your project, such as a system-installed library or header file, transiently consider that file as managed by the same language server. -That file is still outside your project (i.e. @code{project-find-file} +That file is still outside your project (i.e., @code{project-find-file} won't find it), but Eglot and the server will consider it to be part of the workspace. The default is @code{nil}. 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: In the case of @code{:client-certificate t}, you will need to add a line like the following to your authinfo file -(e.g. @file{~/.authinfo.gpg}): +(for example, @file{~/.authinfo.gpg}): @example machine 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. Note that unlike aliases in Bash, arguments must be handled explicitly. Within aliases, you can use the special variables -@samp{$*}, @samp{$0}, @samp{$1}, @samp{$2}, etc. to refer to the +@samp{$*}, @samp{$0}, @samp{$1}, @samp{$2}, etc.@: to refer to the arguments passed to the alias. @table @code @@ -2600,8 +2600,8 @@ glob patterns, the pattern will be removed from the input line, and replaced by the completion. @kindex M-? -If you want to see the entire list of possible completions (e.g. when it's -below the @code{completion-cycle-threshold}), press @kbd{M-?}. +If you want to see the entire list of possible completions (e.g., when +it's below the @code{completion-cycle-threshold}), press @kbd{M-?}. @subsection pcomplete Pcomplete, 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 indicates that no changes have been recorded. If it is the first time that this backend function is called for this activation of @code{flymake-mode}, then this argument isn't provided at all -(i.e. it's not merely nil). +(in other words, it's not merely nil). Each element is in the form (@var{beg} @var{end} @var{text}) where @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 messages? * FAQ 5-3:: How to set stuff like From, Organization, Reply-To, signature...? -* FAQ 5-4:: Can I set things like From, Signature etc. group based on +* FAQ 5-4:: Can I set things like From, Signature etc.@: group based on the group I post too? * FAQ 5-5:: Is there a spell-checker? Perhaps even on-the-fly 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. @cindex Gnus agent @cindex Gnus unplugged -In olden times (ca. February '88), people used to run their newsreaders +In olden times (ca.@: February '88), people used to run their newsreaders on big machines with permanent connections to the net. News transport was dealt with by news servers, and all the newsreaders had to do was to read news. Believe it or not. @@ -23349,7 +23349,7 @@ windows resized. Lastly, it's possible to make Gnus window layouts ``atomic'' (@pxref{Atomic Windows, , Atomic Windows, elisp, The GNU Emacs Lisp Reference Manual}) by setting @code{gnus-use-atomic-windows} to -@code{t}. This will ensure that pop-up buffers (e.g. help or +@code{t}. This will ensure that pop-up buffers (e.g., help or completion buffers), will appear below or to the side of the entire Gnus window layout and not, for example, squashed between the summary and article buffers. @@ -24859,7 +24859,7 @@ particular spam group. You don't have to throw all mail into all the spam tests. Another reason why this is nice is that messages to mailing lists you have rules for don't have to have resource-intensive blackhole checks performed on them. You could also specify different -spam checks for your nnmail split vs. your nnimap split. Go crazy. +spam checks for your nnmail split vs.@: your nnimap split. Go crazy. You should set the @code{spam-use-*} variables for whatever spam back ends you intend to use. The reason is that when loading @@ -26980,7 +26980,7 @@ appropriate name, don't you think?) In any case, after spending all that energy on coming up with a new and spunky name, we decided that the name was @emph{too} spunky, so we renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs. -``@sc{gnus}''. New vs. old. +``@sc{gnus}''. New vs.@: old. @menu * 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}). When using completion and Emacs pops up a @file{*Completions*} buffer with possible completions, clicking with @kbd{mouse-3} on a completion item invokes help on that item (@pxref{Completion}). Items for which -help is available in the online system documentation (vs. just the +help is available in the online system documentation (vs.@: just the program source itself) will be emphasized (e.g., colored blue). @end itemize @noindent @@ -3495,7 +3495,7 @@ Controls under what circumstances routine info is updated automatically. @emph{Catalogs} are files containing scanned information on individual routines, including arguments and keywords, calling sequence, file path, -class and procedure vs. function type, etc. They represent a way of +class and procedure vs.@: function type, etc. They represent a way of extending the internal built-in information available for IDL system routines (@pxref{Routine Info}) to other source collections. 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 tables, described in Corbett's PhD thesis from Berkeley: @quotation @cite{Static Semantics in Compiler Error Recovery}@* -June 1985, Report No. UCB/CSD 85/251. +June 1985, Report No.@: UCB/CSD 85/251. @end quotation @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. *** In Emacs built with GTK+ toolkit, menu-bar background becomes transparent. -This happens when 'alpha-background' is less than 100. This is due a +This happens when 'alpha-background' is less than 100. This is due to a GTK limitation, for which no workaround is currently known, unfortunately. @@ -1622,7 +1622,7 @@ after switching back from another virtual desktop. Setting the variable *** Gnome desktop does not respect frame size specified in .Xresources -This has been obeserved when running a GTK+ build of Emacs 29 from the +This has been observed when running a GTK+ build of Emacs 29 from the launch pad on Ubuntu 24.04 with mutter as window manager. The problem can be resolved by running Emacs from the command line instead. 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). P.S. You'll be pleased to know that since (time-forward N) still works - for N >= 0, we've used it to pre-emptively update configure.ac. + for N >= 0, we've used it to preemptively update configure.ac. Emacs now configures and builds on every platform that will ever be made. It wasn't easy, but at least that's one problem out of 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 ;; Rather than a single call to `pp' we make one per bookmark. ;; Apparently `pp' has a poor algorithmic complexity, so this ;; scales a lot better. bug#4485. - (dolist (i bookmark-alist) (pp i (current-buffer))) + (let ((pp-default-function #'pp-28)) + (dolist (i bookmark-alist) (pp i (current-buffer)))) (insert ")\n") ;; Make sure the specified encoding can safely encode the ;; 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 @@ ;; the absolute format (see e.g. `calendar-iso-from-absolute' in ;; cal-iso.el). This representation is also useful for certain ;; calculations; e.g. `calendar-day-of-week' is simply the absolute -;; represention modulo 7, because December 31, 1BC is a Sunday. +;; representation modulo 7, because December 31, 1BC is a Sunday. ;; A note on free variables: 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." ,@(map--make-pcase-bindings args))) (defmacro map-let (keys map &rest body) - "Bind the variables in KEYS to the elements of MAP then evaluate BODY. + "Bind the variables in KEYS to the elements of MAP, then evaluate BODY. KEYS can be a list of symbols, in which case each element will be bound to the looked up value in MAP. @@ -192,7 +192,7 @@ or array." "Associate KEY with VALUE in MAP and return VALUE. If KEY is already present in MAP, replace the associated value with VALUE. -When MAP is an alist, test equality with TESTFN if non-nil, +If MAP is an alist, test equality with TESTFN if non-nil, otherwise use `equal'. MAP can be an alist, plist, hash-table, or array." @@ -318,7 +318,7 @@ The default implementation delegates to `map-do'." (cl-defgeneric map-apply (function map) "Apply FUNCTION to each element of MAP and return the result as a list. -FUNCTION is called with two arguments, the key and the value. +FUNCTION is called with two arguments, the key of an element and its value. The default implementation delegates to `map-do'." (let ((res '())) (map-do (lambda (k v) (push (funcall function k v) res)) map) @@ -339,7 +339,7 @@ The default implementation delegates to `map-apply'." map)) (cl-defgeneric map-values-apply (function map) - "Return the result of applying FUNCTION to each value in MAP. + "Return the result of applying FUNCTION to the value of each key in MAP. The default implementation delegates to `map-apply'." (map-apply (lambda (_ val) (funcall function val)) @@ -407,8 +407,9 @@ If MAP is a plist, TESTFN defaults to `eq'." (not (eq v (gethash key map v))))) (cl-defgeneric map-some (pred map) - "Return the first non-nil (PRED key val) in MAP. + "Return the first non-nil value from applying PRED to elements of MAP. Return nil if no such element is found. +PRED is called with two arguments: the key of an element and its value. The default implementation delegates to `map-do'." ;; FIXME: Not sure if there's much benefit to defining it as defgeneric, ;; 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'." nil)) (cl-defgeneric map-every-p (pred map) - "Return non-nil if (PRED key val) is non-nil for all elements of MAP. + "Return non-nil if calling PRED on all elements of MAP returns non-nil. +PRED is called with two arguments: the key of an element and its value. The default implementation delegates to `map-do'." ;; FIXME: Not sure if there's much benefit to defining it as defgeneric, ;; 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'." (defun map--merge (merge type &rest maps) "Merge into a map of TYPE all the key/value pairs in MAPS. -MERGE is a function that takes the target MAP, a KEY, and a +MERGE is a function that takes the target MAP, a KEY and its VALUE, merges KEY and VALUE into MAP, and returns the result. MAP may be of a type other than TYPE." ;; 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." (defun map-merge-with (type function &rest maps) "Merge into a map of TYPE all the key/value pairs in MAPS. When two maps contain the same key, call FUNCTION on the two -values and use the value returned by it. +values and use the value FUNCTION returns. Each of MAPS can be an alist, plist, hash-table, or array. See `map-into' for all supported values of TYPE." (let ((not-found (list nil))) @@ -502,8 +504,8 @@ See `map-into' for all supported values of TYPE." "Associate KEY with VALUE in MAP. If KEY is already present in MAP, replace the associated value with VALUE. -This operates by modifying MAP in place. -If it cannot do that, it signals a `map-not-inplace' error. +This operates by modifying MAP in place. If it cannot do that, +it signals the `map-not-inplace' error. To insert an element without modifying MAP, use `map-insert'." ;; `testfn' only exists for backward compatibility with `map-put'! (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." (cons (symbol-name mode-spec) mode-spec))) (info-lookup->topic-value topic))) (mode (completing-read - (format "Use %s help mode: " topic) + (format "Major mode whose manuals to search for this %s: " + topic) completions nil t nil 'info-lookup-history))) (or (setq mode (cdr (assoc mode completions))) - (error "No %s help available" topic)) + (error "No manuals available for %s" topic)) (or (info-lookup->mode-value topic mode) - (error "No %s help available for `%s'" topic mode)) + (error "The manuals of `%s' have no %s help" mode topic)) (setq info-lookup-mode mode))) (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. \"C-c o\" (a two-key sequence: the key `c' with the control modifier followed by the key `o') \"H-\" (the cursor control key named \"left\" with the hyper modifier) + \"RET\" (the \"return\" key, also available as \"C-m\") + \"\" (the \"\" function key, which can be bound separately + from \"RET\" on some systems) \"M-RET\" (the \"return\" key with a meta modifier) \"C-M-\" (the \"space\" key with both the control and meta modifiers) 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)." . ,(eglot-alternatives '("pylsp" "pyls" ("basedpyright-langserver" "--stdio") ("pyright-langserver" "--stdio") - "jedi-language-server" "ruff-lsp"))) + "jedi-language-server" ("ruff" "server") "ruff-lsp"))) ((js-json-mode json-mode json-ts-mode jsonc-mode) . ,(eglot-alternatives '(("vscode-json-language-server" "--stdio") ("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 @@ ((parent-is "parameter_list") parent-bol go-ts-mode-indent-offset) ((parent-is "select_statement") parent-bol 0) ((parent-is "type_case") parent-bol go-ts-mode-indent-offset) + ((parent-is "type_declaration") parent-bol go-ts-mode-indent-offset) ((parent-is "type_spec") parent-bol go-ts-mode-indent-offset) ((parent-is "type_switch_statement") parent-bol 0) ((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 @@ ;; ;; The expected syntax of an item is either "word" or "symbol", ;; possibly ending with optional whitespace. Everything following - ;; the item (but belonging to it) is expected to by skipable by + ;; the item (but belonging to it) is expected to by skippable by ;; `forward-sexp'. The list of items is expected to be separated ;; by commas and terminated by semicolons or equals signs. ;; 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 @@ ;; Commands in ispell-region: ;; Character replacement: Replace word with choice. May query-replace. ;; ` ': Accept word this time. -;; `i': Accept word and insert into private dictionary. +;; `i': Accept word and insert into personal dictionary. ;; `a': Accept word for this session. ;; `A': Accept word and place in buffer-local dictionary. ;; `r': Replace word with typed-in value. Rechecked. @@ -2193,7 +2193,7 @@ Global `ispell-quit' is set to start location to continue spell session." (insert (car guess) " ") (setq guess (cdr guess))) (insert (substitute-command-keys - "\nUse option `i' to accept this spelling and put it in your private dictionary.\n")))) + "\nUse option `i' to accept this spelling and put it in your personal dictionary.\n")))) (while choices (when (> (+ 7 (current-column) (length (car choices)) @@ -2448,7 +2448,7 @@ Selections are: \\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer. \\`SPC' Accept word this time. -\\`i' Accept word and insert into private dictionary. +\\`i' Accept word and insert into personal dictionary. \\`a' Accept word for this session. \\`A' Accept word and place in `buffer-local dictionary'. \\`r' Replace word with typed-in value. Rechecked. @@ -2482,7 +2482,7 @@ Selections are: \\`0'..\\`9' Replace the word with a digit offered in the *Choices* buffer. \\`SPC' Accept word this time. -\\`i' Accept word and insert into private dictionary. +\\`i' Accept word and insert into personal dictionary. \\`a' Accept word for this session. \\`A' Accept word and place in `buffer-local dictionary'. \\`r' Replace word with typed-in value. Rechecked. @@ -2502,7 +2502,7 @@ Selections are: (let ((help-1 (concat "[r/R]eplace word; [a/A]ccept for this session; " - "[i]nsert into private dictionary")) + "[i]nsert into personal dictionary")) (help-2 (concat "[l]ook a word up in alternate dictionary; " "e[x/X]it; [q]uit session")) (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." :inherit variable-pitch)) "Face for tooltips. -When using the GTK toolkit, this face will only be used if -`x-gtk-use-system-tooltips' is non-nil." +When using the GTK toolkit, NS, or Haiku, this face will only +be used if `use-system-tooltips' is nil." :group 'tooltip :group 'basic-faces) 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 elapsed, the user will always be queried. The second number is the maximum number of keystrokes that can be entered -before a typing break is requested immediately, pre-empting the originally -scheduled break. If this second value is nil, then no pre-emptive breaks +before a typing break is requested immediately, preempting the originally +scheduled break. If this second value is nil, then no preemptive breaks will occur; only scheduled ones will. Keys 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 adapted to GNUstep, a free OpenStep implementation, and in 2008 it was merged to the GNU Emacs trunk and released with Emacs 23. Around the same time a separate Mac-only port using the Carbon APIs and -descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It +descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It remains available externally under the name "mac".) @@ -48,12 +48,12 @@ Classes are declared like the following: GUIDELINES -* Adhere the to the FSF philosophy that a feature in GNU software - should not only be available on non-free systems. +* Adhere to the FSF philosophy that a feature in GNU software should not + only be available on non-free systems. * People with varying Cocoa and Objective-C skills will read and modify the NS code over a long period of time. Keep the code simple - and avoid language constructs that makes the code hard to maintain. + and avoid language constructs that make the code hard to maintain. * Don't use macros and types intended for the XCode Interface Builder, like 'IBAction'. @@ -81,7 +81,7 @@ GNUstep. Even though they are less frequently used, this is important for a number of reasons: * It supports the GNUstep project and provides an Emacs with the same - look-and-feel as the rest of the system. + look and feel as the rest of the system. * This allows other Emacs developers to test their changes on the NS interface without having access to a macOS machine. @@ -93,7 +93,7 @@ for a number of reasons: SEE ALSO -The src/ns... files contains the C and Objective-C parts. +The src/ns... files contain the C and Objective-C parts. The lisp/term/ns-win.el file contains the lisp part of the NS interface. 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 @@ 1989-04-29 Joe Arceneaux (jla@apple-gunkies.ai.mit.edu) - * xterm.c (x_term_init): Don't set visible bell, as it pre-empts + * xterm.c (x_term_init): Don't set visible bell, as it preempts .emacs control. 1989-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. */); tooltip_reuse_hidden_frame = false; DEFVAR_BOOL ("use-system-tooltips", use_system_tooltips, - doc: /* Use the toolkit to display tooltips. -This option is only meaningful when Emacs is built with GTK+ or Haiku -windowing support, and results in tooltips that look like those -displayed by other GTK+ or Haiku programs, but will not be able to -display text properties inside tooltip text. */); + doc: /* Whether to use the toolkit to display tooltips. +This option is only meaningful when Emacs is built with GTK+, NS or Haiku +windowing support, and, if it's non-nil (the default), it results in +tooltips that look like those displayed by other GTK+/NS/Haiku programs, +but will not be able to display text properties inside tooltip text. */); use_system_tooltips = true; 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, /* Normal case: no input arrived during redisplay. */ break; - /* Input arrived and pre-empted redisplay. + /* Input arrived and preempted redisplay. Process any events which are not user-visible. */ swallow_events (false); /* 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, { MEMORYSTATUS memst; MEMORY_STATUS_EX memstex; - + memstex.dwLength = sizeof (memstex); /* Use GlobalMemoryStatusEx if available, as it can report more than 2GB of memory. */ if (global_memory_status_ex (&memstex)) @@ -7692,7 +7692,9 @@ w32_memory_info (unsigned long long *totalram, unsigned long long *freeram, *freeswap = memstex.ullAvailPageFile; return 0; } - else if (global_memory_status (&memst)) + + memst.dwLength = sizeof (memst); + if (global_memory_status (&memst)) { *totalram = memst.dwTotalPhys; *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, { struct face *face = FACE_FROM_ID (it->f, it->face_id); it->voffset = - (XFLOATINT (value) - * (normal_char_height (face->font, -1))); + * (face->font + ? normal_char_height (face->font, -1) + : FRAME_LINE_HEIGHT (it->f))); } #endif /* HAVE_WINDOW_SYSTEM */ } @@ -32168,7 +32170,8 @@ produce_stretch_glyph (struct it *it) /* Compute height. */ if (FRAME_WINDOW_P (it->f)) { - int default_height = normal_char_height (font, ' '); + int default_height = + font ? normal_char_height (font, ' ') : FRAME_LINE_HEIGHT (it->f); if ((prop = plist_get (plist, QCheight), !NILP (prop)) && calc_pixel_width_or_height (&tem, it, prop, font, false, NULL))