* test/lisp/erc/erc-join-tests.el
(erc-join-tests--autojoin-channels-ident): A `sleep-for' value of 0.01
caused associated tests to fail on at least one setup involving Solaris
10. The new value is arbitrary and possibly temporary, pending further
investigation. (Bug#79017)
Prepare for the next Gnulib merge by disabling the optional
support for non-Gregorian calendars recently added to Gnulib’s
nstrftime module. This would be tricky to integrate with Emacs,
as Emacs has its own (much fancier) calendar system, one that at
least for the Persian calendar sometimes disagrees with Gnulib’s,
and it’s likely not worth the trouble of reconciling the conflicts.
* src/conf_post.h (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME):
New macro, defined to false.
* admin/merge-gnulib (GNULIB_MODULES): nstrftime → nstrftime-limited.
(AVOIDED_MODULES): Add localcharset.
Near the end, also remove the files lib/calendar-ethiopian.h,
lib/calendar-persian.h, lib/calendar-thai.h, lib/calendars.h.
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
Delete the code managing `<MODE>-buffers`, since it's not used any more.
Prefer `%S` over `%S` to print arbitrary sexps.
(define-minor-mode): Make sure we use the same test to distinguish
old-style and new-style.
* lisp/files.el (auto-mode-alist): Add ".avif" to the list of
image file types supported by 'image-convert'.
Remove duplicate entry for ".webp" that was added at the top
in the list of natively supported image types.
* lisp/image.el (imagemagick-enabled-types): Add AVIF and
WEBP (the latest for the case when native libs are not installed).
* lisp/image/image-converter.el (image-converter--converters):
Add "-layers merge" to the imagemagick convert command line.
* lisp/progmodes/cperl-mode.el (cperl--sub-name-generated-rx):
Simplify captures to account for the :writer attribute. Parsing
is done later.
(cperl-imenu-sub-keywords): Remove attributes which generate subs
(cperl-imenu--create-perl-index): Analyze field declarations for
autogenerated methods
(cperl-init-faces): Add "all" and "any" to the list of functions
(cperl-short-docs): Add short docs for "all" and "any"
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-autogenerated-reader-rx):
Adjust for modified rx form due to ":writer" support
(cperl-test-imenu-index): Add tests for autogenerated writer
accessors (in grammar.pl)
* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add code samples
for ":writer"
* etc/NEWS: Announce that CPerl mode supports Perl 5.42.
* lisp/erc/erc-services.el: Fix shape of option in commentary example.
Existing value didn't pass `setopt' validation and raised an error
during successful lookup in `erc-nickserv-get-password'.
(erc-nickserv-passwords, erc-nickserv-identify-autodetect): Update doc
string by removing erroneous constraint, which was no longer applicable
following c6eb114a42 "ERC: NickServ:
Prompt for password last, overall simplifications (bug#46777)".
(erc-nickserv-identify): Simplify doc and guarantee t as return value on
success rather than rely on unadvertised behavior from other API
functions.
* lisp/erc/erc-notify.el (erc-querypoll-mode, erc-querypoll-enable)
(erc-querypoll-disable): Override `erc-query-table-synced-predicate'
when mode is active.
(erc--queries-current-p): Remove method.
(erc--querypoll-active-p): New function.
* lisp/erc/erc-speedbar.el (erc-speedbar-buttons)
(erc-speedbar-insert-target): Call function-valued variable
`erc--query-table-synced-predicate' instead of its now default value
`erc--queries-current-p' directly.
* lisp/erc/erc.el (erc--query-table-synced-predicate): New variable.
(erc--queries-current-p, erc--query-participant-present-p): Convert
former from method to normal function and rename to latter. Original
was added as part of bug#70928.
* lisp/erc/erc-join.el (erc-autojoin-channels-delayed): Only cancel
`erc--autojoin-timer' in the server buffer in which it's local. After
Emacs 28 brought commit fc66ec3322 "Prefer
defvar-local in erc", customizing `erc-autojoin-timing' to `ident' led
to ERC emitting redundant JOINs before `erc-autojoin--join' was factored
out. Additionally, don't bother binding options around the call to
`erc-autojoin-channels' to shape its behavior, preferring instead to
call the internal workhorse function directly. Ever since bug#5521
introduced those options, the logic in `erc-autojoin-channels' has
ignored `erc-autojoin-delay' anyway, so long as `erc-autojoin-timing'
isn't `ident'. This change may break third party advice.
(erc-autojoin-after-ident): Restore code to cancel timer. It was
erroneously deleted in 959fbcf34b "favor
network identities in erc-join".
* test/lisp/erc/erc-join-tests.el: Require erc-tests-common atop file so
tests can take advantage of common utilities.
(erc-autojoin-channels--connect): Replace with a function and three
separate tests.
(erc-join-tests--autojoin-channels-connect): New function.
(erc-autojoin-channels/server, erc-autojoin-channels/network)
(erc-autojoin-channels/nomatch): New tests.
(erc-autojoin-channels--delay): Replace with a function and three
separate tests. Remove guard to skip test on Solaris.
(erc-join-tests--autojoin-channels-ident): New function.
(erc-autojoin-channels-delayed/server)
(erc-autojoin-channels-delayed/network)
(erc-autojoin-channels-delayed/nomatch): New tests.
(erc-autojoin-channels--ident): Replace with function and two separate
tests.
(erc-join-tests--autojoin-after-ident): New function.
(erc-autojoin-after-ident/server)
(erc-autojoin-after-ident/network): New tests.
(erc-join-tests--autojoin-add--common)
(erc-join-tests--autojoin-add): Rename former to latter.
(erc-autojoin-add--network)
(erc-autojoin-add--network-extended-syntax)
(erc-autojoin-add--network-id): Adjust arguments to fixture.
(erc-autojoin-add--server): Use common utils.
(erc-join-tests--autojoin-remove--common)
(erc-join-tests--autojoin-remove): Rename former to latter.
(erc-autojoin-remove--network)
(erc-autojoin-remove--network-id): Adjust args for fixture.
(erc-autojoin-remove--server): Use common utils.
* test/lisp/erc/erc-scenarios-join-timing.el: New file.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common--run-in-term): In subprocess, don't use failure
tally as exit status unless body form succeeds.
* test/lisp/erc/resources/erc-tests-common.el
(erc-tests-common-init-server-proc): Use `make-process' instead of
`start-process'.
(erc-tests-common-make-server-buf): Use `erc-server-current-nick' to
create the `erc-networks--id' as a `erc-networks--id-qualifying'
instance, which is more realistic than a "fixed" variant.
* test/lisp/erc/resources/join/timing/connect-both.eld: New file.
* test/lisp/erc/resources/join/timing/ident-both.eld: New file.
(Bug#79017)
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Do not set "TERM",
"PROMPT_COMMAND" and "PS1".
* lisp/net/tramp.el (with-tramp-local-environment): Do not override
`process-environment'. Set "TERM", "PROMPT_COMMAND", "PS1" and
"INSIDE_EMACS". (Bug#79103)
* lisp/net/trampver.el (tramp-inside-emacs): Remove duplicate entries.
lisp/emacs-lisp/cl-seq.el (cl-nsubstitute): restore a variable names that
were incorrectly replaced in commit 8c8ff13e, so nsubstitute on a string
returns a string instead of a vector.
* test/lisp/vc/vc-tests/vc-tests.el (project, cl-lib): Require.
(vc-test--other-working-trees): Bind project-list-file to a
writeable file name.
(vc-test-hg07-other-working-trees): Use vc-hg-global-switches to
enable the share extension.
* lisp/net/newst-plainview.el (newsticker-hide-old-feed-header):
Define that new user option
(newsticker-mode-map): Add the new bindings related to that new
user option.
(newsticker-buffer-update): Hide the old feeds if the new user
option is true.
(newsticker-hide-old-feed-header): Define a function to hide the
old feeds.
(newsticker-show-old-feed-header): Define a function to restore
them.
(newsticker--old-feed-p): Define a function to check if a feed is
old.
(newsticker--buffer-do-insert-text): Set age of feed to old if
applicable.
(newsticker--buffer-set-invisibility): Update the function to
account for the fact that there are two lines (not just one) to
hide feeds.
* etc/NEWS: Announce the new user option
'newsticker-hide-old-feed-header' to hide old feeds. (Bug#78305)
The "Macro %s unrecognized, won't work in file" message
happened only for macros defined to `nil`, and the code handling
"unrecognized" code was split with the function part is
`byte-compile-file-form-defmumble` and the macro part in
`byte-compile-file-form-defalias`, so straighten it out
and simplify a bit.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
Don't modify `byte-compile-*-environment` here.
(byte-compile-file-form-defalias): Do it here instead.
Use `macroexp-quote`. Merge the two "unrecognized macro" warnings.
This does not change behavior.
* src/emacs.c (follow_if_symlink): New static function, as a
vehicle for commentary explaining the deal with readlink and realpath.
(find_emacs_executable): Use it.
* lisp/mail/rmailmm.el (rmail-mime-save-action): New user
option.
(rmail-mime-save): Use it.
* doc/emacs/rmail.texi (Rmail Display): Document it (bug#78971).
The new 'borders-respect-alpha-background' frame parameter, when
set to 't', will make window dividers and internal borders
respect the 'alpha-background' frame parameter. This allows
transparent gaps between windows.
* doc/lispref/frames.texi (Font and Color Parameters):
Document the change.
* src/frame.c (frame_parm_table, syms_of_frame)
(gui_set_borders_respect_alpha_background):
* src/frame.h (struct frame): Add frame parameter.
* src/androidfns.c (x_create_frame, android_create_tip_frame)
(android_frame_parm_handlers):
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
(haiku_frame_parm_handlers):
* src/nsfns.m (ns_frame_parm_handlers, x_create_frame):
* src/w32fns.c (x_create_frame, w32_create_tip_frame)
(w32_frame_parm_handlers): Add dummy parameters for backends
that don't support opacity.
* src/pgtkfns.c (pgtk_frame_parm_handlers, x_create_frame)
(pgtk_create_tip_frame):
* src/pgtkterm.c (pgtk_draw_window_divider):
* src/xfns.c (x_create_frame, x_create_tip_frame)
(x_frame_parm_handlers)
* src/xterm.c (x_draw_window_divider)
(x_clear_under_internal_border): Implement parameter on backends
that support opacity.
* lisp/vc/vc-dispatcher.el (vc-do-command): Don't append " ." to
'full-command' when FILES is nil because the command we actually
run doesn't have "." as a final argument in that case.
* src/nsterm.m (ns_draw_fringe_bitmap): Move the call to ns_focus out of
the if for overlay_p and rename the rect from clearRect to bmpRect to
make it's purpose clearer.
* src/nsterm.m (ns_define_fringe_bitmap): Replace the fringe bitmap
"tracing" method to a true tracing method. This should make the
resulting vector simpler and therefore faster to draw.
a44e9139c2 loaddefs-generate--rubric: Note about committing ldefs-bo...
e4908623f2 ; Fix documentation of 'other-window'
5f3cbd62b1 ; * lisp/international/quail.el (quail-insert-kbd-layout)...
47deb38f21 ; face-font-family-alternatives, fixed-pitch: Comments.
dd29b0ab66 Fix Eshell call to 'string-suffix-p' when checking for tr...
cbfc095ed4 * etc/PROBLEMS: Describe how to work around screen reader...
8f00d36b63 (gnus)Scoring Tips: New tip regarding header continuation...
* lisp/filenotify.el (file-notify--rm-descriptor):
Use `insert-special-event'.
* lisp/net/tramp-sh.el (tramp-bundle-read-file-names): Fix docstring.
(tramp-sh-gio-monitor-process-filter): Extend error strings.
* test/infra/Dockerfile.emba (emacs-base): Install python3.
* test/lisp/filenotify-tests.el (auto-revert-buffer-list): Declare.
(file-notify--test-rootdir): New defvar. Replace all uses of
`temporary-file-directory' by it.
(file-notify--test-cleanup): Set `auto-revert-buffer-list' to nil.
(file-notify--test-monitor): Check also for `process-live-p'.
Skip test, if the monitor cannot be determined.
(file-notify--deftest-remote): Do not call
`tramp-cleanup-connection', this is done in
`file-notify--test-cleanup' already.
(with-file-notify-test): New defmacro. Use it in (almost) all tests.
(file-notify--test-make-temp-name): Do not create
`file-notify--test-tmpdir'.
(file-notify--test-event-handler): Use `directory-file-name '.
(auto-revert-debug): Set it to nil.
(file-notify-test<nn>-*): Rewrite, using `with-file-notify-test'
and `ert-with-temp-file'.
* test/lisp/net/tramp-tests.el (tramp-test46-file-notifications):
Tag it :unstable.
* src/nsterm.m (selectedRange): Implement to fix dictation.
* etc/NEWS: Announce regression fix.
* etc/PROBLEMS: Help users recover from rejected permission.
(url-queue): New slots to hold request related variables.
(url-queue-retrieve): Capture the request related variables.
(url-queue-start-retrieve): Let bind the request related
variables. (Bug#78928)
* etc/NEWS: Announce changes.
Many variables were copied from the dynamic environment to the request
buffer, which allowed them to influence the handling of requests and
responses. But some were not, notably some of the mime-related
variables, and the user-agent and privacy variables. This made them
unreliable when dynamically bound around a call to `url-retrieve'; they
would have the desired effect when reusing an existing connection, but
not when url-http opened a new connection. In the case of reused
connections, the request construction happens in the dynamic scope of
`url-http', but in the case where a fresh connection is needed, request
construction happens outside that dynamic scope.
This commit adds the remaining variables used in request construction to
the set of buffer local variables mirroring the dynamic values from
url-http, and adds a comment describing the mechanism used and how avoid
the pitfall of inconsistent handling of dynamic bindings.
* lisp/url/url-http.el (url-http-extensions-header): New internal-ish
variable.
(url-http-create-request): Use the new variable instead of the global
one.
(url-http-idle-sentinel): Debug-log when the connection closes.
(url-http): Set up more buffer-local variants of dynamic variables in
the buffer used for the request, and add comment describing why this
copying is needed.
(Bug#61916)