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:
commit
deb8b933bc
731
ChangeLog.4
731
ChangeLog.4
@ -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:
|
||||
|
@ -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.
|
||||
|
@ -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/
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
49
etc/AUTHORS
49
etc/AUTHORS
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
9
etc/NEWS
9
etc/NEWS
@ -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,
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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))))
|
||||
|
@ -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."
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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."
|
||||
|
@ -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*")
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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)))
|
||||
|
@ -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)
|
||||
|
@ -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)))
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -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]);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
11
src/xfns.c
11
src/xfns.c
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user