diff --git a/ChangeLog.4 b/ChangeLog.4 index b8efa20cdf9..9d64446d68e 100644 --- a/ChangeLog.4 +++ b/ChangeLog.4 @@ -1,3 +1,732 @@ +2023-07-30 Eli Zaretskii + + * Version 29.1 released. + +2023-07-29 Vincenzo Pupillo + + 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 + + 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 + + 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 + + Bump Emacs version + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 29.1. + +2023-07-23 Eli Zaretskii + + Update AUTHORS and ChangeLog.4 + + * ChangeLog.4: + * etc/AUTHORS: Update for Emacs 29.1 release. + +2023-07-22 Vincenzo Pupillo + + 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 + + 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 + + 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 + + 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 + + Fix NetBSD build --with-sound + + * src/sound.c (alsa_write): Use ESTRPIPE only if defined. + (Bug#64698) + +2023-07-20 Mauro Aranda + + Fix typo in pre-filter for underline property + + * lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347) + +2023-07-20 Po Lu + + 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 + + Fix typos and ommissions in cus-edit.el + + * lisp/cus-edit.el (custom-display): Add missing display types. + +2023-07-18 Mattias Engdegård + + 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 + + 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 (tiny change) + + * lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'. + + Bug#64590. + +2023-07-15 Valtteri Vuorikoski (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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + Merge branch 'scratch/bug64391' into emacs-29 + +2023-07-08 Michael Albinus + + * lisp/net/tramp.el (tramp-get-buffer-string): Stabilize. + +2023-07-08 Michael Albinus + + 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 + + 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 + + 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 + + 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 + + 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 + + correct info documentation of benchmark-call + + * doc/lispref/debugging.texi (Profiling): 'benchmark-call' is a defun, + not a macro. + +2023-07-03 Juri Linkov + + * lisp/progmodes/grep.el (rgrep): Fix docstring. + + Instead of the incorrect key `M-c' produce the right key + with \\\\[read-regexp-toggle-case-fold]. + +2023-07-03 Spencer Baugh + + 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 + + Avoid errors in completion due to 'completion-regexp-list' + + * doc/lispref/minibuf.texi (Basic Completion): + * src/minibuf.c (syms_of_minibuf) : + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + * 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 (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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * lisp/emacs-lisp/shortdoc.el: More and better `substring` examples. + + Suggested by Juri Linkov. + +2023-06-24 Eli Zaretskii + + 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 + + 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 + + Add selector_expression indentation rule + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule. + +2023-06-22 Eli Zaretskii + + Add "nixd" LSP server to Eglot + + * lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd". + Patch by Brian Leung . (Bug#64214) + +2023-06-22 Eli Zaretskii + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * lisp/ldefs-boot.el: Regenerate. + +2023-06-18 Eli Zaretskii + + 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 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: diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 1cc97c883af..fddf8444067 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -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. diff --git a/admin/upload-manuals b/admin/upload-manuals index 6f44456efb8..a206177a5c1 100755 --- a/admin/upload-manuals +++ b/admin/upload-manuals @@ -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/ diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index b6e619ff21f..56d7b8c649b 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -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 diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index a861b8e910b..31b020db57c 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -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 diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index bfd81662292..4ffd5126e7e 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -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 diff --git a/doc/misc/org.org b/doc/misc/org.org index ae3fae0623e..d8bbcb4d0c5 100644 --- a/doc/misc/org.org +++ b/doc/misc/org.org @@ -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 diff --git a/etc/AUTHORS b/etc/AUTHORS index 9bd490dd3f8..27d01ed9eb9 100644 --- a/etc/AUTHORS +++ b/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 diff --git a/etc/HISTORY b/etc/HISTORY index 8b80473e321..70f8669cb29 100644 --- a/etc/HISTORY +++ b/etc/HISTORY @@ -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 ---------------------------------------------------------------------- diff --git a/etc/NEWS b/etc/NEWS index 733883b26d8..a8fc7f4e37f 100644 --- a/etc/NEWS +++ b/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, diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index 07463ee6a33..dd8cae5ce5e 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -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 diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 026257ff758..10ff2f5ebbf 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -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 diff --git a/lisp/cus-face.el b/lisp/cus-face.el index ec89b4f7ff6..a3a27263a7c 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el @@ -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) diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el index bd0b3c5ae3e..e439a2c3851 100644 --- a/lisp/language/vietnamese.el +++ b/lisp/language/vietnamese.el @@ -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 diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index 3d4dacb393c..eec00b17b4c 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -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)))) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index e889cb2e86f..b33e788b893 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -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." diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 60d40fef147..9c96a3f6851 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -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) diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el index 2bbe0945330..2ce2647b5ac 100644 --- a/lisp/net/tramp-sudoedit.el +++ b/lisp/net/tramp-sudoedit.el @@ -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) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index e83d13e3779..772acc843b7 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -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." diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el index 3a6e99623f5..7763c4c07c1 100644 --- a/lisp/org/ob-C.el +++ b/lisp/org/ob-C.el @@ -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*") diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 980d4a12054..0b816a7c13c 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el @@ -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 diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 517d45b0224..df43ebcf0c5 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el @@ -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 diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 594c9a6e738..bb0958033fe 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -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) diff --git a/lisp/org/org-fold-core.el b/lisp/org/org-fold-core.el index 027ff921581..6c17b00faf8 100644 --- a/lisp/org/org-fold-core.el +++ b/lisp/org/org-fold-core.el @@ -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, diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el index 3b2c4cba624..e0671f3d7d5 100644 --- a/lisp/org/org-mouse.el +++ b/lisp/org/org-mouse.el @@ -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))) diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 8d93af2c20d..9116e298aa9 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el @@ -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) diff --git a/lisp/org/org.el b/lisp/org/org.el index b81630fdc07..d49bc9645f5 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -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:\\|[./~]\\)\\|\\]\\[\\(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); diff --git a/src/xfns.c b/src/xfns.c index 854a85f5306..aea2f4b880e 100644 --- a/src/xfns.c +++ b/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. */