aboutsummaryrefslogtreecommitdiffstats
path: root/elpa/compat-28.1.1.0/compat.info
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/compat-28.1.1.0/compat.info')
-rw-r--r--elpa/compat-28.1.1.0/compat.info1110
1 files changed, 1110 insertions, 0 deletions
diff --git a/elpa/compat-28.1.1.0/compat.info b/elpa/compat-28.1.1.0/compat.info
new file mode 100644
index 0000000..c645881
--- /dev/null
+++ b/elpa/compat-28.1.1.0/compat.info
@@ -0,0 +1,1110 @@
+This is compat.info, produced by makeinfo version 6.7 from compat.texi.
+
+Copyright © 2022 Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with the Front-Cover Texts
+ being “A GNU Manual,” and with the Back-Cover Texts as in (a)
+ below. A copy of the license is included in the section entitled
+ “GNU Free Documentation License.”
+
+ (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
+ modify this GNU manual.”
+
+INFO-DIR-SECTION Emacs
+START-INFO-DIR-ENTRY
+* Compat: (compat). Compatibility Library for Emacs Lisp.
+END-INFO-DIR-ENTRY
+
+
+File: compat.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
+28.1.1.0.
+
+ Copyright © 2022 Free Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.3 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with the Front-Cover Texts
+ being “A GNU Manual,” and with the Back-Cover Texts as in (a)
+ below. A copy of the license is included in the section entitled
+ “GNU Free Documentation License.”
+
+ (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
+ modify this GNU manual.”
+
+* Menu:
+
+* Introduction::
+* Support::
+* Development::
+* Function Index::
+* Variable Index::
+
+— The Detailed Node Listing —
+
+Introduction
+
+* Overview::
+* Usage::
+* Intentions::
+
+Usage
+
+* Additional libraries::
+
+Support
+
+* Emacs 24.4:: Compatibility support for Emacs 24.4
+* Emacs 24.5:: Compatibility support for Emacs 24.5
+* Emacs 25.1:: Compatibility support for Emacs 25.1
+* Emacs 26.1:: Compatibility support for Emacs 26.1
+* Emacs 27.1:: Compatibility support for Emacs 27.1
+* Emacs 28.1:: Compatibility support for Emacs 28.1
+
+
+
+File: compat.info, Node: Introduction, Next: Support, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+* Menu:
+
+* Overview::
+* Usage::
+* Intentions::
+
+
+File: compat.info, Node: Overview, Next: Usage, Up: Introduction
+
+1.1 Overview
+============
+
+The objective of Compat is to provide "forwards compatibility" library
+for Emacs Lisp. That is to say by using Compat, an Elisp package does
+not have to make the decision to either use new and useful functionality
+or support old versions of Emacs.
+
+ Version 24.3 is chosen as the oldest version, because this is the
+newest version on CentOS 7. It is intended to preserve compatibility
+for at least as the Centos 7 reaches EOL
+(https://wiki.centos.org/About/Product), 2024.
+
+ If you are developing a package with Compat in mind, consider loading
+‘compat-help‘ (on your system, not in a package) to get relevant notes
+inserted into the help buffers of functions that are implemented or
+advised in Compat.
+
+ Note that Compat provides a few prefixed function, ie. functions
+with a ‘compat-’ prefix. These are used to provide extended
+functionality for commands that are already defined (‘sort’, ‘assoc’,
+‘seq’, ...). It might be possible to transform these into advised
+functions later on, so that the modified functionality is accessible
+without a prefix. Feedback on this point is appreciated.
+
+
+File: compat.info, Node: Usage, Next: Intentions, Prev: Overview, Up: Introduction
+
+1.2 Usage
+=========
+
+The intended use-case for this library is for package developers to add
+as a dependency in the header:
+
+ ;; Package-Requires: ((emacs "24.3") (compat "28.1.1.0"))
+
+ and later on a
+
+ (require 'compat)
+
+ This will load all non-prefixed definitions (functions and macros
+with a leading ‘compat-‘). To load these, an additional
+
+ (require 'compat-XY) ; e.g. 26
+
+ will be necessary, to load compatibility code for Emacs version XY.
+
+ It is recommended to subscribe to the compat-announce
+(https://lists.sr.ht/~pkal/compat-announce) mailing list to be notified
+when new versions are released or relevant changes are made.
+
+* Menu:
+
+* Additional libraries::
+
+
+File: compat.info, Node: Additional libraries, Up: Usage
+
+1.2.1 Additional libraries
+--------------------------
+
+These libraries are packages with Compat, but are disabled by default.
+To use them you can use ‘M-x load-library’:
+
+compat-help
+ Add notes to ‘*Help*’ buffer, if a compatibility definition has
+ something to warn you about.
+compat-font-lock
+ Highlight functions that are implemented as compatibility
+ definitions.
+
+
+File: compat.info, Node: Intentions, Prev: Usage, Up: Introduction
+
+1.3 Intentions
+==============
+
+The library intends to provide support back until Emacs 24.3. The
+intended audience are package developers that are interested in using
+newer developments, without having to break compatibility.
+
+ Sadly, total backwards compatibility cannot be provided for technical
+reasons. These might include:
+
+ • An existing function or macro was extended by some new
+ functionality. To support these cases, the function or macro would
+ have to be advised. As this is usually regarded as invasive and is
+ shown to be a significant overhead, even when the new feature is
+ not used, this approach is not used.
+
+ As a compromise, prefixed functions and macros (starting with a
+ ‘compat-’ prefix) can be provided.
+
+ • New functionality was implemented in the core, and depends on
+ external libraries that cannot be reasonably duplicated in the
+ scope of a compatibility library.
+
+ • New functionality depends on an entire new, non-trivial library.
+ Sometimes these are provided via ELPA (xref, project, ...), but
+ other times it would be infeasible to duplicate an entire library
+ within Compat while also providing the necessary backwards
+ compatibility.
+
+ • It just wasn’t added, and there is no good reason (though good
+ excuses might exist). If you happen to find such a function, *note
+ reporting: Development. it would be much appreciated.
+
+ Always begin by assuming that this might be the case, unless proven
+ otherwise.
+
+
+File: compat.info, Node: Support, Next: Development, Prev: Introduction, Up: Top
+
+2 Support
+*********
+
+This section goes into the features that Compat manages and doesn’t
+manage to provide for each Emacs version.
+
+* Menu:
+
+* Emacs 24.4:: Compatibility support for Emacs 24.4
+* Emacs 24.5:: Compatibility support for Emacs 24.5
+* Emacs 25.1:: Compatibility support for Emacs 25.1
+* Emacs 26.1:: Compatibility support for Emacs 26.1
+* Emacs 27.1:: Compatibility support for Emacs 27.1
+* Emacs 28.1:: Compatibility support for Emacs 28.1
+
+
+File: compat.info, Node: Emacs 24.4, Next: Emacs 24.5, Up: Support
+
+2.1 Emacs 24.4
+==============
+
+The following functions and macros implemented in 24.4, and are provided
+by Compat by default:
+
+ -- Macro: with-eval-after-load
+ See *note (elisp) Hooks for Loading: (elisp)Hooks for Loading.
+
+ -- Function: special-form-p
+ See *note (elisp) Special Forms: (elisp)Special Forms.
+
+ -- Function: macrop
+ See *note (elisp) Simple Macro: (elisp)Simple Macro.
+
+ -- Function: string-suffix-p
+ See *note (elisp) Text Comparison: (elisp)Text Comparison.
+
+ -- Function: delete-consecutive-dups
+ Defined in ‘subr.el’.
+
+ -- Function: define-error
+ See *note (elisp) Error Symbols: (elisp)Error Symbols.
+
+ -- Function: bool-vector-exclusive-or
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-union
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-intersection
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-not
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-subsetp
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-count-consecutive
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: bool-vector-count-population
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ -- Function: completion-table-merge
+ See *note (elisp) Basic Completion: (elisp)Basic Completion.
+
+ -- Function: completion-table-with-cache
+ See *note (elisp) Programmed Completion: (elisp)Programmed
+ Completion.
+
+ -- Function: face-spec-set
+ See *note (elisp) Defining Faces: (elisp)Defining Faces.
+
+ These functions are prefixed with ‘compat’ prefix, and are only
+loaded when ‘compat-24’ is required:
+
+ -- Function: compat-=
+ -- Function: compat-<
+ -- Function: compat->
+ -- Function: compat-<=
+ -- Function: compat->=
+ See *note (elisp) Comparison of Numbers: (elisp)Comparison of
+ Numbers.
+
+ Allows for more than two arguments to be compared.
+
+ -- Function: compat-split-string
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ Takes optional argument TRIM.
+
+ Compat does not provide support for the following Lisp features
+implemented in 24.4:
+
+ • Allowing the second optional argument to ‘eval’ to specify a
+ lexical environment.
+ • The ‘define-alternatives’ macro.
+ • Support for the ‘defalias-fset-function’ symbol property.
+ • The ‘group-gid’ and ‘groupd-read-gid’ functions.
+ • The ‘pre-redisplay-function’ hook.
+ • Allowing for ‘with-demoted-errors’ to take a additional argument
+ ‘format’.
+ • The ‘face-spec-set’ function.
+ • The ‘add-face-text-property’ function.
+ • No ‘tty-setup-hook’ hook.
+ • The ‘get-pos-property’ function.
+ • The ‘define-advice’ macro.
+ • Support for generators.
+ • The ‘string-trim’, ‘string-trim-left’ and ‘string-trim-right’
+ functions. These are instead provided as prefixed function as part
+ of *note Emacs 26.1:: support.
+
+
+File: compat.info, Node: Emacs 24.5, Next: Emacs 25.1, Prev: Emacs 24.4, Up: Support
+
+2.2 Emacs 24.5
+==============
+
+No special support for 24.5 was deemed necessary.
+
+
+File: compat.info, Node: Emacs 25.1, Next: Emacs 26.1, Prev: Emacs 24.5, Up: Support
+
+2.3 Emacs 25.1
+==============
+
+The following functions and macros implemented in 25.1, and are provided
+by Compat by default:
+
+ -- Function: format-message
+ See *note (elisp) Formatting Strings: (elisp)Formatting Strings.
+
+ -- Function: directory-name-p
+ See *note (elisp) Directory Names: (elisp)Directory Names.
+
+ -- Function: string-greaterp
+ See *note (elisp) Text Comparison: (elisp)Text Comparison.
+
+ -- Macro: with-file-modes
+ See *note (elisp) Changing Files: (elisp)Changing Files.
+
+ -- Function: alist-get
+ See *note (elisp) Association Lists: (elisp)Association Lists.
+
+ -- Macro: if-let
+ Defined in ‘subr-x.el’.
+
+ -- Macro: when-let
+ Defined in ‘subr-x.el’.
+
+ -- Macro: thread-first
+ Defined in ‘subr-x.el’.
+
+ -- Macro: thread-last
+ Defined in ‘subr-x.el’.
+
+ -- Function: macroexpand-1
+ See *note (elisp) Expansion: (elisp)Expansion.
+
+ -- Function: directory-files-recursively
+ See *note (elisp) Contents of Directories: (elisp)Contents of
+ Directories.
+
+ -- Function: bool-vector
+ See *note (elisp) Bool-Vectors: (elisp)Bool-Vectors.
+
+ These functions are prefixed with ‘compat’ prefix, and are only
+loaded when ‘compat-25’ is required:
+
+ -- Function: compat-sort
+ See *note (elisp) Sequence Functions: (elisp)Sequence Functions.
+
+ Adds support for vectors to be sorted, next to just lists.
+
+ Compat does not provide support for the following Lisp features
+implemented in 25.1:
+
+ • New ‘pcase’ patterns.
+ • The hook ‘prefix-command-echo-keystrokes-functions’ and
+ ‘prefix-command-preserve-state-hook’.
+ • The hook ‘pre-redisplay-functions’.
+ • The function ‘make-process’.
+ • Support for the variable ‘inhibit-message’.
+ • The ‘define-inline’ functionality.
+ • The functions ‘string-collate-lessp’ and ‘string-collate-equalp’.
+ • Support for ‘alist-get’ as a generalised variable.
+ • The function ‘funcall-interactivly’.
+ • The function ‘buffer-substring-with-bidi-context’.
+ • The function ‘font-info’.
+ • The function ‘default-font-width’.
+ • The function ‘window-font-height’ and ‘window-font-width’.
+ • The function ‘window-max-chars-per-line’.
+ • The function ‘set-binary-mode’.
+ • The functions ‘bufferpos-to-filepos’ and ‘filepos-to-bufferpos’.
+
+ Note that the changes in Emacs 25.2 and 25.3 are also included here,
+for the sake of simplicity.
+
+
+File: compat.info, Node: Emacs 26.1, Next: Emacs 27.1, Prev: Emacs 25.1, Up: Support
+
+2.4 Emacs 26.1
+==============
+
+The following functions and macros implemented in 26.1, and are provided
+by Compat by default:
+
+ -- Function: func-arity
+ See *note (elisp) What Is a Function: (elisp)What Is a Function.
+
+ -- Function: mapcan
+ See *note (elisp) Mapping Functions: (elisp)Mapping Functions.
+
+ -- Function: cXXXr
+ -- Function: cXXXXr
+ See *note (elisp) List Elements: (elisp)List Elements.
+
+ -- Variable: gensym-counter
+ See ‘gensym’.
+
+ -- Function: gensym
+ See *note (elisp) Creating Symbols: (elisp)Creating Symbols.
+
+ -- Function: make-nearby-temp-file
+ See *note (elisp) Unique File Names: (elisp)Unique File Names.
+
+ -- Variable: mounted-file-systems
+ Defined in ‘files.el’.
+
+ -- Function: temporary-file-directory
+ See *note (elisp) Unique File Names: (elisp)Unique File Names.
+
+ -- Macro: if-let*
+ Defined in ‘subr-x.el’.
+
+ -- Macro: when-let*
+ Defined in ‘subr-x.el’.
+
+ -- Macro: and-let*
+ Defined in ‘subr-x.el’.
+
+ **Please Note:** The implementation provided by Compat does not
+ include a bug that was observed with Emacs 26 (see
+ <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31840>).
+
+ -- Function: file-local-name
+ See *note (elisp) Magic File Names: (elisp)Magic File Names.
+
+ -- Function: file-name-quoted-p
+ See *note (elisp) File Name Expansion: (elisp)File Name Expansion.
+
+ -- Function: file-name-quote
+ See *note (elisp) File Name Expansion: (elisp)File Name Expansion.
+
+ -- Function: image-property
+ Defined in ‘image.el’.
+
+ This function can also be used as a generalised variable. To use
+ this you need to explicitly require ‘compat-26’.
+
+ -- Function: file-attribute-type
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-link-number
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-user-id
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-group-id
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-access-time
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-modification-time
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-status-change-time
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-size
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-modes
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-inode-number
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-device-number
+ See *note (elisp) File Attributes: (elisp)File Attributes.
+
+ -- Function: file-attribute-collect
+ Defined in ‘files.el’.
+
+ These functions are prefixed with ‘compat’ prefix, and are only
+loaded when ‘compat-26’ is required:
+
+ -- Function: compat-assoc
+ See *note (elisp) Association Lists: (elisp)Association Lists.
+
+ Handle the optional argument TESTFN.
+
+ -- Function: compat-line-number-at-pos
+ See *note (elisp) Text Lines: (elisp)Text Lines.
+
+ Handle the optional argument ABSOLUTE.
+
+ -- Function: compat-alist-get
+ See *note (elisp) Association Lists: (elisp)Association Lists.
+
+ Handle the optional argument TESTFN. Can also be used as a
+ generalised variable.
+
+ -- Function: compat-string-trim-left
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ Handles the optional argument REGEXP.
+
+ -- Function: compat-string-trim-right
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ Handles the optional argument REGEXP.
+
+ -- Function: compat-string-trim
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ Handles the optional arguments TRIM-LEFT and TRIM-RIGHT.
+
+ Compat does not provide support for the following Lisp features
+implemented in 26.1:
+
+ • The function ‘secure-hash-algorithms’.
+ • The function ‘gnutls-avalaible-p’.
+ • Support for records and record functions.
+ • The function ‘mapbacktrace’.
+ • The function ‘file-name-case-insensitive-p’.
+ • The file-attributes constructors.
+ • The function ‘read-multiple-choice’.
+ • The additional elements of ‘parse-partial-sexp’.
+ • The function ‘add-variable-watcher’.
+ • The function ‘undo-amalgamate-change-group’.
+ • The function ‘char-from-name’
+ • Signalling errors when ‘length’ or ‘member’ deal with list cycles.
+ • The function ‘frame-list-z-order’.
+ • The function ‘frame-restack’.
+ • Support for side windows and atomic windows.
+ • All changes related to ‘display-buffer’.
+ • The function ‘window-swap-states’.
+
+ Note that the changes in Emacs 26.2 and 26.3 are also included here,
+for the sake of simplicity.
+
+
+File: compat.info, Node: Emacs 27.1, Next: Emacs 28.1, Prev: Emacs 26.1, Up: Support
+
+2.5 Emacs 27.1
+==============
+
+The following functions and macros implemented in 27.1, and are provided
+by Compat by default:
+
+ -- Function: proper-list-p
+ See *note (elisp) List-related Predicates: (elisp)List-related
+ Predicates.
+
+ -- Function: string-distance
+ See *note (elisp) Text Comparison: (elisp)Text Comparison.
+
+ -- Function: json-serialize
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ -- Function: json-insert
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ -- Function: json-parse-string
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ -- Function: json-parse-buffer
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ -- Macro: ignore-error
+ See *note (elisp) Handling Errors: (elisp)Handling Errors.
+
+ -- Macro: dolist-with-progress-reporter
+ See *note (elisp) Progress: (elisp)Progress.
+
+ -- Function: flatten-tree
+ See *note (elisp) Building Lists: (elisp)Building Lists.
+
+ -- Function: xor
+ See *note (elisp) Combining Conditions: (elisp)Combining
+ Conditions.
+
+ -- Variable: regexp-unmatchable
+ Defined in ‘subr.el’.
+
+ -- Function: decoded-time-second
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-minute
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-hour
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-day
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-month
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-year
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-weekday
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-dst
+ Defined in ‘simple.el’.
+
+ -- Function: decoded-time-zone
+ Defined in ‘simple.el’.
+
+ -- Function: package-get-version
+ Defined in ‘package.el’.
+
+ -- Function: time-equal-p
+ See *note (elisp) Time Calculations: (elisp)Time Calculations.
+
+ -- Function: date-days-in-month
+ See *note (elisp) Time Calculations: (elisp)Time Calculations.
+
+ -- Function: exec-path
+ See *note (elisp) Subprocess Creation: (elisp)Subprocess Creation.
+
+ This function requires the ‘time-date’ feature to be loaded.
+
+ These functions are prefixed with ‘compat’ prefix, and are only
+loaded when ‘compat-27’ is required:
+
+ -- Function: compat-recenter
+ See *note (elisp) Textual Scrolling: (elisp)Textual Scrolling.
+
+ Adds the optional argument REDISPLAY.
+
+ -- Function: compat-lookup-key
+ See *note (elisp) Low-Level Key Binding: (elisp)Low-Level Key
+ Binding.
+
+ Allows KEYMAP to be a list of keymaps.
+
+ -- Macro: compat-setq-local
+ See *note (elisp) Creating Buffer-Local: (elisp)Creating
+ Buffer-Local.
+
+ Allow for more than one variable to be set.
+
+ -- Function: compat-regexp-opt
+ See *note (elisp) Regexp Functions: (elisp)Regexp Functions.
+
+ Handle an empty list of strings.
+
+ -- Function: compat-file-size-human-readable
+ Defined in ‘files.el’.
+
+ Handle the optional third (SPACE) and forth (UNIT) arguments.
+
+ -- Function: compat-assoc-delete-all
+ See *note (elisp) Association Lists: (elisp)Association Lists.
+
+ Handle the optional third (TESTFN) argument.
+
+ -- Function: compat-executable-find
+ *note (elisp) Locating Files: (elisp)Locating Files.
+
+ Handle the optional second (REMOTE) argument.
+
+ -- Function: compat-dired-get-marked-files
+ Defined in ‘dired.el’
+
+ Handles the optional fifth (ERROR) argument.
+
+ Compat does not provide support for the following Lisp features
+implemented in 27.1:
+
+ • Bigint support.
+ • The function ‘time-convert’.
+ • All ‘iso8601-*’ functions.
+ • The macro ‘benchmark-progn’.
+ • The function ‘read-char-from-minibuffer’.
+ • The minor mode ‘reveal-mode’.
+ • The macro ‘with-suppressed-warnings’.
+ • Support for ‘condition-case’ to handle t.
+ • The functions ‘major-mode-suspend’ and ‘major-mode-restore’.
+ • The function ‘provided-mode-derived-p’.
+ • The function ‘file-system-info’.
+ • The more consistent treatment of NaN values.
+ • The function ‘ring-resize’.
+ • The function ‘group-name’.
+ • Additional ‘format-spec’ modifiers.
+ • Support for additional body forms for
+ ‘define-globalized-minor-mode’.
+ • The macro ‘with-connection-local-variables’ and related
+ functionality.
+
+ Note that the changes in Emacs 27.2 are also included here, for the
+sake of simplicity.
+
+
+File: compat.info, Node: Emacs 28.1, Prev: Emacs 27.1, Up: Support
+
+2.6 Emacs 28.1
+==============
+
+The following functions and macros implemented in 28.1, and are provided
+by Compat by default:
+
+ -- Function: string-search
+ See *note (elisp) Text Comparison: (elisp)Text Comparison.
+
+ -- Function: length=
+ See *note (elisp) Sequence Functions: (elisp)Sequence Functions.
+
+ -- Function: length<
+ See *note (elisp) Sequence Functions: (elisp)Sequence Functions.
+
+ -- Function: length>
+ See *note (elisp) Sequence Functions: (elisp)Sequence Functions.
+
+ -- Function: file-name-concat
+ See *note (elisp) Directory Names: (elisp)Directory Names.
+
+ -- Function: garbage-collect-maybe
+ Defined in ‘alloc.c’.
+
+ -- Function: string-replace
+ See *note (elisp) Search and Replace: (elisp)Search and Replace.
+
+ -- Function: always
+ *note (elisp) Calling Functions: (elisp)Calling Functions.
+
+ -- Function: insert-into-buffer
+ See *note (elisp) Insertion: (elisp)Insertion.
+
+ -- Function: replace-regexp-in-region
+ See *note (elisp) Search and Replace: (elisp)Search and Replace.
+
+ -- Function: replace-string-in-region
+ See *note (elisp) Search and Replace: (elisp)Search and Replace.
+
+ -- Function: buffer-local-boundp
+ See *note (elisp) Creating Buffer-Local: (elisp)Creating
+ Buffer-Local.
+
+ -- Function: with-existing-directory
+ See *note (elisp) Testing Accessibility: (elisp)Testing
+ Accessibility.
+
+ -- Macro: dlet
+ See *note (elisp) Local Variables: (elisp)Local Variables.
+
+ -- Function: ensure-list
+ See *note (elisp) Building Lists: (elisp)Building Lists.
+
+ -- Function: string-clean-whitespace
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ -- Function: string-fill
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ -- Function: string-lines
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ -- Function: string-pad
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ -- Function: string-chop-newline
+ See *note (elisp) Creating Strings: (elisp)Creating Strings.
+
+ -- Macro: named-let
+ See *note (elisp) Local Variables: (elisp)Local Variables.
+
+ -- Function: file-name-with-extension
+ See *note (elisp) File Name Components: (elisp)File Name
+ Components.
+
+ -- Function: directory-empty-p
+ See *note (elisp) Contents of Directories: (elisp)Contents of
+ Directories.
+
+ -- Function: format-prompt
+ See *note (elisp) Text from Minibuffer: (elisp)Text from
+ Minibuffer.
+
+ -- Function: thing-at-mouse
+ Defined in ‘thingatpt.el’.
+
+ -- Function: macroexp-file-name
+ Defined in ‘macroexp’.
+
+ -- Macro: with-environment-variables
+ See *note (elisp) System Environment: (elisp)System Environment.
+
+ -- Function: button-buttonize
+ Defined in ‘button.el’.
+
+ -- Function: make-directory-autoloads
+ See *note (elisp) Autoload: (elisp)Autoload.
+
+ -- Function: color-values-from-color-spec
+ Defined in ‘xfaces.c’.
+
+ -- Function: file-modes-number-to-symbolic
+ See *note (elisp) Changing Files: (elisp)Changing Files.
+
+ -- Function: file-backup-file-names
+ See *note (elisp) Backup Names: (elisp)Backup Names.
+
+ -- Function: make-lock-file-name
+ Defined in ‘files.el’.
+
+ -- Function: null-device
+ Defined in ‘files.el’.
+
+ These functions are prefixed with ‘compat’ prefix, and are only
+loaded when ‘compat-28’ is required:
+
+ -- Function: compat-unlock-buffer
+ See *note (elisp) File Locks: (elisp)File Locks.
+
+ Handle ‘file-error’ conditions.
+
+ -- Function: compat-string-width
+ See *note (elisp) Size of Displayed Text: (elisp)Size of Displayed
+ Text.
+
+ Handle optional arguments FROM and TO.
+
+ -- Function: compat-json-serialize
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ Handle primitive, top-level JSON values.
+
+ -- Function: compat-json-insert
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ Handle primitive, top-level JSON values.
+
+ -- Function: compat-json-parse-string
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ Handle primitive, top-level JSON values.
+
+ -- Function: compat-json-parse-buffer
+ See *note (elisp) Parsing JSON: (elisp)Parsing JSON.
+
+ Handle primitive, top-level JSON values.
+
+ -- Function: compat-count-windows
+ Defined in ‘window.el’.
+
+ Handle optional argument ALL-FRAMES.
+
+ Compat does not provide support for the following Lisp features
+implemented in 28.1:
+
+ • Support for ‘interactive’ or ‘declare’ to list applicable modes.
+ • Support for ‘:interactive’ argument to ‘define-minor-mode’ and
+ ‘define-derived-mode’.
+ • Support for ‘:predicate’ argument to
+ ‘define-globalized-minor-mode’.
+ • "Success handler" for ‘condition-case’.
+ • The function ‘benchmark-call’.
+ • Support for the ‘natnum’ defcustom type.
+ • The function ‘macroexp-compiling-p’.
+ • The function ‘macroexp-warn-and-return’.
+ • Additional Edebug keywords.
+ • Shorthand support.
+ • The function ‘custom-add-choice’.
+ • The function ‘decoded-time-period’.
+ • The function ‘dom-print’.
+ • The function ‘dom-remove-attribute’.
+ • The function ‘dns-query-asynchronous’.
+ • The function ‘get-locale-names’.
+ • The function ‘json-avaliable-p’.
+ • The function ‘mail-header-parse-addresses-lax’.
+ • The function ‘mail-header-parse-address-lax’.
+ • The function ‘make-separator-line’.
+ • The function ‘num-processors’.
+ • The function ‘object-intervals’.
+ • The function ‘process-lines-ignore-status’.
+ • The function ‘require-theme’.
+ • The function ‘syntax-class-to-char’.
+ • The function ‘null-device’ and ‘path-separator’.
+
+
+File: compat.info, Node: Development, Next: Function Index, Prev: Support, Up: Top
+
+3 Development
+*************
+
+Compat is developed on SourceHut (https://sr.ht/~pkal/compat). A
+restricted GitHub mirror (https://github.com/phikal/compat.el) is also
+maintained.
+
+ Patches and comments can be sent to the development mailing list
+(https://lists.sr.ht/~pkal/compat-devel) (~pkal/compat-devel@lists.sr.ht
+<~pkal/compat-devel@lists.sr.ht>). Bug reports are best sent to the
+issue tracker (https://todo.sr.ht/~pkal/compat) (~pkal/compat@todo.sr.ht
+<~pkal/compat@todo.sr.ht>). The GitHub mirror can also be used to
+submit patches. These may include issues in the compatibility code,
+missing definitions or performance issues.
+
+ Please note that as a GNU ELPA package, Compat requires contributors
+to have signed the FSF copyright assignment
+(https://www.gnu.org/software/emacs/manual/html_node/emacs/Copyright-Assignment.html),
+before any non-trivial contribution (roughly 15 lines of code) can be
+applied.
+
+
+File: compat.info, Node: Function Index, Next: Variable Index, Prev: Development, Up: Top
+
+Appendix A Function Index
+*************************
+
+
+* Menu:
+
+* alist-get: Emacs 25.1. (line 21)
+* always: Emacs 28.1. (line 30)
+* and-let*: Emacs 26.1. (line 40)
+* bool-vector: Emacs 25.1. (line 43)
+* bool-vector-count-consecutive: Emacs 24.4. (line 42)
+* bool-vector-count-population: Emacs 24.4. (line 45)
+* bool-vector-exclusive-or: Emacs 24.4. (line 27)
+* bool-vector-intersection: Emacs 24.4. (line 33)
+* bool-vector-not: Emacs 24.4. (line 36)
+* bool-vector-subsetp: Emacs 24.4. (line 39)
+* bool-vector-union: Emacs 24.4. (line 30)
+* buffer-local-boundp: Emacs 28.1. (line 42)
+* button-buttonize: Emacs 28.1. (line 95)
+* color-values-from-color-spec: Emacs 28.1. (line 101)
+* compat-<: Emacs 24.4. (line 62)
+* compat-<=: Emacs 24.4. (line 64)
+* compat-=: Emacs 24.4. (line 61)
+* compat->: Emacs 24.4. (line 63)
+* compat->=: Emacs 24.4. (line 65)
+* compat-alist-get: Emacs 26.1. (line 111)
+* compat-assoc: Emacs 26.1. (line 101)
+* compat-assoc-delete-all: Emacs 27.1. (line 115)
+* compat-count-windows: Emacs 28.1. (line 150)
+* compat-dired-get-marked-files: Emacs 27.1. (line 125)
+* compat-executable-find: Emacs 27.1. (line 120)
+* compat-file-size-human-readable: Emacs 27.1. (line 110)
+* compat-json-insert: Emacs 28.1. (line 135)
+* compat-json-parse-buffer: Emacs 28.1. (line 145)
+* compat-json-parse-string: Emacs 28.1. (line 140)
+* compat-json-serialize: Emacs 28.1. (line 130)
+* compat-line-number-at-pos: Emacs 26.1. (line 106)
+* compat-lookup-key: Emacs 27.1. (line 93)
+* compat-recenter: Emacs 27.1. (line 88)
+* compat-regexp-opt: Emacs 27.1. (line 105)
+* compat-setq-local: Emacs 27.1. (line 99)
+* compat-sort: Emacs 25.1. (line 49)
+* compat-split-string: Emacs 24.4. (line 71)
+* compat-string-trim: Emacs 26.1. (line 127)
+* compat-string-trim-left: Emacs 26.1. (line 117)
+* compat-string-trim-right: Emacs 26.1. (line 122)
+* compat-string-width: Emacs 28.1. (line 124)
+* compat-unlock-buffer: Emacs 28.1. (line 119)
+* completion-table-merge: Emacs 24.4. (line 48)
+* completion-table-with-cache: Emacs 24.4. (line 51)
+* cXXXr: Emacs 26.1. (line 15)
+* cXXXXr: Emacs 26.1. (line 16)
+* date-days-in-month: Emacs 27.1. (line 77)
+* decoded-time-day: Emacs 27.1. (line 53)
+* decoded-time-dst: Emacs 27.1. (line 65)
+* decoded-time-hour: Emacs 27.1. (line 50)
+* decoded-time-minute: Emacs 27.1. (line 47)
+* decoded-time-month: Emacs 27.1. (line 56)
+* decoded-time-second: Emacs 27.1. (line 44)
+* decoded-time-weekday: Emacs 27.1. (line 62)
+* decoded-time-year: Emacs 27.1. (line 59)
+* decoded-time-zone: Emacs 27.1. (line 68)
+* define-error: Emacs 24.4. (line 24)
+* delete-consecutive-dups: Emacs 24.4. (line 21)
+* directory-empty-p: Emacs 28.1. (line 78)
+* directory-files-recursively: Emacs 25.1. (line 39)
+* directory-name-p: Emacs 25.1. (line 12)
+* dlet: Emacs 28.1. (line 50)
+* dolist-with-progress-reporter: Emacs 27.1. (line 31)
+* ensure-list: Emacs 28.1. (line 53)
+* exec-path: Emacs 27.1. (line 80)
+* face-spec-set: Emacs 24.4. (line 55)
+* file-attribute-access-time: Emacs 26.1. (line 74)
+* file-attribute-collect: Emacs 26.1. (line 95)
+* file-attribute-device-number: Emacs 26.1. (line 92)
+* file-attribute-group-id: Emacs 26.1. (line 71)
+* file-attribute-inode-number: Emacs 26.1. (line 89)
+* file-attribute-link-number: Emacs 26.1. (line 65)
+* file-attribute-modes: Emacs 26.1. (line 86)
+* file-attribute-modification-time: Emacs 26.1. (line 77)
+* file-attribute-size: Emacs 26.1. (line 83)
+* file-attribute-status-change-time: Emacs 26.1. (line 80)
+* file-attribute-type: Emacs 26.1. (line 62)
+* file-attribute-user-id: Emacs 26.1. (line 68)
+* file-backup-file-names: Emacs 28.1. (line 107)
+* file-local-name: Emacs 26.1. (line 47)
+* file-modes-number-to-symbolic: Emacs 28.1. (line 104)
+* file-name-concat: Emacs 28.1. (line 21)
+* file-name-quote: Emacs 26.1. (line 53)
+* file-name-quoted-p: Emacs 26.1. (line 50)
+* file-name-with-extension: Emacs 28.1. (line 74)
+* flatten-tree: Emacs 27.1. (line 34)
+* format-message: Emacs 25.1. (line 9)
+* format-prompt: Emacs 28.1. (line 82)
+* func-arity: Emacs 26.1. (line 9)
+* garbage-collect-maybe: Emacs 28.1. (line 24)
+* gensym: Emacs 26.1. (line 22)
+* if-let: Emacs 25.1. (line 24)
+* if-let*: Emacs 26.1. (line 34)
+* ignore-error: Emacs 27.1. (line 28)
+* image-property: Emacs 26.1. (line 56)
+* insert-into-buffer: Emacs 28.1. (line 33)
+* json-insert: Emacs 27.1. (line 19)
+* json-parse-buffer: Emacs 27.1. (line 25)
+* json-parse-string: Emacs 27.1. (line 22)
+* json-serialize: Emacs 27.1. (line 16)
+* length<: Emacs 28.1. (line 15)
+* length=: Emacs 28.1. (line 12)
+* length>: Emacs 28.1. (line 18)
+* macroexp-file-name: Emacs 28.1. (line 89)
+* macroexpand-1: Emacs 25.1. (line 36)
+* macrop: Emacs 24.4. (line 15)
+* make-directory-autoloads: Emacs 28.1. (line 98)
+* make-lock-file-name: Emacs 28.1. (line 110)
+* make-nearby-temp-file: Emacs 26.1. (line 25)
+* mapcan: Emacs 26.1. (line 12)
+* named-let: Emacs 28.1. (line 71)
+* null-device: Emacs 28.1. (line 113)
+* package-get-version: Emacs 27.1. (line 71)
+* proper-list-p: Emacs 27.1. (line 9)
+* replace-regexp-in-region: Emacs 28.1. (line 36)
+* replace-string-in-region: Emacs 28.1. (line 39)
+* special-form-p: Emacs 24.4. (line 12)
+* string-chop-newline: Emacs 28.1. (line 68)
+* string-clean-whitespace: Emacs 28.1. (line 56)
+* string-distance: Emacs 27.1. (line 13)
+* string-fill: Emacs 28.1. (line 59)
+* string-greaterp: Emacs 25.1. (line 15)
+* string-lines: Emacs 28.1. (line 62)
+* string-pad: Emacs 28.1. (line 65)
+* string-replace: Emacs 28.1. (line 27)
+* string-search: Emacs 28.1. (line 9)
+* string-suffix-p: Emacs 24.4. (line 18)
+* temporary-file-directory: Emacs 26.1. (line 31)
+* thing-at-mouse: Emacs 28.1. (line 86)
+* thread-first: Emacs 25.1. (line 30)
+* thread-last: Emacs 25.1. (line 33)
+* time-equal-p: Emacs 27.1. (line 74)
+* when-let: Emacs 25.1. (line 27)
+* when-let*: Emacs 26.1. (line 37)
+* with-environment-variables: Emacs 28.1. (line 92)
+* with-eval-after-load: Emacs 24.4. (line 9)
+* with-existing-directory: Emacs 28.1. (line 46)
+* with-file-modes: Emacs 25.1. (line 18)
+* xor: Emacs 27.1. (line 37)
+
+
+File: compat.info, Node: Variable Index, Prev: Function Index, Up: Top
+
+Appendix B Variable Index
+*************************
+
+
+* Menu:
+
+* gensym-counter: Emacs 26.1. (line 19)
+* mounted-file-systems: Emacs 26.1. (line 28)
+* regexp-unmatchable: Emacs 27.1. (line 41)
+
+
+
+Tag Table:
+Node: Top821
+Node: Introduction2344
+Node: Overview2503
+Node: Usage3726
+Node: Additional libraries4514
+Node: Intentions4969
+Node: Support6579
+Node: Emacs 24.47231
+Node: Emacs 24.510391
+Node: Emacs 25.110565
+Node: Emacs 26.113160
+Node: Emacs 27.118253
+Node: Emacs 28.122838
+Node: Development28727
+Node: Function Index29742
+Node: Variable Index40061
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End: