]> git.eshelyaron.com Git - emacs.git/log
emacs.git
10 months agocomp: Don't load.el comp when C-h f scratch/comp-run
Andrea Corallo [Wed, 8 Nov 2023 15:36:24 +0000 (16:36 +0100)]
comp: Don't load.el comp when C-h f

* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers)
(comp-function-type-spec): Move here.

10 months agocomp: Add comp-common.el
Andrea Corallo [Wed, 8 Nov 2023 15:19:18 +0000 (16:19 +0100)]
comp: Add comp-common.el

* lisp/emacs-lisp/comp-common.el: New file.
(comp-common): New group.
(native-comp-verbose, native-comp-never-optimize-functions)
(native-comp-async-env-modifier-form, comp-limple-calls)
(comp-limple-sets, comp-limple-assignments)
(comp-limple-branches, comp-limple-ops)
(comp-limple-lock-keywords, comp-log-buffer-name, comp-log)
(native-comp-limple-mode, comp-log-to-buffer)
(comp-ensure-native-compiler, comp-trampoline-filename)
(comp-eln-load-path-eff): Move here
* lisp/emacs-lisp/comp-run.el (comp-common): Require.
* lisp/emacs-lisp/comp.el (comp-common): Require.
* admin/MAINTAINERS: Add comp-common.el
* lisp/Makefile.in (COMPILE_FIRST): Likewise.
* src/Makefile.in (elnlisp): Likewise.

10 months agoDon't load comp when installing an existing trampoline
Andrea Corallo [Tue, 7 Nov 2023 10:28:32 +0000 (11:28 +0100)]
Don't load comp when installing an existing trampoline

* lisp/emacs-lisp/nadvice.el (advice--add-function): Update.
(comp-subr-trampoline-install): Update src file.
* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Autoload.
* lisp/emacs-lisp/comp-run.el (comp-log-buffer-name)
(native--compile-async, comp-warn-primitives)
(comp-trampoline-filename, comp-eln-load-path-eff)
(comp-trampoline-search, comp-trampoline-compile): Move here.
* lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Update
src file.

10 months agocomp: don't require 'warnings' in comp-run
Andrea Corallo [Wed, 25 Oct 2023 21:50:39 +0000 (23:50 +0200)]
comp: don't require 'warnings' in comp-run

* lisp/emacs-lisp/comp-run.el (warnings): Don't require.
(warning-suppress-types): Wave warning.
* lisp/emacs-lisp/warnings.el (warning-suppress-types): Autoload it.

10 months ago* comp: make comp-run don't require cl-lib at runtime
Andrea Corallo [Wed, 25 Oct 2023 15:58:43 +0000 (17:58 +0200)]
* comp: make comp-run don't require cl-lib at runtime

* lisp/emacs-lisp/comp-run.el (cl-lib): Require it only at compile
time.
(native-compile-async-skip-p): Use 'seq-some'.
(native--compile-async): Don't use 'cl-substitute'.

10 months agocomp: split code in comp-run.el
Andrea Corallo [Thu, 19 Oct 2023 16:10:25 +0000 (18:10 +0200)]
comp: split code in comp-run.el

* lisp/emacs-lisp/comp-run.el : New file.
(comp-run)
(native-comp-jit-compilation-deny-list)
(native-comp-async-jobs-number)
(native-comp-async-report-warnings-errors)
(native-comp-always-compile)
(native-comp-async-cu-done-functions)
(native-comp-async-all-done-hook)
(native-comp-async-env-modifier-form)
(native-comp-async-query-on-exit, native-comp-verbose)
(comp-log-buffer-name, comp-async-buffer-name, comp-no-spawn)
(comp-async-compilations, native-comp-limple-mode)
(comp-ensure-native-compiler, native-compile-async-skip-p)
(comp-files-queue, comp-async-compilations, comp-async-runnings)
(comp-num-cpus, comp-effective-async-max-jobs)
(comp-last-scanned-async-output)
(comp-accept-and-process-async-output, comp-valid-source-re)
(comp-run-async-workers, native--compile-async)
(native-compile-async): Move these definitions here.
* lisp/Makefile.in (COMPILE_FIRST): Update.
* src/Makefile.in (elnlisp): Likewise.
* admin/MAINTAINERS: Likewise.

10 months ago; Fix recent changes in documentation
Eli Zaretskii [Fri, 3 Nov 2023 07:41:11 +0000 (09:41 +0200)]
; Fix recent changes in documentation

* lisp/man.el (Man-header-file-path, man): Doc fix.

* etc/NEWS: Fix wording.

10 months agoRound underline position and thickness
Po Lu [Fri, 3 Nov 2023 07:20:04 +0000 (15:20 +0800)]
Round underline position and thickness

* src/sfntfont.c (sfntfont_open): Round underline thickness
instead of truncating it, as is proper according to several
inquiries.

10 months agoAvoid moving point while analyzing text conversion
Po Lu [Fri, 3 Nov 2023 03:32:17 +0000 (11:32 +0800)]
Avoid moving point while analyzing text conversion

* lisp/simple.el (analyze-text-conversion): If neither calling
p-s-i-h nor calling p-t-c-h yields a change to point, return it
to its location before analyze-text-conversion was called.

* src/keyboard.c (kbd_buffer_get_event): See that text
conversion events are uniformly delivered prior to keyboard
events arriving in unison.

10 months ago* lisp/emacs-lisp/oclosure.el (oclosure--lambda): Burp in dynbind mode
Stefan Monnier [Fri, 3 Nov 2023 03:12:00 +0000 (23:12 -0400)]
* lisp/emacs-lisp/oclosure.el (oclosure--lambda): Burp in dynbind mode

The "fixes" bug#66867.

10 months agoRemove 'M-.' binding from js-mode and js-ts-mode
Dmitry Gutov [Thu, 2 Nov 2023 23:40:36 +0000 (01:40 +0200)]
Remove 'M-.' binding from js-mode and js-ts-mode

* lisp/progmodes/js.el (js-mode-map, js-ts-mode-map): Remove.
The global binding must be a lot more useful for most users
(https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg01295.html).

10 months agoAdapt doc for man.el
Michael Albinus [Thu, 2 Nov 2023 11:14:13 +0000 (12:14 +0100)]
Adapt doc for man.el

* etc/NEWS: Rephrase 'Man-support-remote-systems' entry.
Fix typos.

* lisp/man.el (Man-header-file-path, man): Adapt docstrings.

10 months ago; Improve documentation of recent changes
Eli Zaretskii [Thu, 2 Nov 2023 07:56:55 +0000 (09:56 +0200)]
; Improve documentation of recent changes

* etc/NEWS:
* lisp/simple.el (completion-auto-wrap, completion-auto-select)
(first-completion, last-completion, previous-completion)
(next-completion, previous-line-completion)
(next-line-completion): Doc fixes.  (Bug#59486)

10 months agoProperly compute overhangs for overstruck text
Po Lu [Thu, 2 Nov 2023 05:18:37 +0000 (13:18 +0800)]
Properly compute overhangs for overstruck text

* src/xdisp.c (get_glyph_face_and_encoding): Account for
non-character glyphs by not attempting to translate them to
characters.
(gui_get_glyph_overhangs, gui_produce_glyphs): If the face is
overstruck, increase the right side bearing by 1 pixel.

10 months agoPreserve point when inserting date stamps in ERC
F. Jason Park [Tue, 31 Oct 2023 23:50:16 +0000 (16:50 -0700)]
Preserve point when inserting date stamps in ERC

* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-disable): Move
remaining local teardown business to `erc-stamp--setup' and use
`erc-buffer-do' instead of `erc-with-all-buffers-of-server' to
emphasize that all ERC buffers are affected.
(erc-stamp--insert-date-stamp-as-phony-message): Move `erc--msg-props'
binding to `erc-stamp--lr-date-on-pre-modify'.
(erc-stamp--lr-date-on-pre-modify): Bind `erc--msg-props' here so that
the related guard condition in `erc-add-timestamp' is satisfied and
`erc-insert-timestamp-function' runs.  This fixes a regression new in
ERC 5.6 and introduced by c68dc778 "Manage some text props for ERC
insertion-hook members".  Also, `save-excursion' when narrowing to
prevent point from being dislodged after submitting input at the
prompt.
(erc-insert-timestamp-left-and-right): Don't initialize date stamps
when `erc-timestamp-format-left' is nil or consists only of newlines,
and enable fallback behavior in such cases on behalf of users without
informing them.  Allow global hook members to run first so that those
owned by `scrolltobottom' and similar can see the unadulterated input.
Fix wrong hook name.
(erc-stamp--setup): Fix wrong hook name.  Kill all local vars here
instead of sharing this duty with the minor-mode toggle.  (Bug#60936)

10 months ago; Attempt to fix race in erc-buffer-display test
F. Jason Park [Tue, 31 Oct 2023 06:36:54 +0000 (23:36 -0700)]
; Attempt to fix race in erc-buffer-display test

* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--time-vals,
erc-fill-tests--current-time-value): Rename former to latter and
change type from function to natnum.
(erc-fill-tests--wrap-populate, erc-fill-wrap--merge,
erc-fill-wrap--merge-action): Use `erc-fill-tests--current-time-value'
instead of function `erc-fill-tests--time-vals'.
* test/lisp/erc/erc-scenarios-base-association.el
(erc-scenarios-common--base-association-multi-net): Extend timeout.
* test/lisp/erc/erc-scenarios-base-buffer-display.el
(erc-scenarios-base-buffer-display--reconnect-common): Move some
common assertions here from callers.
(erc-scenarios-base-buffer-display--defwin-recbury-intbuf,
erc-scenarios-base-buffer-display--count-reset-timeout):
Factor out a couple common assertions.  Clarify some comments.
(erc-scenarios-base-buffer-display--defwino-recbury-intbuf):
Factor out a couple common assertions and clarify some comments.
Account for possible concurrency bug leading to intermittent
test failures.
* test/lisp/erc/erc-scenarios-base-misc-regressions.el
(erc-scenarios-base-gapless-connect,
erc-scenarios-base-channel-buffer-revival): Extend timeouts.
* test/lisp/erc/resources/dcc/chat/accept.eld: Extend timeout.
* test/lisp/erc/resources/base/reconnect/options-again.eld: Extend
timeouts.
* test/lisp/erc/resources/erc-d/erc-d.el (erc-d--m): Prevent possible
wrong-type error.
* test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld: Extend
timeouts.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common--base-network-id-bouncer): Extend timeout.

10 months ago(project-switch-project): Fix the previous change
Dmitry Gutov [Wed, 1 Nov 2023 20:48:23 +0000 (22:48 +0200)]
(project-switch-project): Fix the previous change

* lisp/progmodes/project.el (project-switch-project):
Clear the buffer-local value in the right buffer (bug#66317).

10 months agoNew commands previous-line-completion and next-line-completion (bug#59486)
Juri Linkov [Wed, 1 Nov 2023 17:45:05 +0000 (19:45 +0200)]
New commands previous-line-completion and next-line-completion (bug#59486)

* lisp/simple.el (completion-list-mode-map): Bind [up] to
'previous-line-completion', and [down] to 'next-line-completion'.
(completion-auto-wrap): Mention `next-line-completion' and
`previous-line-completion' in the docstring.
(previous-line-completion, next-line-completion): New commands.

10 months agoRun `man' also on remote systems
Michael Albinus [Wed, 1 Nov 2023 15:54:31 +0000 (16:54 +0100)]
Run `man' also on remote systems

This implements bug#66758

* doc/emacs/programs.texi (Man Page):
Describe Man-support-remote-systems.

* etc/NEWS: Mention user option 'Man-support-remote-systems'.
Fix typos.

* lisp/dired.el (Man-support-remote-systems): Declare.
(dired-do-man): Use it.  Use also `file-local-name'.

* lisp/man.el (Man-support-remote-systems): New defcustom.
(Man-xref-normal-file): Handle remote files.
(Man-default-directory, Man-shell-file-name)
(Man-header-file-path): New defuns.
(Man-init-defvars): Use octal numbers.
(Man-support-local-filenames): Handle remote files.
(Man-completion-table): Use `Man-default-directory' and `process-file'.
(man): Adapt docstring.
(Man-start-calling): Use `Man-default-directory'.
(Man-getpage-in-background): Use `Man-default-directory',
`Man-shell-file-name', `start-file-process' and `process-file'.  Adapt
buffer name.
(Man-update-manpage): Use `Man-shell-file-name' and `process-file'.
(Man-view-header-file): Use `Man-header-file-path'.

10 months agoNon-recursive marking of buffer-local variables
Mattias Engdegård [Wed, 1 Nov 2023 13:34:30 +0000 (14:34 +0100)]
Non-recursive marking of buffer-local variables

* src/alloc.c (mark_localized_symbol): Inline into...
(process_mark_stack): ...this code and do don't use recursion.

10 months agoAdd two docstrings in cl-macs.el
Jeremy Bryant [Tue, 31 Oct 2023 23:37:10 +0000 (23:37 +0000)]
Add two docstrings in cl-macs.el

* lisp/emacs-lisp/cl-macs.el (cl--simple-exprs-p)
(cl--const-expr-p): Add docstrings

10 months agoPrevent errors when generating events above menu bar windows
Po Lu [Wed, 1 Nov 2023 03:15:24 +0000 (11:15 +0800)]
Prevent errors when generating events above menu bar windows

* src/keyboard.c (make_lispy_position): Pass false to w_f_c,
for the subsequent code is not prepared to encounter menu bar
windows.

10 months agoOnly override the current project buffer-locally
Dmitry Gutov [Wed, 1 Nov 2023 02:01:53 +0000 (04:01 +0200)]
Only override the current project buffer-locally

* lisp/progmodes/project.el (project-switch-project): Only
override the current project buffer-locally.  This is mostly for
the the mode-line indicator (https://debbugs.gnu.org/66317#53).

10 months agoCatch 'permission-denied' during project lookup
Dmitry Gutov [Wed, 1 Nov 2023 01:58:45 +0000 (03:58 +0200)]
Catch 'permission-denied' during project lookup

* lisp/progmodes/project.el (project--find-in-directory):
Catch 'permission-denied' (bug#66317).

Co-Authored-By: Spencer Baugh <sbaugh@catern.com>
10 months agoRespect `browse-url-default-scheme` on Android
Stefan Kangas [Wed, 1 Nov 2023 00:39:27 +0000 (01:39 +0100)]
Respect `browse-url-default-scheme` on Android

* lisp/net/browse-url.el (browse-url-default-android-browser):
Respect 'browse-url-default-scheme'.

10 months agolisp/emacs-lisp/comp-cstr.el: Fix bootstrap
Stefan Monnier [Tue, 31 Oct 2023 23:20:58 +0000 (19:20 -0400)]
lisp/emacs-lisp/comp-cstr.el: Fix bootstrap

* lisp/emacs-lisp/comp-cstr.el: Remove redundant require of `cl-macs`
and add missing require of `cl-extra`.

* lisp/emacs-lisp/cl-generic.el: Improve warning message.
* lisp/emacs-lisp/cl-extra.el (cl--print-table): Remove redundant arg.

10 months ago* lisp/emacs-lisp/comp.el: Remove redundant requires
Stefan Monnier [Tue, 31 Oct 2023 16:24:51 +0000 (12:24 -0400)]
* lisp/emacs-lisp/comp.el: Remove redundant requires

10 months agoDon't round underline metrics
Po Lu [Tue, 31 Oct 2023 13:04:11 +0000 (21:04 +0800)]
Don't round underline metrics

* src/sfntfont.c (sfntfont_open): Don't round underline position
or thickness, much as the other font drivers don't either.

10 months agoExtract underline positions from PostScript metrics tables
Po Lu [Tue, 31 Oct 2023 10:41:59 +0000 (18:41 +0800)]
Extract underline positions from PostScript metrics tables

* src/sfntfont.c (struct sfnt_font_desc): Introduce fields where
the font's underline position is recorded.
(sfnt_enum_font_1): Compute the underline position with
information in the post table whenever it exists.
(sfntfont_open): Scale the recorded position and save it into
the font object.

10 months ago* lisp/progmodes/project.el (project-menu-entry): Add 'bound-and-true-p'.
Juri Linkov [Tue, 31 Oct 2023 07:34:03 +0000 (09:34 +0200)]
* lisp/progmodes/project.el (project-menu-entry): Add 'bound-and-true-p'.

This is needed for compatibility with older versions (bug#66317).

10 months agoFix project-mode-line-format breaking buffer-file-coding-system (bug#66825)
Juri Linkov [Tue, 31 Oct 2023 07:22:28 +0000 (09:22 +0200)]
Fix project-mode-line-format breaking buffer-file-coding-system (bug#66825)

* lisp/progmodes/project.el (project-mode-line-format):
Let-bind 'last-coding-system-used' to prevent changing
'buffer-file-coding-system' in 'basic-save-buffer'.

10 months ago; cperl-mode.el: Obey comment conventions
Harald Jörg [Mon, 30 Oct 2023 16:19:42 +0000 (17:19 +0100)]
; cperl-mode.el: Obey comment conventions

* lisp/progmodes/cperl-mode.el: Use ;;; only for "chapter headings".
Eliminate some redundant and misleading comments.  Fix an over-wide line.

10 months ago; * lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Hoist above use.
Mattias Engdegård [Mon, 30 Oct 2023 10:48:04 +0000 (11:48 +0100)]
; * lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Hoist above use.

10 months agoAscertain font spacing from post table if present
Po Lu [Mon, 30 Oct 2023 07:32:58 +0000 (15:32 +0800)]
Ascertain font spacing from post table if present

* src/sfnt.c (sfnt_table_names): Introduce name of post table.
(sfnt_read_post_table): New function.
(main): New tests.

* src/sfnt.h (struct sfnt_post_table): New struct.

* src/sfntfont.c (sfnt_enum_font_1): Read post table, and set
spacing from its is_fixed_pitch value.
(sfntfont_list_1): Compare spacing between both fonts if
supplied in the font spec.
(sfntfont_open): Set FONT_FILE_INDEX as well as
FONT_FULLNAME_INDEX.

10 months agocomp-cstr.el: The type hierarchy is a DAG, not a tree
Stefan Monnier [Mon, 30 Oct 2023 04:59:19 +0000 (00:59 -0400)]
comp-cstr.el: The type hierarchy is a DAG, not a tree

Adjust the type operations to account for the fact that types can have
several parents.

* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy):
Use `cl--class-allparents`.  Add FIXME.
(comp--direct-supertype): Declare obsolete.
(comp--direct-supertypes): New function.
(comp--normalize-typeset0): Rewrite to use `comp--direct-supertypes`;
adjust to account for the DAG structure; use `cl-set-difference`.
(comp--direct-subtypes): Rewrite.
(comp--intersection): New function.
(comp-supertypes): Rewrite and change return type.
(comp-subtype-p): Simplify.
(comp-union-typesets): Use `comp-supertypes` instead of iterating over
`comp-cstr-ctxt-typeof-types`.
* lisp/emacs-lisp/comp.el (comp--native-compile): Don't catch
errors if we're debugging.
* test/lisp/emacs-lisp/comp-cstr-tests.el: Adjust tests.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix mishap when we
evaluate (cl-defstruct cl-structure-object ..) during the compilation
of `cl-preloaded.el`.
* lisp/emacs-lisp/cl-preloaded.el: Add corresponding assertion.

10 months agoExclude Git submodules from 'project-files'
Jim Porter [Sun, 29 Oct 2023 05:20:41 +0000 (22:20 -0700)]
Exclude Git submodules from 'project-files'

* lisp/progmodes/project.el (project--vc-list-files): Exclude Git
submodules (bug#66806).
(project-search, project-query-replace-regexp): Remove now-unneeded
workaround.

10 months agoTeach ffap to look for relative file names under project-root
Spencer Baugh [Sat, 21 Oct 2023 18:35:53 +0000 (14:35 -0400)]
Teach ffap to look for relative file names under project-root

Now file-name-at-point-functions, which runs
ffap-guess-file-name-at-point, will pick up on a file name at point if
that file name is a relative file name which exists when looked up
from the root of the project.

For example, in test/lisp/progmodes/eglot-tests.el there is the string
lisp/progmodes/eglot.el; if you put point on that and C-x C-f,
lisp/progmodes/eglot.el under the root of the Emacs repo will now be
part of future history.

* lisp/ffap.el (ffap-alist): Add entry for ffap-in-project.
(ffap-in-project): Add. (bug#66668)

10 months agoUse OClosure to drop `advice--buffer-local-function-sample` hack
Stefan Monnier [Sun, 29 Oct 2023 18:12:22 +0000 (14:12 -0400)]
Use OClosure to drop `advice--buffer-local-function-sample` hack

* lisp/emacs-lisp/nadvice.el (advice--forward): New OClosure, to
replace `advice--buffer-local-function-sample`.
(advice--set-buffer-local, advice--buffer-local): Adjust accordingly.

10 months agoRequire `cl-lib` rather than directly some of its subfiles
Stefan Monnier [Sun, 29 Oct 2023 18:07:04 +0000 (14:07 -0400)]
Require `cl-lib` rather than directly some of its subfiles

* test/src/filelock-tests.el:
* lisp/net/tramp-sh.el: Require `cl-lib` rather than `cl-seq` or `cl-macs`.

10 months agoEliminate some nested repetitions in regexps
Mattias Engdegård [Thu, 5 Oct 2023 12:06:24 +0000 (14:06 +0200)]
Eliminate some nested repetitions in regexps

Nested repetitions such as (A*)* potentially take exponential time but
can usually be rewritten in a faster and more readable way without
much trouble.  These were all found by Relint.

* lisp/obsolete/terminal.el (te-parse-program-and-args):
* lisp/org/org.el (org-make-tags-matcher):
Apply the transform (A+B*)+ -> A(A|B)*

* lisp/textmodes/fill.el (adaptive-fill-regexp):
Apply the transform A*(B+A*)* -> (A|B)*

* lisp/progmodes/idlw-shell.el (idlwave-shell-filter):
Find the last newline or CR in a more direct way.

* lisp/progmodes/vhdl-mode.el (vhdl-port-copy, vhdl-subprog-copy):
Trim trailing whitespace from a string in a more direct way.
All-whitespace strings are left unchanged as before.

10 months agoFix broken gdb-control-commands-regexp (bug#66363)
Mattias Engdegård [Sun, 29 Oct 2023 16:16:35 +0000 (17:16 +0100)]
Fix broken gdb-control-commands-regexp (bug#66363)

* lisp/progmodes/gdb-mi.el (gdb-python-guile-commands-regexp):
Remove, integrate into...
(gdb-control-commands-regexp): ...this.  Translate into rx.
Remove useless submatches which broke earlier attempts at using other
submatches.  Rewrite tail expression to avoid superlinear nested
repetition, eliminating a Relint complaint.
* lisp/progmodes/gdb-mi.el (gdb-send): Simplify use of the regexp
above, and use the correct submatch this time.  Remove unnecessary and
incorrect second regexp matching.

10 months ago; Fix typo in tramp.texi
Michael Albinus [Sun, 29 Oct 2023 14:29:32 +0000 (15:29 +0100)]
; Fix typo in tramp.texi

10 months agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Sun, 29 Oct 2023 14:28:11 +0000 (15:28 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

10 months agoMake nnrss suggest HTTPS instead of HTTP
Stefan Kangas [Sun, 29 Oct 2023 13:06:32 +0000 (14:06 +0100)]
Make nnrss suggest HTTPS instead of HTTP

* lisp/gnus/nnrss.el (nnrss-check-group): Suggest HTTPS instead of
HTTP when prompting for URL.

10 months ago; Fix documentation of last change
Eli Zaretskii [Sun, 29 Oct 2023 12:19:39 +0000 (14:19 +0200)]
; Fix documentation of last change

* etc/NEWS:
* doc/emacs/misc.texi (emacsclient Options): Fix wording.
(Bug#65902)

10 months agoAdd 'server-eval-args-left' to server.el
Spencer Baugh [Fri, 22 Sep 2023 01:35:50 +0000 (21:35 -0400)]
Add 'server-eval-args-left' to server.el

Passing arbitrary arguments to functions through
"emacsclient --eval" sometimes requires complicated escaping
to avoid them being parsed as Lisp (as seen in
emacsclient-mail.desktop before this change).

The new variable 'server-eval-args-left' allows access to the
arguments before they are parsed as Lisp.  By removing
arguments from the variable before they're parsed, a snippet
of Lisp can consume arguments, as in emacsclient-mail.desktop.

org-protocol might be able to use this as well, which might allow it
to drop its current advice on server-visit-files.

* etc/emacsclient-mail.desktop: Use 'server-eval-args-left'.
* lisp/server.el (server-eval-args-left): New variable.
(server-process-filter, server-execute): Make '-eval' arguments
available through 'server-eval-args-left'.
* lisp/startup.el (argv): Mention 'server-eval-args-left' in
docstring.
* etc/NEWS: Announce 'server-eval-args-left'.
* doc/emacs/misc.texi (emacsclient Options): Document
'server-eval-args-left'.  (Bug#65902)

10 months ago; Fix a recent change in documentation of 'selection-coding-system'
Eli Zaretskii [Sun, 29 Oct 2023 12:06:29 +0000 (14:06 +0200)]
; Fix a recent change in documentation of 'selection-coding-system'

* doc/lispref/frames.texi (Window System Selections): Fix
description of the effect of 'selection-coding-system' on
MS-Windows and MS-DOS.

10 months ago; Fix last change (bug#66614).
Eli Zaretskii [Sun, 29 Oct 2023 11:40:27 +0000 (13:40 +0200)]
; Fix last change (bug#66614).

10 months agoAdd 'case-symbols-as-words' to configure symbol case behavior
Spencer Baugh [Sat, 21 Oct 2023 15:09:39 +0000 (11:09 -0400)]
Add 'case-symbols-as-words' to configure symbol case behavior

In some programming languages and styles, a symbol (or every
symbol in a sequence of symbols) might be capitalized, but the
individual words making up the symbol should never be capitalized.

For example, in OCaml, type names Look_like_this and variable names
look_like_this, but it is basically never correct for something to
Look_Like_This.  And one might have "aa_bb cc_dd ee_ff" or "Aa_bb
Cc_dd Ee_ff", but never "Aa_Bb Cc_Dd Ee_Ff".

To support this, the new variable 'case-symbols-as-words' causes
symbol constituents to be treated as part of words only for case
operations.

* src/casefiddle.c (case_ch_is_word): New function.
(case_character_impl, case_character): Use 'case_ch_is_word'.
(syms_of_casefiddle): Define 'case-symbols-as-words'.
* src/search.c (Freplace_match): Use 'case-symbols-as-words'
when calculating case pattern.
* test/src/casefiddle-tests.el (casefiddle-tests--check-syms)
(casefiddle-case-symbols-as-words): Test 'case-symbols-as-words'.
* etc/NEWS: Announce 'case-symbols-as-words'.
* doc/lispref/strings.texi (Case Conversion): Document
'case-symbols-as-words'.
(Bug#66614)

10 months agoRemove the header line after disabling 'which-function-mode'
Spencer Baugh [Sat, 21 Oct 2023 14:41:42 +0000 (10:41 -0400)]
Remove the header line after disabling 'which-function-mode'

Previously, the header line would stay around even when after
disabling 'which-function-mode', although it may be empty.  Now
the 'which-function-mode' element is properly removed from
'header-line-format', so the header line will disappear if
there's nothing else in 'header-line-format'.

Also, previously, when we ran (which-function-mode), we would
enable
'which-function-mode' for all buffers even if they didn't support
imenu.  We didn't run the normal logic in 'which-func-ff-hook' to
disable 'which-func-mode' if imenu wasn't present.  Now we do run
that logic, by just calling 'which-func-ff-hook'.  This is
especially important when the header line is enabled, because
otherwise there's a very noticeable header line added to every
buffer, including e.g. *Help* and *Buffer List*.

Also, we now check that 'header-line-format' is a list before trying
to add to it; this makes us work properly when enabling and
disabling 'which-function-mode' for modes which set
'header-line-format' to a string or symbol, such as eww.

* lisp/progmodes/which-func.el (which-func-try-to-enable): Re-add
'which-func-format' to the header line.
(which-func--header-line-remove): New function.
(which-func--disable): Call 'which-func--header-line-remove'.
(which-function-mode): Call 'which-func-ff-hook' and
'which-func--header-line-remove'. (bug#66283)
* test/lisp/progmodes/which-func-tests.el: New test.

10 months agoSet non-text mouse cursor on menu bar
Manuel Giraud [Fri, 6 Oct 2023 12:27:02 +0000 (14:27 +0200)]
Set non-text mouse cursor on menu bar

* src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on
menu bar.

10 months agoAvert a crash and file descriptor leak in yank-media
Po Lu [Sun, 29 Oct 2023 04:59:45 +0000 (12:59 +0800)]
Avert a crash and file descriptor leak in yank-media

* java/org/gnu/emacs/EmacsNative.java (close): New declaration.

* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardData): Catch SecurityException and guarantee file
descriptors are closed even if exceptions arise.

* src/android.c (dup): Export another function.

10 months agoPrefer seq-filter in hanja-util.el
Stefan Kangas [Sat, 28 Oct 2023 23:40:25 +0000 (01:40 +0200)]
Prefer seq-filter in hanja-util.el

Benchmarking shows seq-filter to be ~30% faster on this machine.

* lisp/language/hanja-util.el (hanja-filter): Make into obsolete alias
for 'seq-filter'.  Update single caller.

10 months agoSpeed up Eshell smart display module
Morgan Smith [Wed, 7 Sep 2022 01:18:51 +0000 (21:18 -0400)]
Speed up Eshell smart display module

em-smart was forcibly re-displaying the screen upwards of 500 times
per screen of output.  This caused the Eshell to feel quite slow when
the module was in use.  By using fewer hooks and never explicitly
calling 'redisplay' (which was unnecessary) the performance issues go
away (bug#57367).

lisp/eshell/em-smart.el:

(em-smart-unload-hook, eshell-smart-unload-hook): Remove
'eshell-smart-scroll' instead of the now deleted
'eshell-refresh-windows'.

(eshell-smart-displayed, eshell-currently-handling-window)
(eshell-refresh-windows): Delete.

(eshell-smart-scroll-window): Rename to 'eshell-smart-scroll-windows'
and add a bunch of logic originally from 'eshell-refresh-windows'.

(eshell-smart-initialize): Don't add a hook onto
'window-scroll-functions'.  Replace 'eshell-refresh-windows' with
'eshell-smart-scroll-windows'.

(eshell-smart-display-setup): Don't refresh windows.

(eshell-smart-redisplay): Rename to 'eshell-smart-scroll'.  Delete
'eobp' case.

10 months agoPrefer seq-filter in rcirc.el
Stefan Kangas [Sat, 28 Oct 2023 22:38:02 +0000 (00:38 +0200)]
Prefer seq-filter in rcirc.el

Benchmarking shows seq-filter to be ~30% faster on this machine.

* lisp/net/rcirc.el (rcirc-condition-filter): Make into an
obsolete alias for 'seq-filter'.  Update single caller.

10 months agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Sat, 28 Oct 2023 17:43:17 +0000 (19:43 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

10 months agoAdd easy customization for dir-locals files (Bug#66702)
Mauro Aranda [Mon, 23 Oct 2023 12:45:12 +0000 (09:45 -0300)]
Add easy customization for dir-locals files (Bug#66702)

* lisp/cus-edit.el (custom--editable-field-p): New utility function.
(custom-dirlocals-widget, custom-dirlocals-file-widget)
(custom-dirlocals-commands, custom-dirlocals-tool-bar-map): New
variables.
(custom-dirlocals-map, custom-dirlocals-field-map): New keymaps.
(Custom-dirlocals-menu): New menu.
(custom-dirlocals-key, custom-dynamic-cons, custom-dirlocals): New
widgets.
(custom-dirlocals-maybe-update-cons, custom-dirlocals-symbol-action)
(custom-dirlocals-change-file, custom-dirlocals--set-widget-vars)
(custom-dirlocals-get-options, custom-dirlocals-validate): New
functions.
(custom-dirlocals-with-buffer): New macro.
(Custom-dirlocals-revert-buffer, Custom-dirlocals-save)
(customize-dirlocals): New commands.

* doc/emacs/custom.texi (Directory Variables): Document
customize-dirlocals.

* etc/NEWS: Announce.

10 months agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 28 Oct 2023 09:06:21 +0000 (05:06 -0400)]
Merge from origin/emacs-29

aa253c533d2 ; Fix broken links to gmane.org
cc3e436c822 Change news.gmane.org to news.gmane.io
297fe945c57 Fix minor defcustom issues in Gnus (Bug#66715)
3beb5f5e240 ; * doc/misc/gnus.texi: Fix unmatched quote in gnus doc. ...
85d08d5788e Minor connection-local variables fixes
79d8328ca4a Make Dired honor `insert-directory-program´ with globs
43127294e13 Fix typo in url-privacy-level :type
380f8574ef5 * lisp/vc/log-view.el (log-view-mode-menu): Quote derived...

10 months ago; Merge from origin/emacs-29
Eli Zaretskii [Sat, 28 Oct 2023 08:56:23 +0000 (04:56 -0400)]
; Merge from origin/emacs-29

The following commit was skipped:

5d1e6f759f2 * lisp/tab-bar.el: Fix the close button with auto-width (...

10 months agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 28 Oct 2023 08:56:22 +0000 (04:56 -0400)]
Merge from origin/emacs-29

5f60913208f Fix State button for customize-icon (Bug#66635)
27c71979ff1 ; Another Texinfo fix
889a550ca08 ; Fix Texinfo warnings
893c344b4e4 Fix the use of adaptive-fill-regexp in treesit indent preset
1098c114b74 Fix treesit-install-language-grammar (bug#66673)
491ee428c08 Fix treesit-explore-mode (bug#66431)
ee043a2703d tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the ...

10 months ago; * lisp/dnd.el (dnd-protocol-alist): Correct typo.
Po Lu [Sat, 28 Oct 2023 06:43:56 +0000 (06:43 +0000)]
; * lisp/dnd.el (dnd-protocol-alist): Correct typo.

10 months ago* lisp/dnd.el (dnd-protocol-alist): Update :version.
Po Lu [Sat, 28 Oct 2023 06:43:44 +0000 (06:43 +0000)]
* lisp/dnd.el (dnd-protocol-alist): Update :version.

10 months agoRender default DND file name handlers more precise
Po Lu [Sat, 28 Oct 2023 06:42:48 +0000 (06:42 +0000)]
Render default DND file name handlers more precise

* lisp/dnd.el (dnd-protocol-alist): Redefine file name handlers
to match solely the local or remote URIs they understand.
(dnd-handle-multiple-urls): Prevent calling the same handler
multiple times for a single URI.

* lisp/gnus/mml.el (mml-dnd-protocol-alist): Apply an anologous
adjustment here.  Delete now redundant redefinition of
dnd-open-file.
(mml-dnd-attach-file): Inquire whether to apply the default
disposition and such only once even if more than one file is
dropped.

* test/lisp/dnd-tests.el (dnd-tests-receive-multiple-urls)
(dnd-tests-default-file-name-handlers): New tests.

10 months agoSupport for menu bar in window_from_coordinates
Manuel Giraud [Sat, 21 Oct 2023 12:36:24 +0000 (14:36 +0200)]
Support for menu bar in window_from_coordinates

* src/window.h:
* src/window.c (window_from_coordinates): In the no toolkit
build, add support for the menu bar window.  Add a new
'menu_bar_p' argument so the function's signature has changed.
All callers changed.

* src/androidterm.c (handle_one_android_event):
* src/haikuterm.c (haiku_read_socket):
* src/keyboard.c (make_lispy_position):
* src/nsterm.m ([EmacsView mouseDown:]):
* src/pgtkterm.c (button_event):
* src/w32term.c (w32_read_socket):
* src/xdisp.c (note_mouse_highlight):
* src/xterm.c (handle_one_xevent): Set menu_bar_p to true.

10 months ago(auth-source-backend): Don't pass obsolete "name" arg
Stefan Monnier [Sat, 28 Oct 2023 05:17:03 +0000 (01:17 -0400)]
(auth-source-backend): Don't pass obsolete "name" arg

* lisp/auth-source.el (auth-source-backends-parser-file)
(auth-source-backends-parser-macos-keychain)
(auth-source-backends-parser-secrets): Remove unused "name" argument
to `auth-source-backend` constructor.

10 months agoMinor adjustments to Android drag and drop and content URIs
Po Lu [Sat, 28 Oct 2023 02:02:58 +0000 (10:02 +0800)]
Minor adjustments to Android drag and drop and content URIs

* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
<dndXPosition, dndYPosition>: New fields initialized to -1.
(onDragEvent): Remember the position of the previous event to
avoid sending duplicates.

* src/androidvfs.c (EMACS_PATH_MAX): New define.
(android_saf_tree_rename, android_saf_tree_opendir)
(android_name_file, android_fstatat, android_faccessat)
(android_fchmodat, android_readlinkat): Use EMACS_PATH_MAX where
SAF file names might be encountered.

10 months ago(c-initialize-cc-mode): Be slightly more explicit
Stefan Monnier [Sat, 28 Oct 2023 01:17:38 +0000 (21:17 -0400)]
(c-initialize-cc-mode): Be slightly more explicit

* lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Don't depend on
the fact that `post-text-conversion-hook` is "local only".

10 months ago(provided-mode-derived-p): Fix alias case
Stefan Monnier [Sat, 28 Oct 2023 00:18:54 +0000 (20:18 -0400)]
(provided-mode-derived-p): Fix alias case

The new handling of aliases in `provided-mode-derived-p`
introduced in Emacs-28.1 caused a regression where
(provided-mode-derived-p MODE MODE) returns nil if MODE is an alias.
Rework the loop so we consider an alias as a kind of parent.

* lisp/subr.el (provided-mode-derived-p): Step over aliases separately.

* test/lisp/subr-tests.el (subr-tests--derived-mode-1)
(subr-tests--derived-mode-2): Move out of `provided-mode-derived-p`
and give them properly namespaced names.
(provided-mode-derived-p): Add more tests for aliases.

10 months agoTidy up ERC's internal text-property API
F. Jason Park [Sat, 2 Sep 2023 20:43:22 +0000 (13:43 -0700)]
Tidy up ERC's internal text-property API

* lisp/erc/erc-fill.el (erc-fill--spaced-commands): Remove unused
internal variable originally intended for ERC 5.6.
(erc-fill): Check for `erc-msg' being `msg', which carries the same
meaning as `erc-cmd' being `PRIVMSG' or `NOTICE', except that inserted
outgoing messages now no longer normally have an `erc-cmd' property.
(erc-fill-wrap-mode, erc-fill-wrap-disable): Kill
`erc-fill--wrap-last-msg'.
(erc-fill--wrap-max-lull): Convert from buffer-local to normal
variable.
(erc-fill--wrap-continued-message-p): Rework slightly to guard against
resetting the "last speaker" marker when the `erc-ephemeral' text
property is present.  This tells insert- and send-related hook members
to pretend the current message doesn't exist when performing stateful
operations.  That is, modules should expect the message being inserted
to possibly disappear or be replaced.  Also, look for `erc-msg' being
`msg' instead of `erc-cmd' being `PRIVMSG', and fix bug involving only
checking `erc-ctcp' in the current message.
* lisp/erc/erc-stamp.el (erc-add-timestamp): Don't insert timestamps
when the `erc-ephemeral' text property is present.
* lisp/erc/erc.el (erc--msg-props): Add doc string explaining the
purpose of this variable and the various text properties most commonly
present in its value.
(erc--msg-prop-overrides): Add doc string.
(erc-send-action): Don't set `erc-cmd' prop on outgoing CTCP ACTIONs.
(erc-display-message): Reverse overrides to prefer items toward the
front of the alist.
(erc-process-ctcp-query): Include existing overrides from environs.
(erc-send-current-line): Include existing overrides from environs.
(erc-display-msg): Fix doc string and reverse overrides.
* test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg):
Remove stray comment.
(erc-fill-tests--save-p): Set value from environment variable.
(erc-fill-tests--compare): Limit writing snapshots to one test at a
time.
(erc-fill-wrap--merge-action): Fix expected output for non-action
messages that follow action messages.  These were previously merged
but escaped detection.
* test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
(Bug#60936)

10 months agoUse marker for max pos in erc--traverse-inserted
F. Jason Park [Sat, 21 Oct 2023 20:53:46 +0000 (13:53 -0700)]
Use marker for max pos in erc--traverse-inserted

* lisp/erc/erc-stamp.el (erc-stamp--propertize-left-date-stamp): Run
`erc-stamp--insert-date-hook' separately here instead of via
`erc-insert-modify-hook'.
(erc-stamp--insert-date-stamp-as-phony-message): Don't include value
of `erc-stamp--insert-date-hook' in let-bound `erc-insert-modify-hook'
because its members can run twice if buffer-local.  Remove
`erc-send-modify-hook' because it only runs via `erc-display-msg'.
Shadow "pre" and "done" hooks because they don't expect to run in a
narrowed buffer.  Call getter for `erc-stamp--current-time'.
(erc-stamp--lr-date-on-pre-modify,
erc-insert-timestamp-left-and-right): Use function form of
`erc-stamp--current-time' for determining current time stamp.
* lisp/erc/erc.el (erc--get-inserted-msg-bounds): Fix off-by-one like
thinko.
(erc--traverse-inserted): Create temporary marker when END is a buffer
position so that insertions and deletions are accounted for in
the terminating condition.
(erc--delete-inserted-message): New function.
* test/lisp/erc/erc-tests.el (erc--delete-inserted-message): New test.
(erc--update-modules/unknown): Improve readability slightly.
* test/lisp/erc/resources/erc-d/erc-d-t.el (erc-d-t-make-expecter):
Indicate assertion flavor in error message.  (Bug#60936)

10 months agoIgnore date stamps completely in erc-track
F. Jason Park [Tue, 24 Oct 2023 04:59:25 +0000 (21:59 -0700)]
Ignore date stamps completely in erc-track

* etc/ERC-NEWS: Mention that date stamps no longer optionally affect
the mode line.  Also mention but discourage new variable
'erc-stamp-prepend-date-stamps-p'.
* lisp/erc/erc-stamp.el (erc-stamp-prepend-date-stamps-p): New
variable, an escape hatch to allow date stamps to once again be
prepended to messages.
(erc-insert-timestamp-left-and-right): Don't insert stamps as
independent messages when legacy support flag
`erc-stamp-prepend-date-stamps-p' is non-nil.
* lisp/erc/erc-track.el (erc-track--skipped-msgs): New internal
variable.
(erc-track-modified-channels): In previous versions, a date stamp
attached to a message for an IRC command in `erc-track-exclude-types'
would have no effect on the mode line.  That they were able to
otherwise was probably a bug.  Regardless, this distinction was lost
for the worse after date stamps became independent messages with
c68dc7786fc "Manage some text props for ERC insertion-hook members".
To sidestep this regression, the `track' module will ignore date
stamps completely from now on.  Thanks to Corwin Brust for spotting
this.
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--left/display-margin-mode): Remove redundant
binding.
(erc-scenarios-stamp--legacy-date-stamps): New test.  (Bug#60936)

10 months ago; * lisp/erc/erc.el (erc-after-connect): Remove package-version.
F. Jason Park [Tue, 24 Oct 2023 02:33:32 +0000 (19:33 -0700)]
; * lisp/erc/erc.el (erc-after-connect): Remove package-version.

10 months agoBe slightly more aggressive with erc-scrolltobottom-all
F. Jason Park [Wed, 25 Oct 2023 01:18:50 +0000 (18:18 -0700)]
Be slightly more aggressive with erc-scrolltobottom-all

* lisp/erc/erc-goodies.el (erc--scrolltobottom-on-post-command):
Redo obsolete doc string.
(erc--scrolltobottom-at-prompt-minibuffer-active,
erc--scrolltobottom-on-win-conf-change): Rename former to latter to
better reflect actual role.  Remove conditional guard so it always
runs.
(erc--scrolltobottom-setup): Set `scroll-step' locally when a user
hasn't customized `scroll-conservatively'.  Update
`window-configuration-change-hook' member name.  (Bug#64855)

10 months ago; Another fix for profiler.c
Eli Zaretskii [Fri, 27 Oct 2023 17:47:01 +0000 (20:47 +0300)]
; Another fix for profiler.c

* src/profiler.c: Reshuffle functions and declarations to compile
also when PROFILER_CPU_SUPPORT is not defined.  (Bug#66774)

10 months agoFix compilation error in profiler.c
Eli Zaretskii [Fri, 27 Oct 2023 15:26:27 +0000 (18:26 +0300)]
Fix compilation error in profiler.c

* src/profiler.c (memory): Declare outside of the
PROFILER_CPU_SUPPORT conditional.  (Bug#66774)

10 months ago; Merge from origin/emacs-29
Michael Albinus [Fri, 27 Oct 2023 13:28:45 +0000 (15:28 +0200)]
; Merge from origin/emacs-29

The following commit was skipped:

5d1e6f759f2 * lisp/tab-bar.el: Fix the close button with auto-width (...

10 months agoMerge from origin/emacs-29
Michael Albinus [Fri, 27 Oct 2023 13:28:43 +0000 (15:28 +0200)]
Merge from origin/emacs-29

5f60913208f Fix State button for customize-icon (Bug#66635)
27c71979ff1 ; Another Texinfo fix
889a550ca08 ; Fix Texinfo warnings
893c344b4e4 Fix the use of adaptive-fill-regexp in treesit indent preset
1098c114b74 Fix treesit-install-language-grammar (bug#66673)
491ee428c08 Fix treesit-explore-mode (bug#66431)
ee043a2703d tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the ...

10 months ago* lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-".
Michael Albinus [Fri, 27 Oct 2023 13:18:36 +0000 (15:18 +0200)]
* lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-".

10 months ago; Fix style of error messages in pdumper.c
Eli Zaretskii [Fri, 27 Oct 2023 12:37:34 +0000 (15:37 +0300)]
; Fix style of error messages in pdumper.c

* src/pdumper.c (dump_buffer, dump_do_dump_relocation)
(dump_native_comp_unit): Make the style of error messages more
consistent.

10 months ago* src/pdumper.c (dump_buffer): Print message when aborting (bug#66743)
Ihor Radchenko [Thu, 26 Oct 2023 11:52:32 +0000 (14:52 +0300)]
* src/pdumper.c (dump_buffer): Print message when aborting (bug#66743)

When the buffer contains overlays, it cannot be dumped.  Print a
clear message describing the reason, instead of just aborting.

10 months agoSubstitute eassert for assert throughout Android code
Po Lu [Fri, 27 Oct 2023 10:44:15 +0000 (18:44 +0800)]
Substitute eassert for assert throughout Android code

* src/android.c (android_init_emacs_service)
(android_init_emacs_pixmap, android_init_graphics_point)
(android_init_emacs_drawable, android_init_emacs_window)
(android_init_emacs_cursor, android_destroy_handle)
(android_create_window, android_init_android_rect_class)
(android_init_emacs_gc_class, android_begin_query):

* src/androidselect.c (android_init_emacs_clipboard)
(android_init_emacs_desktop_notification):

* src/androidterm.c (getExtractedText)
(android_get_surrounding_text_internal):

* src/androidvfs.c (android_vfs_init): Replace assert with
eassert.

10 months agoMention additional return values for framep et al
Po Lu [Fri, 27 Oct 2023 03:17:47 +0000 (11:17 +0800)]
Mention additional return values for framep et al

* doc/lispref/frames.texi (Frames, Multiple Terminals): Don't
omit mentions of Android or Haiku.

10 months agoCorrect order of arguments to dnd-handle-multiple-urls
Po Lu [Fri, 27 Oct 2023 00:25:43 +0000 (08:25 +0800)]
Correct order of arguments to dnd-handle-multiple-urls

* lisp/term/android-win.el (android-handle-dnd-event): Pass
new-uri-list before action.

10 months agoFix `browse-url-default-scheme` custom :type
Stefan Kangas [Thu, 26 Oct 2023 21:58:05 +0000 (23:58 +0200)]
Fix `browse-url-default-scheme` custom :type

* lisp/net/browse-url.el (browse-url-default-scheme): Fix custom
:type.

10 months ago; cperl-mode.el: Remove a duplicate defvar
Harald Jörg [Thu, 26 Oct 2023 19:55:31 +0000 (21:55 +0200)]
; cperl-mode.el: Remove a duplicate defvar

* lisp/progmodes/cperl-mode.el (imenu-max-items): Remove duplicate
defvar.

10 months agoRemove highlighting trailing whitespace from cperl-mode
Stefan Kangas [Thu, 26 Oct 2023 19:09:06 +0000 (21:09 +0200)]
Remove highlighting trailing whitespace from cperl-mode

* lisp/progmodes/cperl-mode.el (cperl-invalid-face): Make
obsolete in favor of 'show-trailing-whitespace'.
(cperl-init-faces): No longer highlight trailing whitespace
separately.
(cperl-praise, cperl-tips-faces): Update documentation for above
change.

10 months ago; Update item numbering in cperl-praise
Stefan Kangas [Thu, 26 Oct 2023 18:55:44 +0000 (20:55 +0200)]
; Update item numbering in cperl-praise

* lisp/progmodes/cperl-mode.el (cperl-praise): Remove retired item and
update numbering.

10 months agoRemove link to Perl info documentation
Stefan Kangas [Thu, 26 Oct 2023 18:53:09 +0000 (20:53 +0200)]
Remove link to Perl info documentation

* lisp/info-look.el: Remove link to Perl info documentation.  It is no
longer distributed with Perl, nor is it available from CPAN.

10 months ago* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.
Michael Albinus [Thu, 26 Oct 2023 13:55:15 +0000 (15:55 +0200)]
* doc/misc/tramp.texi (Traces and Profiles): Fix indentation.

10 months agoFlymake: protect against problematic invalid diagnostics
João Távora [Thu, 26 Oct 2023 13:20:41 +0000 (14:20 +0100)]
Flymake: protect against problematic invalid diagnostics

If a backend reports a diagnostic which is out of bounds, it still
lives in flymake--state and will still be cleaned up in the next run
of flymake--publish-diagnostics.  But if flymake--highlight-line
doesn't give it an overlay (which it didn't until now), things will
break afterwards.

See bug#66759 and https://github.com/joaotavora/eglot/discussions/1311

* lisp/progmodes/flymake.el (flymake--highlight-line): Set
flymake--diag-overlay earlier.
(Version): Bump to 1.3.7.

10 months agoProperly respond to drops observing the Motif protocol
Po Lu [Thu, 26 Oct 2023 11:49:40 +0000 (19:49 +0800)]
Properly respond to drops observing the Motif protocol

* lisp/pgtk-dnd.el (pgtk-dnd-handle-file-name):

* lisp/x-dnd.el (x-dnd-handle-file-name): Correct order of
arguments to d-h-m-u.

10 months agoCorrect typos in the manuals
Po Lu [Thu, 26 Oct 2023 11:46:32 +0000 (19:46 +0800)]
Correct typos in the manuals

* doc/misc/tramp.texi (Traces and Profiles): Don't mimic
@enumerate with @indentedblock, which is absent from Texinfo
4.13.

* doc/misc/use-package.texi (Global keybindings): Remove stray
comma after @xref.

10 months agoEnable DND handlers to receive more than one URI at a time
Po Lu [Thu, 26 Oct 2023 11:37:58 +0000 (11:37 +0000)]
Enable DND handlers to receive more than one URI at a time

* doc/lispref/frames.texi (Drag and Drop): Illustrate the effect
of the dnd-multiple-handler property and how convergent handlers
are reconciled.

* etc/NEWS (Lisp Changes in Emacs 30.1): Announce this change.

* lisp/dnd.el (dnd-protocol-alist): Bring doc string up to date.
(dnd-handle-one-url): Obsolete this function.
(dnd-handle-multiple-urls): New function.

* lisp/pgtk-dnd.el (pgtk-dnd-handle-uri-list)
(pgtk-dnd-handle-file-name):

* lisp/term/android-win.el (android-handle-dnd-event):

* lisp/term/haiku-win.el (haiku-drag-and-drop):

* lisp/term/ns-win.el (ns-drag-n-drop):

* lisp/term/w32-win.el (w32-handle-dropped-file):

* lisp/x-dnd.el (x-dnd-handle-uri-list, x-dnd-handle-file-name):
Reimplement in terms of `dnd-handle-multiple-uris'.

* lisp/term/pgtk-win.el (pgtk-drag-n-drop)
(pgtk-drag-n-drop-other-frame, pgtk-drag-n-drop-as-text): Efface
detritus that remained after the removal of the old PGTK drag
and drop implementation.

* test/lisp/dnd-tests.el (ert-x, dnd-tests-list-1)
(dnd-tests-list-2, dnd-tests-list-3, dnd-tests-list-4)
(dnd-tests-local-file-function, dnd-tests-remote-file-function)
(dnd-tests-http-scheme-function, dnd-tests-browse-url-handler)
(dnd-tests-receive-multiple-urls): New tests.

10 months agocperl-mode.el: Make commands and options for Perl info pages obsolete.
Harald Jörg [Thu, 26 Oct 2023 10:06:12 +0000 (12:06 +0200)]
cperl-mode.el: Make commands and options for Perl info pages obsolete.

The Perl documentation in info format is no longer distributed with Perl,
nor is it available from CPAN.   Point to cperl-perldoc instead.

* lisp/progmodes/cperl-mode.el (cperl-info-page): Make obsolete.
(cperl-tips): Remove outdated instructions to get Perl info
sources from the docstring.
(cperl-praise): Remove advertising the info interface in the
docstring.
(cperl-mode-map): Replace bindings to `cperl-info-on-command' and
`cperl-info-on-current-command' by `cperl-perldoc'.
(cperl-menu): Remove menu entries pointing to the Perl info page.
(cperl-mode): Remove explanation of the Perl info commands from
the docstring.
(cperl-info-on-command, cperl-info-on-current-command),
(cperl-imenu-info-imenu-search, cperl-imenu-on-info): Declare the
commands obsolete.

* etc/NEWS: Describe the obsoletion of Perl info commands.

10 months agoRevise selection documentation
Po Lu [Thu, 26 Oct 2023 04:50:19 +0000 (04:50 +0000)]
Revise selection documentation

* doc/lispref/frames.texi (Window System Selections):
(X Selections):

* lisp/select.el (selection-coding-system): Correct
misunderstandings about the nature of selection-coding-system
under X.

10 months agoMollify byte compiler in builds without SQLite
Po Lu [Thu, 26 Oct 2023 02:52:23 +0000 (02:52 +0000)]
Mollify byte compiler in builds without SQLite

* lisp/sqlite-mode.el (sqlite-open): New declare-function.

10 months agoSimplify sigil font-lock match for elixir-ts-mode
Wilhelm H Kirschbaum [Sat, 7 Oct 2023 08:37:49 +0000 (10:37 +0200)]
Simplify sigil font-lock match for elixir-ts-mode

There is no need to match on specific sigils, except for regex.

* lisp/progmodes/elixir-ts-mode.el
(elixir-ts--font-lock-settings): Update sigil match (bug#64275).

10 months agoTweak the DOI URL and the description
Dmitry Gutov [Wed, 25 Oct 2023 23:38:56 +0000 (02:38 +0300)]
Tweak the DOI URL and the description

* lisp/emacs-lisp/smie.el: Use a friendlier (HTTPS) DOI URL.  And
fix the year in the description.

10 months agoSupport HTTPS links in newsticker extra elements
Stefan Kangas [Wed, 25 Oct 2023 21:26:37 +0000 (23:26 +0200)]
Support HTTPS links in newsticker extra elements

* lisp/net/newst-reader.el (newsticker--do-print-extra-element):
Support HTTPS links.

10 months ago; Fix webjump test after recent change
Stefan Kangas [Wed, 25 Oct 2023 21:23:45 +0000 (23:23 +0200)]
; Fix webjump test after recent change

* test/lisp/net/webjump-tests.el (webjump-tests-url-fix): Adjust
test after recent change to prefer HTTPS.