* lisp/emacs-lisp/find-func.el (find-func--regexp-of-symbol-name):
New function.
(find-function-search-for-symbol): Use it to find shorthands.
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
Find method defined with shorthands (and funny chars).
* src/lread.c (Fintern, Fintern_soft, Funintern): Don't obey
`read-symbol-shorthands` any more.
* lisp/emacs-lisp/shorthands.el (shorthands-of-symbol): New function,
adapted from `elisp--read-symbols-shorthands`.
(shorthands-to-longhand, shorthands-intern, shorthands-intern-soft)
(shorthands-unintern): New functions.
(shorthands-font-lock-shorthands): Use `shorthands-intern-soft`.
* lisp/progmodes/elisp-mode.el (elisp-context-menu)
(elisp--company-doc-buffer, elisp--company-doc-string)
(elisp--company-location, elisp--company-kind)
(elisp--company-deprecated, xref-backend-definitions)
(elisp--xref-find-definitions, eval-sexp-add-defvars)
(elisp--current-symbol): Use `shorthands-intern(-soft)`.
(elisp--read-symbol-shorthands): Use `shorthands-of-symbol`.
(elisp-completion-at-point): Use the `elisp--longhand` to simplify.
Use `shorthands-intern(-soft)`.
* lisp/minibuffer.el (completion-shorthand-try-completion):
Simplify using `shorthands-to-longhand`.
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function):
* lisp/thingatpt.el (symbol-at-point): Use `shorthands-intern(-soft)`.
* test/src/lread-tests.el (lread-unintern):
Use `shorthands-(un)intern(-soft)`.
Preserve comments in hunk headers (usually a function name).
* lisp/vc/diff-mode.el (diff-unified->context): Parse the comment in the
hunk header and insert it in the corresponding hunk header in the
context diff.
(diff-context->unified): Change analogously.
* test/lisp/vc/diff-mode-tests.el (diff-mode-tests-undo-unified->context):
New test.
(diff-mode-tests--context-patch, diff-mode-tests--unified-patch): New
variables.
Discovered by choroba, reported via GitHub:
https://github.com/HaraldJoerg/cperl-mode/issues/28
* lisp/progmodes/cperl-mode.el
(cperl-electric-pod, cperl-linefeed, cperl-find-pods-heres):
Remove "=end" from regular expressions. "=end" is the end-of-POD
indicator in Raku (formerly called Perl6) but not in Perl.
With DOCLANGS='default fr', the top-level doc targets ran a sub-make
in every doc directory once per language. The Makefiles of the
directories without translations (emacs, lispintro, lispref) ignore
DOCLANG, so the non-default sub-make repeated the default-language
build, and under "make -j" two sub-makes produced the same outputs
concurrently, failing intermittently with:
cp: cannot create regular file '../../info/cons-2a.txt': File exists
* Makefile.in (FILTER_DOCLANGS): New function: languages from
DOCLANGS to build for a doc directory, the default language when
present in DOCLANGS plus every language that has translations for
this directory (doc/translations/<lang>/<dir>). Do not force the
default language when DOCLANGS omits it. Suggested by Vincent
Belaiche <vincentb1@users.sourceforge.net>.
(MAKE_DOC): Take the list of languages as a second argument and use
it instead of DOCLANGS.
The previous bug#81332 fix made info/dir depend on doc/misc/NAME.texi
names derived from INFO_COMMON. For the manuals whose source is .org
(modus-themes, org), these .texi files are generated and do not exist
in a fresh checkout, and there is no rule to build them at this level,
so building Emacs fails with:
make[1]: *** No rule to make target 'doc/misc/modus-themes.texi',
needed by 'info/dir'. Stop.
* Makefile.in (srcdir_doc_info_dir_inputs): For the default language,
depend on the actual sources reported by doc/misc echo-sources
(texi_misc_default), which lists .org sources for the org-based
manuals; make-info-dir extracts dir entries from both formats.
(GET_DOC_SRC): Only handle translated languages; drop the mapping of
default translation names to doc/misc .texi names.
Also amend the doc string of defun-prompt-regexp. This fixes
bug#81401.
* lisp/progmodes/sh-script.el (sh-base-mode): Amend the value
of 'defun-prompt-regexp' to use a "negative" rather than a
"positive" list of characters.
* lisp/emacs-lisp/lisp.el (defun-prompt-regexp). Amend the doc
string for clarity.
Gnulib added AT_EMPTY_PATH support to its 'fstatat', but
the MinGW build must use its own 'fstatat' implementation.
These changes avoid compiling Gnulib's fstatat.c, and add
support for AT_EMPTY_PATH to the MinGW implementation.
* src/w32.c (fstatat): Support AT_EMPTY_PATH.
* nt/inc/unistd.h (AT_EMPTY_PATH): Define.
* nt/mingw-cfg.site (gl_cv_func_fstatat_null_file): Set to 'yes'
to avoid compiling Gnulib's fstatat.
Gnulib deprecated the crypto/af_alg module,
following the deprecation of the AF_ALG API in Linux 7.2.
This means Emacs needs to do less work to avoid using it.
* admin/merge-gnulib (AVOIDED_MODULES):
Remove crypto/af_alg as we no longer need to avoid it.
* configure.ac (emacs_files): Omit lib/af_alg.h.
* lib/af_alg.h: Remove; no longer used.
* lib/gnulib.mk.in: Regenerate.
When end-of-defun is invoked with argument < -1 after the end of
defun, and there is some text between the end of defun and
point, the result is off by 1 (Bug#81305).
* lisp/emacs-lisp/lisp.el (end-of-defun): Always move point to
beg.
* test/lisp/emacs-lisp/lisp-tests.el (end-of-defun-twice): Add
test case.
Create a version of 'pcase-let*' that signals an error when a 'pcase'
pattern does not match its corresponding value.
* lisp/emacs-lisp/pcase.el (pcase--let*): Add the optional argument
'strict' to generate code for signaling an error when a 'pcase'
pattern does not match its corresponding value.
* lisp/emacs-lisp/pcase.el (pcase-let*-strict): Add the new macro.
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-let*-strict):
Add new test.
* etc/NEWS (Pcase): Add heading for 'pcase'.
* etc/NEWS (Add 'pcase-let*-strict'): Add news entry for new macro.
This year British Columbia and Alberta moved one time zone east,
discarding daylight saving time, and it’s possible that more of North
America will follow suit. Adjust doc strings and manual to be
more robust in the presence of these changes.
* src/pdumper.c (DUMP_RELOCATION_ALIGNMENT): Now alignof
(Lisp_Object) on all platforms. This supports larger offsets on
many platforms, and does not shrink the maximum supported offset
on any known platform. See Bug#44531.
407de5142c Port pdumper to m68k
0818bb3eb3 ; * etc/NEWS: Presentational fixes and improvements.
f620924322 ; Improve doc-strings of window rotation commands
937de3fa92 ; Fix typos in preceding commit
48a481ac8d ; Improve documentation of window-rotation commands
afc5fc709b browse-url-with-browser-kind: Use strings for DEF
4be321d511 Fix issues related to window layout changes (Bug#81406)
86b65d82c7 Turn off combination resizing in 'window--transpose-1' (B...
7a9c004924 ; Clarify documentation of 'filter-buffer-substring'
b6412271e1 Fix copy-by-mouse in *Backtrace* buffers
eebc9c7fe7 ; * etc/DEBUG: Info about -g3 on OpenBSD (bug#81109).
2b8aa16b0b Support javascript "using" keyword (bug#81351)
# Conflicts:
# etc/NEWS
Problem reported by John Paul Adrian Glaubitz (bug#44531).
* src/pdumper.c (DUMP_RELOCATION_ALIGNMENT_BITS): Remove. It’s
not needed for optimization, as today’s compilers deduce that
multiplying and dividing by the alignment can be done with shifts.
All uses changed to use DUMP_RELOCATION_ALIGNMENT.
(DUMP_RELOCATION_ALIGNMENT) [__mc68000__]:
Now min (4, alignof (Lisp_Object)), not 4.
(dump_reloc_set_offset): Change eassert to eassume to help
the compiler.
* src/window.c (Vwindow_combination_resize): In doc-string say
that binding this to nil may be necessary to produce specific,
predefined frame layouts (Bug#81406).
* lisp/window-x.el (window-layout-rotate-clockwise)
(window-layout-rotate-anticlockwise)
(window-layout-flip-leftright, window-layout-flip-topdown)
(window-layout-transpose, rotate-windows-change-selected)
(rotate-windows, rotate-windows-back): Rewrite doc-strings.
Make sure that non-interactive calls with nil or absent WINDOW
argument work on the frame's main window. Fix infinite loop
when 'rotate-windows' is called for a non-selected frame.
* doc/lispref/windows.texi (Recombining Windows): Say that
binding 'window-combination-resize' to nil may be necessary to
produce specific, predefined frame layouts (Bug#81406).
(Changing Window Layouts): Minor rewrite.
* etc/NEWS: Announce names of new commands to change window
layout (Bug#81406).
* doc/lispref/text.texi (Buffer Contents): Clarify that the order
of buffer positions in arguments of 'filter-buffer-substring'
should not matter.
* lisp/simple.el (filter-buffer-substring-function):
(filter-buffer-substring): Doc fix.
* lisp/emacs-lisp/backtrace.el (backtrace--filter-visible):
Support BEG and END in reverse order. Patch by Jakub
T. Jankiewicz <jcubic@jcubic.pl>. (Bug#81365)