Commit graph

180416 commits

Author SHA1 Message Date
Paul Eggert
0d43f2a562 Align config.h better to src/lisp.h
This is mostly a cleanup patch to fix growing discrepancies
between src/lisp.h and configure.ac in terms of how they deduce
how EMACS_INT aligns.  The patch includes a static check that the
two methods now agree.  It also speeds up ‘configure’ a bit.
* configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG):
Remove; no longer used.
(ALIGNOF_EMACS_INT): New macro.
(system_malloc): Set to 'no' more consistently with what’s
in src/lisp.h.
* src/lisp.h (ALIGNOF_EMACS_INT): Do not define here, as config.h
defines it now.  Check that config.h’s definition equals the
actual alignof (EMACS_INT).
(USE_USB_TAG): Set more consistently with what’s in configure.ac.
(alignas): Don’t second-guess Gnulib.
2025-12-07 15:45:20 -08:00
Paul Eggert
f766e8a36b Work around GCC bug 123042
* src/ccl.c: The bug occurs in GCC versions after GCC 13.
2025-12-07 15:45:20 -08:00
Paul Eggert
2b7261d7f5 Include malloc.h early in alloc.c
* src/alloc.c, src/gmalloc.c: Include <malloc.h> before <stdlib.h>.
This mimics include patterns elsewhere, and avoids a problem if
malloc.h declares realloc (i.e., rpl_realloc) early as extern,
whereas Gnulib stdlib.h declares it later as inline which means it
is extern inline, which clashes with gmalloc’s definition of
rpl_realloc when gmalloc.o is used.  Problem discovered when
building Emacs on Ubuntu 25.10 with "./configure CC='gcc -m32'
emacs_cv_struct_alignment=no gl_cv_header_working_stdalign_h=no".
2025-12-07 15:45:20 -08:00
Paul Eggert
caf0941e56 Pacify -Werror=null-dereference in ralloc.c
* src/ralloc.c (find_heap, update_heap_bloc_correspondence):
Omit unnecessary comparisons to NULL that cause GCC to warn.
2025-12-07 15:45:19 -08:00
Paul Eggert
a8b9364949 Move Gnulib configuration up in configure.ac
This is so that later patches can fix some near-duplication errors
in the malloc configuration.
* configure.ac: Move Gnulib configuration earlier.
2025-12-07 15:45:19 -08:00
Paul Eggert
2203fac659 Remove some obsolete C89, C99, Automake cruft
These have not been needed for some time in configure.ac.
* configure.ac (_AC_PROG_CC_C89): Don’t bother redefining to empty.
(gl_PROG_CC_C99, AC_PROG_CC_C_O): Remove; no longer needed.
2025-12-07 15:45:19 -08:00
Amin Bandali
4dbf78c118 ; * doc/emacs/custom.texi (User Lisp Directory): Small tweaks. 2025-12-07 18:00:45 -05:00
Philip Kaludercic
7a66362c25
Make 'package-vc-install-from-checkout' as obsolete
See https://mail.gnu.org/archive/html/emacs-devel/2025-11/msg00039.html.

* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Obsolete it.
2025-12-07 22:42:29 +01:00
Przemysław Kryger
3b0dcb0b1b
Add tests for package-vc
* test/lisp/package-vc-tests.el
(package-vc-tests-preserve-artefacts): When non nil then
preserve temporary test files and buffers.
(package-vc-tests-dir, package-vc-tests-packages)
(package-vc-tests-repository): Silence byte compiler.
(package-vc-tests-packages): Define packages to test.
(package-vc-tests-add): Copy a an in file template, update
SUFFIX in it and add it to index.
(package-vc-tests-create-repository): Create a package git
repository with a test package's source.
(package-vc-tests-package-desc): Retrieve a `package-desc' for
tested package.
(package-vc-tests-package-spec): Retrieve a pkg-spec for tested
package.
(package-vc-tests-package-lisp-dir): Determine a lisp directory
for a package.
(package-vc-tests-package-main-file): Calculate expected
location of package's main file.
(package-vc-tests-load-history-marker): Create a load history
marker.
(package-vc-tests-load-history-pattern): Create a regexp pattern
to search in `load-history'.
(package-vc-tests-load-history-position): Calculate a position
in `load-history'.
(package-vc-tests-load-history-interesting-entries): Return
`load-history' entries related to the current
`package-vc-tests-dir'.
(package-vc-tests-explain-load-history-position): Return ERT
explanation for load history position failures.
(package-vc-tests-log-buffer-name): Return name of a log buffer
used to build package or its documentation.
(package-vc-tests-log-buffer-exists): Return non-nil when a log
buffer used to build package or its documentation exists.
(package-vc-tests-explain-log-buffer): Print contents of log
buffer used to build package or its documentation and return ERT
explanation for the failure.
(package-vc-tests-elc-files): Check that there are elc files and
that there is no compiled autoloads file amongst them.
(package-vc-tests-assert-delete-elc): Assert that .elc files are
present for a package.
(package-vc-tests-assert-package-alist): Assert that
`package-alist' contains a `package-desc' for package, and that
the `package-desc' has correct slot `version' and slot
`dir'.:(package-vc-tests-reset-head^): Reset head of checkout of
tested packages to HEAD^.
(package-vc-tests-packages-head): Return current checkout
revision.
(package-vc-tests-make-spec): Make a new test spec for a test
package.
(with-package-vc-tests-environment): Setup test environment.
(package-vc-tests-environment-tear-down): Tear down test
environment.
(with-package-vc-tests-installed): Withing a test environment,
install package, evaluate test body, and then tear down the test
environment.
(package-vc-tests-install-from-elpa)
(package-vc-tests-install-from-spec): Install a test package.
(package-vc-tests-checkout-from-elpa-install-from-checkout)
(package-vc-tests-checkout-with-git-install-from-checkout):
Checkout and install a test package.
(package-vc-tests-package-vc-async-wait): Wait for an
asynchronous VC command to finish.
(package-vc-tests-deftest): Define series tests for each package
in `package-vc-tests-under-test'.
(install-post-conditions): Tests that after installing a test
package the `load-history' entries, package's main file, commit,
elc files, and `package-alist' entry are correct.
(require): Test that after calling `require' the `load-history'
entries are correct.
(upgrade, upgrade-all): Test that after calling
`package-vc-upgrade'/`package-vc-upgrade-all' the `load-history'
entries, package's elc files, commit, and `package-alist' entry
are correct.
(upgrade-after-require, upgrade-all-after-require): Test that
after calling `require' followed by
`package-vc-upgrade'/`package-vc-upgrade-all' the `load-history'
entries, commit, package's elc files, and `package-alist' entry
are correct.
(rebuild): Test that after calling `package-vc-rebuild' on an
old version of a package, the package's old function, old macro,
elc files, and `package-alist' entry are correct.
(rebuild-after-require): Test that after calling `require'
followed by `package-vc-rebuild' on an old version of a package,
the package's old function, old macro, elc files, and
`package-alist' entry are correct.
(prepare-patch): Test that after calling
`package-vc-prepare-patch' the message buffer is correct.
(log-incoming): Test that after calling
`package-vc-log-incoming' the log buffer is correct.
(pkg-spec-doc-make-shell-command): Test that :doc, :make, and
:shell-command slots in a pkg spec execute.
* test/lisp/package-vc-resources/test-package-SUFFIX-v0.1.el.in:
* test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.1.el.in:
Code template of version 0.1 of a test package.
* test/lisp/package-vc-resources/test-package-SUFFIX-v0.2.el.in:
* test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.2.el.in:
Code template of code of version 0.2 of a test package.
* test/lisp/package-vc-resources/test-package-SUFFIX-inc.texi.in:
* test/lisp/package-vc-resources/test-package-SUFFIX.texi.in:
Documentation template of a test package.
* test/lisp/package-vc-resources/Makefile.in: Makefile template of
a test package.

Co-developed-by: Philip Kaludercic <philipk@posteo.net>

(Bug#79188)
2025-12-07 22:27:13 +01:00
Philip Kaludercic
dba1c734bf
Store VC checkout dir in 'package-desc-extras'
* lisp/emacs-lisp/package-vc.el (package-vc--url-scheme): Remove constant.
(package-vc--checkout-dir): Check 'package-desc-extras'.
(package-vc--save-selected-packages): Remove single-use function.
(package-vc--unpack): (Re-)inline 'package-vc--save-selected-packages'.
(package-vc-install-from-checkout): Set :vc-dir entry in
'package-desc-extras' if necessary.  (Bug#79188)
2025-12-07 22:24:09 +01:00
Przemysław Kryger
573acd97e5
Fix upgrading, rebuilding, and logging of VC packages
There are a few issues addressed in this patch:

1.  Compilation (including native compilation) should happen in
directory that contains package's Lisp code.

2.  After installing a package with
`package-vc-install-from-checkout' and subsequently upgrading it
with `package-vc-upgrade' the pkg-desc for the package becomes
corrupted.  After the upgrade the pkg-desc's dir (a.k.a
`pkg-dir') points to checkout directory.  This will cause the
subsequent `package-delete' to delete the checkout directory and
leaving incorrect forwarding autoloads file in
`package-user-directory'.

3. The detection of package's Lisp directory has been not
effective for packages installed with `package-vc-install' and
not existent for packages installed with
`package-install-from-checkout'.

4. Deduction of VC backend has been not working when called from
outside of deducing context.

5. Extract maintainers and store them in a package description
file when installing a package from a checkout.

* lisp/emacs-lisp/package-vc.el (package-vc--checkout-dir): New
function to determine the real checkout of a VC
package.
(package-vc--url-scheme): Define scheme for `:url' property.
(package-vc--generate-description-file): Extract maintainers
from main package file and store them in generated description
file.
(package-vc--save-selected-packages): Refactor new helper
function out of 'package-vc--unpack' to modify
'package-vc-selected-packages'.
(package-vc--checkout-dir): Use `pcase' to extract checkout
directory from `pkg-spec'.  Detect standard lisp sub directory
if called with non-nil `lisp-dir'.
(package-vc-commit, package-vc--main-file)
(package-vc--build-documentation, package-vc-prepare-patch): Use
'package-vc--checkout-dir'.
(package-vc--unpack-1): Remove superfluous `pkg-dir' argument.
Remove elc files before compilation.  Use a `package' with
`:dir' pointing to where package code is.  When `checkout-dir'
is different than `pkg-dir' then call `package--add-info-node'
and after calling `package-activate-1' reload source files in
case when `lisp-dir' is a sub directory.  Use the right
directories in the right places.
(package-vc-install-from-checkout): Remove superfluous
`package-vc-selected-packages' binding.  Remove `pkg-dir'
argument from `package-vc--unpack-1' calls.
(package-vc--unpack): Remove `lisp-dir' variable and convert to
`let*'.  Remove superfluous Lisp code sub directory detection -
logic moved to `package-vc--checkout-dir'.  Remove `pkg-dir'
argument from `package-vc--unpack-1' call. Use
'package-vc--save-selected-packages'.
(package-vc-upgrade, package-vc-rebuild): Remove `pkg-dir'
argument from `package-vc--unpack-1' calls. Use
'package-vc--checkout-dir'.
(package-vc-log-incoming): Set `vc-deduce-backend-nonvc-modes'
to t.  Use 'package-vc--checkout-dir'.
* lisp/emacs-lisp/package.el (package--add-info-node): New
function to install info node for package.  Extracted from
`package-activate-1'.
(package-activate-1): Call `package--add-info-node'.

Co-developed-by: Philip Kaludercic <philipk@posteo.net>

(Bug#79188)
2025-12-07 22:24:09 +01:00
Jens Schmidt
8a0217ebbc
Use a consistent package description
Ensure that the long description of a package is the same regardless of
originating package archive and package installation state.

* lisp/emacs-lisp/package.el: Add documentation on additional files that
Emacs creates during package installation.
(package-desc): Update incomplete description of slot `kind'.
(package-install-from-archive): Download '*-readme.txt' from the archive
and save it as 'README-elpa' to avoid the issues described in bug#79411.
* test/lisp/emacs-lisp/package-resources/multi-file-readme.txt:
* test/lisp/emacs-lisp/package-resources/simple-single-readme.txt:
Update readmes to mark them as "server readmes" and distinguish them
from what the packages themselves provide in their documentation.
* test/lisp/emacs-lisp/package-tests.el (package-test-install-singlefile)
(package-test-describe-installed-with-ws-only-readme): Add tests.
(package-test-install-multifile): Test more files for presence.
(package-test-describe-package)
(package-test-describe-installed-multi-file-package)
(package-test-describe-non-installed-package)
(package-test-describe-non-installed-multi-file-package): Test for
server readme being used as long description. (Bug#79411)
2025-12-07 22:24:09 +01:00
Jens Schmidt
3a2a3a618e
; Fix a test-relevant typo
* test/lisp/emacs-lisp/package-tests.el (package-test-install-file): Fix
a test-relevant typo.  (Bug#79411)
2025-12-07 22:24:09 +01:00
Jens Schmidt
b71e8f6e86
Brush up macro with-package-test and related tests
* test/lisp/emacs-lisp/package-tests.el (with-package-test): Remove
unused keyword :update-news and its implementation.  Add documentation
for remaining keywords, since in particular :basedir was being overused.
Eliminate code redundancy by reimplementing keyword :upload-base in
terms of equivalent macro `ert-with-temp-directory' macro.  Implement
other minor improvements.
(package-test-install-file, package-test-bug58367, package-test-bug65475)
(package-test-install-file-EOLs, package-test-install-multifile): Remove
superfluous :basedir keyword from `with-package-test' calls to not give
future developers bad example.
(package-test-install-multifile): Move file tests out of
`with-temp-buffer', as they are independent of current buffer.  (Bug#79411)
2025-12-07 22:24:09 +01:00
Philip Kaludercic
1b931fbe42
Prepare and load user scripts at startup
* doc/emacs/custom.texi (Early Init File): Document feature and
related user options.
* etc/NEWS: Mention new feature.
* lisp/startup.el (user-lisp-auto-scrape, user-lisp-directory)
(user-lisp-ignored-directories): New user options.
(prepare-user-lisp): New command.
(command-line): Invoke 'prepare-user-lisp' during startup if a
user-lisp directory exists and if not disabled per
'user-lisp-auto-scrape'.
2025-12-07 22:24:09 +01:00
David Fussner
3f54ff95d8
Fix package-vc to find the GNU "make" executable
* lisp/emacs-lisp/package-vc.el (package-vc--make): Improve heuristic
for finding the name of GNU "make" on the system.
(package-vc-make-program): New defcustom to allow the user to specify
the name of GNU "make" in case auto-detection doesn't work. (Bug#79729)
2025-12-07 22:24:09 +01:00
Sean Whitton
fab0bfc78f vc-dir-headers: Set a delayed message during vc--count-outgoing
* lisp/vc/vc-dir.el (vc-dir-headers): Set a delayed message
during vc--count-outgoing.
2025-12-07 15:19:23 +00:00
Sean Whitton
459ecb3d26 ; vc-test-exec-after-3: Delete unused FAILS local value. 2025-12-07 15:04:34 +00:00
Sean Whitton
0391b3f94e Check for successful exit when parsing output with vc-exec-after
When using vc-exec-after to parse program output, check that the
program didn't die to a signal or exit with an error exit code
before attempting the parse.  Continue to use plain
vc-run-delayed where we aren't parsing output, because in these
cases it doesn't matter to CODE if the output is incomplete.

* lisp/vc/vc-dispatcher.el (vc-exec-after): <process-status>:
Treat PROC dying to a signal the same as PROC exiting non-zero.

(vc-exec-after): <accept-process-output>: Restore making a
nonblocking call, for the case of vc-exec-after called from a
process sentinel.  diff-hl *does* require this.

(vc-exec-after): <OKSTATUS>: New parameter, replacing SUCCESS,
which never worked as documented.
* test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-exec-after-3):
Test it.

(vc-run-delayed-success): New macro.
* lisp/vc/vc-git.el (vc-git-dir-status-goto-stage):
* lisp/vc/vc-hg.el (vc-hg-dir-status-files):
* lisp/vc/vc.el (vc-pull-and-push): Use it.

* lisp/obsolete/vc-arch.el (vc-exec-after):
* lisp/obsolete/vc-mtn.el (vc-exec-after):
* lisp/vc/vc-bzr.el (vc-exec-after):
* lisp/vc/vc-cvs.el (vc-exec-after):
* lisp/vc/vc-git.el (vc-exec-after):
* lisp/vc/vc-hg.el (vc-exec-after):
* lisp/vc/vc-svn.el (vc-exec-after): Update declarations.
2025-12-07 15:00:13 +00:00
Alan Mackenzie
3d4fe70ee5 Eliminate possible confusion in comments in registry.el.
This will prevent any recurrence of bug#79870 (whose cause has
not been established).

* lisp/registry.el (Header comments): Replace ";; version: a
float" with ";; version - a float", etc., to prevent ";;
version:" being wrongly recognized by
loaddefs-generate--parse-file.
2025-12-07 12:41:45 +00:00
Eli Zaretskii
300c6dc2f9 Allow volume control of system audio device on MS-Windows
* src/sound.c (Fw32_sound_volume): New function.

* etc/NEWS: Announce it.
2025-12-07 11:31:40 +02:00
Gerd Möllmann
2d459d8377 * src/comp.c (emit_EQ): Make a declaration an assignment (bug#79722) 2025-12-07 03:43:51 +01:00
Roi Martin
5e0414b05c ; Improve documentation of fill-region-as-paragraph-semlf
* lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Create
hyperlinks to URLs.
2025-12-06 18:48:38 +02:00
Sean Whitton
1bdf9dd6cd New user option vc-dir-show-outgoing-count
* lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): New defcustom.
(vc-dir-headers): Use it.
* doc/emacs/maintaining.texi (VC Directory Buffer):
* etc/NEWS: Document it.
2025-12-06 16:24:59 +00:00
Sean Whitton
39f34f6470 vc-git-incoming-revision: Don't fetch when branch has no upstream
* lisp/vc/vc-git.el (vc-git-incoming-revision): Don't perform a
useless fetch when the branch has no upstream (bug#79952).
2025-12-06 16:07:13 +00:00
Eli Zaretskii
3945654f05 Merge from origin/emacs-30
998d45d5d1 ; * lisp/calc/calc-units.el: Better reference for CODATA ...
fae83f1eb8 ; Improve documentation of 'char-script-table'
3e489ed804 ; * src/font.c (Flist_fonts): Doc fix.
4c292b6f70 ; vc-dir-clean-files: Improve docstring and message (bug#...
8a6b84dbcb Fix doc string of 'display-buffer'
2025-12-06 08:58:57 -05:00
Eli Zaretskii
9c48d08654 Increase the value of 'max-lisp-eval-depth' used when dumping
* lisp/loadup.el (max-lisp-eval-depth): Bump to 4200.  Problem
reported by Gerd Möllmann <gerd.moellmann@gmail.com>.
2025-12-06 15:28:07 +02:00
Eli Zaretskii
6e68ac4604 ; * lisp/face-remap.el (buffer-face-set): Fix last change. 2025-12-06 15:03:40 +02:00
Ulrich Müller
998d45d5d1 ; * lisp/calc/calc-units.el: Better reference for CODATA 2022. 2025-12-06 13:37:58 +01:00
Jostein Kjønigsen
c8ee9e3994 sh-script: Fix fontification of command-invocations in 'bash-ts-mode'
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Change
font-face used for command-invocations.  (Bug#79944)
2025-12-06 14:34:12 +02:00
Michael Albinus
32e6bbbe46 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2025-12-06 13:27:53 +01:00
Michael Albinus
b1882857ee Rework remote process support for Tramp's "smb" method
* doc/misc/tramp.texi (Remote processes): Rewrite subsection
"Running remote processes on MS Windows hosts".

* etc/NEWS: Mention remote process support for Tramp's "smb" method.
Presentational fixes and improvements.

* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Use `tramp-smb-handle-make-process', `tramp-smb-handle-shell-command'
and `tramp-handle-start-file-process'.
(tramp-smb-matching-line): New defvar.
(tramp-smb-handle-make-process, tramp-smb-handle-shell-command)
(tramp-smb-shell-prompt): New defuns.
(tramp-smb-handle-process-file): Rewrite.
(tramp-smb-handle-start-file-process): Remove.
(tramp-smb-get-localname, tramp-smb-shell-quote-localname):
New optional argument SHARE.
(tramp-smb-send-command): Remove echoed command string.
(tramp-smb-maybe-open-connection): Initialize variables.
(tramp-smb-wait-for-output): Wait more robust.
(tramp-smb-call-winexe): Check for share.  Goto current directory.
(tramp-smb-connection-local-powershell-variables): New defconst.
Set it as connection local variables.

* test/lisp/net/tramp-tests.el (tramp-test28-process-file)
(tramp-test29-start-file-process, tramp-test30-make-process)
(tramp-test32-shell-command, tramp--test-async-shell-command)
(tramp--test-supports-processes-p): Adapt for "smb" method.
(tramp-test34-explicit-shell-file-name)
(tramp-test45-asynchronous-requests): Skip for "smb" method.
(tramp--test-check-files): Skip shell test for some special
characters in the "smb" case.
(tramp-test52-unload): Disable further tests.
2025-12-06 13:26:52 +01:00
Eli Zaretskii
c3dfef7a3d ; * lisp/files.el (trusted-content): Doc fix (bug#79939). 2025-12-06 14:24:18 +02:00
Eli Zaretskii
164f76a474 ; Improve documentation of 'fill-region-as-paragraph'
* lisp/textmodes/fill.el (fill-region-as-paragraph-default)
(fill-separate-heterogeneous-words-with-space): Doc fixes.
(Bug#79575)
2025-12-06 14:18:55 +02:00
Roi Martin
598a3604d4 Simplify fill-tests.el and add tests
Simplify fill-tests.el by grouping similar tests in the same
erts file.  Move the test code into the erts files, so it is
closer to the test cases, which provides context.  Add basic
test cases for common filling operations and for the scenarios
described in Bug#79575.

* test/lisp/textmodes/fill-tests.el (fill-test-end-period)
(fill-test-haskell): Rename from `test-fill-end-period' and
`test-fill-haskell' to follow the same naming convention of
the other tests.
(fill-test-fill-region-as-paragraph-default)
(fill-test-fill-region-as-paragraph-semlf)
(fill-test-fill-region-as-paragraph, fill-test-fill-region)
(fill-test-fill-paragraph, fill-test-fill-paragraph-semlf):
Group tests and move test code into erts files.
(fill-test-fill-paragraph-semlf-emacs-lisp-mode)
(fill-test-fill-paragraph-semlf-c-mode)
(fill-test-fill-paragraph-semlf-org-mode)
(fill-test-fill-paragraph-semlf-markdown-mode): Rename from
`fill-test-semlf-emacs-lisp-mode', `fill-test-semlf-c-mode',
`fill-test-semlf-org-mode' and
`fill-test-semlf-markdown-mode'.  Move test code into erts
files.
(fill-test-semlf, fill-test-semlf-fill-region)
(fill-test-semlf-justify)
(fill-test-semlf-sentence-end-double-space)
(fill-test-semlf-fill-column)
(fill-test-semlf-punctuation-marks, fill-test-semlf-twice)
(fill-test-semlf-fill-prefix, fill-test-semlf-indented-block)
(fill-test-semlf-revert): Delete tests since they are now
grouped with other tests.

* test/lisp/textmodes/fill-resources/fill-paragraph.erts:
* test/lisp/textmodes/fill-resources/fill-paragraph-semlf.erts:
* test/lisp/textmodes/fill-resources/fill-region-as-paragraph.erts:
* test/lisp/textmodes/fill-resources/fill-region-as-paragraph-default.erts:
* test/lisp/textmodes/fill-resources/fill-region-as-paragraph-semlf.erts:
Add test cases for the function specified in the file name,
including tests for the scenarios described in the bug report.
* test/lisp/textmodes/fill-resources/fill-region.erts: Add
test case for custom `fill-region-as-paragraph-function',
include test code in the test specification.
* test/lisp/textmodes/fill-resources/fill-paragraph-semlf-c-mode.erts:
* test/lisp/textmodes/fill-resources/
fill-paragraph-semlf-emacs-lisp-mode.erts:
* test/lisp/textmodes/fill-resources/fill-paragraph-semlf-markdown-mode.erts:
* test/lisp/textmodes/fill-resources/fill-paragraph-semlf-org-mode.erts:
Rename from semlf-*-mode.erts, prefix test names with the
tested function and include test code in the test
specification.
* test/lisp/textmodes/fill-resources/semlf-fill-column.erts:
* test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts:
* test/lisp/textmodes/fill-resources/semlf-fill-region.erts:
* test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts:
* test/lisp/textmodes/fill-resources/semlf-indented-block.erts:
* test/lisp/textmodes/fill-resources/semlf-justify.erts:
* test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts:
* test/lisp/textmodes/fill-resources/semlf-revert.erts:
* test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts:
* test/lisp/textmodes/fill-resources/semlf-twice.erts:
* test/lisp/textmodes/fill-resources/semlf.erts: Delete
files.  (Bug#79575)
2025-12-06 14:04:32 +02:00
Eli Zaretskii
e214b13370 ; (calendar-bahai--twin-birthdays-reference-dates): Fix quoting. 2025-12-06 13:58:19 +02:00
John Wiegley
1dd0fd6e4e Update Bahá'í calendar for 2014 calendar reform
In 2014, the Universal House of Justice announced modifications to
the Badí' calendar to bring it more in line with its original design.
>From 172 BE (Naw-Rúz 2015) onwards, Naw-Rúz is determined by the
vernal equinox as observed from Tehran, and the Twin Holy Birthdays
are calculated from the eighth new moon after Naw-Rúz.

* doc/emacs/calendar.texi (Calendar Systems): Update Bahá'í calendar
description to mention the 2014 reform, Ayyám-i-Há, and the
astronomical basis for Naw-Rúz and Twin Holy Birthday calculations.

* lisp/calendar/cal-bahai.el: Require 'solar' and 'lunar' for
astronomical calculations.
(calendar-bahai-tehran-latitude)
(calendar-bahai-tehran-longitude)
(calendar-bahai-tehran-timezone)
(calendar-bahai-reform-year): New constants for Tehran-based
astronomical observations and reform year (172 BE).
(calendar-bahai-nawruz-for-gregorian-year): New function to calculate
Naw-Rúz from vernal equinox relative to Tehran sunset.
(calendar-bahai-nawruz): New function returning absolute date of
Naw-Rúz for a given Bahá'í year.
(calendar-bahai-twin-holy-birthdays-for-year): New function to
calculate Birth of the Báb and Birth of Bahá'u'lláh from the eighth
new moon after Naw-Rúz.
(calendar-bahai-leap-year-p): Handle post-reform years based on gap
between successive Naw-Rúz dates.
(calendar-bahai-to-absolute, calendar-bahai-from-absolute): Rewrite
to use astronomical Naw-Rúz dates for years >= 172 BE.
(holiday-bahai-new-year): Calculate variable Naw-Rúz date.
(holiday-bahai-twin-holy-birthdays): New function for lunar-based
Twin Holy Birthday dates.
(holiday-bahai-ridvan): Use Bahá'í calendar dates instead of fixed
Gregorian dates.
(calendar-bahai--nawruz-reference-dates)
(calendar-bahai--twin-birthdays-reference-dates): New constants with
official dates from Bahá'í World Centre for 2015-2064.
(calendar-bahai--verify-nawruz)
(calendar-bahai--verify-twin-birthdays)
(calendar-bahai-verify-calculations): New verification functions to
test calculations against official reference data.

* lisp/calendar/holidays.el (holiday-bahai-holidays): Use
'holiday-bahai' with Bahá'í calendar dates instead of 'holiday-fixed'
with Gregorian dates.  Add 'holiday-bahai-twin-holy-birthdays' for
lunar-calculated dates.
2025-12-06 13:54:53 +02:00
Kristoffer Balintona
3d21eaa3fc ; Improve documentation of 'eager-update'
* lisp/minibuffer.el (completion-metadata, completion-category-defaults)
(completion-category-overrides): Mention 'eager-update', alongside
'eager-display', in the docstring.   (Bug#79898)
2025-12-06 13:50:26 +02:00
Eli Zaretskii
368c86bab4 Improve documentation of 'seq-intersection'
* doc/lispref/sequences.texi (Sequence Functions):
* lisp/emacs-lisp/seq.el (seq-intersection): Clarify the
documentation of 'seq-intersection'.  (Bug#79844)
2025-12-06 12:57:32 +02:00
Kristoffer Balintona
51c519ea2d Support 'eager-update' in 'completion-category-overrides' defcustom
* lisp/minibuffer.el (completion-category-overrides): Accept
'eager-update' as a completion property in its :type.  (Bug#79899)
2025-12-06 12:43:18 +02:00
Eli Zaretskii
8f5c26cec2 ; * src/eval.c (Ffunc_arity): Doc fix (bug#79880). 2025-12-06 12:33:44 +02:00
Alexander Adolf
3e81d0573a ; xwidgets: pacify macOS compiler warnings
* configure.ac: When the WebKit header files are not available
in the hard-coded location, query for the location of the
currently active SDK, and resort to the header files there.
(Bug#79847)
2025-12-06 12:15:46 +02:00
Jeremy Bryant
ddcbab2809 ; * src/.gdbinit: Document xfmt, a user-defined function.
Proposed in (bug#79932).

Co-authored-by: Eli Zaretskii <eliz@gnu.org>
2025-12-06 11:15:11 +02:00
Martin Rudalics
da45a474d3 Fix root frame check in store_frame_param (Bug#79947)
* src/frame.c (store_frame_param): Make sure 'minibuffer',
'parent-frame' and 'delete-before' parameters reference frame on
same terminal.  Spare GUI frames when checking root frames of
tty frames and their surrogate minibuffer frames (Bug#79947).
2025-12-06 08:54:51 +01:00
Sean Whitton
022facd986 * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): Fix finding END. 2025-12-05 17:05:47 +00:00
Mattias Engdegård
5e7a71d0f4 Don't emit print-circle refs for empty string and vector
The empty vector and string(s) are immutable, contain no references and
always read as the same objects.

* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Turn macro into...
(print_circle_candidate_p): ...a function, and exclude [] and "".
* test/src/print-tests.el (print-circle): Add test case.
2025-12-04 17:52:14 +01:00
Mattias Engdegård
2d682ca13f * lisp/emacs-lisp/bytecomp.el (funarg-positions): amend 'sort' 2025-12-04 17:52:14 +01:00
Andrea Corallo
d52bf63de2 * Have comp do not use builtin_expect with libgccjit < 14 (bug#79722)
* src/comp.c (emit_EQ): Do not use '__builtin_expect' with
libgccjit < 14.
2025-12-04 17:05:23 +01:00
Sean Whitton
d63ed68684 * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): Fix killing. 2025-12-04 15:40:11 +00:00
Kristoffer Balintona
21f9295aa9 Improve performance of 'flyspell-goto-next-error'
* lisp/textmodes/flyspell.el (flyspell-goto-next-error): Use
'next-overlay-change' and 'previous-overlay-change'.
(Bug#79933)
2025-12-04 14:19:51 +02:00