From 82c87ce91b9f28338bd868046a4eb8996e980da8 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Sat, 21 Dec 2024 17:36:54 +0100 Subject: [PATCH] update compat Signed-off-by: Andreas Gerler --- elpa/compat-30.0.0.0.signed | 1 - elpa/compat-30.0.1.0.signed | 1 + .../NEWS.org | 8 + .../compat-25.el | 0 .../compat-26.el | 0 .../compat-27.el | 0 .../compat-28.el | 0 .../compat-29.el | 0 .../compat-30.el | 103 ++++- .../compat-autoloads.el | 0 .../compat-macs.el | 7 +- .../compat-pkg.el | 2 +- .../compat.el | 2 +- .../compat.info | 367 ++++++++++-------- elpa/{compat-30.0.0.0 => compat-30.0.1.0}/dir | 0 15 files changed, 310 insertions(+), 181 deletions(-) delete mode 100644 elpa/compat-30.0.0.0.signed create mode 100644 elpa/compat-30.0.1.0.signed rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/NEWS.org (98%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-25.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-26.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-27.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-28.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-29.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-30.el (75%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-autoloads.el (100%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-macs.el (97%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat-pkg.el (59%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat.el (99%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/compat.info (96%) rename elpa/{compat-30.0.0.0 => compat-30.0.1.0}/dir (100%) diff --git a/elpa/compat-30.0.0.0.signed b/elpa/compat-30.0.0.0.signed deleted file mode 100644 index 465f6348..00000000 --- a/elpa/compat-30.0.0.0.signed +++ /dev/null @@ -1 +0,0 @@ -Good signature from 645357D2883A0966 GNU ELPA Signing Agent (2023) (trust undefined) created at 2024-07-08T23:05:02+0200 using EDDSA \ No newline at end of file diff --git a/elpa/compat-30.0.1.0.signed b/elpa/compat-30.0.1.0.signed new file mode 100644 index 00000000..d780676d --- /dev/null +++ b/elpa/compat-30.0.1.0.signed @@ -0,0 +1 @@ +Good signature from 645357D2883A0966 GNU ELPA Signing Agent (2023) (trust undefined) created at 2024-12-15T11:05:01+0100 using EDDSA \ No newline at end of file diff --git a/elpa/compat-30.0.0.0/NEWS.org b/elpa/compat-30.0.1.0/NEWS.org similarity index 98% rename from elpa/compat-30.0.0.0/NEWS.org rename to elpa/compat-30.0.1.0/NEWS.org index acc06d05..1e24d5cc 100644 --- a/elpa/compat-30.0.0.0/NEWS.org +++ b/elpa/compat-30.0.1.0/NEWS.org @@ -2,6 +2,14 @@ #+link: compat-gh https://github.com/emacs-compat/compat/issues/ #+options: toc:nil num:nil author:nil +* Release of "Compat" Version 30.0.1.0 + +- compat-30: New variable =untrusted-content=. +- compat-30: New variable =trusted-files=. +- compat-30: New function =trusted-content-p=. + +(Release <2024-12-15 Sun>) + * Release of "Compat" Version 30.0.0.0 - compat-28: Mark =subr-native-elisp-p= as obsolete (renamed in Emacs 30). diff --git a/elpa/compat-30.0.0.0/compat-25.el b/elpa/compat-30.0.1.0/compat-25.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-25.el rename to elpa/compat-30.0.1.0/compat-25.el diff --git a/elpa/compat-30.0.0.0/compat-26.el b/elpa/compat-30.0.1.0/compat-26.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-26.el rename to elpa/compat-30.0.1.0/compat-26.el diff --git a/elpa/compat-30.0.0.0/compat-27.el b/elpa/compat-30.0.1.0/compat-27.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-27.el rename to elpa/compat-30.0.1.0/compat-27.el diff --git a/elpa/compat-30.0.0.0/compat-28.el b/elpa/compat-30.0.1.0/compat-28.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-28.el rename to elpa/compat-30.0.1.0/compat-28.el diff --git a/elpa/compat-30.0.0.0/compat-29.el b/elpa/compat-30.0.1.0/compat-29.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-29.el rename to elpa/compat-30.0.1.0/compat-29.el diff --git a/elpa/compat-30.0.0.0/compat-30.el b/elpa/compat-30.0.1.0/compat-30.el similarity index 75% rename from elpa/compat-30.0.0.0/compat-30.el rename to elpa/compat-30.0.1.0/compat-30.el index c41c4a01..02ef4263 100644 --- a/elpa/compat-30.0.0.0/compat-30.el +++ b/elpa/compat-30.0.1.0/compat-30.el @@ -24,6 +24,15 @@ (eval-when-compile (load "compat-macs.el" nil t t)) (compat-require compat-29 "29.1") +(compat-version "29.3") +(compat-defvar untrusted-content nil ;; + "Non-nil means that current buffer originated from an untrusted source. +Email clients and some other modes may set this non-nil to mark the +buffer contents as untrusted. + +This variable might be subject to change without notice." + :local permanent) + ;; TODO Update to 30.1 as soon as the Emacs emacs-30 branch version bumped (compat-version "30.0.50") @@ -50,27 +59,99 @@ See also `find-buffer-visiting'." ;;;; Defined in files.el +(compat-defvar trusted-files nil ;; + "List of files and directories whose content we trust. +Be extra careful here since trusting means that Emacs might execute the +code contained within those files and directories without an explicit +request by the user. +One important case when this might happen is when `flymake-mode' is +enabled (for example, when it is added to a mode hook). +Each element of the list should be a string: +- If it ends in \"/\", it is considered as a directory name and means that + Emacs should trust all the files whose name has this directory as a prefix. +- else it is considered as a file name. +Use abbreviated file names. For example, an entry \"~/mycode\" means +that Emacs will trust all the files in your directory \"mycode\". +This variable can also be set to `:all', in which case Emacs will trust +all files, which opens a gaping security hole." + :risky t) + +(compat-defun trusted-content-p () ;; + "Return non-nil if we trust the contents of the current buffer. +Here, \"trust\" means that we are willing to run code found inside of it. +See also `trusted-files'." + ;; We compare with `buffer-file-truename' i.s.o `buffer-file-name' + ;; to try and avoid marking as trusted a file that's merely accessed + ;; via a symlink that happens to be inside a trusted dir. + (and (not untrusted-content) + buffer-file-truename + (with-demoted-errors "trusted-content-p: %S" + (let ((exists (file-exists-p buffer-file-truename))) + (or + (eq trusted-files :all) + ;; We can't avoid trusting the user's init file. + (if (and exists user-init-file) + (file-equal-p buffer-file-truename user-init-file) + (equal buffer-file-truename user-init-file)) + (let ((file (abbreviate-file-name buffer-file-truename)) + (trusted nil)) + (dolist (tf trusted-files) + (when (or (if exists (file-equal-p tf file) (equal tf file)) + ;; We don't use `file-in-directory-p' here, because + ;; we want to err on the conservative side: "guilty + ;; until proven innocent". + (and (string-suffix-p "/" tf) + (string-prefix-p tf file))) + (setq trusted t))) + trusted)))))) + (compat-defun require-with-check (feature &optional filename noerror) ;; "If FEATURE is not already loaded, load it from FILENAME. This is like `require' except if FEATURE is already a member of the list -`features’, then we check if this was provided by a different file than the -one that we would load now (presumably because `load-path' has been -changed since the file was loaded). -If it's the case, we either signal an error (the default), or forcibly reload -the new file (if NOERROR is equal to `reload'), or otherwise emit a warning." +`features’, then check if it was provided by a different file than the +one that is about to be loaded now (presumably because `load-path' has +been changed since FILENAME was loaded). If that is the case, either +signal an error (the default), or forcibly reload the new file (if +NOERROR is equal to `reload'), or otherwise emit a warning." (let ((lh load-history) (res (require feature filename (if (eq noerror 'reload) nil noerror)))) ;; If the `feature' was not yet provided, `require' just loaded the right ;; file, so we're done. - (when (eq lh load-history) + (when (and res (eq lh load-history)) ;; If `require' did nothing, we need to make sure that was warranted. - (let ((fn (locate-file (or filename (symbol-name feature)) - load-path (get-load-suffixes)))) + (let* ((fn (locate-file (or filename (symbol-name feature)) + load-path (get-load-suffixes) nil + )) ;; load-prefer-newer + ;; We used to look for `fn' in `load-history' with `assoc' + ;; which works in most cases, but in some cases (e.g. when + ;; `load-prefer-newer' is set) `locate-file' can return a + ;; different file than the file that `require' would load, + ;; so the file won't be found in `load-history' even though + ;; we did load "it". (bug#74040) + ;; So use a "permissive" search which doesn't pay attention to + ;; differences between file extensions. + (prefix (if (string-match + (concat (regexp-opt (get-load-suffixes)) "\\'") fn) + (concat (substring fn 0 (match-beginning 0)) ".") + fn)) + (lh load-history)) + (while (and lh (let ((file (car-safe (car lh)))) + (not (and file (string-prefix-p prefix file))))) + (setq lh (cdr lh))) (cond - ((assoc fn load-history) nil) ;We loaded the right file. + (lh nil) ;We loaded the right file. ((eq noerror 'reload) (load fn nil 'nomessage)) - (t (funcall (if noerror #'warn #'error) - "Feature provided by other file: %S" feature))))) + ((and fn (memq feature features)) + (funcall (if noerror #'warn #'error) + "Feature `%S' is now provided by a different file %s" + feature fn)) + (fn + (funcall (if noerror #'warn #'error) + "Could not load file %s" fn)) + (t + (funcall (if noerror #'warn #'error) + "Could not locate file %s in load path" + (or filename (symbol-name feature))))))) res)) ;;;; Defined in minibuffer.el diff --git a/elpa/compat-30.0.0.0/compat-autoloads.el b/elpa/compat-30.0.1.0/compat-autoloads.el similarity index 100% rename from elpa/compat-30.0.0.0/compat-autoloads.el rename to elpa/compat-30.0.1.0/compat-autoloads.el diff --git a/elpa/compat-30.0.0.0/compat-macs.el b/elpa/compat-30.0.1.0/compat-macs.el similarity index 97% rename from elpa/compat-30.0.0.0/compat-macs.el rename to elpa/compat-30.0.1.0/compat-macs.el index ffd52233..d200fbb0 100644 --- a/elpa/compat-30.0.0.0/compat-macs.el +++ b/elpa/compat-30.0.1.0/compat-macs.el @@ -221,6 +221,8 @@ definition is generated. - :constant :: Mark the variable as constant if t. +- :risky :: Mark the variable as risky if t. + - :local :: Make the variable buffer-local if t. If the value is `permanent' make the variable additionally permanently local. @@ -232,11 +234,13 @@ definition is generated. (doc-string 3) (indent 2)) (compat-macs--guard attrs (list :constant #'booleanp + :risky #'booleanp :local (lambda (x) (memq x '(nil t permanent))) :obsolete (lambda (x) (or (booleanp x) (stringp x)))) - (lambda (constant local obsolete) + (lambda (constant risky local obsolete) (compat-macs--strict (not (boundp name)) "%s already defined" name) (compat-macs--assert (not (and constant local)) "Both :constant and :local") + (compat-macs--assert (not (and local risky)) "Both :risky and :local") ;; The boundp check is performed at runtime to make sure that we never ;; redefine an existing definition if Compat is loaded on a newer Emacs ;; version. @@ -250,6 +254,7 @@ definition is generated. ',name ,(if (stringp obsolete) obsolete "No substitute") ,compat-macs--version)))) ,@(and local `((make-variable-buffer-local ',name))) + ,@(and risky `((put ',name 'risky-local-variable t))) ,@(and (eq local 'permanent) `((put ',name 'permanent-local t))))))) (defmacro compat-version (version) diff --git a/elpa/compat-30.0.0.0/compat-pkg.el b/elpa/compat-30.0.1.0/compat-pkg.el similarity index 59% rename from elpa/compat-30.0.0.0/compat-pkg.el rename to elpa/compat-30.0.1.0/compat-pkg.el index 4754b354..11250cbd 100644 --- a/elpa/compat-30.0.0.0/compat-pkg.el +++ b/elpa/compat-30.0.1.0/compat-pkg.el @@ -1,2 +1,2 @@ ;; Generated package description from compat.el -*- no-byte-compile: t -*- -(define-package "compat" "30.0.0.0" "Emacs Lisp Compatibility Library" '((emacs "24.4") (seq "2.23")) :commit "09dce8a193c5a70277512263782b82fa1cba84c0" :authors '(("Philip Kaludercic" . "philipk@posteo.net") ("Daniel Mendler" . "mail@daniel-mendler.de")) :maintainer '("Compat Development" . "~pkal/compat-devel@lists.sr.ht") :keywords '("lisp" "maint") :url "https://github.com/emacs-compat/compat") +(define-package "compat" "30.0.1.0" "Emacs Lisp Compatibility Library" '((emacs "24.4") (seq "2.23")) :commit "3626216e7665bfe20f41f9b3d6bbeb1a7de2b1a6" :authors '(("Philip Kaludercic" . "philipk@posteo.net") ("Daniel Mendler" . "mail@daniel-mendler.de")) :maintainer '("Compat Development" . "~pkal/compat-devel@lists.sr.ht") :keywords '("lisp" "maint") :url "https://github.com/emacs-compat/compat") diff --git a/elpa/compat-30.0.0.0/compat.el b/elpa/compat-30.0.1.0/compat.el similarity index 99% rename from elpa/compat-30.0.0.0/compat.el rename to elpa/compat-30.0.1.0/compat.el index e43e6695..6a34ca5e 100644 --- a/elpa/compat-30.0.0.0/compat.el +++ b/elpa/compat-30.0.1.0/compat.el @@ -4,7 +4,7 @@ ;; Author: Philip Kaludercic , Daniel Mendler ;; Maintainer: Compat Development <~pkal/compat-devel@lists.sr.ht> -;; Version: 30.0.0.0 +;; Version: 30.0.1.0 ;; URL: https://github.com/emacs-compat/compat ;; Package-Requires: ((emacs "24.4") (seq "2.23")) ;; Keywords: lisp, maint diff --git a/elpa/compat-30.0.0.0/compat.info b/elpa/compat-30.0.1.0/compat.info similarity index 96% rename from elpa/compat-30.0.0.0/compat.info rename to elpa/compat-30.0.1.0/compat.info index 83a8be50..f5becf24 100644 --- a/elpa/compat-30.0.0.0/compat.info +++ b/elpa/compat-30.0.1.0/compat.info @@ -1,4 +1,4 @@ -This is doc23GpG6.info, produced by makeinfo version 6.8 from +This is docTwWwjU.info, produced by makeinfo version 6.8 from compat.texi. Copyright © 2022-2024 Free Software Foundation, Inc. @@ -20,14 +20,14 @@ START-INFO-DIR-ENTRY END-INFO-DIR-ENTRY  -File: doc23GpG6.info, Node: Top, Next: Introduction, Up: (dir) +File: docTwWwjU.info, Node: Top, Next: Introduction, Up: (dir) "Compat" Manual *************** This manual documents the usage of the "Compat" Emacs lisp library, the forward-compatibility library for Emacs Lisp, corresponding to version -30.0.0.0. +30.0.1.0. Copyright © 2022-2024 Free Software Foundation, Inc. @@ -65,10 +65,11 @@ Support * Emacs 27.1:: Compatibility support for Emacs 27.1 * Emacs 28.1:: Compatibility support for Emacs 28.1 * Emacs 29.1:: Compatibility support for Emacs 29.1 +* Emacs 30.1:: Compatibility support for Emacs 30.1  -File: doc23GpG6.info, Node: Introduction, Next: Support, Prev: Top, Up: Top +File: docTwWwjU.info, Node: Introduction, Next: Support, Prev: Top, Up: Top 1 Introduction ************** @@ -80,7 +81,7 @@ File: doc23GpG6.info, Node: Introduction, Next: Support, Prev: Top, Up: Top * Limitations::  -File: doc23GpG6.info, Node: Overview, Next: Usage, Up: Introduction +File: docTwWwjU.info, Node: Overview, Next: Usage, Up: Introduction 1.1 Overview ============ @@ -95,7 +96,7 @@ audience are package developers that are interested in using newer developments, without having to break compatibility.  -File: doc23GpG6.info, Node: Usage, Next: Limitations, Prev: Overview, Up: Introduction +File: docTwWwjU.info, Node: Usage, Next: Limitations, Prev: Overview, Up: Introduction 1.2 Usage ========= @@ -105,7 +106,7 @@ as a dependency in the header. The version of the Compat library mirrors the version of Emacs releases. The current version of Compat corresponds to the current Emacs release. - ;; Package-Requires: ((emacs "24.4") (compat "30.0.0.0")) + ;; Package-Requires: ((emacs "24.4") (compat "30.0.1.0")) There is no need to depend on ‘emacs 24.4’ specifically. One can choose any newer version, if features not provided by Compat necessitate @@ -184,7 +185,7 @@ provide a development mailing list <~pkal/compat-devel@lists.sr.ht>).  -File: doc23GpG6.info, Node: Limitations, Prev: Usage, Up: Introduction +File: docTwWwjU.info, Node: Limitations, Prev: Usage, Up: Introduction 1.3 Limitations =============== @@ -276,7 +277,7 @@ belong here, a *note report: Development. would be much appreciated. on the level of Compat.  -File: doc23GpG6.info, Node: Support, Next: Development, Prev: Introduction, Up: Top +File: docTwWwjU.info, Node: Support, Next: Development, Prev: Introduction, Up: Top 2 Support ********* @@ -291,9 +292,10 @@ manage to provide for each Emacs version. * Emacs 27.1:: Compatibility support for Emacs 27.1 * Emacs 28.1:: Compatibility support for Emacs 28.1 * Emacs 29.1:: Compatibility support for Emacs 29.1 +* Emacs 30.1:: Compatibility support for Emacs 30.1  -File: doc23GpG6.info, Node: Emacs 25.1, Next: Emacs 26.1, Up: Support +File: docTwWwjU.info, Node: Emacs 25.1, Next: Emacs 26.1, Up: Support 2.1 Emacs 25.1 ============== @@ -503,7 +505,7 @@ implemented in 25.1: • The ‘thunk’ library.  -File: doc23GpG6.info, Node: Emacs 26.1, Next: Emacs 27.1, Prev: Emacs 25.1, Up: Support +File: docTwWwjU.info, Node: Emacs 26.1, Next: Emacs 27.1, Prev: Emacs 25.1, Up: Support 2.2 Emacs 26.1 ============== @@ -914,7 +916,7 @@ implemented in 26.1: • The ‘svg’ library (published separately as a :core package).  -File: doc23GpG6.info, Node: Emacs 27.1, Next: Emacs 28.1, Prev: Emacs 26.1, Up: Support +File: docTwWwjU.info, Node: Emacs 27.1, Next: Emacs 28.1, Prev: Emacs 26.1, Up: Support 2.3 Emacs 27.1 ============== @@ -1383,7 +1385,7 @@ implemented in 27.1: • The ‘image-converter’ library.  -File: doc23GpG6.info, Node: Emacs 28.1, Next: Emacs 29.1, Prev: Emacs 27.1, Up: Support +File: docTwWwjU.info, Node: Emacs 28.1, Next: Emacs 29.1, Prev: Emacs 27.1, Up: Support 2.4 Emacs 28.1 ============== @@ -1484,28 +1486,32 @@ available by Compat. *Note (elisp)Insertion::. - -- Function: replace-string-in-region regexp replacement &optional - start end - This function replaces all the occurrences of REGEXP with - REPLACEMENT in the region of buffer text between START and END; - START defaults to position of point, and END defaults to the last - accessible position of the buffer. The search for REGEXP is - case-sensitive, and REPLACEMENT is inserted without changing its - letter-case. The REPLACEMENT string can use the same special - elements starting with ‘\’ as ‘replace-match’ does. The function - returns the number of replaced occurrences, or ‘nil’ if REGEXP is - not found. The function preserves the position of point. - - (replace-regexp-in-region "foo[ \t]+bar" "foobar") - *Note (elisp)Search and Replace::. - - -- Function: replace-regexp-in-string string replacement &optional + -- Function: replace-string-in-region string replacement &optional start end This function works similarly to ‘replace-regexp-in-region’, but searches for, and replaces, literal STRINGs instead of regular expressions. - *Note (elisp)Search and Replace::. + -- Function: replace-regexp-in-string regexp rep string &optional + fixedcase literal subexp start + This function copies STRING and searches it for matches for REGEXP, + and replaces them with REP. It returns the modified copy. If + START is non-‘nil’, the search for matches starts at that index in + STRING, and the returned value does not include the first START + characters of STRING. To get the whole transformed string, + concatenate the first START characters of STRING with the return + value. + + This function uses ‘replace-match’ to do the replacement, and it + passes the optional arguments FIXEDCASE, LITERAL and SUBEXP along + to ‘replace-match’. + + Instead of a string, REP can be a function. In that case, + ‘replace-regexp-in-string’ calls REP for each match, passing the + text of the match as its sole argument. It collects the value REP + returns and passes that to ‘replace-match’ as the replacement + string. The match data at this point are the result of matching + REGEXP against a substring of STRING. -- Function: buffer-local-boundp variable buffer This returns non-‘nil’ if there’s either a buffer-local binding of @@ -1839,7 +1845,7 @@ implemented in 28.1: • The ‘multisession’ library.  -File: doc23GpG6.info, Node: Emacs 29.1, Next: Emacs 30.1, Prev: Emacs 28.1, Up: Support +File: docTwWwjU.info, Node: Emacs 29.1, Next: Emacs 30.1, Prev: Emacs 28.1, Up: Support 2.5 Emacs 29.1 ============== @@ -1855,6 +1861,12 @@ will be the need for changes, so use these functions with care. The ‘defcustom’ type ‘key’ introduced in Emacs 29.1 is made available by Compat. + -- Variable: untrusted-content + Non-nil means that current buffer originated from an untrusted + source. Email clients and some other modes may set this non-nil to + mark the buffer contents as untrusted. This variable might be + subject to change without notice. + -- Variable: lisp-directory This variable holds a string naming the directory which holds Emacs’s own ‘*.el’ and ‘*.elc’ files. This is usually the place @@ -2673,7 +2685,7 @@ implemented in 29.1: • Support for symbols with position information.  -File: doc23GpG6.info, Node: Emacs 30.1, Prev: Emacs 29.1, Up: Support +File: docTwWwjU.info, Node: Emacs 30.1, Prev: Emacs 29.1, Up: Support 2.6 Emacs 30.1 ============== @@ -2686,6 +2698,26 @@ functions are made available by Compat on Emacs versions older than 30.1. Note that due to upstream changes, it might happen that there will be the need for changes, so use these functions with care. + -- Variable: trusted-files + List of files and directories whose content we trust. Be extra + careful here since trusting means that Emacs might execute the code + contained within those files and directories without an explicit + request by the user. One important case when this might happen is + when ‘flymake-mode’ is enabled (for example, when it is added to a + mode hook). Each element of the list should be a string: - If it + ends in "/", it is considered as a directory name and means that + Emacs should trust all the files whose name has this directory as a + prefix. - else it is considered as a file name. Use abbreviated + file names. For example, an entry "~/mycode" means that Emacs will + trust all the files in your directory "mycode". This variable can + also be set to ‘:all’, in which case Emacs will trust all files, + which opens a gaping security hole. + + -- Function: trusted-content-p + Return non-nil if we trust the contents of the current buffer. + Here, "trust" means that we are willing to run code found inside of + it. See also ‘trusted-files’. + -- Function: char-to-name char This function returns the Unicode name of CHAR. It returns ‘nil’ if CHAR is not a character or has no Unicode name. @@ -2950,7 +2982,7 @@ Compat does not provide support for the following Lisp features implemented in 30.1:  -File: doc23GpG6.info, Node: Development, Next: Function Index, Prev: Support, Up: Top +File: docTwWwjU.info, Node: Development, Next: Function Index, Prev: Support, Up: Top 3 Development ************* @@ -2987,7 +3019,7 @@ version has been reasonably stabilized, e.g., around the time when the Emacs version branch is created in the Emacs repository on Savannah.  -File: doc23GpG6.info, Node: Function Index, Next: Variable Index, Prev: Development, Up: Top +File: docTwWwjU.info, Node: Function Index, Next: Variable Index, Prev: Development, Up: Top Appendix A Function Index ************************* @@ -2995,59 +3027,59 @@ Appendix A Function Index [index] * Menu: -* add-display-text-property: Emacs 29.1. (line 190) +* add-display-text-property: Emacs 29.1. (line 196) * alist-get: Emacs 25.1. (line 82) * always: Emacs 28.1. (line 83) * and-let*: Emacs 26.1. (line 158) * assoc-delete-all: Emacs 26.1. (line 13) * bignump: Emacs 27.1. (line 55) * bool-vector: Emacs 25.1. (line 177) -* bounds-of-thing-at-mouse: Emacs 28.1. (line 292) +* bounds-of-thing-at-mouse: Emacs 28.1. (line 296) * buffer-hash: Emacs 26.1. (line 80) -* buffer-local-boundp: Emacs 28.1. (line 125) -* buffer-local-restore-state: Emacs 29.1. (line 50) -* buffer-local-set-state: Emacs 29.1. (line 50) -* buffer-match-p: Emacs 29.1. (line 258) -* buttonize: Emacs 29.1. (line 156) -* buttonize-region: Emacs 29.1. (line 165) -* char-to-name: Emacs 30.1. (line 14) -* char-uppercase-p: Emacs 29.1. (line 127) -* cl-constantly: Emacs 29.1. (line 635) -* cl-once-only: Emacs 29.1. (line 658) -* cl-with-gensyms: Emacs 29.1. (line 639) -* closurep: Emacs 30.1. (line 21) -* color-dark-p: Emacs 28.1. (line 322) -* color-values-from-color-spec: Emacs 28.1. (line 328) +* buffer-local-boundp: Emacs 28.1. (line 129) +* buffer-local-restore-state: Emacs 29.1. (line 56) +* buffer-local-set-state: Emacs 29.1. (line 56) +* buffer-match-p: Emacs 29.1. (line 264) +* buttonize: Emacs 29.1. (line 162) +* buttonize-region: Emacs 29.1. (line 171) +* char-to-name: Emacs 30.1. (line 34) +* char-uppercase-p: Emacs 29.1. (line 133) +* cl-constantly: Emacs 29.1. (line 641) +* cl-once-only: Emacs 29.1. (line 664) +* cl-with-gensyms: Emacs 29.1. (line 645) +* closurep: Emacs 30.1. (line 41) +* color-dark-p: Emacs 28.1. (line 326) +* color-values-from-color-spec: Emacs 28.1. (line 332) * compat-call: Usage. (line 50) * compat-call alist-get: Emacs 26.1. (line 344) * compat-call assoc: Emacs 26.1. (line 316) * compat-call assoc-delete-all: Emacs 27.1. (line 417) -* compat-call completion-metadata-get: Emacs 30.1. (line 251) -* compat-call copy-tree: Emacs 30.1. (line 261) -* compat-call count-windows: Emacs 28.1. (line 407) -* compat-call define-key: Emacs 29.1. (line 755) +* compat-call completion-metadata-get: Emacs 30.1. (line 271) +* compat-call copy-tree: Emacs 30.1. (line 281) +* compat-call count-windows: Emacs 28.1. (line 411) +* compat-call define-key: Emacs 29.1. (line 761) * compat-call executable-find: Emacs 27.1. (line 429) * compat-call file-size-human-readable: Emacs 27.1. (line 397) * compat-call line-number-at-pos: Emacs 26.1. (line 330) * compat-call lookup-key: Emacs 27.1. (line 356) * compat-call make-temp-file: Emacs 26.1. (line 278) -* compat-call plist-get: Emacs 29.1. (line 771) -* compat-call plist-member: Emacs 29.1. (line 795) -* compat-call plist-put: Emacs 29.1. (line 783) +* compat-call plist-get: Emacs 29.1. (line 777) +* compat-call plist-member: Emacs 29.1. (line 801) +* compat-call plist-put: Emacs 29.1. (line 789) * compat-call recenter: Emacs 27.1. (line 346) * compat-call regexp-opt: Emacs 27.1. (line 385) -* compat-call set-transient-map: Emacs 29.1. (line 710) +* compat-call set-transient-map: Emacs 29.1. (line 716) * compat-call setq-local: Emacs 27.1. (line 370) -* compat-call sort: Emacs 30.1. (line 176) -* compat-call string-lines: Emacs 29.1. (line 746) +* compat-call sort: Emacs 30.1. (line 196) +* compat-call string-lines: Emacs 29.1. (line 752) * compat-call string-trim: Emacs 26.1. (line 375) * compat-call string-trim-left: Emacs 26.1. (line 359) * compat-call string-trim-right: Emacs 26.1. (line 367) -* compat-call string-width: Emacs 28.1. (line 390) +* compat-call string-width: Emacs 28.1. (line 394) * compat-function: Usage. (line 58) -* compiled-function-p: Emacs 29.1. (line 226) -* completion-lazy-hilit: Emacs 30.1. (line 146) -* count-sentences: Emacs 29.1. (line 25) +* compiled-function-p: Emacs 29.1. (line 232) +* completion-lazy-hilit: Emacs 30.1. (line 166) +* count-sentences: Emacs 29.1. (line 31) * cXXXr: Emacs 26.1. (line 66) * cXXXXr: Emacs 26.1. (line 67) * date-days-in-month: Emacs 27.1. (line 213) @@ -3057,28 +3089,28 @@ Appendix A Function Index * decoded-time-hour: Emacs 27.1. (line 170) * decoded-time-minute: Emacs 27.1. (line 165) * decoded-time-month: Emacs 27.1. (line 180) -* decoded-time-period: Emacs 28.1. (line 359) +* decoded-time-period: Emacs 28.1. (line 363) * decoded-time-second: Emacs 27.1. (line 160) * decoded-time-weekday: Emacs 27.1. (line 190) * decoded-time-year: Emacs 27.1. (line 185) * decoded-time-zone: Emacs 27.1. (line 200) -* define-keymap: Emacs 29.1. (line 518) -* defvar-keymap: Emacs 29.1. (line 586) -* delete-line: Emacs 29.1. (line 59) -* directory-abbrev-apply: Emacs 29.1. (line 382) -* directory-abbrev-make-regexp: Emacs 29.1. (line 379) -* directory-empty-p: Emacs 28.1. (line 243) +* define-keymap: Emacs 29.1. (line 524) +* defvar-keymap: Emacs 29.1. (line 592) +* delete-line: Emacs 29.1. (line 65) +* directory-abbrev-apply: Emacs 29.1. (line 388) +* directory-abbrev-make-regexp: Emacs 29.1. (line 385) +* directory-empty-p: Emacs 28.1. (line 247) * directory-name-p: Emacs 25.1. (line 56) -* dlet: Emacs 28.1. (line 143) +* dlet: Emacs 28.1. (line 147) * dolist-with-progress-reporter: Emacs 27.1. (line 119) -* drop: Emacs 30.1. (line 74) -* ensure-list: Emacs 28.1. (line 158) -* ert-with-temp-directory: Emacs 29.1. (line 623) -* ert-with-temp-file: Emacs 29.1. (line 617) +* drop: Emacs 30.1. (line 94) +* ensure-list: Emacs 28.1. (line 162) +* ert-with-temp-directory: Emacs 29.1. (line 629) +* ert-with-temp-file: Emacs 29.1. (line 623) * file-attribute-access-time: Emacs 26.1. (line 223) * file-attribute-collect: Emacs 26.1. (line 260) * file-attribute-device-number: Emacs 26.1. (line 255) -* file-attribute-file-identifier: Emacs 29.1. (line 339) +* file-attribute-file-identifier: Emacs 29.1. (line 345) * file-attribute-group-id: Emacs 26.1. (line 218) * file-attribute-inode-number: Emacs 26.1. (line 250) * file-attribute-link-number: Emacs 26.1. (line 208) @@ -3088,77 +3120,77 @@ Appendix A Function Index * file-attribute-status-change-time: Emacs 26.1. (line 234) * file-attribute-type: Emacs 26.1. (line 203) * file-attribute-user-id: Emacs 26.1. (line 213) -* file-backup-file-names: Emacs 28.1. (line 347) -* file-has-changed-p: Emacs 29.1. (line 364) +* file-backup-file-names: Emacs 28.1. (line 351) +* file-has-changed-p: Emacs 29.1. (line 370) * file-local-name: Emacs 26.1. (line 167) -* file-modes-number-to-symbolic: Emacs 28.1. (line 341) +* file-modes-number-to-symbolic: Emacs 28.1. (line 345) * file-name-concat: Emacs 28.1. (line 53) -* file-name-parent-directory: Emacs 29.1. (line 355) +* file-name-parent-directory: Emacs 29.1. (line 361) * file-name-quote: Emacs 26.1. (line 102) * file-name-quoted-p: Emacs 26.1. (line 95) -* file-name-split: Emacs 29.1. (line 345) +* file-name-split: Emacs 29.1. (line 351) * file-name-unquote: Emacs 26.1. (line 90) -* file-name-with-extension: Emacs 28.1. (line 225) +* file-name-with-extension: Emacs 28.1. (line 229) * file-size-human-readable-iec: Emacs 27.1. (line 251) -* find-buffer: Emacs 30.1. (line 84) +* find-buffer: Emacs 30.1. (line 104) * fixnump: Emacs 27.1. (line 60) * flatten-tree: Emacs 27.1. (line 132) * format-message: Emacs 25.1. (line 44) -* format-prompt: Emacs 28.1. (line 254) -* funcall-with-delayed-message: Emacs 29.1. (line 148) -* function-alias-p: Emacs 29.1. (line 233) +* format-prompt: Emacs 28.1. (line 258) +* funcall-with-delayed-message: Emacs 29.1. (line 154) +* function-alias-p: Emacs 29.1. (line 239) * garbage-collect-maybe: Emacs 28.1. (line 68) * gensym: Emacs 26.1. (line 70) -* get-display-property: Emacs 29.1. (line 173) -* get-scratch-buffer-create: Emacs 29.1. (line 38) -* get-truename-buffer: Emacs 30.1. (line 79) +* get-display-property: Emacs 29.1. (line 179) +* get-scratch-buffer-create: Emacs 29.1. (line 44) +* get-truename-buffer: Emacs 30.1. (line 99) * hash-table-empty: Emacs 25.1. (line 119) * if-let: Emacs 25.1. (line 96) * if-let*: Emacs 26.1. (line 149) * ignore-errors: Emacs 27.1. (line 106) * image-property: Emacs 26.1. (line 198) * insert-into-buffer: Emacs 28.1. (line 92) -* interpreted-function-p: Emacs 30.1. (line 26) -* key-parse: Emacs 29.1. (line 419) -* key-valid-p: Emacs 29.1. (line 387) -* keymap-global-lookup: Emacs 29.1. (line 514) -* keymap-global-set: Emacs 29.1. (line 448) -* keymap-global-unset: Emacs 29.1. (line 468) -* keymap-local-lookup: Emacs 29.1. (line 510) -* keymap-local-set: Emacs 29.1. (line 458) -* keymap-local-unset: Emacs 29.1. (line 483) -* keymap-lookup: Emacs 29.1. (line 497) -* keymap-set: Emacs 29.1. (line 424) -* keymap-substitute: Emacs 29.1. (line 489) +* interpreted-function-p: Emacs 30.1. (line 46) +* key-parse: Emacs 29.1. (line 425) +* key-valid-p: Emacs 29.1. (line 393) +* keymap-global-lookup: Emacs 29.1. (line 520) +* keymap-global-set: Emacs 29.1. (line 454) +* keymap-global-unset: Emacs 29.1. (line 474) +* keymap-local-lookup: Emacs 29.1. (line 516) +* keymap-local-set: Emacs 29.1. (line 464) +* keymap-local-unset: Emacs 29.1. (line 489) +* keymap-lookup: Emacs 29.1. (line 503) +* keymap-set: Emacs 29.1. (line 430) +* keymap-substitute: Emacs 29.1. (line 495) * length<: Emacs 28.1. (line 45) * length=: Emacs 28.1. (line 42) * length>: Emacs 28.1. (line 50) -* list-of-strings-p: Emacs 29.1. (line 62) -* macroexp-file-name: Emacs 28.1. (line 301) +* list-of-strings-p: Emacs 29.1. (line 68) +* macroexp-file-name: Emacs 28.1. (line 305) * macroexp-parse: Emacs 25.1. (line 174) * macroexp-quote: Emacs 25.1. (line 171) -* macroexp-warn-and-return: Emacs 28.1. (line 305) +* macroexp-warn-and-return: Emacs 28.1. (line 309) * macroexpand-1: Emacs 25.1. (line 164) * major-mode-restore: Emacs 27.1. (line 22) * major-mode-suspend: Emacs 27.1. (line 13) * make-empty-file: Emacs 27.1. (line 254) -* make-lock-file-name: Emacs 28.1. (line 355) +* make-lock-file-name: Emacs 28.1. (line 359) * make-nearby-temp-file: Emacs 26.1. (line 120) * make-separator-line: Emacs 28.1. (line 88) * mapcan: Emacs 26.1. (line 53) -* mark-thing-at-mouse: Emacs 28.1. (line 298) -* match-buffers: Emacs 29.1. (line 292) -* merge-ordered-lists: Emacs 30.1. (line 99) +* mark-thing-at-mouse: Emacs 28.1. (line 302) +* match-buffers: Emacs 29.1. (line 298) +* merge-ordered-lists: Emacs 30.1. (line 119) * minibuffer-history-value: Emacs 27.1. (line 32) -* named-let: Emacs 28.1. (line 207) -* native-comp-available-p: Emacs 28.1. (line 371) -* ntake: Emacs 29.1. (line 213) -* obarray-clear: Emacs 30.1. (line 18) +* named-let: Emacs 28.1. (line 211) +* native-comp-available-p: Emacs 28.1. (line 375) +* ntake: Emacs 29.1. (line 219) +* obarray-clear: Emacs 30.1. (line 38) * package-get-version: Emacs 27.1. (line 205) -* plistp: Emacs 29.1. (line 65) -* pos-bol: Emacs 29.1. (line 119) -* pos-eol: Emacs 29.1. (line 123) -* primitive-function-p: Emacs 30.1. (line 29) +* plistp: Emacs 29.1. (line 71) +* pos-bol: Emacs 29.1. (line 125) +* pos-eol: Emacs 29.1. (line 129) +* primitive-function-p: Emacs 30.1. (line 49) * process-lines-handling-status: Emacs 28.1. (line 20) * process-lines-ignore-status: Emacs 28.1. (line 16) * proper-list-p: Emacs 27.1. (line 76) @@ -3166,61 +3198,62 @@ Appendix A Function Index * read-answer: Emacs 26.1. (line 17) * read-char-from-minibuffer: Emacs 27.1. (line 44) * read-multiple-choice: Emacs 26.1. (line 185) -* readablep: Emacs 29.1. (line 28) +* readablep: Emacs 29.1. (line 34) * region-bounds: Emacs 25.1. (line 28) * region-noncontiguous-p: Emacs 25.1. (line 34) -* replace-regexp-in-string: Emacs 28.1. (line 117) +* replace-regexp-in-string: Emacs 28.1. (line 108) * replace-string-in-region: Emacs 28.1. (line 102) -* require-with-check: Emacs 30.1. (line 88) +* require-with-check: Emacs 30.1. (line 108) * ring-resize: Emacs 27.1. (line 28) * save-mark-and-excursion: Emacs 25.1. (line 39) -* static-if: Emacs 30.1. (line 151) -* string-chop-newline: Emacs 28.1. (line 202) -* string-clean-whitespace: Emacs 28.1. (line 171) +* static-if: Emacs 30.1. (line 171) +* string-chop-newline: Emacs 28.1. (line 206) +* string-clean-whitespace: Emacs 28.1. (line 175) * string-distance: Emacs 27.1. (line 86) -* string-equal-ignore-case: Emacs 29.1. (line 246) -* string-fill: Emacs 28.1. (line 178) -* string-glyph-split: Emacs 29.1. (line 301) +* string-equal-ignore-case: Emacs 29.1. (line 252) +* string-fill: Emacs 28.1. (line 182) +* string-glyph-split: Emacs 29.1. (line 307) * string-greaterp: Emacs 25.1. (line 64) -* string-lines: Emacs 28.1. (line 186) -* string-pad: Emacs 28.1. (line 193) +* string-lines: Emacs 28.1. (line 190) +* string-pad: Emacs 28.1. (line 197) * string-replace: Emacs 28.1. (line 77) * string-search: Emacs 28.1. (line 34) -* string-split: Emacs 29.1. (line 252) -* subr-primitive-p: Emacs 28.1. (line 364) -* substitute-quotes: Emacs 29.1. (line 34) -* take: Emacs 29.1. (line 199) +* string-split: Emacs 29.1. (line 258) +* subr-primitive-p: Emacs 28.1. (line 368) +* substitute-quotes: Emacs 29.1. (line 40) +* take: Emacs 29.1. (line 205) * temporary-file-directory: Emacs 26.1. (line 137) * text-property-search-backward: Emacs 27.1. (line 332) * text-property-search-forward: Emacs 27.1. (line 260) * text-quoting-style: Emacs 28.1. (line 28) -* thing-at-mouse: Emacs 28.1. (line 285) +* thing-at-mouse: Emacs 28.1. (line 289) * thread-first: Emacs 25.1. (line 122) * thread-last: Emacs 25.1. (line 143) * time-equal-p: Emacs 27.1. (line 208) -* use-region-beginning: Emacs 29.1. (line 47) -* use-region-end: Emacs 29.1. (line 44) -* use-region-noncontiguous-p: Emacs 29.1. (line 41) -* value<: Emacs 30.1. (line 33) +* trusted-content-p: Emacs 30.1. (line 29) +* use-region-beginning: Emacs 29.1. (line 53) +* use-region-end: Emacs 29.1. (line 50) +* use-region-noncontiguous-p: Emacs 29.1. (line 47) +* value<: Emacs 30.1. (line 53) * when-let: Emacs 25.1. (line 114) * when-let*: Emacs 26.1. (line 153) -* while-let: Emacs 29.1. (line 606) -* window-configuration-equal-p: Emacs 29.1. (line 612) -* with-buffer-unmodified-if-unchanged: Emacs 29.1. (line 324) -* with-delayed-message: Emacs 29.1. (line 131) -* with-environment-variables: Emacs 28.1. (line 309) -* with-existing-directory: Emacs 28.1. (line 132) +* while-let: Emacs 29.1. (line 612) +* window-configuration-equal-p: Emacs 29.1. (line 618) +* with-buffer-unmodified-if-unchanged: Emacs 29.1. (line 330) +* with-delayed-message: Emacs 29.1. (line 137) +* with-environment-variables: Emacs 28.1. (line 313) +* with-existing-directory: Emacs 28.1. (line 136) * with-file-modes: Emacs 25.1. (line 71) -* with-memoization: Emacs 29.1. (line 68) +* with-memoization: Emacs 29.1. (line 74) * with-minibuffer-selected-window: Emacs 27.1. (line 38) -* with-restriction: Emacs 29.1. (line 73) +* with-restriction: Emacs 29.1. (line 79) * with-suppressed-warnings: Emacs 27.1. (line 65) -* with-window-non-dedicated: Emacs 28.1. (line 379) -* without-restriction: Emacs 29.1. (line 107) +* with-window-non-dedicated: Emacs 28.1. (line 383) +* without-restriction: Emacs 29.1. (line 113) * xor: Emacs 27.1. (line 142)  -File: doc23GpG6.info, Node: Variable Index, Prev: Function Index, Up: Top +File: docTwWwjU.info, Node: Variable Index, Prev: Function Index, Up: Top Appendix B Variable Index ************************* @@ -3228,34 +3261,36 @@ Appendix B Variable Index [index] * Menu: -* completion-lazy-hilit: Emacs 30.1. (line 113) -* completion-lazy-hilit-fn: Emacs 30.1. (line 137) +* completion-lazy-hilit: Emacs 30.1. (line 133) +* completion-lazy-hilit-fn: Emacs 30.1. (line 157) * exec-path: Emacs 27.1. (line 228) * gensym-counter: Emacs 26.1. (line 77) -* lisp-directory: Emacs 29.1. (line 17) +* lisp-directory: Emacs 29.1. (line 23) * mounted-file-systems: Emacs 26.1. (line 133) * regexp-unmatchable: Emacs 27.1. (line 152) -* set-transient-map-timeout: Emacs 29.1. (line 736) +* set-transient-map-timeout: Emacs 29.1. (line 742) * text-quoting-style: Emacs 25.1. (line 13) +* trusted-files: Emacs 30.1. (line 14) +* untrusted-content: Emacs 29.1. (line 17)  Tag Table: Node: Top829 -Node: Introduction2258 -Node: Overview2421 -Node: Usage2947 -Node: Limitations7326 -Node: Support12192 -Node: Emacs 25.112777 -Node: Emacs 26.121265 -Node: Emacs 27.138559 -Node: Emacs 28.158956 -Node: Emacs 29.178835 -Node: Emacs 30.1116233 -Node: Development129248 -Node: Function Index130982 -Node: Variable Index147436 +Node: Introduction2328 +Node: Overview2491 +Node: Usage3017 +Node: Limitations7396 +Node: Support12262 +Node: Emacs 25.112917 +Node: Emacs 26.121405 +Node: Emacs 27.138699 +Node: Emacs 28.159096 +Node: Emacs 29.179232 +Node: Emacs 30.1116911 +Node: Development131074 +Node: Function Index132808 +Node: Variable Index149335  End Tag Table diff --git a/elpa/compat-30.0.0.0/dir b/elpa/compat-30.0.1.0/dir similarity index 100% rename from elpa/compat-30.0.0.0/dir rename to elpa/compat-30.0.1.0/dir -- 2.47.3