diff options
Diffstat (limited to 'elpa/compat-28.1.1.0/compat.info')
-rw-r--r-- | elpa/compat-28.1.1.0/compat.info | 1110 |
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: |