1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

Merge remote-tracking branch 'origin/master' into feature/android

This commit is contained in:
Po Lu 2023-08-01 08:31:14 +08:00
commit deb8b933bc
39 changed files with 1220 additions and 288 deletions

View File

@ -1,3 +1,732 @@
2023-07-30 Eli Zaretskii <eliz@maintain0p.gnu.org>
* Version 29.1 released.
2023-07-29 Vincenzo Pupillo <v.pupillo@gmail.com>
Update CMake support due to upstream changes (bug#64922)
A recent change in tree-sitter-cmake grammar support for CMake (commit
fe9b5e0), now put arguments are wrapped in a new argument_list node.
To support the old and new version of the grammar, a new function was
added on which string syntax highlighting now depends.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
function to handle different tree-sitter-cmake version.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use the new function to handle
the new argument_list node.
2023-07-24 Theodor Thornhill <theo@thornhill.no>
Remove nullptr named node from c++-ts-mode (bug#64818)
The nullptr node was changed from a named node to an unnamed node
upstream[0], which caused font locking to break. As this is a small
enough regression, no compat code is required.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
node no longer in use.
[0]:
https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e
2023-07-24 Theodor Thornhill <theo@thornhill.no>
Make compat check also check typescript
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Add argument so that we run the 'treesit-query-capture' when the
language is 'typescript', not only 'tsx'.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use supplied argument.
2023-07-23 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 29.1.
2023-07-23 Eli Zaretskii <eliz@gnu.org>
Update AUTHORS and ChangeLog.4
* ChangeLog.4:
* etc/AUTHORS: Update for Emacs 29.1 release.
2023-07-22 Vincenzo Pupillo <v.pupillo@gmail.com>
Update JSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-javascript grammar support for
JSX (commit bb1f97b), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b):
Indent helper function to handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-indent-rules): Use the new
function to handle both jsx_fragment and jsx_text.
* lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b):
Font lock helper function for handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new
function to handle both nested_identifier and member_expression.
2023-07-22 Vincenzo Pupillo <v.pupillo@gmail.com>
Update TSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-typescript grammar support for
TSX (commit b893426), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--indent-compatibility-b893426): Indent helper function
to handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): use the new function to handle
both jsx_fragment and jsx_text.
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper
function for handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use the new function to
handle both nested_identifier and member_expression.
2023-07-21 Philipp Stephani <phst@google.com>
Unbreak build with CHECK_STRUCTS.
The hash for the Lisp_Overlay structure has changed due to the (comment-only)
commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d.
* src/pdumper.c (dump_overlay): Update struct hash.
2023-07-21 Mattias Engdegård <mattiase@acm.org>
Revert "Improve commentary in nsfns.m"
This reverts commit 3af27a4b815906c2ee38cbaf3a765289b3df061a,
because it missed the point completely.
Please talk to the original author next time.
2023-07-20 Eli Zaretskii <eliz@gnu.org>
Fix NetBSD build --with-sound
* src/sound.c (alsa_write): Use ESTRPIPE only if defined.
(Bug#64698)
2023-07-20 Mauro Aranda <maurooaranda@gmail.com>
Fix typo in pre-filter for underline property
* lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347)
2023-07-20 Po Lu <luangruo@yahoo.com>
Improve commentary in nsfns.m
* src/nsfns.m (lispString): Avoid C++ comment and make the
commentary actually relevant to the reason `make_string' is
used.
2023-07-20 Po Lu <luangruo@yahoo.com>
Fix typos and ommissions in cus-edit.el
* lisp/cus-edit.el (custom-display): Add missing display types.
2023-07-18 Mattias Engdegård <mattiase@acm.org>
Convert NUL-containing NSString objects to Lisp strings correctly
This cures the inability to paste text containing NUL from other
applications on macOS, introduced by mistake in 7e3c2b553f
(bug#64697).
* src/nsfns.m ([NSString lispString]): Use make_string instead of
build_string which relies on NUL-termination.
2023-07-15 Spencer Baugh <sbaugh@catern.com>
Ignore quit while getting interprogram paste in kill-new
On X, if the current selection owner is not responding to selection
requests, the user may want to take ownership of the selection. The
obvious way to do this is to kill some text (which a user might also
be doing just as part of normal editing at the time the selection
owner becomes nonresponsive). However, if
save-interprogram-paste-before-kill is non-nil, then killing text will
hang until the user quits, and this quit will abort the entire
kill-new, preventing the user from taking ownership of the selection.
Now instead if the user quits while we are attempting to retrieve the
selection from hanging owner, we will proceed to take ownership of the
selection as normal, resolving the problem.
(One example of a selction owner that might not be responding to
selection requests is another instance of Emacs itself; while Emacs is
blocked in call-process or Lisp execution, it currently does not
respond to selection requests.)
* lisp/simple.el (kill-new): Ignore quit while getting interprogram
paste (bug#64423)
2023-07-15 Wang Diancheng <dianchengwang@gmail.com> (tiny change)
* lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'.
Bug#64590.
2023-07-15 Valtteri Vuorikoski <vuori@notcom.org> (tiny change)
Fix NetBSD build with and without ncurses
* configure.ac (netbsd): Don't set TERMINFO=no unless the termcap
library is either -ltermcap or -lcurses. This prevents aborts
because on recent versions of NetBSD libtermcap is actually a
symlink to libterminfo. (Bug#64577)
2023-07-14 YugaEgo <yet@ego.team>
Improve documentation of 'enable-local-variables' in Emacs manual
* doc/emacs/custom.texi (Safe File Variables): Document ':all'.
(Bug#64621)
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Add documentation about remote access in Eshell
Do not merge to master. This is a backport of 438921161ac.
* doc/misc/eshell.texi
(Invocation): Mention the '*' prefix.
(Remote Access): New section...
(Commands): ... link to it.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Document some missing Eshell commands
Do not merge to master. This is a backport of f7a899d7ca0.
* doc/misc/eshell.texi (Built-ins): Document 'eshell-debug'.
(Extra built-in commands): Document 'count', 'ff', and 'gf'.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Document optional Eshell modules
Do not merge to master. This is a backport of 77f13edab0f.
* doc/misc/eshell.texi (Built-ins): Move disabled-by-default commands
to...
(Tramp extensions, Extra built-in commands): ...here
(Optional modules, Key rebinding, Smart scrolling): Add documentation.
(Bug and ideas): Documentation is no longer incomplete!
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Correct the Eshell documentation about how to write new modules
* doc/misc/eshell.texi (Writing a module): Fix the documentation.
'eshell-defgroup' doesn't exist anymore.
Do not merge to master. This is a backport of 77f13edab0f.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Restructure Eshell extension modules documentation
This adds a section for documenting all the optional modules.
Do not merge to master. This is a backport of f2981a1681d.
* doc/misc/eshell.texi (Extension modules): Move explanation about
writing modules to...
(Writing a module): ... here.
(Module testing): Remove. Testing an Eshell module doesn't require
any special documentation.
(Key binding, Smart scrolling, Electric forward slash): Move under...
(Optional modules): ... here.
(Directory handling, Terminal emulation): Remove. These modules are
enabled by default, and so are documented above.
(Tramp extensions, Extra built-in commands): New sections.
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Replace duplicate text from epa.texi by a reference
* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
Replace duplicate text from epa.texi by a reference to
that. (Bug#64154)
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Add basic usage information and fix references
* doc/misc/epa.texi (Top): Add menu entry for new node GnuPG Pinentry.
(Quick Start): Add information on and reference to basic GnuPG
configuration.
(Encrypting/decrypting gpg files): Add usage information.
(GnuPG version compatibility): Update version information.
(GnuPG Pinentry): Add new node.
(Caching Passphrases): Describe mandatory gpg-agent usage for GnuPG
2.0 and later.
(Overview, Encrypting/decrypting gpg files, GnuPG version compatibility)
(Caching Passphrases, Bug Reports): Fix references, terminology,
mark-up, and index entries. (Bug#64154)
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Add concept index, title-case structure titles
* doc/misc/epa.texi (Top, Overview, Commands, Key management)
(Cryptographic operations on regions, Cryptographic operations on files)
(Dired integration, Mail-mode integration)
(Encrypting/decrypting gpg files, Querying a key server)
(GnuPG version compatibility, Caching Passphrases)
(GNU Free Documentation License): Add concept index, title-case
structure titles. (Bug#64154)
2023-07-10 Eli Zaretskii <eliz@gnu.org>
Fix show-paren-mode when the parentheses is partially visible
* lisp/paren.el (show-paren-function): Support the case where the
open paren is partially visible, but enough so to not consider it
"off-screen". (Bug#64547)
2023-07-08 Gregory Heytings <gregory@heytings.org>
Merge branch 'scratch/bug64391' into emacs-29
2023-07-08 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-get-buffer-string): Stabilize.
2023-07-08 Michael Albinus <michael.albinus@gmx.de>
Fix stale cache in Tramp (don't merge)
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly):
Flush cache in time.
2023-07-07 Mattias Engdegård <mattiase@acm.org>
Mark failing icalendar test as unstable (bug#56241)
* test/lisp/calendar/icalendar-tests.el
(icalendar-export-bug-56241-dotted-pair):
This test started failing early July 2023 in multiple branches at
once without any change to the code and is likely sensitive to the
current date. Tag it to keep it quiet for now.
2023-07-06 Gregory Heytings <gregory@heytings.org>
Simplify after adding internal function to enter a labeled restriction
* src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the
code of Finternal__label_restriction into this function.
(Finternal__label_restriction): Remove this function.
(syms_of_editfns): Remove the 'outermost-restriction' buffer local
variable, which is not used anymore, and the symbol of
'internal--label-restriction'.
(Fwiden): Remove the call to reset the 'outermost-restriction'
buffer local variable.
2023-07-06 Gregory Heytings <gregory@heytings.org>
Add internal function to enter a labeled restriction
* src/editfns.c (Finternal__labeled_narrow_to_region): New
function. A specific function is necessary to avoid unnecessary
slowdowns when 'narrow-to-region'/'widen' are called in a loop.
(Fnarrow_to_region): Remove the call to Fset, which has been moved
into Finternal__labeled_narrow_to_region.
(labeled_narrow_to_region): Use the new function.
(syms_of_editfns): Add the symbol of the new function.
* lisp/subr.el (internal--with-restriction): Use the new function.
2023-07-04 Robert Pluim <rpluim@gmail.com>
Improve natnump shortdoc
* lisp/emacs-lisp/shortdoc.el (number): Make it clear that zero
satisfies 'natnump'. Move 'natnump' next to 'cl-plusp' to highlight
the difference between them.
2023-07-04 Robert Pluim <rpluim@gmail.com>
correct info documentation of benchmark-call
* doc/lispref/debugging.texi (Profiling): 'benchmark-call' is a defun,
not a macro.
2023-07-03 Juri Linkov <juri@linkov.net>
* lisp/progmodes/grep.el (rgrep): Fix docstring.
Instead of the incorrect key `M-c' produce the right key
with \\<read-regexp-map>\\[read-regexp-toggle-case-fold].
2023-07-03 Spencer Baugh <sbaugh@catern.com>
Include a help-echo for flymake's modeline counters
This helps clarify what each of these numbers mean. This is inspired
by 'compilation-mode-line-errors' which does the same.
* lisp/progmodes/flymake.el (flymake--mode-line-counter): Add
help-echo to mode line properties. (Bug#64424)
2023-07-02 Eli Zaretskii <eliz@gnu.org>
Avoid errors in completion due to 'completion-regexp-list'
* doc/lispref/minibuf.texi (Basic Completion):
* src/minibuf.c (syms_of_minibuf) <completion-regexp-list>:
Document that global non-nil settings of 'completion-regexp-list'
are not safe.
* lisp/minibuffer.el (completion-pcm--merge-completions): Avoid
errors in 'try-completion' when PREFIX is nil. (Bug#64351)
2023-07-01 Alan Mackenzie <acm@muc.de>
C Mode: Don't fontify foo globally as type due to "struct foo"
This fixes bug#64322.
* lisp/progmodes/cc-langs.el (c-typeless-decl-kwds): Make the
entry for c-mode nil.
2023-07-01 Mattias Engdegård <mattiase@acm.org>
* lisp/rect.el (rectangle--duplicate-right): Fix rectangle dup bug.
This is a necessary adjustment to changes to rect.el in Emacs 29.
2023-07-01 Spencer Baugh <sbaugh@janestreet.com>
Add project command entries to the menu-bar
This will make it easier for new users to learn these increasingly
important and useful commands. (Bug#63469)
* lisp/menu-bar.el (menu-bar-file-menu): Add project-dired and
project-find-file entries.
(menu-bar-search-menu): Add project-find-regexp entry.
(menu-bar-replace-menu): Add project-query-replace regexp entry.
(menu-bar-shell-commands-menu): Add project-shell entry.
(menu-bar-buffers-menu-command-entries): Add project-switch-to-buffer
and project-list-buffer entries.
(menu-bar-project-menu): Add.
(menu-bar-tools-menu): Add "Project" submenu, and also project-compile
entry and change text for compile entry.
2023-06-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of registers
* doc/lispref/text.texi (Registers): Document buffers in
registers. Mention "frameset" as another name for "frame
configuration".
* doc/emacs/regs.texi (Registers, Configuration Registers)
(File and Buffer Registers): Clarify and improve wording. Add
cross-references and indexing.
(Configuration Registers): Rename the section to a more accurate
name. (Bug#64354)
* lisp/register.el (jump-to-register, point-to-register)
(register-alist, frame-configuration-to-register): Doc fixes.
(Bug#64353)
2023-06-29 Andrew G Cohen <cohen@andy.bu.edu>
Use a temporary buffer in nnagent-request-set-mark (bug#64117)
Commit cb12a84f2c519a48dd87453c925e3bc36d9944db inadvertently removed
the use of a temporary buffer in nnagent-request-set-mark. Bug and
fix reported by Jens Schmidt <jschmidt4gnu@vodafonemail.de>
* lisp/gnus/nnagent.el (nnagent-request-set-mark): Restore the use of
a temporary buffer that was inadvertently removed.
(cherry picked from commit 5075d752773c31d959272a7e2b73b1dc38ba184c)
2023-06-29 john muhl <jm@pub.pink> (tiny change)
Support cons cell as value of ':line-width' box attribute
* lisp/calculator.el (calculator-need-3-lines): Support
values of a face's ':line-width' box attribute that are
cons cells. (Bug#64344)
2023-06-29 Yuan Fu <casouri@gmail.com>
Add missing calls to treesit_record_change in editfns.c
These should be all that are missing. See the next commit for detail.
* src/editfns.c (Ftranslate_region_internal):
(Ftranspose_regions): Call treesit_record_change.
2023-06-29 Yuan Fu <casouri@gmail.com>
Call treesit_record_change in subst-char-in-region (bug#64329)
* src/editfns.c (Fsubst_char_in_region): Call treesit_record_change in
the else branch.
2023-06-29 Juri Linkov <juri@linkov.net>
* lisp/misc.el (duplicate-line-final-position): New defcustom (bug#64185).
* lisp/misc.el (duplicate-line): Use it.
* test/lisp/misc-tests.el (misc--duplicate-line): Add tests for
duplicate-line-final-position.
Don't merge to master.
2023-06-29 Daniel Martín <mardani29@yahoo.es>
Make js-beginning-of-defun return non-nil on success
The docstring of 'beginning-of-defun-function' says that the
function shall return non-nil when it found the beginning
of a defun. This is specially important because the calling
code decides when to move point depending on the return value.
* lisp/progmodes/js.el (js-beginning-of-defun)
(js--beginning-of-defun-flat): Return non-nil when the beginning
of a defun is found. (Bug#64283)
* test/lisp/progmodes/js-tests.el (js-mode-end-of-defun): Add a unit
test.
2023-06-27 Yuan Fu <casouri@gmail.com>
Tree-sitter use with-silent-modifications like jit-lock (bug#64321)
* lisp/treesit.el (treesit--font-lock-notifier): Use
with-silent-modifications when marking modified text to be fontified
by jit-lock. This is what jit-lock itself does.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Fix todo-mode.el Commentary and a doc string (bug#64298)
* lisp/calendar/todo-mode.el: Explicitly note in the Commentary
that the Todo mode user manual is a separate Info manual in the
Emacs installation.
(todo-always-add-time-string): Replace doc string, which was
mistakenly retained in the initial merge of this version of
todo-mode.el, by a correct description of this user option.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Prevent truncation of todo-mode categories sexp
* lisp/calendar/todo-mode.el (todo-delete-file)
(todo-move-category, todo-convert-legacy-files)
(todo-update-categories-sexp, todo-check-format):
Bind print-length and print-level to nil before using prin1
and related functions, to avoid truncating the todo categories
sexp and possibly corrupting the file format.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Avoid making todo-mode buffers manually editable
* lisp/calendar/todo-mode.el (todo-add-category)
(todo-move-category, todo-edit-item--header)
(todo-set-item-priority, todo-move-item, todo-item-undone)
(todo-archive-done-item, todo-set-category-number): Restrict the
scope of nil buffer-read-only to the function calls that change
buffer text, thereby preventing todo mode buffers from becoming
manually editable and hence possibly corrupted when the minibuffer
is in use.
2023-06-26 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp mount-spec (don't merge)
* lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): The mount-spec
could contain an optional trailing slash. (Bug#64278)
2023-06-25 Daniel Semyonov <daniel@dsemy.com>
Fix VC package build when doc file isn't in a subdir
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Expand 'file' before attempting to get its directory. (Bug#64242)
2023-06-25 Michael Albinus <michael.albinus@gmx.de>
Fix type check in tramp-get-buffer-string
* lisp/net/tramp.el (tramp-get-buffer-string): Check, that BUFFER
is really a bufferp.
2023-06-25 Richard M. Stallman <rms@gnu.org>
Clarify list terminology
* doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed):
Mention "cons cell". Add index entries.
(car & cdr): Simplify etymology of `car' and `cdr'.
Explain why for some purposes they are better than `first' and `rest'.
Mention cons cells.
(cherry picked from commit 188c90c7c111dbbdc3edd29c23b59ade26f97bfd)
2023-06-24 Mattias Engdegård <mattiase@acm.org>
* lisp/emacs-lisp/shortdoc.el: More and better `substring` examples.
Suggested by Juri Linkov.
2023-06-24 Eli Zaretskii <eliz@gnu.org>
Fix "C-x RET r" when the new encoding is UTF
* src/fileio.c (Finsert_file_contents): Update point of
'conversion_buffer' before decoding the last block. (Bug#64253)
2023-06-23 Dmitry Gutov <dmitry@gutov.dev>
Fix "vc-print-log does not erase buffer" and associated problems
* lisp/vc/vc.el (vc-deduce-fileset): Make sure to retain the
buffer switch (if it did), bug#63949.
2023-06-23 Theodor Thornhill <theo@thornhill.no>
Add selector_expression indentation rule
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule.
2023-06-22 Eli Zaretskii <eliz@gnu.org>
Add "nixd" LSP server to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd".
Patch by Brian Leung <leungbk@posteo.net>. (Bug#64214)
2023-06-22 Eli Zaretskii <eliz@gnu.org>
Fix building --with-native-compilation=aot from release tarball
* lisp/Makefile.in (%.eln): Pattern rule for AOT native
compilation.
(compile-eln-targets, compile-eln-aot): New targets for AOT native
compilation.
* src/Makefile.in (../native-lisp): If NATIVE_COMPILATION_AOT is
set, also native-compile all the other Lisp files.
(Bug#64167)
2023-06-21 Alan Mackenzie <acm@muc.de>
Fix bug#64152 (Minibuffer sometimes goes "modal")
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.
Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame". As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".
* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.
* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.
* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
2023-06-21 Eli Zaretskii <eliz@gnu.org>
Disable target-async by default in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Disable until
bug#63084 is fixed. (Bug#64186)
2023-06-20 Filipp Gunbin <fgunbin@fastmail.fm>
Revert "Fix parsing of dn line if WITHDN is non-nil"
This reverts commits 71b27779a9a and d2246b26275, because they change
the return value of "ldap-search" in an incompatible way. The fix
(a different one) will be done on master instead (bug#64089).
2023-06-20 Eli Zaretskii <eliz@gnu.org>
Don't truncate filenames with "emacs.el" in them
* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol):
Avoid false positives when looking for "emacs.el" matches the
likes of "emacs.elpa". (Bug#64143)
2023-06-20 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'minibuffer-message'
* doc/lispref/minibuf.texi (Minibuffer Misc): Clarify that
'minibuffer-message' behaves like 'message' if called from a
buffer that is not a minibuffer.
* lisp/minibuffer.el (minibuffer-message)
(set-minibuffer-message, clear-minibuffer-message): Doc fixes.
(Bug#64165)
2023-06-19 João Távora <joaotavora@gmail.com>
Eglot: again fix positions of coinciding inlay hint overlays (bug#64101)
This bug originated from the previous fix, and is reproducible on non
Mac OS platforms, as long as the very latest version (at time of
writing) of the rust-analyzer server is used.
* lisp/progmodes/eglot.el (eglot--update-hints-1): Reverse
priorities when pegging overlays after (i.e. when before-string is
used).
2023-06-18 Eli Zaretskii <eliz@gnu.org>
* lisp/ldefs-boot.el: Regenerate.
2023-06-18 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 29.0.92
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump version to 29.0.92.
2023-06-18 Mattias Engdegård <mattiase@acm.org>
Describe primarily the Emacs s-exp dialect for treesit queries
@ -116651,7 +117380,7 @@
This file records repository revisions from
commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to
commit 8f62e7b85f69bb4026e9cf2971668b0d77077792 (inclusive).
commit 7d1737071fba1fd83039aac34f34f6b90c9579b8 (inclusive).
See ChangeLog.3 for earlier changes.
;; Local Variables:

View File

@ -426,6 +426,13 @@ Now change to the 'manual' directory and invoke upload-manuals:
If upload-manuals fails, resolve the problems and re-invoke it.
This requires running make-manuals again, since upload-manuals
destructively modifies the 'manual' directory where you invoke it.
If new files fail to be "cvs add"ed, they need to be manually
removed from under /path/to/webpages/cvs/checkout before retrying
upload-manuals, because if they exist, they will not be handled as
"new" files, and will not be "cvs add"ed by the next run of the
script.
Also, upload-manuals invokes "cvs commit -f", so if you run it
several times, some files will be committed more than once even
though they were not changed in-between. Suck it up.

View File

@ -305,13 +305,14 @@ done
## TODO: check for removed manuals.
[ "$clist" ] && (
cd $webdir/manual/html_mono
cd $webdir/manual
[ "$new" ] && {
echo "Adding new files: $new"
$cvs add $new || die "add error"
new_manual $new || die
echo "Remember to add new entries to manual/index.html"
}
cd html_mono
$cvs commit -m "$message" $clist || die "commit error"
)
@ -339,9 +340,13 @@ for d in html_node/*; do
done
stale=
for f in $webdir/manual/$d/*.html; do
[ -e ${f#$webdir/manual/} ] || stale="$stale ${f##*/}"
done
# Newly created directory will have no HTML files, so none can be
# "stale". But 'for' returns the original wildcard, so avoid that.
ls $webdir/manual/$d/*.html > /dev/null 2>&1 && {
for f in $webdir/manual/$d/*.html; do
[ -e ${f#$webdir/manual/} ] || stale="$stale ${f##*/}"
done
}
mv $d/*.html $webdir/manual/$d/

View File

@ -1132,7 +1132,9 @@ up a menu. It is also used internally by @code{y-or-n-p}
This variable is set to the last input event that was read by the
command loop as part of a command. The principal use of this variable
is in @code{self-insert-command}, which uses it to decide which
character to insert.
character to insert, and in @code{post-self-insert-hook}
(@pxref{Commands for Insertion}), which uses it to access the
character that was just inserted.
@example
@group

View File

@ -156,7 +156,11 @@ reads the text and returns the resulting Lisp object, unevaluated.
The argument @var{default} specifies default values to make available
through the history commands. It should be a string, a list of
strings, or @code{nil}. The string or strings become the minibuffer's
``future history'', available to the user with @kbd{M-n}.
``future history'', available to the user with @kbd{M-n}. In
addition, if the call provides completion (e.g., via the @var{keymap}
argument), the completion candidates are added to the ``future
history'' when the values in @var{default} are exhausted by @kbd{M-n};
see @ref{Minibuffer History,, minibuffer-default-add-function}.
If @var{read} is non-@code{nil}, then @var{default} is also used
as the input to @code{read}, if the user enters empty input.
@ -648,10 +652,25 @@ buffer local, then each buffer will have its own input history list.
Both @code{read-from-minibuffer} and @code{completing-read} add new
elements to the history list automatically, and provide commands to
allow the user to reuse items on the list. The only thing your program
needs to do to use a history list is to initialize it and to pass its
name to the input functions when you wish. But it is safe to modify the
list by hand when the minibuffer input functions are not using it.
allow the user to reuse items on the list (@pxref{Minibuffer
Commands}). The only thing your program needs to do to use a history
list is to initialize it and to pass its name to the input functions
when you wish. But it is safe to modify the list by hand when the
minibuffer input functions are not using it.
@vindex minibuffer-default-add-function
By default, when @kbd{M-n} (@code{next-history-element},
@pxref{Minibuffer Commands,,next-history-element}) reaches the end of
the list of default values provided by the command which initiated
reading input from the minibuffer, @kbd{M-n} adds all of the
completion candidates, as specified by
@code{minibuffer-completion-table} (@pxref{Completion Commands}), to
the list of defaults, so that all those candidates are available as
``future history''. Your program can control that via the variable
@code{minibuffer-default-add-function}: if its value is not a
function, this automatic addition is disabled, and you can also set
this variable to your own function which adds only some candidates, or
some other values, to the ``future history''.
Emacs functions that add a new element to a history list can also
delete old elements if the list gets too long. The variable
@ -1161,7 +1180,10 @@ However, empty input is always permitted, regardless of the value of
first element of @var{default}, if it is a list; @code{""}, if
@var{default} is @code{nil}; or @var{default}. The string or strings
in @var{default} are also available to the user through the history
commands.
commands (@pxref{Minibuffer Commands}). In addition, the completion
candidates are added to the ``future history'' when the values in
@var{default} are exhausted by @kbd{M-n}; see @ref{Minibuffer
History,, minibuffer-default-add-function}.
The function @code{completing-read} uses
@code{minibuffer-local-completion-map} as the keymap if
@ -2551,7 +2573,11 @@ minibuffer. The argument @var{nabs} specifies the absolute history
position in descending order, where 0 means the current element and a
positive number @var{n} means the @var{n}th previous element. NABS
being a negative number -@var{n} means the @var{n}th entry of ``future
history.''
history''. When this function reaches the end of the default values
provided by @code{read-from-minibuffer} (@pxref{Text from Minibuffer})
and @code{completing-read} (@pxref{Minibuffer Completion}), it adds
the completion candidates to ``future history'', see @ref{Minibuffer
History,, minibuffer-default-add-function}.
@end deffn
@node Minibuffer Windows

View File

@ -551,14 +551,17 @@ character has close parenthesis syntax (@pxref{Blinking}).
@vindex self-insert-uses-region-functions
The final thing this command does is to run the hook
@code{post-self-insert-hook}. You could use this to automatically
reindent text as it is typed, for example. If any function on this
hook needs to act on the region (@pxref{The Region}), it should make
sure Delete Selection mode (@pxref{Using Region, Delete Selection, ,
emacs, The GNU Emacs Manual}) doesn't delete the region before
@code{post-self-insert-hook} functions are invoked. The way to do so
is to add a function that returns @code{nil} to
@code{self-insert-uses-region-functions}, a special hook that tells
Delete Selection mode it should not delete the region.
reindent text as it is typed, for example. The functions on this hook
can use @code{last-command-event} (@pxref{Command Loop Info}) to
access the character just inserted.
If any function on this hook needs to act on the region (@pxref{The
Region}), it should make sure Delete Selection mode (@pxref{Using
Region, Delete Selection, , emacs, The GNU Emacs Manual}) doesn't
delete the region before @code{post-self-insert-hook} functions are
invoked. The way to do so is to add a function that returns
@code{nil} to @code{self-insert-uses-region-functions}, a special hook
that tells Delete Selection mode it should not delete the region.
Do not try substituting your own definition of
@code{self-insert-command} for the standard one. The editor command

View File

@ -4562,7 +4562,7 @@ all children are done, you can use the following setup:
#+begin_src emacs-lisp
(defun org-summary-todo (n-done n-not-done)
"Switch entry to DONE when all subentries are done, to TODO otherwise."
(let (org-log-done org-log-states) ; turn off logging
(let (org-log-done org-todo-log-states) ; turn off logging
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
(add-hook 'org-after-todo-statistics-hook #'org-summary-todo)
@ -16034,7 +16034,12 @@ can remove every headline in the buffer during export like this:
"Remove all headlines in the current buffer.
BACKEND is the export back-end being used, as a symbol."
(org-map-entries
(lambda () (delete-region (point) (line-beginning-position 2)))))
(lambda ()
(delete-region (point) (line-beginning-position 2))
;; We need to tell `org-map-entries' to not skip over heading at
;; point. Otherwise, it would continue from _next_ heading. See
;; the docstring of `org-map-entries' for details.
(setq org-map-continue-from (point)))))
(add-hook 'org-export-before-parsing-hook #'my-headline-removal)
#+end_src

View File

@ -112,9 +112,9 @@ Alan Mackenzie: wrote cc-awk.el debug-early.el
and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el
cc-langs.el cc-mode.el cc-styles.el cc-vars.el
and changed cc-mode.texi bytecomp.el minibuf.c window.c edebug.el
follow.el lisp.h display.texi eval.c keyboard.c subr.el frame.c lread.c
follow.el frame.c lisp.h display.texi eval.c keyboard.c subr.el lread.c
syntax.texi xdisp.c progmodes/compile.el programs.texi font-lock.el
modes.texi window.el windows.texi and 190 other files
modes.texi window.el windows.texi and 191 other files
Alan Modra: changed unexelf.c
@ -389,7 +389,7 @@ and changed nnir.el gnus-sum.el nnimap.el gnus-group.el gnus.texi
gnus-msg.el gnus-int.el gnus-search.el auth-source.el gnus-art.el
gnus-cache.el gnus.el nnheader.el nnspool.el deps.mk dns.el
fns-tests.el fns.c gnus-agent.el gnus-cloud.el gnus-registry.el
and 14 other files
and 15 other files
Andrew Hall: changed paren.el
@ -1190,7 +1190,7 @@ Daniel Martín: changed c-ts-mode.el nsterm.m shortdoc.el ns-win.el
simple.el diff-mode-tests.el erc.texi files.el files.texi indent.erts
msdos-xtra.texi progmodes/python.el search.texi .lldbinit basic.texi
c-ts-mode-tests.el cmacexp.el compilation.txt compile-tests.el
compile.texi configure.ac and 43 other files
compile.texi configure.ac and 45 other files
Daniel McClanahan: changed lisp-mode.el
@ -1227,7 +1227,7 @@ Daniel Ralston: changed rcirc.el
Daniel Schoepe: changed gnus-sum.el
Daniel Semyonov: changed mairix.el
Daniel Semyonov: changed mairix.el package-vc.el
Dani Moncayo: changed msys-to-w32 Makefile.in configure.ac buffers.texi
lists.texi mini.texi INSTALL README.W32 basic.texi custom.texi
@ -1660,9 +1660,9 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c]
chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el
and co-wrote help-tests.el
and changed xdisp.c display.texi w32.c msdos.c simple.el w32fns.c
files.el fileio.c keyboard.c emacs.c text.texi w32term.c dispnew.c
configure.ac frames.texi w32proc.c files.texi xfaces.c window.c
dispextern.h lisp.h and 1329 other files
files.el fileio.c keyboard.c emacs.c text.texi w32term.c configure.ac
dispnew.c frames.texi w32proc.c files.texi xfaces.c window.c
dispextern.h lisp.h and 1330 other files
Eliza Velasquez: changed server.el
@ -2170,7 +2170,7 @@ Gregor Schmid: changed intervals.c intervals.h tcl-mode.el textprop.c
Gregory Chernov: changed nnslashdot.el
Gregory Heytings: changed xdisp.c editfns.c keyboard.c buffer.c subr.el
Gregory Heytings: changed xdisp.c editfns.c keyboard.c subr.el buffer.c
dispextern.h lisp.h buffer.h display.texi efaq.texi files.el isearch.el
minibuffer.el Makefile.in bytecode.c composite.c positions.texi
bytecomp.el emake help-fns.el lread.c and 78 other files
@ -2686,7 +2686,8 @@ and changed mml-sec.el gnus-util.el message.texi mml-smime.el mml1991.el
Jens Petersen: wrote find-func.el
and changed mule-cmds.el pcmpl-rpm.el
Jens Schmidt: changed plstore.el comint.el gnus.texi isearch.el ldap.el
Jens Schmidt: changed epa.texi plstore.el auth.texi comint.el gnus.texi
isearch.el ldap.el
Jens Toivo Berger Thielemann: changed word-help.el
@ -2919,6 +2920,8 @@ John Mastro: changed auth-source.el ibuffer.el w32heap.c
John Mongan: changed progmodes/f90.el
John Muhl: changed calculator.el
John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el help-fns.el
rmail.el files.el thumbs.el bindings.el fns.c xfns.c arc-mode.el
bytecomp.el cus-theme.el font-lock.el hexl.el ibuf-macs.el info.el
@ -3122,9 +3125,9 @@ Juri Linkov: wrote compose.el emoji.el files-x.el misearch.el
repeat-tests.el replace-tests.el tab-bar-tests.el tab-bar.el
tab-line.el
and changed isearch.el simple.el info.el replace.el dired.el dired-aux.el
minibuffer.el progmodes/grep.el window.el subr.el vc.el mouse.el
progmodes/grep.el minibuffer.el window.el subr.el vc.el mouse.el
outline.el diff-mode.el repeat.el image-mode.el files.el menu-bar.el
search.texi startup.el progmodes/compile.el and 472 other files
search.texi startup.el progmodes/compile.el and 473 other files
Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h
w32console.c w32heap.c w32inevt.c w32term.h
@ -3985,7 +3988,7 @@ Mauro Aranda: changed wid-edit.el cus-edit.el custom.el wid-edit-tests.el
widget.texi perl-mode.el custom-tests.el checkdoc-tests.el checkdoc.el
cperl-mode-tests.el cus-edit-tests.el cus-theme.el customize.texi
files.texi gnus.texi octave.el pong.el align.el auth-source.el
autorevert.el button.el and 44 other files
autorevert.el button.el and 45 other files
Maxime Edouard Robert Froumentin: changed gnus-art.el mml.el
@ -4793,7 +4796,7 @@ Philipp Stephani: wrote callint-tests.el checkdoc-tests.el
lread-tests.el mouse-tests.el startup-tests.el xt-mouse-tests.el
and changed emacs-module.c emacs-module-tests.el configure.ac json.c
process.c eval.c internals.texi json-tests.el process-tests.el alloc.c
emacs-module.h.in emacs.c lread.c nsterm.m bytecomp.el lisp.h pdumper.c
emacs-module.h.in emacs.c lread.c nsterm.m pdumper.c bytecomp.el lisp.h
seccomp-filter.c callproc.c cl-macs.el gtkutil.c and 188 other files
Phillip Dixon: changed eglot.el
@ -5038,7 +5041,7 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-langs.el
and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el
fileio.c process.c sysdep.c buffer.c xfns.c window.c subr.el
configure.ac startup.el sendmail.el emacs.c Makefile.in editfns.c
info.el dired.el and 1338 other files
info.el dired.el and 1339 other files
Richard Ryniker: changed sendmail.el
@ -5089,7 +5092,7 @@ and changed configure.ac process.c blocks.awk keymap.el font.c
network-stream-tests.el processes.texi custom.texi emoji-zwj.awk
ftfont.c gtkutil.c process-tests.el unicode vc-git.el terminal.c
char-fold.el gnutls.el keymaps.texi network-stream.el nsm.el nsterm.m
and 191 other files
and 192 other files
Robert Thorpe: changed cus-start.el indent.el rmail.texi
@ -5487,7 +5490,7 @@ Sławomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl
flyspell.el ls-lisp.el w32proc.c
Spencer Baugh: changed data-tests.el minibuffer.el alloc.c autorevert.el
mini.texi processes.texi
flymake.el menu-bar.el mini.texi processes.texi simple.el
Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el
unexcoff.c
@ -5780,9 +5783,9 @@ Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c
Theodor Thornhill: changed typescript-ts-mode.el java-ts-mode.el
c-ts-mode.el eglot.el js.el csharp-mode.el css-mode.el project.el
json-ts-mode.el treesit.el c-ts-common.el eglot-tests.el EGLOT-NEWS
README.md c-ts-mode-tests.el compile-tests.el indent-bsd.erts
indent.erts maintaining.texi mwheel.el ruby-ts-mode.el
and 4 other files
README.md c-ts-mode-tests.el compile-tests.el go-ts-mode.el
indent-bsd.erts indent.erts maintaining.texi mwheel.el
and 5 other files
Theresa O'Connor: wrote json.el
and changed erc.el erc-viper.el erc-log.el erc-track.el viper.el
@ -6105,6 +6108,8 @@ Valentin Wüstholz: changed org.el
Valery Alexeev: changed cyril-util.el cyrillic.el
Valtteri Vuorikoski: changed configure.ac
Van L: changed subr.el
Vasilij Schneidermann: changed ETAGS.EBNF cus-start.el eww.el cc-mode.el
@ -6146,7 +6151,7 @@ Vincent Bernat: changed gnus-int.el nnimap.el xsettings.c
Vincent Del Vecchio: changed info.el mh-utils.el
Vincenzo Pupillo: changed java-ts-mode.el
Vincenzo Pupillo: changed js.el typescript-ts-mode.el java-ts-mode.el
Vince Salvino: changed msdos.texi w32.c w32fns.c
@ -6370,7 +6375,7 @@ Yuan Fu: changed treesit.el treesit.c c-ts-mode.el parsing.texi
progmodes/python.el modes.texi js.el treesit-tests.el indent.erts
typescript-ts-mode.el css-mode.el treesit.h configure.ac
java-ts-mode.el print.c sh-script.el c-ts-common.el gdb-mi.el
rust-ts-mode.el go-ts-mode.el starter-guide and 53 other files
rust-ts-mode.el go-ts-mode.el starter-guide and 54 other files
Yuanle Song: changed rng-xsd.el

View File

@ -228,7 +228,9 @@ GNU Emacs 28.1 (2022-04-04) emacs-28.1
GNU Emacs 28.2 (2022-09-12) emacs-28.2
GNU Emacs 28.3 (2023-02-17) emacs-28.3
GNU Emacs 28.3 (2023-02-17) emacs-28.3 (was not actually released)
GNU Emacs 29.1 (2023-07-30) emacs-29.1
----------------------------------------------------------------------

View File

@ -695,6 +695,15 @@ previous behavior of showing 'U' in the mode line for 'koi8-u':
(coding-system-put 'koi8-u :mnemonic ?U)
---
** 'vietnamese-tcvn' is now a coding system alias for 'vietnamese-vscii'.
VSCII-1 and TCVN-5712 are different names for the same character
encoding. Therefore, the duplicate coding system definition has been
dropped in favor of an alias.
The mode-line mnemonic for 'vietnamese-vscii' and its aliases is the
lowercase letter 'v'.
+++
** Infinities and NaNs no longer act as symbols on non-IEEE platforms.
On old platforms like the VAX that do not support IEEE floating-point,

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{9.6.6}
\def\orgversionnumber{9.6.7}
\def\versionyear{2023} % latest update
\input emacsver.tex

View File

@ -89,13 +89,15 @@ To specify the file in which to save them, modify the variable
:type 'file)
(defcustom bookmark-watch-bookmark-file t
"If non-nil watch the default bookmark file.
"If non-nil reload the default bookmark file if it was changed.
If this file has changed on disk since it was last loaded, query the user
whether to load it again. If the value is `silent' reload without querying.
This file defaults to `bookmark-default-file'. But during an Emacs session,
`bookmark-load' and `bookmark-save' can redefine the current default file."
:version "27.1"
:type 'boolean
:type '(choice (const :tag "Suggest to reload bookmark file if changed" t)
(const :tag "Silently reload bookmark file if changed" silent)
(const :tag "Ignore changes of bookmark file" nil))
:group 'bookmark)
(defcustom bookmark-version-control 'nospecial

View File

@ -158,7 +158,7 @@
(or (and (consp real-value) (plist-get real-value :style))
'line))
(position (and (consp real-value)
(plist-get real-value :style))))
(plist-get real-value :position))))
(list :color color :style style :position position))))
;; filter to make customized-value suitable for storing
,(lambda (cus-value)

View File

@ -28,8 +28,8 @@
;;; Commentary:
;; For Vietnamese, the character sets VISCII, VSCII and TCVN-5712 are
;; supported.
;; For Vietnamese, the coding systems VISCII, VSCII-1 (TCVN-5712),
;; VIQR and windows-1258 are supported.
;;; Code:
@ -44,13 +44,16 @@
(define-coding-system-alias 'viscii 'vietnamese-viscii)
(define-coding-system 'vietnamese-vscii
"8-bit encoding for Vietnamese VSCII-1."
"8-bit encoding for Vietnamese VSCII-1 (TCVN-5712)."
:coding-type 'charset
:mnemonic ?v
:charset-list '(vscii)
:suitable-for-file-name t)
(define-coding-system-alias 'vscii 'vietnamese-vscii)
(define-coding-system-alias 'vietnamese-tcvn 'vietnamese-vscii)
(define-coding-system-alias 'tcvn 'vietnamese-vscii)
(define-coding-system-alias 'tcvn-5712 'vietnamese-vscii)
;; (make-coding-system
;; 'vietnamese-vps 4 ?p
@ -74,7 +77,7 @@
(set-language-info-alist
"Vietnamese" '((charset viscii)
(coding-system vietnamese-viscii vietnamese-vscii
vietnamese-tcvn vietnamese-viqr windows-1258)
vietnamese-viqr windows-1258)
(nonascii-translation . viscii)
(coding-priority vietnamese-viscii)
(input-method . "vietnamese-viqr")
@ -83,12 +86,12 @@
(sample-text . "Vietnamese (Tiếng Việt) Chào bạn")
(documentation . "\
For Vietnamese, Emacs uses special charsets internally.
They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, VIQR
and windows-1258. VSCII is deprecated in favor of TCVN-5712. The
Current setting gives higher priority to the coding system VISCII than
TCVN-5712. If you prefer TCVN-5712, please do: (prefer-coding-system
'vietnamese-tcvn). There are two Vietnamese input methods: VIQR and
Telex, VIQR is the default setting.")))
They can be decoded from and encoded to VISCII, VSCII-1 (TCVN-5712),
VIQR and windows-1258. The current setting gives higher priority
to the coding system VISCII than VSCII-1. If you prefer VSCII-1,
please do: (prefer-coding-system 'vietnamese-vscii). There are
two Vietnamese input methods: VIQR and Telex, VIQR is the default
setting.")))
(define-coding-system 'windows-1258
"windows-1258 encoding for Vietnamese (MIME: WINDOWS-1258)"
@ -98,15 +101,6 @@ Telex, VIQR is the default setting.")))
:mime-charset 'windows-1258)
(define-coding-system-alias 'cp1258 'windows-1258)
(define-coding-system 'vietnamese-tcvn
"8-bit encoding for Vietnamese TCVN-5712"
:coding-type 'charset
:mnemonic ?t
:charset-list '(tcvn-5712)
:suitable-for-file-name t)
(define-coding-system-alias 'tcvn 'vietnamese-tcvn)
(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn)
(provide 'vietnamese)
;;; vietnamese.el ends here

View File

@ -511,9 +511,9 @@ Emacs dired can't find files."
(with-parsed-tramp-file-name (expand-file-name filename) nil
(with-tramp-file-property v localname "file-writable-p"
(if (file-exists-p filename)
;; Examine `file-attributes' cache to see if request can be
;; satisfied without remote operation.
(if (tramp-file-property-p v localname "file-attributes")
;; Examine `file-attributes' cache to see if request can
;; be satisfied without remote operation.
(tramp-check-cached-permissions v ?w)
(tramp-adb-send-command-and-check
v (format "test -w %s" (tramp-shell-quote-argument localname))))

View File

@ -32,6 +32,7 @@
;;; Code:
(eval-when-compile (require 'cl-lib))
(require 'cl-seq)
(require 'tramp)
;; `dired-*' declarations can be removed, starting with Emacs 29.1.
@ -616,6 +617,13 @@ if (!$result) {
$result = File::Spec->catpath($vol, File::Spec->catdir(@dirs), \"\");
}
if (-l $ARGV[0]) {
print \"t\\n\";
}
else {
print \"nil\\n\";
}
$result =~ s/\"/\\\\\"/g;
print \"\\\"$result\\\"\\n\";
' \"$1\" %n"
@ -699,11 +707,11 @@ characters need to be doubled.")
" '((%s%%%%N%s) %%%%h (%s%%%%U%s . %%%%u) (%s%%%%G%s . %%%%g)"
" %%%%X %%%%Y %%%%Z %%%%s %s%%%%A%s t %%%%i -1)' \"$1\" %%n || echo nil) |"
" sed -e 's/\"/\\\\\"/g' -e 's/%s/\"/g'")
tramp-stat-marker tramp-stat-marker ; %%N
tramp-stat-marker tramp-stat-marker ; %%U
tramp-stat-marker tramp-stat-marker ; %%G
tramp-stat-marker tramp-stat-marker ; %%A
tramp-stat-quoted-marker)
tramp-stat-marker tramp-stat-marker ; %%N
tramp-stat-marker tramp-stat-marker ; %%U
tramp-stat-marker tramp-stat-marker ; %%G
tramp-stat-marker tramp-stat-marker ; %%A
tramp-stat-quoted-marker)
"Shell function to produce output suitable for use with `file-attributes'
on the remote file system.
Format specifiers are replaced by `tramp-expand-script', percent
@ -1015,7 +1023,7 @@ BEGIN {
Format specifiers are replaced by `tramp-expand-script', percent
characters need to be doubled.")
(defconst tramp-vc-registered-read-file-names
(defconst tramp-bundle-read-file-names
"echo \"(\"
while read file; do
quoted=`echo \"$file\" | sed -e \"s/\\\"/\\\\\\\\\\\\\\\\\\\"/\"`
@ -1029,13 +1037,18 @@ while read file; do
else
echo \"(\\\"$quoted\\\" \\\"file-readable-p\\\" nil)\"
fi
if %s \"$file\"; then
echo \"(\\\"$quoted\\\" \\\"file-directory-p\\\" t)\"
else
echo \"(\\\"$quoted\\\" \\\"file-directory-p\\\" nil)\"
fi
done
echo \")\""
"Script to check existence of VC related files.
It must be send formatted with two strings; the tests for file
existence, and file readability. Input shall be read via
here-document, otherwise the command could exceed maximum length
of command line.
"Script to check file attributes of a bundle of files.
It must be sent formatted with three strings; the tests for file
existence, file readability, and file directory. Input shall be
read via here-document, otherwise the command could exceed
maximum length of command line.
Format specifiers \"%s\" are replaced before the script is used.")
;; New handlers should be added here.
@ -1145,19 +1158,17 @@ Operations not mentioned here will be handled by the normal Emacs functions.")
(concat "Making a symbolic link: "
"ln(1) does not exist on the remote host"))))
(tramp-skeleton-handle-make-symbolic-link target linkname ok-if-already-exists
(and (tramp-send-command-and-check
v (format
"cd %s"
(tramp-shell-quote-argument (file-name-directory localname))))
(tramp-send-command-and-check
v (format
"%s -sf %s %s" (tramp-get-remote-ln v)
(tramp-shell-quote-argument target)
;; The command could exceed PATH_MAX, so we use relative
;; file names.
(tramp-shell-quote-argument
(concat "./" (file-name-nondirectory localname))))))))
(tramp-skeleton-make-symbolic-link target linkname ok-if-already-exists
(tramp-send-command-and-check
v (format
"cd %s && %s -sf %s %s"
(tramp-shell-quote-argument (file-name-directory localname))
(tramp-get-remote-ln v)
(tramp-shell-quote-argument target)
;; The command could exceed PATH_MAX, so we use relative
;; file names.
(tramp-shell-quote-argument
(concat "./" (file-name-nondirectory localname)))))))
(defun tramp-sh-handle-file-truename (filename)
"Like `file-truename' for Tramp files."
@ -1166,12 +1177,20 @@ Operations not mentioned here will be handled by the normal Emacs functions.")
;; Use GNU readlink --canonicalize-missing where available.
((tramp-get-remote-readlink v)
(tramp-send-command-and-check
v (format "%s --canonicalize-missing %s"
(tramp-get-remote-readlink v)
(tramp-shell-quote-argument localname)))
v (format
(concat
"(if %s -h \"%s\"; then echo t; else echo nil; fi) && "
"%s --canonicalize-missing %s")
(tramp-get-test-command v)
(tramp-shell-quote-argument localname)
(tramp-get-remote-readlink v)
(tramp-shell-quote-argument localname)))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
(buffer-substring (point-min) (line-end-position))))
(tramp-set-file-property v localname "file-symlink-marker" (read (current-buffer)))
;; We cannote call `read', the file name isn't quoted.
(forward-line)
(buffer-substring (point) (line-end-position))))
;; Use Perl implementation.
((and (tramp-get-remote-perl v)
@ -1179,9 +1198,13 @@ Operations not mentioned here will be handled by the normal Emacs functions.")
(tramp-get-connection-property v "perl-cwd-realpath"))
(tramp-maybe-send-script
v tramp-perl-file-truename "tramp_perl_file_truename")
(tramp-send-command-and-read
(tramp-send-command-and-check
v (format "tramp_perl_file_truename %s"
(tramp-shell-quote-argument localname))))
(tramp-shell-quote-argument localname)))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
(tramp-set-file-property v localname "file-symlink-marker" (read (current-buffer)))
(read (current-buffer))))
;; Do it yourself.
(t (tramp-file-local-name
@ -1675,8 +1698,8 @@ ID-FORMAT valid values are `string' and `integer'."
(with-tramp-file-property v localname "file-directory-p"
(if-let
((truename (tramp-get-file-property v localname "file-truename"))
(attr-p (tramp-file-property-p
v (tramp-file-local-name truename) "file-attributes")))
((tramp-file-property-p
v (tramp-file-local-name truename) "file-attributes")))
(eq (file-attribute-type
(tramp-get-file-property
v (tramp-file-local-name truename) "file-attributes"))
@ -1688,9 +1711,9 @@ ID-FORMAT valid values are `string' and `integer'."
(with-parsed-tramp-file-name (expand-file-name filename) nil
(with-tramp-file-property v localname "file-writable-p"
(if (file-exists-p filename)
;; Examine `file-attributes' cache to see if request can be
;; satisfied without remote operation.
(if (tramp-file-property-p v localname "file-attributes")
;; Examine `file-attributes' cache to see if request can
;; be satisfied without remote operation.
(tramp-check-cached-permissions v ?w)
(tramp-run-test v "-w" localname))
;; If file doesn't exist, check if directory is writable.
@ -1789,7 +1812,7 @@ ID-FORMAT valid values are `string' and `integer'."
"cd %s 2>&1 && %s -a 2>%s"
" | while IFS= read f; do"
" if %s -d \"$f\" 2>%s;"
" then \\echo \"$f/\"; else \\echo \"$f\"; fi;"
" then echo \"$f/\"; else echo \"$f\"; fi;"
" done")
(tramp-shell-quote-argument localname)
(tramp-get-ls-command v)
@ -3525,6 +3548,41 @@ implementation will be used."
(when coding-system-used
(setq last-coding-system-used coding-system-used)))))))
(defun tramp-bundle-read-file-names (vec files)
"Read file attributes of FILES and with one command fill the cache.
FILES must be the local names only. The cache attributes to be
filled are described in `tramp-bundle-read-file-names'."
(when files
(tramp-maybe-send-script
vec
(format tramp-bundle-read-file-names
(tramp-get-file-exists-command vec)
(format "%s -r" (tramp-get-test-command vec))
(format "%s -d" (tramp-get-test-command vec)))
"tramp_bundle_read_file_names")
(dolist
(elt
(ignore-errors
;; We cannot use `tramp-send-command-and-read', because
;; this does not cooperate well with heredoc documents.
(tramp-send-command
vec
(format
"tramp_bundle_read_file_names <<'%s'\n%s\n%s\n"
tramp-end-of-heredoc
(mapconcat #'tramp-shell-quote-argument
files
"\n")
tramp-end-of-heredoc))
(with-current-buffer (tramp-get-connection-buffer vec)
;; Read the expression.
(goto-char (point-min))
(read (current-buffer)))))
(tramp-set-file-property
vec (car elt) (cadr elt) (cadr (cdr elt))))))
(defvar tramp-vc-registered-file-names nil
"List used to collect file names, which are checked during `vc-registered'.")
@ -3570,36 +3628,7 @@ implementation will be used."
(tramp-message v 10 "\n%s" tramp-vc-registered-file-names)
;; Send just one command, in order to fill the cache.
(when tramp-vc-registered-file-names
(tramp-maybe-send-script
v
(format tramp-vc-registered-read-file-names
(tramp-get-file-exists-command v)
(format "%s -r" (tramp-get-test-command v)))
"tramp_vc_registered_read_file_names")
(dolist
(elt
(ignore-errors
;; We cannot use `tramp-send-command-and-read',
;; because this does not cooperate well with
;; heredoc documents.
(tramp-send-command
v
(format
"tramp_vc_registered_read_file_names <<'%s'\n%s\n%s\n"
tramp-end-of-heredoc
(mapconcat #'tramp-shell-quote-argument
tramp-vc-registered-file-names
"\n")
tramp-end-of-heredoc))
(with-current-buffer (tramp-get-connection-buffer v)
;; Read the expression.
(goto-char (point-min))
(read (current-buffer)))))
(tramp-set-file-property
v (car elt) (cadr elt) (cadr (cdr elt))))))
(tramp-bundle-read-file-names v tramp-vc-registered-file-names))
;; Second run. Now all `file-exists-p' or `file-readable-p'
;; calls shall be answered from the file cache. We unset
@ -4254,6 +4283,8 @@ file exists and nonzero exit status otherwise."
"`tramp-histfile-override' uses invalid file `%s'"
tramp-histfile-override))
(tramp-flush-connection-property
(tramp-get-connection-process vec) "scripts")
(tramp-set-connection-property
(tramp-get-connection-process vec) "remote-shell" shell)))
@ -4335,12 +4366,10 @@ process to set up. VEC specifies the connection."
(tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell))
(tramp-message vec 5 "Setting up remote shell environment")
;; Disable line editing.
(tramp-send-command vec "set +o vi +o emacs" t)
;; Dump option settings in the traces.
(when (>= tramp-verbose 9)
(tramp-send-command vec "set -o" t))
;; Disable line editing. Dump option settings in the traces.
(tramp-send-command
vec
(if (>= tramp-verbose 9) "set +o vi +o emacs -o" "set +o vi +o emacs") t)
;; Disable echo expansion.
(tramp-send-command
@ -5554,22 +5583,16 @@ Nonexistent directories are removed from spec."
(setq remote-path (delq 'tramp-own-remote-path remote-path)))
;; Remove double entries.
(setq elt1 remote-path)
(while (consp elt1)
(while (and (car elt1) (setq elt2 (member (car elt1) (cdr elt1))))
(setcar elt2 nil))
(setq elt1 (cdr elt1)))
(setq remote-path
(cl-remove-duplicates
remote-path :test #'string-equal :from-end t))
;; Remove non-existing directories.
(delq
nil
(mapcar
(lambda (x)
(and
(stringp x)
(file-directory-p (tramp-make-tramp-file-name vec x))
x))
remote-path))))))
(let ((remote-file-name-inhibit-cache nil))
(tramp-bundle-read-file-names vec remote-path)
(cl-remove-if
(lambda (x) (not (tramp-get-file-property vec x "file-directory-p")))
remote-path))))))
(defun tramp-get-remote-locale (vec)
"Determine remote locale, supporting UTF8 if possible."

View File

@ -1176,7 +1176,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
(unless (tramp-smb-get-cifs-capabilities v)
(tramp-error v 'file-error "make-symbolic-link not supported")))
(tramp-skeleton-handle-make-symbolic-link target linkname ok-if-already-exists
(tramp-skeleton-make-symbolic-link target linkname ok-if-already-exists
(unless (tramp-smb-send-command
v (format "symlink %s %s"
(tramp-smb-shell-quote-argument target)

View File

@ -574,9 +574,9 @@ the result will be a local, non-Tramp, file name."
(with-parsed-tramp-file-name (expand-file-name filename) nil
(with-tramp-file-property v localname "file-writable-p"
(if (file-exists-p filename)
;; Examine `file-attributes' cache to see if request can be
;; satisfied without remote operation.
(if (tramp-file-property-p v localname "file-attributes")
;; Examine `file-attributes' cache to see if request can
;; be satisfied without remote operation.
(tramp-check-cached-permissions v ?w)
(tramp-sudoedit-send-command
v "test" "-w" (file-name-unquote localname)))
@ -596,7 +596,7 @@ the result will be a local, non-Tramp, file name."
(defun tramp-sudoedit-handle-make-symbolic-link
(target linkname &optional ok-if-already-exists)
"Like `make-symbolic-link' for Tramp files."
(tramp-skeleton-handle-make-symbolic-link target linkname ok-if-already-exists
(tramp-skeleton-make-symbolic-link target linkname ok-if-already-exists
(tramp-sudoedit-send-command
v "ln" "-sf"
(file-name-unquote target)

View File

@ -3291,6 +3291,8 @@ BODY is the backend specific code."
(when (tramp-connectable-p ,filename)
(with-parsed-tramp-file-name (expand-file-name ,filename) nil
(with-tramp-file-property v localname "file-exists-p"
;; Examine `file-attributes' cache to see if request can
;; be satisfied without remote operation.
(if (tramp-file-property-p v localname "file-attributes")
(not
(null (tramp-get-file-property v localname "file-attributes")))
@ -3361,7 +3363,7 @@ BODY is the backend specific code."
,@body
nil))))
(defmacro tramp-skeleton-handle-make-symbolic-link
(defmacro tramp-skeleton-make-symbolic-link
(target linkname &optional ok-if-already-exists &rest body)
"Skeleton for `tramp-*-handle-make-symbolic-link'.
BODY is the backend specific code.
@ -3966,8 +3968,14 @@ Let-bind it when necessary.")
(defun tramp-handle-file-symlink-p (filename)
"Like `file-symlink-p' for Tramp files."
(let ((x (file-attribute-type (file-attributes filename))))
(and (stringp x) x)))
(with-parsed-tramp-file-name (expand-file-name filename) nil
;; Some operations, like `file-truename', set the file property
;; "file-symlink-marker". We can use it as indicator, and avoid a
;; possible call of `file-attributes'.
(when (or (tramp-get-file-property v localname "file-symlink-marker")
(not (tramp-file-property-p v localname "file-symlink-marker")))
(let ((x (file-attribute-type (file-attributes filename))))
(and (stringp x) x)))))
(defun tramp-handle-file-truename (filename)
"Like `file-truename' for Tramp files."

View File

@ -339,7 +339,7 @@ FORMAT can be either a format string or a function which is called with VAL."
(type
(pcase basetype
(`integerp '("int" "%d"))
(`floatp '("double" "%f"))
(`floatp '("double" "%s")) ;; %f rounds, use %s to print the float literally
(`stringp
(list
(if (eq org-babel-c-variant 'd) "string" "const char*")

View File

@ -513,6 +513,7 @@ The PARAMS are the 3rd element of the info for the same src block."
(cdr (assq :tangle params)))))
bare))))))
(defvar org-outline-regexp) ; defined in lisp/org.el
(defun org-babel-tangle-single-block (block-counter &optional only-this-block)
"Collect the tangled source for current block.
Return the list of block attributes needed by
@ -570,8 +571,8 @@ non-nil, return the full association list to be used by
(buffer-substring
(max (condition-case nil
(save-excursion
(org-back-to-heading t) ; Sets match data
(match-end 0))
(org-back-to-heading t)
(re-search-forward org-outline-regexp))
(error (point-min)))
(save-excursion
(if (re-search-backward

View File

@ -7734,7 +7734,8 @@ the cache."
;; it to real beginning then despite
;; START being larger.
(setq start nil)
(move-start-to-next-match nil)
(let ((data nil)) ; data may not be valid. ignore it.
(move-start-to-next-match nil))
;; The new element may now start before
;; or at already processed position.
;; Make sure that we continue from an

View File

@ -108,7 +108,7 @@ color of the frame."
"Face used for drawers."
:group 'org-faces)
(defface org-property-value nil
(defface org-property-value '((t :inherit default))
"Face used for the value of a property."
:group 'org-faces)

View File

@ -502,26 +502,34 @@ hanging around."
;; different buffer. This can happen, for example, when
;; org-capture copies local variables into *Capture* buffer.
(setq buffers (list (current-buffer)))
(dolist (buf (cons (or (buffer-base-buffer) (current-buffer))
(buffer-local-value 'org-fold-core--indirect-buffers (or (buffer-base-buffer) (current-buffer)))))
(if (buffer-live-p buf)
(push buf buffers)
(dolist (spec (org-fold-core-folding-spec-list))
(when (and (not (org-fold-core-get-folding-spec-property spec :global))
(gethash (cons buf spec) org-fold-core--property-symbol-cache))
;; Make sure that dead-properties variable can be passed
;; as argument to `remove-text-properties'.
(push t dead-properties)
(push (gethash (cons buf spec) org-fold-core--property-symbol-cache)
dead-properties))))))
(let ((all-buffers (buffer-local-value
'org-fold-core--indirect-buffers
(or (buffer-base-buffer) (current-buffer)))))
(dolist (buf (cons (or (buffer-base-buffer) (current-buffer))
(buffer-local-value 'org-fold-core--indirect-buffers (or (buffer-base-buffer) (current-buffer)))))
(if (buffer-live-p buf)
(push buf buffers)
(dolist (spec (org-fold-core-folding-spec-list))
(when (and (not (org-fold-core-get-folding-spec-property spec :global))
(gethash (cons buf spec) org-fold-core--property-symbol-cache))
;; Make sure that dead-properties variable can be passed
;; as argument to `remove-text-properties'.
(push t dead-properties)
(push (gethash (cons buf spec) org-fold-core--property-symbol-cache)
dead-properties)))))
(when dead-properties
(with-current-buffer (or (buffer-base-buffer) (current-buffer))
(setq-local org-fold-core--indirect-buffers
(seq-filter #'buffer-live-p all-buffers))))))
(dolist (buf buffers)
(with-current-buffer buf
(with-silent-modifications
(save-restriction
(widen)
(remove-text-properties
(point-min) (point-max)
dead-properties)))
(when dead-properties
(with-silent-modifications
(save-restriction
(widen)
(remove-text-properties
(point-min) (point-max)
dead-properties))))
,@body))))
;; This is the core function used to fold text in buffers. We use
@ -1277,19 +1285,19 @@ to :front-sticky/:rear-sticky folding spec property.
If the folded region is folded with a spec with non-nil :fragile
property, unfold the region if the :fragile function returns non-nil."
;; If no insertions or deletions in buffer, skip all the checks.
(unless (or (eq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
org-fold-core--ignore-modifications
(unless (or org-fold-core--ignore-modifications
(eq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
(memql 'ignore-modification-checks org-fold-core--optimise-for-huge-buffers))
;; Store the new buffer modification state.
(setq org-fold-core--last-buffer-chars-modified-tick (buffer-chars-modified-tick))
(save-match-data
;; Handle changes in all the indirect buffers and in the base
;; buffer. Work around Emacs bug#46982.
(when (eq org-fold-core-style 'text-properties)
(org-fold-core-cycle-over-indirect-buffers
;; Re-hide text inserted in the middle/front/back of a folded
;; region.
(unless (equal from to) ; Ignore deletions.
;; Re-hide text inserted in the middle/front/back of a folded
;; region.
(unless (equal from to) ; Ignore deletions.
(when (eq org-fold-core-style 'text-properties)
(org-fold-core-cycle-over-indirect-buffers
(dolist (spec (org-fold-core-folding-spec-list))
;; Reveal fully invisible text inserted in the middle
;; of visible portion of the buffer. This is needed,

View File

@ -975,7 +975,7 @@ This means, between the beginning of line and the point."
(interactive)
(org-back-to-heading)
(let ((minlevel 1000)
(replace-text (concat (match-string 0) "* ")))
(replace-text (concat (make-string (org-current-level) ?*) "* ")))
(beginning-of-line 2)
(save-excursion
(while (not (or (eobp) (looking-at org-outline-regexp)))

View File

@ -5,13 +5,13 @@
(defun org-release ()
"The release version of Org.
Inserted by installing Org mode or when a release is made."
(let ((org-release "9.6.6"))
(let ((org-release "9.6.7"))
org-release))
;;;###autoload
(defun org-git-version ()
"The Git version of Org mode.
Inserted by installing Org or when a release is made."
(let ((org-git-version "release_9.6.6"))
(let ((org-git-version "release_9.6.7-5-gd1d0c3"))
org-git-version))
(provide 'org-version)

View File

@ -9,7 +9,7 @@
;; URL: https://orgmode.org
;; Package-Requires: ((emacs "26.1"))
;; Version: 9.6.6
;; Version: 9.6.7
;; This file is part of GNU Emacs.
;;
@ -5691,7 +5691,7 @@ highlighting was done, nil otherwise."
If this is called at a normal headline, the level is the number
of stars. Use `org-reduced-level' to remove the effect of
`org-odd-levels'. Unlike to `org-current-level', this function
`org-odd-levels-only'. Unlike `org-current-level', this function
takes into consideration inlinetasks."
(org-with-wide-buffer
(end-of-line)
@ -6621,7 +6621,7 @@ headings in the region."
"Return the level of the current entry, or nil if before the first headline.
The level is the number of stars at the beginning of the
headline. Use `org-reduced-level' to remove the effect of
`org-odd-levels'. Unlike to `org-outline-level', this function
`org-odd-levels-only'. Unlike `org-outline-level', this function
ignores inlinetasks."
(let ((level (org-with-limited-levels (org-outline-level))))
(and (> level 0) level)))
@ -9709,7 +9709,7 @@ when there is a statistics cookie in the headline!
(defun org-summary-todo (n-done n-not-done)
\"Switch entry to DONE when all subentries are done, to TODO otherwise.\"
(let (org-log-done org-log-states) ; turn off logging
(let (org-log-done org-todo-log-states) ; turn off logging
(org-todo (if (= n-not-done 0) \"DONE\" \"TODO\"))))")
(defvar org-todo-statistics-hook nil
@ -16253,7 +16253,8 @@ conventions:
2. Its description consists in a single link of the previous
type. In this case, that link must be a well-formed plain
or angle link, i.e., it must have an explicit \"file\" type.
or angle link, i.e., it must have an explicit \"file\" or
\"attachment\" type.
Equip each image with the key-map `image-map'.
@ -16284,7 +16285,7 @@ buffer boundaries with possible narrowing."
;; "file:" links. Also check link abbreviations since
;; some might expand to "file" links.
(file-types-re
(format "\\[\\[\\(?:file%s:\\|attachment:\\|[./~]\\)\\|\\]\\[\\(<?file:\\)"
(format "\\[\\[\\(?:file%s:\\|attachment:\\|[./~]\\)\\|\\]\\[\\(<?\\(?:file\\|attachment\\):\\)"
(if (not link-abbrevs) ""
(concat "\\|" (regexp-opt link-abbrevs))))))
(while (re-search-forward file-types-re end t)
@ -16323,7 +16324,9 @@ buffer boundaries with possible narrowing."
;; description.
(= (org-element-property :contents-end link)
(match-end 0))
(match-string 2)))))))
(progn
(setq linktype (match-string 1))
(match-string 2))))))))
(when (and path (string-match-p file-extension-re path))
(let ((file (if (equal "attachment" linktype)
(progn
@ -20656,7 +20659,7 @@ non-nil it will also look at invisible ones."
(if backward? (goto-char (point-min)) (outline-next-heading))
(org-back-to-heading invisible-ok)
(unless backward? (end-of-line)) ;do not match current headline
(let ((level (- (match-end 0) (match-beginning 0) 1))
(let ((level (org-current-level))
(f (if backward? #'re-search-backward #'re-search-forward))
(count (if arg (abs arg) 1))
(result (point)))

View File

@ -1965,9 +1965,6 @@ EXT-PLIST, when provided, is a property list with external
parameters overriding Org default settings, but still inferior to
file-local settings.
When optional argument PUB-DIR is set, use it as the publishing
directory.
Return INFO file's name."
(interactive)
(let ((outfile (org-export-output-file-name ".texi" subtreep))

View File

@ -574,9 +574,7 @@ MODE is either `c' or `cpp'."
:feature 'constant
`((true) @font-lock-constant-face
(false) @font-lock-constant-face
(null) @font-lock-constant-face
,@(when (eq mode 'cpp)
'((nullptr) @font-lock-constant-face)))
(null) @font-lock-constant-face)
:language mode
:feature 'keyword

View File

@ -31,6 +31,7 @@
(eval-when-compile (require 'rx))
(declare-function treesit-parser-create "treesit.c")
(declare-function treesit-query-capture "treesit.c")
(declare-function treesit-induce-sparse-tree "treesit.c")
(declare-function treesit-node-child "treesit.c")
(declare-function treesit-node-start "treesit.c")
@ -87,6 +88,42 @@
"VERSION_GREATER_EQUAL" "VERSION_LESS" "VERSION_LESS_EQUAL")
"CMake if conditions for tree-sitter font-locking.")
(defun cmake-ts-mode--font-lock-compatibility-fe9b5e0 ()
"Indent rules helper, to handle different releases of tree-sitter-cmake.
Check if a node type is available, then return the right indent rules."
;; handle commit fe9b5e0
(condition-case nil
(progn (treesit-query-capture 'cmake '((argument_list) @capture))
`(((foreach_command
((argument_list) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--foreach-options)
eol))
@font-lock-constant-face))))
((if_command
((argument_list) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--if-conditions)
eol))
@font-lock-constant-face))))))
(error
`(((foreach_command
((argument) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--foreach-options)
eol))
@font-lock-constant-face))))
((if_command
((argument) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--if-conditions)
eol))
@font-lock-constant-face))))))))
(defvar cmake-ts-mode--font-lock-settings
(treesit-font-lock-rules
:language 'cmake
@ -95,20 +132,7 @@
:language 'cmake
:feature 'builtin
`(((foreach_command
((argument) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--foreach-options)
eol))
@font-lock-constant-face))))
((if_command
((argument) @font-lock-constant-face
(:match ,(rx-to-string
`(seq bol
(or ,@cmake-ts-mode--if-conditions)
eol))
@font-lock-constant-face)))))
(cmake-ts-mode--font-lock-compatibility-fe9b5e0)
:language 'cmake
:feature 'comment

View File

@ -3427,6 +3427,18 @@ This function is intended for use in `after-change-functions'."
;;; Tree sitter integration
(defun js-jsx--treesit-indent-compatibility-bb1f97b ()
"Indent rules helper, to handle different releases of tree-sitter-javascript.
Check if a node type is available, then return the right indent rules."
;; handle commit bb1f97b
(condition-case nil
(progn (treesit-query-capture 'javascript '((jsx_fragment) @capture))
`(((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent js-indent-level)))
(error
`(((match "<" "jsx_text") parent 0)
((parent-is "jsx_text") parent js-indent-level)))))
(defvar js--treesit-indent-rules
(let ((switch-case (rx "switch_" (or "case" "default"))))
`((javascript
@ -3462,8 +3474,7 @@ This function is intended for use in `after-change-functions'."
((parent-is "statement_block") parent-bol js-indent-level)
;; JSX
((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent js-indent-level)
(js-jsx--treesit-indent-compatibility-bb1f97b)
((node-is "jsx_closing_element") parent 0)
((match "jsx_element" "statement") parent js-indent-level)
((parent-is "jsx_element") parent js-indent-level)
@ -3490,6 +3501,35 @@ This function is intended for use in `after-change-functions'."
"&&" "||" "!")
"JavaScript operators for tree-sitter font-locking.")
(defun js-jsx--treesit-font-lock-compatibility-bb1f97b ()
"Font lock rules helper, to handle different releases of tree-sitter-javascript.
Check if a node type is available, then return the right font lock rules."
;; handle commit bb1f97b
(condition-case nil
(progn (treesit-query-capture 'javascript '((member_expression) @capture))
'((jsx_opening_element
[(member_expression (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_closing_element
[(member_expression (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_self_closing_element
[(member_expression (identifier)) (identifier)]
@font-lock-function-call-face)))
(error '((jsx_opening_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_closing_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_self_closing_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)))))
(defvar js--treesit-font-lock-settings
(treesit-font-lock-rules
@ -3599,21 +3639,8 @@ This function is intended for use in `after-change-functions'."
:language 'javascript
:feature 'jsx
'((jsx_opening_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_closing_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_self_closing_element
[(nested_identifier (identifier)) (identifier)]
@font-lock-function-call-face)
(jsx_attribute
(property_identifier)
@font-lock-constant-face))
(append (js-jsx--treesit-font-lock-compatibility-bb1f97b)
'((jsx_attribute (property_identifier) @font-lock-constant-face)))
:language 'javascript
:feature 'number

View File

@ -33,6 +33,7 @@
(require 'c-ts-common) ; For comment indent and filling.
(declare-function treesit-parser-create "treesit.c")
(declare-function treesit-query-capture "treesit.c")
(defcustom typescript-ts-mode-indent-offset 2
"Number of spaces for each indentation step in `typescript-ts-mode'."
@ -75,6 +76,18 @@
table)
"Syntax table for `typescript-ts-mode'.")
(defun tsx-ts-mode--indent-compatibility-b893426 ()
"Indent rules helper, to handle different releases of tree-sitter-tsx.
Check if a node type is available, then return the right indent rules."
;; handle commit b893426
(condition-case nil
(progn (treesit-query-capture 'tsx '((jsx_fragment) @capture))
`(((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent typescript-ts-mode-indent-offset)))
(error
`(((match "<" "jsx_text") parent 0)
((parent-is "jsx_text") parent typescript-ts-mode-indent-offset)))))
(defun typescript-ts-mode--indent-rules (language)
"Rules used for indentation.
Argument LANGUAGE is either `typescript' or `tsx'."
@ -110,16 +123,15 @@ Argument LANGUAGE is either `typescript' or `tsx'."
((parent-is "binary_expression") parent-bol typescript-ts-mode-indent-offset)
,@(when (eq language 'tsx)
`(((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent typescript-ts-mode-indent-offset)
((node-is "jsx_closing_element") parent 0)
((match "jsx_element" "statement") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_text") parent-bol typescript-ts-mode-indent-offset)
((parent-is "jsx_opening_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_expression") parent-bol typescript-ts-mode-indent-offset)
((match "/" "jsx_self_closing_element") parent 0)
((parent-is "jsx_self_closing_element") parent typescript-ts-mode-indent-offset)))
(append (tsx-ts-mode--indent-compatibility-b893426)
`(((node-is "jsx_closing_element") parent 0)
((match "jsx_element" "statement") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_text") parent-bol typescript-ts-mode-indent-offset)
((parent-is "jsx_opening_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_expression") parent-bol typescript-ts-mode-indent-offset)
((match "/" "jsx_self_closing_element") parent 0)
((parent-is "jsx_self_closing_element") parent typescript-ts-mode-indent-offset))))
;; FIXME(Theo): This no-node catch-all should be removed. When is it needed?
(no-node parent-bol 0))))
@ -142,6 +154,39 @@ Argument LANGUAGE is either `typescript' or `tsx'."
"&&" "||" "!" "?.")
"TypeScript operators for tree-sitter font-locking.")
(defun tsx-ts-mode--font-lock-compatibility-bb1f97b (language)
"Font lock rules helper, to handle different releases of tree-sitter-tsx.
Check if a node type is available, then return the right font lock rules.
Argument LANGUAGE is either `typescript' or `tsx'."
;; handle commit bb1f97b
;; Warning: treesitter-query-capture says both node types are valid,
;; but then raises an error if the wrong node type is used. So it is
;; important to check with the new node type (member_expression)
(condition-case nil
(progn (treesit-query-capture language '((member_expression) @capture))
'((jsx_opening_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_closing_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_self_closing_element
[(member_expression (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)))
(error '((jsx_opening_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_self_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)))))
(defun typescript-ts-mode--font-lock-settings (language)
"Tree-sitter font-lock settings.
Argument LANGUAGE is either `typescript' or `tsx'."
@ -293,19 +338,8 @@ Argument LANGUAGE is either `typescript' or `tsx'."
:language language
:feature 'jsx
`((jsx_opening_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_self_closing_element
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)
(jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face))
(append (tsx-ts-mode--font-lock-compatibility-bb1f97b language)
`((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face)))
:language language
:feature 'number

View File

@ -423,8 +423,8 @@ PREFIX is a string, and defaults to \"g\"."
(make-symbol (format "%s%d" (or prefix "g") num))))
(defun ignore (&rest _arguments)
"Do nothing and return nil.
This function accepts any number of ARGUMENTS, but ignores them.
"Ignore ARGUMENTS, do nothing, and return nil.
This function accepts any number of arguments in ARGUMENTS.
Also see `always'."
;; Not declared `side-effect-free' because we don't want calls to it
;; elided; see `byte-compile-ignore'.
@ -433,8 +433,8 @@ Also see `always'."
nil)
(defun always (&rest _arguments)
"Do nothing and return t.
This function accepts any number of ARGUMENTS, but ignores them.
"Ignore ARGUMENTS, do nothing, and return t.
This function accepts any number of arguments in ARGUMENTS.
Also see `ignore'."
(declare (pure t) (side-effect-free error-free))
t)

View File

@ -201,7 +201,6 @@ This is desirable in modes where blank lines are the paragraph delimiters."
:type 'boolean
:safe #'booleanp)
;; Silence the compiler.
(defun forward-paragraph (&optional arg)
"Move forward to end of paragraph.
With argument ARG, do it ARG times;

View File

@ -260,8 +260,12 @@ char_width (int c, struct Lisp_Char_Table *dp)
DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0,
doc: /* Return width of CHAR when displayed in the current buffer.
The width is measured by how many columns it occupies on the screen.
doc: /* Return width of CHAR in columns when displayed in the current buffer.
The width of CHAR is measured by how many columns it will occupy on the screen.
This is based on data in `char-width-table', and ignores the actual
metrics of the character's glyph as determined by its font.
If the display table in effect replaces CHAR on display with
something else, the function returns the width of the replacement.
Tab is taken to occupy `tab-width' columns.
usage: (char-width CHAR) */)
(Lisp_Object ch)
@ -457,20 +461,26 @@ lisp_string_width (Lisp_Object string, ptrdiff_t from, ptrdiff_t to,
}
DEFUN ("string-width", Fstring_width, Sstring_width, 1, 3, 0,
doc: /* Return width of STRING when displayed in the current buffer.
Width is measured by how many columns it occupies on the screen.
doc: /* Return width of STRING in columns when displayed in the current buffer.
Width of STRING is measured by how many columns it will occupy on the screen.
Optional arguments FROM and TO specify the substring of STRING to
consider, and are interpreted as in `substring'.
When calculating width of a multibyte character in STRING,
only the base leading-code is considered; the validity of
the following bytes is not checked. Tabs in STRING are always
taken to occupy `tab-width' columns. The effect of faces and fonts
used for non-Latin and other unusual characters (such as emoji) is
ignored as well, as are display properties and invisible text.
For these reasons, the results are not generally reliable;
for accurate dimensions of text as it will be displayed,
use `string-pixel-width' or `window-text-pixel-size' instead.
Width of each character in STRING is generally taken according to
`char-width', but character compositions and the display table in
effect are taken into consideration.
Tabs in STRING are always assumed to occupy `tab-width' columns,
although they might take fewer columns depending on the column where
they begin on display.
The effect of faces and fonts, including fonts used for non-Latin and
other unusual characters, such as emoji, is ignored, as are display
properties and invisible text.
For these reasons, the results are just an approximation, especially
on GUI frames; for accurate dimensions of text as it will be
displayed, use `string-pixel-width' or `window-text-pixel-size'
instead.
usage: (string-width STRING &optional FROM TO) */)
(Lisp_Object str, Lisp_Object from, Lisp_Object to)
{

View File

@ -518,7 +518,8 @@ syms_of_cmds (void)
DEFVAR_LISP ("post-self-insert-hook", Vpost_self_insert_hook,
doc: /* Hook run at the end of `self-insert-command'.
This is run after inserting the character. */);
This is run after inserting a character.
The hook can access the inserted character via `last-command-event'. */);
Vpost_self_insert_hook = Qnil;
defsubr (&Sforward_char);

View File

@ -3840,11 +3840,7 @@ handled fairly well by the NS libraries (displayed with distinct
/* Make a Lisp string from an NSString. */
- (Lisp_Object)lispString
{
/* `make_string' creates a string with a given length, instead of
searching for a trailing NULL byte to determine its end. This is
important because this function is called to convert NSString
objects containing clipboard data, which can contain NUL bytes,
into Lisp strings. (bug#64697) */
// make_string behaves predictably and correctly with UTF-8 input.
return make_string ([self UTF8String],
[self lengthOfBytesUsingEncoding: NSUTF8StringEncoding]);
}

View File

@ -1147,6 +1147,7 @@ alsa_write (struct sound_device *sd, const char *buffer, ptrdiff_t nbytes)
alsa_sound_perror ("Can't recover from underrun, prepare failed",
err);
}
#ifdef ESTRPIPE
else if (err == -ESTRPIPE)
{
while ((err = snd_pcm_resume (p->handle)) == -EAGAIN)
@ -1160,6 +1161,7 @@ alsa_write (struct sound_device *sd, const char *buffer, ptrdiff_t nbytes)
err);
}
}
#endif
else
alsa_sound_perror ("Error writing to sound device", err);

View File

@ -5393,6 +5393,17 @@ This function is an internal primitive--use `make-frame' instead. */)
gui_default_parameter (f, parms, Qfullscreen, Qnil,
"fullscreen", "Fullscreen", RES_TYPE_SYMBOL);
#ifdef USE_CAIRO
/* Set the initial size of the Cairo surface to the frame's current
width and height. If the window manager doesn't resize the new
frame after it's first mapped, Emacs will create a surface with
empty dimensions in response to to the initial exposure event,
which will persist until the next time it's resized.
(bug#64923) */
x_cr_update_surface_desired_size (f, FRAME_PIXEL_WIDTH (f),
FRAME_PIXEL_HEIGHT (f));
#endif /* USE_CAIRO */
/* Make the window appear on the frame and enable display, unless
the caller says not to. However, with explicit parent, Emacs
cannot control visibility, so don't try. */