From 38de992a5a3ff13c6c727fd519b3f016f15264ea Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 14 Sep 2024 16:34:11 +0200 Subject: [PATCH 1/6] * etc/TODO: New item "support indentation guides". Ref: https://lists.gnu.org/r/emacs-devel/2024-07/msg01062.html --- etc/TODO | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etc/TODO b/etc/TODO index 65861f1cae5..87ca19f37f2 100644 --- a/etc/TODO +++ b/etc/TODO @@ -481,6 +481,14 @@ For some discussion and implementation ideas (including possibly using LSP), see the thread starting at https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00609.html +** Add indentation guide support to the display engine +Support vertical lines that indicate the current level of indentation, +which is useful when editing source code. This feature should be +implemented in the display engine. + +See the indent-bars package, which implements this in Emacs Lisp: +https://github.com/jdtsmith/indent-bars + ** FFI (foreign function interface) See e.g. https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html From 43b678d3d26b62d112fde286d0bf077954b28afa Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 14 Sep 2024 17:19:23 +0200 Subject: [PATCH 2/6] * admin/notes/years: Update. --- admin/notes/years | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/admin/notes/years b/admin/notes/years index 0510cb24b81..324cc4793d3 100644 --- a/admin/notes/years +++ b/admin/notes/years @@ -1,6 +1,6 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS -Maintaining copyright years is now very simple: every time a new year +Maintaining copyright years is very simple: every time a new year rolls around, add that year to every FSF (and AIST) copyright notice. Do this by running the 'admin/update-copyright' script on a fresh repo checkout, redirecting its output to a file, so that you could later @@ -18,16 +18,20 @@ A few known problems with the build-aux/update-copyright script: etc/tutorials/TUTORIAL.ro for some reason . it doesn't update the second Copyright notice, the one that gets output into PDF and PS, in etc/refcards/ru-refcard.tex - . it doesn't update etc/refcards/gnus-refcard.tex and - doc/misc/org.org because their Copyright statements have a - non-standard format - . several README and XPM files under etc/images/, and also + . it doesn't update etc/refcards/gnus-refcard.tex, doc/misc/org.org, + nt/emacs.rc.in, and nt/emacsclient.rc.in, because their Copyright + statements have a non-standard format + . several README files under etc/images/, and also etc/refcards/README, msdos/README, and nt/icons/README aren't updated either - - the copyright notice for headers generated by exec/configure.ac is - not updated as the file already bears a notice above it + . the copyright notices for headers generated by configure.ac and + exec/configure.ac are not updated as the files already bear notices + above them + . the example copyright year in doc/lispref/tips.texi is not updated -These files need to be updated by hand. +These files need to be updated by hand, however note that the above list +is not necessarily exhaustive. For that reason, it's best to grep for +something like "\<202[0-4]\>" and check any hits manually. Next, run "M-x set-copyright" from admin.el, which updates several copyright notices in the Emacs sources. @@ -40,23 +44,21 @@ ETAGS.good* and CTAGS.good files, and then commit the new test files. There's no need to worry about whether an individual file has changed in a given year - it's sufficient that Emacs as a whole has changed. - Therefore the years are updated en-masse near the start of each year, so basically there is no need for most people to do any updating of them. -The current (in 2011) version of "Information for Maintainers of GNU -Software" (see that document for more details) says that it is OK to use -ranges in copyright years, so in early 2011 the years were changed to use -ranges, which occupy less space and do not grow in length every year. +The refcards in etc/refcards can print only the latest copyright year, +but should keep the full list in a comment in the source. For more detailed information on maintaining copyright, see the file "copyright" in this directory. The previous policy was more complex, but is now only of historical -interest (see versions of this file from before 2009). +interest (see versions of this file from before 2009). In early 2011, +the years were changed to use ranges. This is OK according to changes +made to "Information for Maintainers of GNU Software" that same year +(see that document for more details). -The refcards in etc/refcards can print only the latest copyright year, -but should keep the full list in a comment in the source. "Our lawyer says it is ok if we add, to each file that has been in Emacs From 3822a5e5d12781fb1cd6d075fc5fa3ae1b103f1e Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 14 Sep 2024 17:34:09 +0200 Subject: [PATCH 3/6] * admin/update-copyright: Print reminder to do manual updates. --- admin/update-copyright | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/admin/update-copyright b/admin/update-copyright index b9007100b35..56fdfb86265 100755 --- a/admin/update-copyright +++ b/admin/update-copyright @@ -77,3 +77,7 @@ updatable_files=$(find $repo_files \ -print) && build-aux/update-copyright $updatable_files + +printf ">>> Please remember to search for and manually update any\n" +printf ">>> copyright years that were not updated by this script.\n" +printf ">>> See the file 'admin/notes/years' for details.\n" From ffc00eac53d88296e234d274ad1dd95bdf3cf065 Mon Sep 17 00:00:00 2001 From: Jonas Bernoulli Date: Sat, 14 Sep 2024 19:23:40 +0200 Subject: [PATCH 4/6] ; Set Transient's version and add admin/MAINTAINERS entry * admin/MAINTAINERS: Add entry for externally maintained Transient package. * doc/misc/transient.texi: Bump version strings. * lisp/transient.el: Bump version in Version header. * lisp/transient.el (transient-version): New constant. --- admin/MAINTAINERS | 7 +++++++ doc/misc/transient.texi | 4 ++-- lisp/transient.el | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index 6c77501fee3..16601a76bd6 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -390,6 +390,13 @@ Tramp doc/misc/tramp*.texi test/lisp/net/tramp*-tests.el +Transient + Maintainer: Jonas Bernoulli + Repository: https://github.com/magit/transient + + lisp/transient.el + doc/misc/transient.texi + Modus themes Maintainer: Protesilaos Stavrou Repository: https://github.com/protesilaos/modus-themes diff --git a/doc/misc/transient.texi b/doc/misc/transient.texi index 10e4c9deef1..09e973598aa 100644 --- a/doc/misc/transient.texi +++ b/doc/misc/transient.texi @@ -31,7 +31,7 @@ General Public License for more details. @finalout @titlepage @title Transient User and Developer Manual -@subtitle for version 0.7.2.1 +@subtitle for version 0.7.2.2 @author Jonas Bernoulli @page @vskip 0pt plus 1filll @@ -53,7 +53,7 @@ resource to get over that hurdle is Psionic K's interactive tutorial, available at @uref{https://github.com/positron-solutions/transient-showcase}. @noindent -This manual is for Transient version 0.7.2.1. +This manual is for Transient version 0.7.2.2. @insertcopying @end ifnottex diff --git a/lisp/transient.el b/lisp/transient.el index 71702cbda2f..a64a4bc6ef4 100644 --- a/lisp/transient.el +++ b/lisp/transient.el @@ -5,7 +5,7 @@ ;; Author: Jonas Bernoulli ;; URL: https://github.com/magit/transient ;; Keywords: extensions -;; Version: 0.7.2.1 +;; Version: 0.7.2.2 ;; SPDX-License-Identifier: GPL-3.0-or-later @@ -32,6 +32,8 @@ ;;; Code: +(defconst transient-version "0.7.2.2") + (require 'cl-lib) (require 'eieio) (require 'edmacro) From 21efdd5ef31febc8fd59bf483a39bba512d50f45 Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Sat, 14 Sep 2024 11:07:28 -0700 Subject: [PATCH 5/6] Fix c++-ts-mode font-lock for latest c++ grammar (bug#73191) * lisp/progmodes/c-ts-mode.el: (c-ts-mode--keywords): Add "thread_local" keyword. (c-ts-mode--test-virtual-named-p): New function. (c-ts-mode--font-lock-settings): Use named/anonymous "virtual" depending on the grammar. --- lisp/progmodes/c-ts-mode.el | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index f5cd36c68c7..a3379ad7aab 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -574,7 +574,7 @@ MODE is either `c' or `cpp'." "or_eq" "override" "private" "protected" "public" "requires" "template" "throw" "try" "typename" "using" - "xor" "xor_eq")) + "xor" "xor_eq" "thread_local")) (append '("auto") c-keywords)))) (defvar c-ts-mode--type-keywords @@ -592,6 +592,11 @@ MODE is either `c' or `cpp'." "LIVE_BUFFER" "FRAME")) "A regexp matching all the variants of the FOR_EACH_* macro.") +(defun c-ts-mode--test-virtual-named-p () + "Return t if the virtual keyword is a namded node, nil otherwise." + (ignore-errors + (progn (treesit-query-compile 'cpp "(virtual)" t) t))) + (defun c-ts-mode--font-lock-settings (mode) "Tree-sitter font-lock settings. MODE is either `c' or `cpp'." @@ -636,8 +641,13 @@ MODE is either `c' or `cpp'." `([,@(c-ts-mode--keywords mode)] @font-lock-keyword-face ,@(when (eq mode 'cpp) '((auto) @font-lock-keyword-face - (this) @font-lock-keyword-face - (virtual) @font-lock-keyword-face))) + (this) @font-lock-keyword-face)) + ,@(when (and (eq mode 'cpp) + (c-ts-mode--test-virtual-named-p)) + '((virtual) @font-lock-keyword-face)) + ,@(when (and (eq mode 'cpp) + (not (c-ts-mode--test-virtual-named-p))) + '("virtual" @font-lock-keyword-face))) :language mode :feature 'operator From 709ce2aff146a8c09c191f818cda70b269902348 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 15 Sep 2024 08:52:46 +0800 Subject: [PATCH 6/6] Port to Haiku R1/beta5 * src/haiku_support.cc (keysym_from_raw_char): Use revised names for B_HANGUL and B_HANGUL_HANJA. --- src/haiku_support.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 08e7f29685a..4ea5e0884b9 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc @@ -340,10 +340,18 @@ keysym_from_raw_char (int32 raw, int32 key, unsigned *code) break; +#if B_HAIKU_VERSION >= B_HAIKU_VERSION_1_BETA_5 + case B_HANGUL_KEY: +#else /* B_HAIKU_VERSION < B_HAIKU_VERSION_1_BETA_5 */ case B_HANGUL: +#endif /* B_HAIKU_VERSION >= B_HAIKU_VERSION_1_BETA_5 */ *code = KEY_HANGUL; break; - case B_HANGUL_HANJA: +#if B_HAIKU_VERSION >= B_HAIKU_VERSION_1_BETA_5 + case B_HANGUL_HANJA_KEY: +#else /* B_HAIKU_VERSION < B_HAIKU_VERSION_1_BETA_5 */ + case B_HANGUL: +#endif /* B_HAIKU_VERSION >= B_HAIKU_VERSION_1_BETA_5 */ *code = KEY_HANGUL_HANJA; break; case B_KATAKANA_HIRAGANA: