1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 06:20:43 -08:00
Commit graph

2148 commits

Author SHA1 Message Date
Sean Whitton
d32ab06145 Move documentation of this-command buffer display condition entry
* doc/lispref/buffers.texi (Buffer List): Document this-command
buffer display condition entry.
* doc/lispref/windows.texi (Choosing Window): Give an example of
using this-command buffer display condition entry in
display-buffer-alist.
(Buffer Display Action Alists):
* lisp/window.el (display-buffer): Delete documentation of
this-command buffer display condition entry from these locations
because it is not a buffer display action alist entry.
* lisp/subr.el (buffer-match-p): Update cross reference.
2025-05-02 12:49:35 +08:00
Sean Whitton
343f0c44f3 New this-command buffer display action alist entry
* lisp/subr.el (buffer-match-p): New this-command cons cell
condition to implement new this-command buffer display action
alist entry (bug#78082).
* lisp/window.el (display-buffer):
* doc/lispref/windows.texi (Buffer Display Action Alists):
* etc/NEWS: Document the new buffer display action alist entry.
2025-05-01 20:56:36 +08:00
Stefan Monnier
23583bb3a1 (text-clone--maintain): Don't modify the buf from the after-change hook
* lisp/subr.el (text-clone--pending-overlays): New var.
(text-clone--maintain-overlays): New function, extracted from
`text-clone--maintain`.
(text-clone--maintain): Use it.
2025-04-20 23:21:30 -04:00
Stefan Monnier
f3e0bdf1b9 lisp/subr.el (setq-local): Make local after evaluating the new value
In case the evaluation needs to look at the variable's value,
make sure we make it buffer-local afterwards.
2025-04-12 23:00:08 -04:00
Stefan Monnier
b99893af1e (replace-buffer-contents): Mark as obsolete, again.
* lisp/subr.el (replace-buffer-contents): Mark as obsolete, again.
* src/editfns.c (Freplace_region_contents): Add interactive form.
2025-04-12 22:58:22 -04:00
Juri Linkov
4b9d571a55 * lisp/subr.el (defvar-local): Change 'indent' to 'defun' (bug#77256). 2025-04-09 20:24:42 +03:00
Stefan Kangas
a4ec9ca129 function-put: signal error with non-symbol
* lisp/subr.el (function-get): Signal an error if given a non-symbol
for consistency with 'get'.
* test/lisp/subr-tests.el (subr-butlast): Test for the above.
2025-04-01 21:25:33 +02:00
Lin Jian
bdee248172 Fix pkg description file name when pkg name has numbers (Bug#77143)
* lisp/subr.el (package--description-file): Match end of string and add
`snapshot` among the possible version names.

Copyright-paperwork-exempt: yes
2025-03-31 14:56:26 -04:00
Po Lu
468778f390 Don't obsolete the _command_ replace-buffer-contents
* lisp/subr.el (replace-buffer-contents): Don't obsolete
function.  Its purpose is to serve as a command and such
obsoletion was unnecessary to begin with.
2025-03-30 10:24:45 +08:00
Stefan Monnier
1d07a6d7e3 Use replace-region-contents to replace insert+delete
* lisp/minibuffer.el (completion--replace):
* lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring):
* lisp/subr.el (replace-string-in-region):
Use `replace-region-contents` instead of insert+delete.

* lisp/help-fns.el (help-fns--signature):
Use `replace-region-contents` instead of `cl--set-buffer-substring`.

* lisp/language/japan-util.el (japanese-replace-region):
Rewrite using `replace-region-contents` and mark obsolete.
(japanese-katakana-region, japanese-hankaku-region):
Use `replace-region-contents` instead.

* lisp/progmodes/flymake-proc.el (flymake-proc--replace-region):
Rewrite using `replace-region-contents` and mark obsolete.
(flymake-proc--check-patch-master-file-buffer):
Use `replace-region-contents` instead.
2025-03-29 17:49:49 -04:00
Stefan Monnier
7c82cc8b97 (replace-region-contents): Improve and promote (bug#76313)
Swap the role of `replace-region-contents` and `replace-buffer-contents`,
so `replace-region-contents` is the main function, implemented in C,
and `replace-buffer-contents` is a mere wrapper (marked as obsolete).
Also remove the need to rely on narrowing and on describing the
new text as a function.
Finally, allow MAX-SECS==0 to require a cheap replacement, and
add an INHERIT argument.

* src/editfns.c: Include `coding.h`.
(Freplace_region_contents): Rename from `Freplace_buffer_contents`.
Change calling convention to that of `replace-region-contents`.
Add more options for the SOURCE argument.  Add INHERIT argument.
Skip the costly algorithm if MAX-SECS is 0.
* src/insdel.c (replace_range): Allow NEW to be a buffer.

* lisp/subr.el (replace-buffer-contents): New implementation.
* lisp/emacs-lisp/subr-x.el (replace-region-contents): Delete.

* doc/lispref/text.texi (Replacing): Document new API for
`replace-region-contents`.  Remove documentation of
`replace-buffer-contents`.

* test/src/editfns-tests.el (replace-buffer-contents-1)
(replace-buffer-contents-2, replace-buffer-contents-bug31837):
Use `replace-region-contents`.
(editfns--replace-region): Delete.
(editfns-tests--replace-region): Use `replace-region-contents`.
Adds tests for new types of SOURCE args.
2025-03-29 17:49:05 -04:00
Stefan Kangas
dd0dd87e3a New function 'hash-table-contains-p'
This function tests whether a given key is present in a hash table.
Emacs Lisp has long lacked a standard way to do this, leading users to
write one of:

    (not (eq (gethash key table 'missing) 'missing))
or
    (gethash key table)

This idiom is error-prone (when 'missing' or 'nil' are valid values),
and it obscures intent.  The new function avoids such pitfalls,
improves readability, and makes the intent explicit:

    (hash-table-contains-p key table)

The name 'hash-table-contains-p' exists in other Lisp dialects (e.g.,
SRFI-125), and follows the precedent of 'seq-contains-p'.  Other
alternatives considered include `hash-table-has-key-p` and
`hash-table-key-exists-p`, but none were clearly better.

This was previously discussed in 2018, and all comments were positive,
but the proposed patch (implementing it in C) was never pushed:
https://lists.gnu.org/r/emacs-devel/2018-02/msg00424.html

* lisp/subr.el (hash-table-contains-p): New function.
* lisp/emacs-lisp/shortdoc.el (hash-table):
* doc/lispref/hash.texi (Other Hash): Document the new function.
* test/lisp/subr-tests.el (hash-table-contains-p): New test.
2025-03-29 14:59:36 +01:00
Stefan Monnier
e343055f63 (buffer-local-set-state): Optimize away unused data
* lisp/subr.el (buffer-local-set-state--get): Simplify by making it
take only the vars rather than the pairs.
(buffer-local-set-state): Adjust accordingly so we don't needlessly keep
part of the source code in the compiled code.
2025-03-24 17:08:26 -04:00
Sean Whitton
764f23ef43 Merge from origin/emacs-30
1364bbc6a5 ; * admin/notes/spelling: Grammar fix
dc80a8f050 ; Add index entry "code completion" to user manual
0d9b14ed05 ; * doc/emacs/programs.texi (Program Modes): Add info abo...
f224475f57 ; admin/notes/spelling: Notes on abbreviation of "Emacs L...
86c354dd0d Fix OSX build without pdumper
2d12754ee2 ; Add indexing for Eglot in user manual
a30b9b640b ; Change some instances of cl to cl-lib in docs
b681d62436 ; Improve introduction to use-package manual
f1acefd86f ; Add cross-references to push and pop docstrings
2025-03-22 21:09:37 +08:00
Stefan Kangas
f1acefd86f ; Add cross-references to push and pop docstrings
* lisp/subr.el (push, pop): Add cross-references to Info manual.
2025-03-19 21:29:16 +01:00
Yuan Fu
f2f1fb7fe0
Merge from origin/emacs-30
defc55bb6f Fix treesit-parser-create behavior regarding indirect buf...
20ac26e675 ; Fix with-delayed-message docstring metavars.
04034cd9ce Fix 'dired-movement-style' in Dired when subdirs are shown
f8443dffc1 ; * lisp/register.el (register-use-preview): Doc fix (bug...
f729828bcf ; Add texinfo reference to GNU Coding Standards.
a6abb88fdc ; * lisp/files.el (executable-find): Doc fix.

# Conflicts:
#	src/treesit.c
2025-03-13 20:18:03 -07:00
Basil L. Contovounesios
f9d805cef3 ; Fix recent defvar-local docstring metavars. 2025-03-13 13:51:01 +01:00
Basil L. Contovounesios
20ac26e675 ; Fix with-delayed-message docstring metavars. 2025-03-13 13:39:39 +01:00
Sean Whitton
99852fb867 Merge from origin/emacs-30
894b0e3a2f ; Adapt comment in tramp.el
cc87717fa0 Add keyword placeholder to tramp.el
7d0d61d854 Rewrite ERT manual introduction
b2f124f2a8 ; cperl-mode.el: Don't misinterpret exec_fcn as keyword exec
59d1aac49d Document return values of the various read-* functions
2025-03-12 10:09:09 +08:00
Stefan Kangas
ce03bf252a Make second arg to defvar-local optional
This change allows declaring a variable both special
and buffer-local like so:

    (defvar-local foo)

* lisp/subr.el (defvar-local): Make second argument optional.
* test/lisp/subr-tests.el (subr-test-defvar-local): New test.
* doc/lispref/variables.texi (Creating Buffer-Local): Document above change.
* etc/NEWS:

* lisp/mb-depth.el (minibuffer-depth-overlay):
* lisp/minibuf-eldef.el (minibuf-eldef-initial-input)
(minibuf-eldef-initial-buffer-length)
(minibuf-eldef-showing-default-in-prompt, minibuf-eldef-overlay):
* lisp/misc.el (list-dynamic-libraries--loaded-only-p):
* lisp/simple.el (minibuffer-history-isearch-message-overlay): Use
above new one-argument form of 'defvar-local'.
2025-03-09 18:24:22 +01:00
Eli Zaretskii
59d1aac49d Document return values of the various read-* functions
* lisp/textmodes/string-edit.el (read-string-from-buffer):
* lisp/simple.el (read-from-kill-ring, read-shell-command)
(read-signal-name):
* lisp/replace.el (read-regexp-case-fold-search):
* lisp/auth-source.el (read-passwd):
* lisp/subr.el (read-key, read-number):
* lisp/minibuffer.el (read-file-name, read-no-blanks-input):
* lisp/international/mule-cmds.el (read-multilingual-string):
* lisp/language/japan-util.el (read-hiragana-string):
* lisp/files-x.el (read-file-local-variable)
(read-file-local-variable-mode, read-file-local-variable-value):
* lisp/faces.el (read-face-font, read-face-name):
* lisp/simple.el (read-extended-command):
* lisp/env.el (read-envvar-name):
* lisp/files.el (read-directory-name):
* lisp/faces.el (read-color):
* lisp/international/mule-diag.el (read-charset):
* lisp/emacs-lisp/map-ynp.el (read-answer):
* src/coding.c (Fread_coding_system)
(Fread_non_nil_coding_system):
* src/minibuf.c (Fread_command, Fread_from_minibuffer):
* src/lread.c (Fread_char, Fread_char_exclusive, Fread_event): Doc
fixes.
2025-03-09 15:02:39 +02:00
Daniel Colascione
0972a54a5a Add static-when, static-unless like static-if
* lisp/subr.el (static-when, static-unless): define
* doc/lispref/control.texi (Conditional Compilation): document
* etc/NEWS: mention
2025-03-07 22:22:30 -08:00
Stefan Kangas
33222bd000 Document apply-partially as inefficient
* doc/lispref/functions.texi (Calling Functions): Document that it is
less inefficient than a regular 'lambda'.
* lisp/subr.el (apply-partially): Adjust documentation like above and
remove compiler macro.
Ref: https://lists.gnu.org/r/emacs-devel/2025-03/msg00024.html
2025-03-02 05:57:27 +01:00
Eli Zaretskii
da584ad6fb Merge from origin/emacs-30
b531bbf73e Fix go-ts-mode const_spec highlighting (Bug#76330)
bd1d6761f4 ; Document what happens when 'display' and 'invisible' pr...
526eeedf88 keymaps.texi: Move "Changing Key Bindings" section up
7ec6531c7b keymaps.texi: Move "Key Sequences" section down
8b80401127 Improve process-get/process-put docstrings
73c646b777 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ...
0af5c57499 Fix recent change in diff-no-select
c8cec840d7 Prevent rare freeze on Android 4.2 through 4.4
2025-03-01 10:01:54 -05:00
Eli Zaretskii
a242d9a48f Merge from origin/emacs-30
6f5c322f59 Recommend secure-hash in md5 docstring
1352b184f3 Improve docstring of add-hook and remove-hook
2025-03-01 10:01:53 -05:00
Eli Zaretskii
612b6df608 Merge from origin/emacs-30
563b6f9451 Constant highlighting no longer captures Java annotations
e15dcb2db5 Improve wording of lsh docstring
0cc651acdd ; * admin/check-doc-strings: Add note for future developm...
3c9b1c3cd1 Don't document deleted xwidget functions
9e9b78dda9 ; Improve lsh and ash documented argument names
2025-03-01 09:59:08 -05:00
Stefan Kangas
8b80401127 Improve process-get/process-put docstrings
* lisp/subr.el (process-get, process-put): Explain the purpose of these
functions in the docstring.
2025-03-01 06:36:43 +01:00
Stefan Monnier
5f165caf31 (internal--c-header-file-path): Move to ffap.el
This function is used so rarely that it's really best not to
preload it.

* lisp/ffap.el (ffap-url-regexp): Precompute.
(ffap-c-path): Use `ffap--c-path`.
(ffap--gcc-is-clang-p, ffap--c-path): Move and rename from subr.el's
* lisp/subr.el (internal--gcc-is-clang-p)
(internal--c-header-file-path): Move to ffap.el and rename.

* lisp/man.el (Man-header-file-path): Default to a new value that
delegates to ffap.
(Man-header-file-path): Obey that new value.

* lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): Use `ffap--gcc-is-clang-p`.

* test/lisp/ffap-tests.el (ffap-tests--c-path)
(ffap-tests--c-path/gcc-mocked, ffap-tests--c-path/clang-mocked):
Move and rename from `subr-tests.el`.
* test/lisp/subr-tests.el (subr-tests-internal--c-header-file-path)
(subr-tests-internal--c-header-file-path/gcc-mocked)
(subr-tests-internal--c-header-file-path/clang-mocked):
Move to `ffap-tests.el` and rename.
2025-02-28 17:03:21 -05:00
Stefan Kangas
678fdcc165 ; Grammar fixes for "native-compiled"
1. Prefer "native-compiled" to "native compiled".
The adjective "native-compiled" with the hyphen is generally more
consistent with the typical pattern in English, especially when the
compound modifies a noun (e.g., "native-compiled code").

2. Prefer "natively compiled" to "natively-compiled".
The adverb "natively" modifies "compiled", and it is standard not
to hyphenate an adverb + adjective combination when the adverb ends
in -ly (e.g., "code that is natively compiled").

For example, note that we say "high-speed internet" but "highly
performant code".

* Makefile.in (dest):
* configure.ac (HAVE_NATIVE_COMP):
* doc/emacs/building.texi (Lisp Libraries):
* doc/lispref/compile.texi (Native Compilation)
(Native-Compilation Functions, Native-Compilation Variables):
* doc/lispref/functions.texi (What Is a Function, Declare Form):
* doc/lispref/loading.texi (How Programs Do Loading, Library Search):
* etc/NEWS:
* etc/NEWS.28:
* etc/NEWS.29:
* etc/NEWS.30:
* lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions)
(comp-function-type-spec):
* lisp/emacs-lisp/comp-cstr.el:
* lisp/subr.el (locate-eln-file):
* src/comp.c (SETJMP_NAME, syms_of_comp):
* src/data.c (Fsubrp, Fnative_comp_function_p, Fsubr_native_lambda_list):
* src/lread.c (Fload):
* src/pdumper.c (dump_do_dump_relocation):
* test/src/comp-tests.el (lambda-return2): Avoid grammatically incorrect
variations on "natively compiled" and "native-compiled".  (Bug#56727)
2025-02-28 20:20:55 +01:00
Stefan Kangas
85ef06392a ; * lisp/subr.el (apply-partially): Fix last commit.
(I accidentally pushed an old version of the patch.)
2025-02-28 18:37:27 +01:00
Stefan Kangas
2435749efa Add compiler macro to apply-partially
* lisp/subr.el (apply-partially): Add compiler macro.
2025-02-28 18:33:10 +01:00
Eli Zaretskii
a04e8812ee Fix 'internal--c-header-file-path'
* lisp/subr.el (internal--c-header-file-path): Fix for MS-Windows:
don't prepend the (usually non-existent) "/usr/include", and run
each directory through 'expand-file-name' to remove the many ".."
elements and mirror any backslashes.  Invoke "clang" if "gcc" is
not available or is actually clang.

* test/lisp/subr-tests.el
(subr-tests-internal--c-header-file-path): Fix for MS-Windows:
test the path by looking for stdio.h, and expand all directory
names to compare to expected results.
2025-02-28 14:45:39 +02:00
Tomas Nordin
1352b184f3 Improve docstring of add-hook and remove-hook
* lisp/subr.el (add-hook, remove-hook): Remove detail about setting to
nil and talk about functions instead of hooks.  (Bug#72915)
2025-02-27 23:13:35 +01:00
Jared Finder
dbae1fc69f * lisp/subr.el (read-key): Add 'tab-line' (bug#76408).
Backport:
(cherry picked from commit 0c8abe8bb5)
2025-02-27 21:01:14 +02:00
Stefan Kangas
e15dcb2db5 Improve wording of lsh docstring
* lisp/subr.el (lsh): Improve wording of docstring.
2025-02-23 20:47:34 +01:00
Mattias Engdegård
5d5736ca75 * lisp/subr.el (oddp, evenp): Pure. % faster than logand. 2025-02-20 20:14:33 +01:00
Jared Finder
0c8abe8bb5 * lisp/subr.el (read-key): Add 'tab-line' (bug#76408). 2025-02-19 09:41:44 +02:00
Stefan Kangas
515542b653 Prefer oddp/evenp to open-coding in a few more cases
* lisp/arc-mode.el (archive-zip-summarize):
* lisp/cus-edit.el (setopt):
* lisp/isearch.el (isearch-backslash):
* lisp/simple.el (blink-paren-post-self-insert-function):
* lisp/subr.el (setq-local, buffer-local-set-state):
* lisp/term.el (term-within-quotes):
* test/src/data-tests.el (test-bool-vector-bv-from-hex-string): Use
oddp/evenp instead of open-coding them.
Reported by Pip Cet <pipcet@protonmail.com>.
2025-02-18 00:00:31 +01:00
Stefan Kangas
8a7c1a31ac Prefer plusp/minusp to open-coding them in subr.el
* lisp/subr.el (lsh, nbutlast, number-sequence, add-to-history)
(read-char-from-minibuffer, split-string, subst-char-in-string)
(forward-whitespace, forward-symbol, forward-same-syntax)
(progress-reporter-do-update, version-list-<): Prefer plusp/minusp to
open-coding them.
2025-02-17 22:48:47 +01:00
Stefan Kangas
afbf932106 New functions plusp and minusp
* lisp/emacs-lisp/cl-lib.el (cl-plusp, cl-minusp): Move from here...
* lisp/subr.el (plusp, minusp): ...to here.  Make old names into
aliases, documented as deprecated.  Add type declarations.  Change from
defsubst to regular functions with compiler macros.
* lisp/obsolete/cl.el: Don't alias plusp and minusp.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-plusp)
(cl-lib-test-minusp): Move tests from here...
* test/lisp/subr-tests.el (subr-test-plusp, subr-test-minusp):
...to here.

* doc/lispref/numbers.texi (Predicates on Numbers): Document plusp
and minusp.
* doc/misc/cl.texi (Predicates on Numbers): Delete cl-plusp and
cl-minusp.
* lisp/emacs-lisp/shortdoc.el (number): Document plusp and minusp
instead of cl-plusp and cl-minusp.
2025-02-17 22:46:56 +01:00
Stefan Kangas
667d011410 New functions oddp and evenp
* lisp/emacs-lisp/cl-lib.el (cl-oddp, cl-evenp): Move from here...
* lisp/subr.el (oddp, evenp): ...to here.  Make old names into
aliases, documented as deprecated.  Add type declarations.
* lisp/obsolete/cl.el: Don't alias oddp and evenp.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-oddp)
(cl-lib-test-evenp): Move tests from here...
* test/lisp/subr-tests.el (subr-test-oddp, subr-test-evenp): ...to here.
* lisp/emacs-lisp/shortdoc.el (number): Add oddp and evenp.
(map): Prefer oddp and evenp to cl-oddp and cl-evenp.

* doc/lispref/numbers.texi (Predicates on Numbers): Document above new
functions oddp and evenp.
* doc/misc/cl.texi (Predicates on Numbers): Delete cl-oddp and cl-evenp.
(Other Clauses): Prefer oddp to cl-oddp.
2025-02-17 05:37:10 +01:00
Stefan Kangas
816b9b4a0b Delete comments about obsolete cl--compiler-macro-cXXr
* lisp/emacs-lisp/cl-macs.el:
* lisp/subr.el: Delete obsolete comments about compatibility alias
cl--compiler-macro-cXXr.
2025-02-12 21:30:47 +01:00
Stefan Kangas
f478d2d1b9 Declare caar, cadr, etc. as side-effect-free
* lisp/subr.el (caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr)
(cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar)
(cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar)
(cddadr, cdddar, cddddr): Declare side-effect-free.
* lisp/emacs-lisp/cl-macs.el: Remove redundant declarations of
compatibility aliases for the above functions as side-effect-free.
2025-02-12 21:30:30 +01:00
Eli Zaretskii
d58fe6619f Merge from origin/emacs-30
ba27193895 ; * etc/NEWS: Fix wording.
fdc6842a44 Remove bookmark fringe marks when deleting all bookmarks
3bccd04c5c Improve wording in symbols.texi
6441b9ea7a Fix typo in Gnus manual
87be3aa149 eglot: Allow omnisharp binary to be capitalized "OmniSharp"
5485ea6aef Do not set `trusted-content` in major modes
d11488fd6f ; * lisp/subr.el (sit-for): Doc fix.

# Conflicts:
#	etc/NEWS
2025-02-01 07:40:19 -05:00
Stefan Kangas
bf97946d7d Merge branch 'scratch/no-purespace' into 'master' 2025-02-01 04:56:52 +01:00
Eli Zaretskii
d11488fd6f ; * lisp/subr.el (sit-for): Doc fix. 2025-01-30 11:37:40 +02:00
Stefan Monnier
442d04081b (when-let*): Warn if body is empty
* lisp/subr.el (when-let*): Warn if body is empty.
* lisp/textmodes/tex-mode.el (xref-backend-references): Fix use of
`when-let*`.
2025-01-25 10:40:25 -05:00
Richard Stallman
67be8db518 subr.el doc clarifications.
* subr.el (when-let, when-let*, and-let*): Doc clarifications.
Make `when-let* doc string self-contained.
2025-01-08 08:40:32 -05:00
Stefan Kangas
3dc3dbc2e3 Fix finding C headers with clang
This fixes following "#include" references in 'M-x man' buffers, and
using ffap, both on macOS machines, and on systems where for some reason
clang is available but gcc is not.

* lisp/subr.el (internal--c-header-file-path): Fix finding C
headers with clang.
(internal--gcc-is-clang-p): New function factored out from...
* lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): ...here.
* lisp/man.el (Man-header-file-path): Bump :version tag.

* test/lisp/subr-tests.el
(subr-tests-internal--c-header-file-path/clang-mocked): New test.
2025-01-06 20:04:20 +01:00
Stefan Kangas
888ff3755d New function internal--c-header-file-path
It is not clear to me where this function properly belongs, so let's put
it in subr.el for now.  This avoids code duplication without introducing
a dependency between man and ffap.  It can always be moved later.

* lisp/subr.el (internal--c-header-file-path): New function.
* lisp/man.el (Man-header-file-path):
* lisp/ffap.el (ffap-c-path): Use above new function.

* test/lisp/subr-tests.el (ert-x): Require.
(subr-tests-internal--c-header-file-path)
(subr-tests-internal--c-header-file-path/gcc-mocked): New tests.
2025-01-06 20:04:20 +01:00