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.
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.
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)
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/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.
* 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.
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)
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)
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.
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.
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'.
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.
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 ...
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.
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.
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.
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.
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)
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)
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)
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)
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 ...
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.
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.
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/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.
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.
john muhl [Tue, 10 Oct 2023 19:39:30 +0000 (14:39 -0500)]
Improve imenu support in lua-ts-mode
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Include require
statements and remove anonymous entries.
(lua-ts--named-function-p, lua-ts--require-name-function)
(lua-ts--require-p): New functions.
* lisp/speedbar.el (speedbar-supported-extension-expressions):
Add Lua to the list of supported file types. (Bug#66465)
Spencer Baugh [Sat, 19 Aug 2023 20:01:54 +0000 (16:01 -0400)]
Add toggle-window-dedicated command and mode-line-window-dedicated
It's sometimes useful to interactively make certain windows dedicated.
This allows a level of interactive control over which window
display-buffer uses.
Additionally, when a window is dedicated (even without this new
command) it can affect display-buffer behavior in ways which may be
unexpected for users. Let's display the window dedicated status in
the mode-line to help indicate what's going on.
* doc/emacs/windows.texi (Displaying Buffers): Add information about
dedicated windows and toggle-window-dedicated.
* doc/emacs/screen.texi (Mode Line): Add information about the window
dedicated indicator.
* etc/NEWS: Announce mode-line-window-dedicated and
toggle-window-dedicated.
* lisp/window.el (toggle-window-dedicated): Add. (bug#64619)
(window-prefix-map): Add C-x w d binding.
* lisp/bindings.el (mode-line-window-control): Add.
(mode-line-window-dedicated): Add.
(standard-mode-line-format): Insert mode-line-window-dedicated.
Stefan Kangas [Wed, 25 Oct 2023 10:27:31 +0000 (12:27 +0200)]
Prefer HTTPS in `M-x webjump´
* lisp/net/webjump.el (webjump-url-fix): Prefer HTTPS to HTTP.
(webjump-sites): Document the above change.
(webjump-sample-sites): Change some links to HTTP only.
Po Lu [Wed, 25 Oct 2023 02:19:36 +0000 (10:19 +0800)]
Correct computation of intermediate axis coordinates
* src/sfnt.c (sfnt_compute_tuple_scale, sfnt_vary_simple_glyph)
(sfnt_vary_compound_glyph): Correct typos involving
intermediate_end (or something of the like) being set to
intermediate_start.
Jim Porter [Tue, 10 Oct 2023 03:25:28 +0000 (20:25 -0700)]
Add a new Eshell special reference type for markers
* lisp/eshell/esh-arg.el (eshell-get-marker, eshell-insert-marker)
(eshell-complete-marker-ref): New functions...
(eshell-special-ref-alist): ... Add them to the new "marker" entry.
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Fix edge
case when 'end' is at beginning of (possibly-narrowed) buffer.
* lisp/eshell/esh-arg.el (eshell-special-ref-alist) New variable...
(eshell-special-ref-default): ... New option...
(eshell--special-ref-function): ... New function...
(eshell-parse-special-reference): ... use them.
(eshell-insert-special-reference): New function.
(eshell-complete-special-reference): Reimplement to use a nested call
to Pcomplete.
(eshell-complete-buffer-ref): New function.
* lisp/eshell/esh-proc.el (eshell-proc-initialize): Add "process"
special ref type here.
(eshell-complete-process-ref): New function.
* doc/misc/eshell.texi (Bugs and ideas): Remove now-implemented idea.
Jim Porter [Tue, 22 Aug 2023 20:13:45 +0000 (13:13 -0700)]
Support arbitrary Eshell arguments inside special references
* lisp/eshell/esh-arg.el (eshell-current-argument-plain): New variable.
(eshell-parse-special-reference): Use 'eshell-parse-arguments'.
(eshell-get-buffer): New function.
(eshell-insert-buffer-name): Properly quote the buffer name.
* lisp/eshell/esh-proc.el (eshell-read-process-name): Move to "Special
references" section.
(eshell-insert-process): Properly quote the process name.
* lisp/eshell/em-extpipe.el (eshell-parse-external-pipeline):
* lisp/eshell/esh-io.el (eshell-parse-redirection): Don't do anything
when 'eshell-argument-plain' is non-nil.
Harald Jörg [Tue, 24 Oct 2023 15:54:39 +0000 (17:54 +0200)]
; cperl-mode.el: Remove functions using mode-compile.el
mode-compile.el is no longer available from any maintained repository,
its archived version does not work since Emacs 27. The menu options
tested for availability of mode-compile and therefore were disabled,
the function was not documented.
* lisp/progmodes/cperl-mode.el (cperl-tips): Remove reference to
mode-compile.el.
(cperl-menu): Remove defunct entries requiring mode-compile.
(cperl-check-syntax): Remove function.
(cperl-extra-perl-args): Remove user option only used by cperl-check-syntax.
Stefan Kangas [Tue, 24 Oct 2023 15:28:51 +0000 (17:28 +0200)]
Make NSM warn if DH key exchange has less than 2048 bit primes
The previous default was to warn when servers supported only 1024 bit
primes in Diffie-Hellman key exchanges. This highly conservative
number was based on the observation that, in November 2018, no less
than 12.7% of servers still only supported 1024 bit primes (less than
0.1% supported only 768 and 512 bits).
Five years later, in October 2023, only 3.7 % of servers remain with
only 1024 bit support. SSL Labs summarizes: "At this time, 2048 bits
is the minimum expected strength." Therefore, it is reasonable to
start warning users about this in Emacs 30.1, at which time even fewer
servers with such poor capabilities will remain.
Note that key exchanges based on 1024 bit prime number were considered
broken for security purposes already in 2015 (see Logjam below).
For more information:
https://www.ssllabs.com/ssl-pulse/
https://en.wikipedia.org/wiki/Logjam_(computer_security)
* lisp/net/nsm.el (nsm-protocol-check--dhe-prime-kx): Bump expected
minimum number of prime bits to 2048.
Po Lu [Tue, 24 Oct 2023 13:12:32 +0000 (21:12 +0800)]
Introduce an option which controls touch screen hscroll
* doc/emacs/input.texi (Touchscreens): Document this new
function and revise this node for clarity and pithiness.
* lisp/touch-screen.el (touch-screen): New custom group.
(touch-screen-display-keyboard, touch-screen-delay)
(touch-screen-precision-scroll, touch-screen-word-select)
(touch-screen-extend-selection, touch-screen-preview-select):
Move such options to that group.
(touch-screen-enable-hscroll): New user option.
(touch-screen-handle-scroll): If it is disabled, maintain the
hscroll accumulators but refrain from scrolling the window.
Instead of modifying `frame-format` to be entirely machine-readable,
keep the original human-readable format and append a second,
machine-readable line that we remove after parsing.
* lisp/progmodes/gud.el
(gud-lldb-marker-filter): Parse the new line format and filter it out.
* lisp/progmodes/gud.el
(gud-lldb-def-python-completion-function): Rename to...
(gud--lldb-python-init-string): ...this and add modification
of `frame-format`, which seems easiest done from Python.
(gud-lldb-frame-format): Remove.
(gud-lldb-initialize): Update, remove no longer needed parts.