Merge from origin/emacs-30
67903f5909
Restore the old behavior of `bookmark-write-file'062da7003f
; Improve prompts and error messages in 'info-look'52dc01f1c8
; * admin/admin.el (set-version): Note about Android.fb282da2a0
Avoid double spaces around abbrevations in Texinfobc1ab8ac3d
; * doc/emacs/custom.texi (Init Rebinding): Fix spacing.b41ef43af1
; Fix previous change5638b1d6bd
Ispell: Use "personal dictionary" terminology consistentlycc791e7499
; Check man pages for mistakes less frequently4ed4792e3b
; * admin/release-process: Minor copy-edits.4a867c823b
Add language server "ruff server" for Python9e687c2871
Fix go-ts-mode type declaration indentation (Bug#75785)f751b3afa4
; Minor improvements for doc strings in map.elcda78edc7d
; Fix typosce50a1d3c1
; * src/w32.c (w32_memory_info): Fix coding style of last...58d3d4820a
Fix bug in w32_memory_info7738641205
Avoid crashes in redisplay due to problematic font setups0e3687e600
Improve 'key-valid-p' docstring9878092d2b
Minor copyedits in internals.texi4726900fdc
Better document side-effect free and pure C functions04c475a39f
; Fix documentation about faces of tool-tip text # Conflicts: # admin/codespell/codespell.exclude
This commit is contained in:
commit
6016967e85
63 changed files with 185 additions and 154 deletions
|
@ -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 <joaotavora@gmail.com>
|
||||
|
||||
|
@ -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
|
||||
|
|
12
ChangeLog.4
12
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 <monnier@iro.umontreal.ca>
|
||||
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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...
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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}"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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{})
|
||||
|
|
|
@ -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}.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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")))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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-<left>\" (the cursor control key named \"left\" with the hyper modifier)
|
||||
\"RET\" (the \"return\" key, also available as \"C-m\")
|
||||
\"<return>\" (the \"<return>\" function key, which can be bound separately
|
||||
from \"RET\" on some systems)
|
||||
\"M-RET\" (the \"return\" key with a meta modifier)
|
||||
\"C-M-<space>\" (the \"space\" key with both the control and meta modifiers)
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
;;
|
||||
|
|
|
@ -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. "
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
10
src/frame.c
10
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,
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue