* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
Use connection property "hop-vector".
* lisp/net/tramp.el (tramp-get-process-attributes)
(tramp-handle-list-system-processes): Rename file property
"process-attributes" to connection property " process-attributes".
(tramp-compute-multi-hops): Check for
`tramp-sh-file-name-handler-p', it works only for this.
(tramp-action-password, tramp-process-actions): Use connection
property "hop-vector".
(tramp-read-passwd, tramp-clear-passwd): Rewrite. (Bug#74105)
Cecilio Pardo [Thu, 14 Nov 2024 08:55:56 +0000 (09:55 +0100)]
Fix drag-n-drop on MS-Windows
* src/w32fns.c (struct w32_drop_target): New member 'ref_count'.
(w32_drop_target_AddRef): Increment reference count.
(w32_drop_target_Release): Decrement reference count, and free the
target only if the reference count is zero.
(w32_createwindow): Initialize reference count. (Bug#74312)
john muhl [Sat, 19 Oct 2024 23:25:41 +0000 (18:25 -0500)]
Add song viewer to 'mpc' (Bug#74200)
* lisp/mpc.el (mpc-describe-song): New command.
(mpc-mode-map): Bind "d" to 'mpc-describe-song'.
(mpc-mode-menu): Add menu item.
(mpc-secs-to-time): Ensure secs argument is an integer.
(mpc-song-viewer-empty, mpc-song-viewer-tag):
(mpc-song-viewer-value): New face.
(mpc-song-viewer-tags): New option.
Improve font-locking and indentation in 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist):
Updated to latest version of PHP grammar.
(php-ts-mode--indent-styles): 'namespace_use_declaration' is now
correctly indented.
(php-ts-mode--operators): Support of the "argument unpacking
operator".
(php-ts-mode--font-lock-settings): 'nullsafe_member_call_expression'
is now highlighted correctly.
(php-ts-mode--comment-indent-new-line): Delete trailing whitespace
before inserting newline (see bug#73900 for more information).
Bug#74239
john muhl [Sat, 9 Nov 2024 17:01:45 +0000 (11:01 -0600)]
Fix some 'lua-ts-mode' options (Bug#74235)
* lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
(lua-ts-inferior-program): Switch to 'file' type and remove 'nil'
as a choice.
(lua-ts-inferior-lua): Ensure 'lua-ts-inferior-program' is set.
john muhl [Sun, 10 Nov 2024 17:26:33 +0000 (11:26 -0600)]
Improve comment indenting in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
Align single line comments with the surrounding context.
(lua-ts--comment-first-sibling-matcher): Check that comment is
the first sibling.
(lua-ts--multi-line-comment-start): New function.
* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
Add tests. (Bug#74298)
Stefan Kangas [Wed, 13 Nov 2024 22:26:41 +0000 (23:26 +0100)]
Delete commented out help--describe-vector implementation
This was an attempt at lifting 'help--describe-vector' to Lisp that
turned out to be prohibitively slow. It is still there in the Git log
if we need to refer back to it. Currently, it is just dead weight, so
delete it.
Stefan Monnier [Wed, 13 Nov 2024 03:58:53 +0000 (22:58 -0500)]
(cl-labels): Add support for (FUNC EXP) bindings (bug#59786)
Allow `cl-labels` to use the same (FUNC EXP) bindings as were already added
to `cl-flet` in Emacs-25. The Info doc (mistakenly) already documented this
new feature.
* lisp/emacs-lisp/cl-macs.el (cl--self-tco-on-form): New function.
(cl-labels): Use it to add support for (FUNC EXP) bindings.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test for
tail-recursive (FUNC EXP) bindings.
Michael Albinus [Sun, 10 Nov 2024 11:35:15 +0000 (12:35 +0100)]
Precise password cache in Tramp
* doc/misc/tramp.texi (Password handling):
Describe auth-source-cache-expiry and auth-source-do-cache instead
of password-cache-expiry and password-cache. (Bug#74105)
* lisp/net/tramp.el (tramp-read-passwd): Check for `auth-sources'
being non-nil.
Eli Zaretskii [Sun, 10 Nov 2024 09:48:34 +0000 (11:48 +0200)]
Fix picture-mode with full-width characters
* lisp/textmodes/picture.el (picture-insert): Don't rely on
'move-to-column' to move to the column that is its argument: this
might be false when full-width characters are involved.
Eli Zaretskii [Sun, 10 Nov 2024 08:56:40 +0000 (10:56 +0200)]
Fix movement to the left in picture-mode
* lisp/textmodes/picture.el (picture-insert): Measure width by
counting columns on display, not by using 'string-width', because
the latter is inaccurate when TABs are involved. (Bug#74255)
Stefan Kangas [Sun, 10 Nov 2024 00:29:18 +0000 (01:29 +0100)]
Don't pcomplete 'find -newerxy' flag
* lisp/pcmpl-gnu.el (pcomplete/find): Remove -newerxy flag.
This flag is not used verbatim like that, and we already complete
the "-newer" flag, which should be all that users need.
Problem reported by Juri Linkov <juri@linkov.net>.
Ola Nilsson [Mon, 4 Nov 2024 22:33:09 +0000 (23:33 +0100)]
Add functions supported by GNU Make 4.3.
* lisp/progmodes/make-mode.el (makefile-gnumake-functions-alist):
Add missing GNU Make functions, according to The GNU Make Manual
0.75 for GNU Make, and reorder the list of functions. (Bug#74207)
Joost Kremers [Thu, 30 May 2024 23:38:54 +0000 (01:38 +0200)]
vtable: allow resetting column alignment when table data changes
* lisp/emacs-lisp/vtable.el (vtable--compute-columns): If a column
was not created with an explicit 'align' property, allow changing
this property when the column data changes from numeric to
non-numeric (or vice versa). This makes it possible to add data to
an empty table, because in a table without data all columns are
assumed to be numeric and right-aligned. (Bug#73775)
* lisp/net/tramp.el (tramp-make-tramp-file-name): Don't call
`tramp-add-hops' during file name completion.
(tramp-handle-file-name-as-directory)
(tramp-handle-file-name-directory): Use `tramp-cache-undefined'
for an empty `tramp-default-proxies-alist'.
(tramp-add-hops): Extend. Remove existing entries with same
target and different proxy, if needed. (Bug#74219)
Ethan Kong [Sat, 19 Oct 2024 04:43:27 +0000 (12:43 +0800)]
Fix 'internal_equal' so that it uses at most one hash table
The old implementation passed the hash table by value in
recursive tests, which would cause each recursive level to
initialize its own hash table, causing excess memory usage.
* src/fns.c (internal_equal): Delegate to 'internal_equal_1'.
(internal_equal_1): New function; body from old 'internal_equal'.
Pass the hash table argument by reference instead of by value.
(Bug#73883)
Stephen Gildea [Fri, 8 Nov 2024 18:42:30 +0000 (10:42 -0800)]
time-stamp: minor adjustments to %P and modifier characters
* lisp/time-stamp.el (time-stamp-string-preprocess): %P variations;
allow (and ignore) "*", "E", and "O" as modifier characters.
(time-stamp-inserts-lines): safe-local-variable only if booleanp
Stefan Kangas [Fri, 8 Nov 2024 13:21:12 +0000 (14:21 +0100)]
Update special attributes for Python 3.13
* lisp/progmodes/python.el (python-font-lock-keywords-level-2)
(python--treesit-special-attributes): Update special attributes,
making it current for Python 3.13.
Robert Pluim [Thu, 7 Nov 2024 20:03:20 +0000 (21:03 +0100)]
Ensure `move-frame-functions' trigger on macOS frame resize
* src/nsterm.m ([EmacsView windowWillResize:toSize:]): Call
windowDidMove to ensure that MOVE_FRAME_EVENT events are
generated when a frame is resized. (Bug#74074)
Michael Albinus [Tue, 5 Nov 2024 14:57:42 +0000 (15:57 +0100)]
Several Tramp cleanups
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
Move setting of sentinel up.
* lisp/net/tramp-cache.el (tramp-get-connection-property)
(tramp-set-connection-property): Don't raise a debug message for
the `tramp-cache-version' key.
Cecilio Pardo [Mon, 4 Nov 2024 17:58:40 +0000 (18:58 +0100)]
Support :transform-smoothing on images (MS-Windows) (bug#57166)
* src/dispextern.h (struct image): Add field 'smoothing' for
NTGUI.
* src/image.c (image_set_transform): Assign the 'smoothing'
field of the image struct.
* src/w32gdiplus.h: Add references to more GDI+ functions.
* src/w32image.c (gdiplus_init): Add references to more GDI+
functions.
* src/w32term.c (w32_draw_image_foreground): If the image is
marked for smoothing and GDI+ is available, draw it with GDI+
bilinear interpolation.
* etc/NEWS: New entry for this change.
Stefan Kangas [Tue, 5 Nov 2024 03:19:22 +0000 (04:19 +0100)]
pcomplete/find: Support new GNU find expressions
* lisp/pcmpl-gnu.el (pcomplete/find): Add expressions from new GNU find:
"-newerxy" (4.3.3) and "-files0-from" (4.9.0). This list is now
complete as of GNU findutils 4.10.0, released on 2024-06-01.
Jim Porter [Mon, 21 Oct 2024 01:01:10 +0000 (18:01 -0700)]
Move more of Eshell range handling to the parser phase
* lisp/eshell/esh-util.el (eshell-range): New struct.
(eshell--range-string-p, eshell--string-to-range): New functions.
* lisp/eshell/esh-arg.el (eshell-parse-integer)
(eshell-parse-range-token): New functions...
(eshell-parse-argument-hook): ... add them.
(eshell--after-range-token-regexp): New defsubst.
(eshell-concat-1): Don't remove the 'number' property; we use that when
handling range arguments.
(eshell--range-token): New constant.
(eshell-unmark-range-token): New function.
* lisp/eshell/esh-var.el (eshell-parse-index): Update implementation to
use parsed range argument.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices):
Test range index using variables.
Cecilio Pardo [Mon, 28 Oct 2024 21:18:13 +0000 (22:18 +0100)]
Add support for 'yank-media' on MS-Windows
Adds the capacity to handle types different from strings to the
clipboard management functions on MS-Windows, and some logic
required to convert media types names and content to be what
yank-media and the modes that use it expect (bug#71909).
* lisp/term/w32-win.el (w32--selection-target-translations): New
variable that holds the name translations for media types.
(w32--translate-selection-target): New function, translate the
name of a media type.
(w32--translate-reverse-selection-target): New function, reverse
translation.
(w32--get-selection): Modified to translate target names when
asked for targets, and retrieve media types when asked for them.
(w32--mime-type-textual-p): New function, checks if a MIME type
is textual.
* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler):
Fixed the image save mechanism, that added line feed characters
on MS-Windows, breaking binary formats.
* src/w32image.c (gdiplus_init): Modified to fetch more
functions fromm gdiplus.
(get_encoder_clsid): Renamed to 'w32_gdip_get_encoder_clsid'
and made nonstatic.
(gdiplus_startup): Renamed to 'w32_gdiplus_startup' and
made nonstatic.
* src/w32select.c (stdfmt_name): Made global, was static
function.
(convert_dibv5_to_png): New function to convert DIBV5 clipboard
format to PNG.
(get_clipboard_format_name): New function get the name of a
format given its index.
(Fw32__get_clipboard_data_media): New function, retrieves and
converts media content.
(syms_of_w32select): Export new lisp functions.
* src/w32gdiplus.h: New file, for definitions in w32image.c
* doc/lispref/frames.texi: Updated with MS-Windows support.
* etc/NEWS: Added entry about new feature.