Paul Eggert [Wed, 20 Apr 2022 02:16:29 +0000 (19:16 -0700)]
Update from gnulib
Paul Eggert [Wed, 20 Apr 2022 02:02:05 +0000 (19:02 -0700)]
Pacify gcc -std=c99 with printf %p
* src/print.c (print_vectorlike): Assign pointer-to-function
to void * before printing it with %p, as the C standard
doesn’t bless printing function pointers with %p.
Paul Eggert [Wed, 20 Apr 2022 02:00:22 +0000 (19:00 -0700)]
Pacify gcc -std=c99
* src/sysdep.c (system_process_attributes): Use %llu instead of
%Lu for sscanf, as %llu is standard and %Lu is not, and the latter
can provoke warnings if gcc is used pedantically.
Po Lu [Wed, 20 Apr 2022 01:10:48 +0000 (09:10 +0800)]
Check for integer overflow when writing Motif targets tables
* src/xterm.c (xm_setup_dnd_targets): Check for integer overflow
when adding list to target table.
Lars Ingebrigtsen [Tue, 19 Apr 2022 16:36:04 +0000 (18:36 +0200)]
Fix previous description of fallback order
* doc/emacs/custom.texi (Specifying File Variables): Document
fallback mode order.
Lars Ingebrigtsen [Tue, 19 Apr 2022 16:21:21 +0000 (18:21 +0200)]
Document how to specify fallback modes
* doc/emacs/custom.texi (Specifying File Variables): Document
fallback mode order.
Lars Ingebrigtsen [Tue, 19 Apr 2022 16:06:31 +0000 (18:06 +0200)]
Fix regression with multiple mode: entries in the prop line
* lisp/files.el (hack-local-variables--find-variables): Use the
final mode: line (which is the same as having several mode: bits
in the header line.
Lars Ingebrigtsen [Tue, 19 Apr 2022 14:22:37 +0000 (16:22 +0200)]
Allow several mode: elements in the local variable section
* etc/NEWS (mode): Fall back on outline-mode in older Emacsen.
* lisp/files.el (hack-local-variables--find-variables): Use the
final mode: line (which is the same as having several mode: bits
in the header line.
Stefan Monnier [Tue, 19 Apr 2022 12:25:19 +0000 (08:25 -0400)]
Fix GCC warnings when CHECK_LISP_OBJECT_TYPE
* src/lisp.h (lisp_h_Qni): New macro.
(DEFUN): Use it.
* src/alloc.c (syms_of_alloc): Use it.
* src/bytecode.c (Fbyte_code): Fix Lisp_Object/int mixup.
Lars Ingebrigtsen [Tue, 19 Apr 2022 11:48:06 +0000 (13:48 +0200)]
Revert prompting changes in viper-cmd
* lisp/emulation/viper-cmd.el (viper-quote-region)
(viper-read-string-with-history, viper-query-replace): Revert
prompting changes done in
50512e3 -- the way viper prompts in
command mode is special (bug#55007).
Lars Ingebrigtsen [Tue, 19 Apr 2022 11:42:17 +0000 (13:42 +0200)]
Be more resilient against invalid headers in mml-generate-mime
* lisp/gnus/mml.el (mml-generate-mime): Don't bug out when called
with invalid headers (bug#55014).
Philip Kaludercic [Tue, 19 Apr 2022 11:16:51 +0000 (13:16 +0200)]
Fix handling of intspecs as string by rcirc-define-command
* rcirc.el (rcirc-define-command): Check if an interactive
specification is a string, in which case it was to be wrapped in a
list so that the result of its interpretation is passed as the first
argument of the command resulting from the macro expansion.
Po Lu [Tue, 19 Apr 2022 10:51:28 +0000 (18:51 +0800)]
Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays
* src/xterm.c (handle_one_xevent): Save the display alongside
the next mouse click timeout.
(x_delete_display): Clear that display here if applicable.
(x_initialize): Likewise.
Eli Zaretskii [Tue, 19 Apr 2022 09:50:01 +0000 (12:50 +0300)]
Fix dimensions of console window of restarted Emacs on MS-Windows
* src/w32.c (get_console_font_size): New function.
(w32_reexec_emacs): Call 'get_console_font_size' to set up the
dimensions of the restarted Emacs's console window to the same
values as that of the original Emacs.
Po Lu [Tue, 19 Apr 2022 07:47:34 +0000 (15:47 +0800)]
Deal with Motif drag window related races
* src/xterm.c (xm_drag_window_error_handler): New function.
(xm_get_drag_window): If a drag window was created and we have
the temp display grabbed, use that instead.
Stefan Kangas [Tue, 19 Apr 2022 04:51:47 +0000 (06:51 +0200)]
; Merge from origin/emacs-28
The following commits were skipped:
1b77362771 Avoid hangs in python-mode with debug-on-error set
4684b8e62f Fix major-mode setting regression when there's a mode: cookie
Po Lu [Tue, 19 Apr 2022 04:39:37 +0000 (04:39 +0000)]
Minor cleanups to Haiku menu code
* src/haiku_draw_support.cc (BView_SetHighColorForVisibleBell):
Delete function.
* src/haiku_font_support.cc (BFont_dat): Rename to
`BFont_metrics'.
* src/haiku_support.cc (DrawContent): Use correct UI color for
control text.
* src/haiku_support.h (HAIKU_MODIFIER_ALT): Turn into enum.
(enum haiku_modifier_specification): New enum.
* src/haikufont.c (haikufont_open, haikufont_close): Fix coding
style.
Po Lu [Tue, 19 Apr 2022 03:18:25 +0000 (11:18 +0800)]
Fix last change for GTK 2
* src/xfns.c (x_set_alpha_background):
* src/xterm.c (x_update_opaque_region): Move some ifdefs around.
Po Lu [Tue, 19 Apr 2022 03:13:11 +0000 (11:13 +0800)]
Fix opaque region treatment on GTK 3
* src/xfns.c (x_set_alpha_background):
* src/xterm.c (x_update_opaque_region): Update opaque region for
tooltip frames the correct way on GTK.
Paul Eggert [Tue, 19 Apr 2022 02:44:03 +0000 (19:44 -0700)]
Port struct Lisp_Subr to C99
* src/lisp.h (struct Lisp_Subr): Don’t use an anonymous union,
a feature missing from C99 and not supported by older OS X.
All uses changed.
Paul Eggert [Tue, 19 Apr 2022 02:29:49 +0000 (04:29 +0200)]
Port module_bignum_count_max to strict C
* src/emacs-module.c (module_bignum_count_max): Make
this a macro, not an enum, since it might not fit into
int as C99 requires.
Sean Whitton [Tue, 19 Apr 2022 02:43:32 +0000 (19:43 -0700)]
Tell those using exclusively X not to use the PGTK port
* INSTALL (Alternative window systems): Tell those using exclusively X
not to use the PGTK port.
Po Lu [Tue, 19 Apr 2022 01:15:33 +0000 (01:15 +0000)]
Fix display of glyphless characters on Haiku
* src/haikuterm.c (haiku_draw_glyph_string_foreground): Fix pen
size when drawing composite string w/o font.
(haiku_draw_glyphless_glyph_string_foreground): Correctly
display glyphless character rectangle.
Paul Eggert [Mon, 18 Apr 2022 20:08:26 +0000 (13:08 -0700)]
Use "@code{nil}" in documentation
Paul Eggert [Mon, 18 Apr 2022 19:57:40 +0000 (12:57 -0700)]
Remove obsolete footnote
Emacs no longer warns about timestamps like (1 . 1000).
Alan Third [Sun, 17 Apr 2022 20:15:05 +0000 (21:15 +0100)]
Fix glyphless glyph display on NS (bug#54970)
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): New
function.
(ns_draw_glyph_string): Use the new function.
* src/nsfont.m (nsfont_draw): Fix the location the glyphs are drawn,
and also which glyphs are drawn.
(ns_glyph_metrics): Reverse ascent and descent.
Juri Linkov [Mon, 18 Apr 2022 19:16:17 +0000 (22:16 +0300)]
; * doc/emacs/mini.texi (Completion Commands): Remove duplicate @findex.
Eli Zaretskii [Mon, 18 Apr 2022 18:04:57 +0000 (21:04 +0300)]
Minor improvements in 'restart-emacs' on MS-Windows
* src/w32.c (w32_reexec_emacs): Explicitly request a new console
for the restarted Emacs -nw, and specify its dimensions. Specify
NULL instead of security attributes, per examples on the Internet.
* src/w32console.c (initialize_w32_display): Check errors in call
to GetConsoleCursorInfo.
Alan Mackenzie [Mon, 18 Apr 2022 15:16:54 +0000 (15:16 +0000)]
Byte compiler: correct output warning message positions
Correct the algorithm for determining the warning position to get the first
symbol-with-position in byte-compile--form-stack.
* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Function
renamed and amended from byte-compile--first-symbol.
(byte-compile--warning-source-offset): Call the new function above rather than
the old one.
Lars Ingebrigtsen [Mon, 18 Apr 2022 11:36:05 +0000 (13:36 +0200)]
Make isearch-lax-whitespace a user option
* lisp/isearch.el (isearch-lax-whitespace): Make into a defcustom
(bug#20351).
Lars Ingebrigtsen [Mon, 18 Apr 2022 11:17:32 +0000 (13:17 +0200)]
Avoid hangs in python-mode with debug-on-error set
* lisp/progmodes/python.el (python-nav-end-of-statement): Avoid
using cl-assert here, because this is called from the font-lock
machinery, and if debug-on-error is set here, we'll hang Emacs
(bug#54996).
Do not merge to master.
Lars Ingebrigtsen [Mon, 18 Apr 2022 11:17:32 +0000 (13:17 +0200)]
Avoid hangs in python-mode with debug-on-error set
* lisp/progmodes/python.el (python-nav-end-of-statement): Avoid
using cl-assert here, because this is called from the font-lock
machinery, and if debug-on-error is set here, we'll hang Emacs
(bug#54996).
Lars Ingebrigtsen [Mon, 18 Apr 2022 10:58:54 +0000 (12:58 +0200)]
Make it easier to use Emacs as a script interpreter
* doc/emacs/cmdargs.texi (Initial Options): Document -x.
* lisp/startup.el (command-line-1): Add new -scripteval.
(command-line--eval-script): New function.
* src/emacs.c (main): Transform -x to -scripteval.
(standard_args): Add -x (bug#20682).
Po Lu [Mon, 18 Apr 2022 10:38:35 +0000 (18:38 +0800)]
Add missing Motif atoms
* src/xselect.c (symbol_to_x_atom):
(x_atom_to_symbol):
(syms_of_xselect): Optimize for XmTRANSFER_SUCCESS and
XmTRANSFER_FAILURE as well.
Alan Mackenzie [Mon, 18 Apr 2022 10:19:54 +0000 (10:19 +0000)]
Byte compiler: remove symbol positions from byte-switch tables
This fixes bug #54990.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Remove positions from
symbols with positions in byte-switch tables, by temporarily removing the
entries from the table, and reinserting them amended.
Lars Ingebrigtsen [Mon, 18 Apr 2022 09:53:59 +0000 (11:53 +0200)]
Clean up view-emacs-news code
* lisp/help.el (view-emacs-news): Remove workaround after fixing
mode: cookie error.
Nacho Barrientos [Mon, 18 Apr 2022 09:36:52 +0000 (11:36 +0200)]
Unify local variable initialisation in url-http
* lisp/url/url-http.el (url-http-chunked-last-crlf-missing): Treat
url-http-chunked-last-crlf-missing as any other buffer variable by
declaring and initialising it the same way as the other related
ones (bug#54989).
Copyright-paperwork-exempt: yes
Lars Ingebrigtsen [Mon, 18 Apr 2022 09:31:28 +0000 (11:31 +0200)]
Make `restart-emacs' work when Emacs is started with --chdir
* src/emacs.c (find_emacs_executable): Rename from
load_pdump_find_executable and always define.
(load_pdump): Return the executable.
(main): Store the executable.
(Fkill_emacs): Use the stored executable so that --chdir works
with relative executable names, and so that we attempt to restart
the same executable and not some other Emacs from PATH.
Lars Ingebrigtsen [Mon, 18 Apr 2022 09:02:55 +0000 (11:02 +0200)]
Improve `restart-emacs' error reporting
* src/emacs.c (Fkill_emacs): Do better error reporting on restarting.
Lars Ingebrigtsen [Mon, 18 Apr 2022 08:50:45 +0000 (10:50 +0200)]
Make "restart" erroring slightly more reliable
* src/emacs.c (Fkill_emacs): Use emacs_perror for the "restart"
errors -- we've already shut down Emacs at this point, so the
normal erroring machinery isn't reliable.
Lars Ingebrigtsen [Mon, 18 Apr 2022 08:37:14 +0000 (10:37 +0200)]
Fix major-mode setting regression when there's a mode: cookie
* lisp/files.el (hack-local-variables): Fix regression in setting
the major mode when there are mode: cookies in the file (bug#54993).
Do not merge to master.
Lars Ingebrigtsen [Mon, 18 Apr 2022 08:36:32 +0000 (10:36 +0200)]
Fix major-mode setting regression when there's a mode: cookie
* lisp/files.el (hack-local-variables): Fix regression in setting
the major mode when there are mode: cookies in the file (bug#54993).
Po Lu [Mon, 18 Apr 2022 08:08:19 +0000 (16:08 +0800)]
Stop skipping ShapeNotify events during DND on GTK+
* src/xterm.c (handle_one_xevent): Don't skip ShapeNotify events
because we can't send these events back to GDK manually.
Po Lu [Mon, 18 Apr 2022 07:55:40 +0000 (15:55 +0800)]
Clarify computation of header line vpos
* src/dispnew.c (update_text_area): Test vpos is more than 1
only if is both a tab and header line. Reported by Eli
Zaretskii <eliz@gnu.org>.
Eli Zaretskii [Mon, 18 Apr 2022 07:05:15 +0000 (10:05 +0300)]
Fix 'restart-emacs' in -nw mode on MS-Windows
* src/w32.c (openat): #ifdef away: not used.
(w32_reexec_emacs): Kludgey solution for restarting Emacs in the
"-nw" mode.
Po Lu [Mon, 18 Apr 2022 05:23:23 +0000 (13:23 +0800)]
Fix glyph skipping optimization when a tab line is enabled
* src/dispnew.c (update_text_area): Compute vpos of header line
correctly when window has tab line.
Po Lu [Mon, 18 Apr 2022 01:26:12 +0000 (09:26 +0800)]
; Fix typo in last change
* src/xterm.c (x_wm_set_size_hint): Fix typo.
Po Lu [Mon, 18 Apr 2022 01:21:45 +0000 (09:21 +0800)]
Minor cleanups to PGTK code
* src/gtkutil.c (xg_set_geometry):
(xg_frame_set_char_size):
(x_wm_set_size_hint): Rename to `xg_wm_set_size_hint'. All
callers changed.
* src/gtkutil.h: Update prototypes.
* src/pgtkfns.c (unwind_create_frame):
(Fx_create_frame):
(compute_tip_xy):
* src/pgtkterm.c (x_free_frame_resources):
(x_destroy_window):
(x_calc_absolute_position):
(x_set_offset):
(pgtk_set_window_size):
(x_display_pixel_height):
(x_display_pixel_width):
(x_set_parent_frame): Rename `x_foo' functions to `pgtk_foo'.
Get rid of some copy-pasted code from various places.
(pgtk_create_terminal): Clean up coding style.
* src/pgtkterm.h: Update prototypes.
Paul Eggert [Mon, 18 Apr 2022 00:54:25 +0000 (17:54 -0700)]
Port sqlite.c to OS X 10.6.8 with Xcode 3.2.6
Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00923.html
* src/sqlite.c (Fsqlite_open): Don’t assume SQLITE_OPEN_MEMORY
is defined.
Po Lu [Mon, 18 Apr 2022 00:50:15 +0000 (00:50 +0000)]
Fix Haiku menu bars when redisplay happens immediately after activation
* src/haiku_support.cc (MessageReceived): Make `REPLAY_MENU_BAR'
messages synchronous.
(be_replay_menu_bar_event): Return whether or not the menu bar
really opened.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_activate_menubar): Immediately activate
menu bar after replaying event.
Po Lu [Mon, 18 Apr 2022 00:25:45 +0000 (08:25 +0800)]
Some minor fixes to Motif DND support
* src/xterm.c (xm_write_drag_initiator_info): Swap cardinal
values if wrong byteorder.
(xm_setup_dnd_targets): Read LONG_MAX amount of drag targets.
Paul Eggert [Sun, 17 Apr 2022 20:10:19 +0000 (13:10 -0700)]
Merge from origin/emacs-28
65c04e7115 Update to Org 9.5.2-38-g682ccd
Paul Eggert [Sun, 17 Apr 2022 20:10:19 +0000 (13:10 -0700)]
; Merge from origin/emacs-28
The following commit was skipped:
c2f94f32b5 Revert "Don’t assume openat"
Paul Eggert [Sun, 17 Apr 2022 20:10:19 +0000 (13:10 -0700)]
Merge from origin/emacs-28
3cccf0a910 Don’t assume openat
Jim Porter [Sun, 17 Apr 2022 19:51:17 +0000 (21:51 +0200)]
Fix Eshell predicate tests when running from 'make check'
* test/lisp/eshell/em-pred-tests.el (eshell-partial-let-func): Get
original function after macro-expansion.
Kyle Meyer [Sun, 17 Apr 2022 19:30:39 +0000 (15:30 -0400)]
Update to Org 9.5.2-38-g682ccd
Eli Zaretskii [Sun, 17 Apr 2022 19:03:52 +0000 (22:03 +0300)]
Revert "Don’t assume openat"
This reverts commit
3cccf0a9107d585173e527550bbc45253624ca2e.
This is a change with far-reaching effects on MS-Windows at the least,
where file-related APIs are shadowed to support transparent support
for UTF-8 encoded file names. Making such changes on a stable branch
for the benefit of a proprietary platform with a 13-year old OS is a
tail wagging the dog. Please don't do that without discussing first.
Lars Ingebrigtsen [Sun, 17 Apr 2022 18:21:40 +0000 (20:21 +0200)]
Make desktop.el use local-minor-modes when saving
* lisp/desktop.el (desktop-buffer-info): Use a more reliable way
to get minor modes (bug#29972).
Paul Eggert [Sun, 17 Apr 2022 17:41:17 +0000 (10:41 -0700)]
Don’t assume openat
Use openat only on platforms with O_PATH.
This ports to OS X 10.9 and earlier.
Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00805.html
* lib-src/emacsclient.c (local_sockname): Use open, not openat.
* src/sysdep.c (sys_openat): New static function,
which uses openat only if O_PATH is defined.
(emacs_openat): Use it instead of openat.
(emacs_openat_noquit): Remove.
(emacs_open_noquit): Reimplement as per the old emacs_openat_noquit,
but use plain 'open'.
Eli Zaretskii [Sun, 17 Apr 2022 17:36:36 +0000 (20:36 +0300)]
Improve the support for the Brahmi script
* lisp/leim/quail/indian.el ("brahmi"): New input method.
* lisp/language/indian.el ("Brahmi"): Add sample-text and
input-method. (Bug#54914)
* etc/NEWS: Mention the brahmi input method.
* etc/HELLO: Add a Brahmi greeting.
kobarity [Sun, 17 Apr 2022 17:28:15 +0000 (19:28 +0200)]
Fix fontifying type hints in python-mode
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Avoid fontifying
type hints as variable names (bug#54992).
Copyright-paperwork-exempt: yes
Lars Ingebrigtsen [Sun, 17 Apr 2022 16:59:59 +0000 (18:59 +0200)]
Allow editing variable values in *Help* buffers
* lisp/help-fns.el (help-enable-variable-value-editing): New user
option.
(describe-variable): Tag values for editing.
(help-fns--editable-variable, help-fns-edit-variable): New
functions (bug#36826).
(help-fns--edit-value-mode-map, help-fns--edit-value-mode)
(help-fns-edit-mode-done): New mode and commands.
Lars Ingebrigtsen [Sun, 17 Apr 2022 15:36:58 +0000 (17:36 +0200)]
Make :filters run in the correct buffer in describe-buffer-bindings
* lisp/help.el (describe-map-tree): Take an optional buffer parameter.
(describe-map): Ditto, and use it to run `lookup-key' in the
correct buffer. This fixes problems of filters being run in the
wrong buffer (bug#39149).
* src/keymap.c (Fdescribe_buffer_bindings): Pass in BUFFER to
describe-map-tree.
Eli Zaretskii [Sun, 17 Apr 2022 15:45:23 +0000 (18:45 +0300)]
; Minor fix for 'restart-emacs' on MS-Windows
* src/w32.c (w32_reexec_emacs): Fail if in -nw session.
* src/emacs.c (Fkill_emacs): Fix a typo.
Eli Zaretskii [Sun, 17 Apr 2022 14:48:13 +0000 (17:48 +0300)]
; * lisp/language/indian.el ("Brahmi"): Fix display of vowels.
Eli Zaretskii [Sun, 17 Apr 2022 14:20:03 +0000 (17:20 +0300)]
Fix 'restart-emacs' on MS-Windows
* src/w32.c (w32_reexec_emacs): New function, emulation of
'execvp' on Posix systems.
* src/w32.h (w32_reexec_emacs): Add prototype.
* src/emacs.c (main) [WINDOWSNT]: Save the original command line
and working directory.
(Fkill_emacs) [WINDOWSNT]: Call 'w32_reexec_emacs' instead of
'execvp'. (Bug#17036)
Lars Ingebrigtsen [Sun, 17 Apr 2022 13:46:24 +0000 (15:46 +0200)]
Add a `restart-emacs' sanity check
* src/emacs.c (Fkill_emacs): Add a sanity check for argv.
Po Lu [Sun, 17 Apr 2022 13:23:35 +0000 (21:23 +0800)]
Handle bad actual actions during DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Behave correctly when
the target gives us a bad atom.
Lars Ingebrigtsen [Sun, 17 Apr 2022 13:00:00 +0000 (15:00 +0200)]
Check whether we can restart in Fkill_emacs
* src/emacs.c (Fkill_emacs): Report an error if we can't restart.
Lars Ingebrigtsen [Sun, 17 Apr 2022 12:23:00 +0000 (14:23 +0200)]
Explain what "pending" means in isearch
* doc/emacs/search.texi (Regexp Search): Explain what "Pending"
usually means (bug#10148).
Philip Kaludercic [Sun, 17 Apr 2022 12:21:14 +0000 (14:21 +0200)]
Handle connection errors in rcirc-keepalive
* rcirc.el (rcirc-reconnect-delay): Declare variable before it is
defined.
(rcirc-keepalive): Handle rcirc-closed-connection, respecting
rcirc-reconnect-delay.
(rcirc-closed-connection): Add new error type.
(rcirc-send-string): Throw rcirc-closed-connection instead of a
generic error.
Lars Ingebrigtsen [Sun, 17 Apr 2022 12:04:34 +0000 (14:04 +0200)]
Add new function `flush-standard-output'.
* doc/lispref/streams.texi (Output Functions): Document it.
* src/print.c (Fflush_standard_output): New function (bug#15180).
Philip Kaludercic [Sun, 17 Apr 2022 12:03:33 +0000 (14:03 +0200)]
; * subr.el (buffer-match-p): Ensure that (and) is always satisfied
Philip Kaludercic [Sat, 16 Apr 2022 23:11:06 +0000 (01:11 +0200)]
Further improve buffer-match-p related documentation
* doc/lispref/buffers.texi (Buffer List): Add entries for
* buffer-match-p and match-buffers
* etc/NEWS: Give examples for buffer-match-p conditions
* lisp/window.el (display-buffer-assq-regexp): Mention what happens
when no entry in the alist satisfies a condition.
Lars Ingebrigtsen [Sun, 17 Apr 2022 11:37:51 +0000 (13:37 +0200)]
Add a new command `restart-emacs'
* doc/lispref/os.texi (Killing Emacs): Document it.
* lisp/files.el (save-buffers-kill-emacs): Add new RESTART parameter.
(restart-emacs): New function.
* src/emacs.c (terminate_due_to_signal, Fkill_emacs): Take an
optional RESTART parameter.
* test/lisp/files-tests.el
(files-tests-save-buffers-kill-emacs--confirm-kill-processes):
* src/xterm.c (x_connection_closed):
* src/xsmfns.c (Fhandle_save_session):
* src/keyboard.c (Fcommand_error_default_function, command_loop)
(command_loop_1, read_menu_command, read_event_from_main_queue)
(read_key_sequence, quit_throw_to_read_char):
* src/eval.c (process_quit_flag): Adjust Fkill_emacs callers.
Nacho Barrientos [Sun, 17 Apr 2022 11:00:12 +0000 (13:00 +0200)]
Fix chunked encoding connections in url-http
* lisp/url/url-http.el
(url-http-chunked-encoding-after-change-function): Ensure that chunked
encoding is interpreted correctly (bug#54989).
As per [0], the last chunk of 0 bytes is always accompanied by a last
CRLF that signals the end of the message:
chunked-body = *chunk
last-chunk
trailer-part
CRLF
^ this one
chunk = chunk-size [ chunk-ext ] CRLF
chunk-data CRLF
chunk-size = 1*HEXDIG
last-chunk = 1*("0") [ chunk-ext ] CRLF
chunk-data = 1*OCTET ; a sequence of chunk-size octets
`url-http-chunked-encoding-after-change-function' is able to process
(and remove) that terminator IF AVAILABLE in the buffer when
processing the response, however it won't wait for it if it's not yet
there.
In other words:
| Bottom of the response buffer | Bottom of the full response |
| (visible to url-http) | (to be delivered to Emacs) |
| ------------------------------+-----------------------------|
| 0\r\n | 0\r\n |
| | \r\n |
If the last chunk is processed when the bottom of the response buffer
is as above (note that the whole response has not yet been delivered
to Emacs), url-http will call the user callback without waiting for
the final terminator to be read from the socket.
This is normally not an issue when doing one-shot requests, but it's
problematic when the connection is reused immediately. As there are 2
bytes from the request N that have not been dealt with, they'll be
considered as part of the response of the request N+1. On top, it
turns out that when processing the headers of request N+1,
`url-http-wait-for-headers-change-function' will consider the request
a "headerless malformed response" delivering it broken to the caller.
The proposed fix implements a state in which
`url-http-chunked-encoding-after-change-function` properly waits for
the very last element of the message preventing the problem explained
above from happening.
For additional context, this bug was found when debugging
magit/ghub (see [1] for details).
[0] https://datatracker.ietf.org/doc/html/rfc7230#section-4.1
[1] https://github.com/magit/ghub/issues/81
Copyright-paperwork-exempt: yes
Oleh Krehel [Sun, 17 Apr 2022 10:50:05 +0000 (12:50 +0200)]
Remove duplicates from Info-read-node-name-2
* lisp/info.el (Info-read-node-name-2): Remove duplicates from
completions (bug#20365).
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:39:41 +0000 (12:39 +0200)]
Fix instructions on how to enable password-store
* doc/misc/auth.texi (Help for users): Give the correct
instructions on how to enable password store (bug#30900).
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:27:40 +0000 (12:27 +0200)]
Clarify setopt NEWS entry
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:18:58 +0000 (12:18 +0200)]
Do some NEWS tagging
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:17:30 +0000 (12:17 +0200)]
Add a doc string to xref-current-item
* lisp/progmodes/xref.el (xref-after-jump-hook): Link to it.
(xref-current-item): Add a doc string to the now-public variable.
Lars Ingebrigtsen [Sun, 17 Apr 2022 10:11:36 +0000 (12:11 +0200)]
Clarify emacs-news--heading-p logic
* lisp/textmodes/emacs-news-mode.el (emacs-news--heading-p):
Clarify the logic.
Lars Ingebrigtsen [Sun, 17 Apr 2022 09:06:23 +0000 (11:06 +0200)]
Move some entries around in the NEWS file
Lars Ingebrigtsen [Sun, 17 Apr 2022 09:00:08 +0000 (11:00 +0200)]
Fix up the NEWS entry for emacs-news*-mode
Paul Eggert [Sun, 17 Apr 2022 08:50:59 +0000 (01:50 -0700)]
* src/filelock.c (Fcreate_lockfiles): Doc string fix.
Paul Eggert [Sun, 17 Apr 2022 08:44:30 +0000 (01:44 -0700)]
Merge from origin/emacs-28
4641bc1c55 Fix GC bug in filelock.c
Po Lu [Sun, 17 Apr 2022 08:13:49 +0000 (08:13 +0000)]
Fix race conditions waiting for menu bar resize events on Haiku
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
Clear `wait_for_event_type'.
(haiku_set_menu_bar_lines): Clean up coding style.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Implement waiting for MENU_BAR_RESIZE
events.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.
Po Lu [Sun, 17 Apr 2022 08:10:01 +0000 (08:10 +0000)]
Fix race conditions waiting for menu bar resize events on Haiku
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
(haiku_set_menu_bar_lines): Clear `wait_for_event_type'.
* src/haikumenu.c (set_frame_menubar): Wait for menu bar resize
event.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Handle waiting for MENU_BAR_RESIZE.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.
Po Lu [Sun, 17 Apr 2022 07:29:36 +0000 (07:29 +0000)]
Get rid of unused flags on Haiku
* src/haikufns.c (haiku_free_frame_resources): Syntax fixes.
* src/haikumenu.c (set_frame_menubar, run_menu_bar_help_event):
* src/haikuterm.c (haiku_read_socket): Stop setting and
consulting `menu_up_to_date_p'.
* src/haikuterm.h (struct haiku_output): Delete
`menu_up_to_date_p'.
Po Lu [Sun, 17 Apr 2022 07:16:03 +0000 (07:16 +0000)]
* src/haikufns.c (haiku_free_frame_resources): Free saved menu event.
Po Lu [Sun, 17 Apr 2022 07:15:17 +0000 (07:15 +0000)]
Fix hangs when clicking on Haiku menu bar to activate frame
* src/haiku_io.c (haiku_len): Handle new event `MENU_BAR_CLICK'.
* src/haiku_support.cc (class EmacsWindow): Remove most of the
menu bar cv stuff.
(MessageReceived): Handle REPLAY_MENU_BAR message.
(EmacsWindow_signal_menu_update_complete): Delete function.
(be_replay_menu_bar_event): New function.
* src/haiku_support.h (enum haiku_event_type): New event type
`MENU_BAR_CLICK'.
(struct haiku_menu_bar_click_event): New struct.
* src/haikumenu.c (haiku_activate_menubar): New function.
* src/haikuterm.c (haiku_read_socket): Save a
MENU_BAR_ACTIVATE_EVENT and the menu bar click event instead of
handling the menu bar update synchronously.
(haiku_create_terminal): Set `activate_menubar_hook'.
(syms_of_haikuterm): Remove extraneous newline.
* src/haikuterm.h (struct haiku_output): New field
`saved_menu_event'.
Paul Eggert [Sun, 17 Apr 2022 08:06:46 +0000 (01:06 -0700)]
Fix GC bug in filelock.c
Fix a bug where if GC occurred at the wrong moment when locking a
file, the lock file’s name was trashed so file locking did not work.
This bug was introduced in Emacs 28.1. The bug sometimes caused
filelock-tests-detect-external-change test failures on Fedora 35
x86-64 in an en_US.utf8 locale.
* src/filelock.c (lock_file_1, current_lock_owner, lock_if_free)
(lock_file, unlock_file, Ffile_locked_p):
Use Lisp_Object, not char *, for string, so that GC doesn’t trash
string contents.
(make_lock_file_name): Return the encoded name, not the original.
All callers changed.
Jim Porter [Sat, 2 Apr 2022 05:06:02 +0000 (22:06 -0700)]
Add 'G' argument predicate in Eshell
* lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate.
(eshell-predicate-help-string): Document it. (Bug#54470)
* test/lisp/eshell/em-pred-tests.el
(em-pred-test/predicate-effective-gid): New test.
* doc/misc/eshell.text (Argument Predication): Document 'G' predicate.
Jim Porter [Sat, 19 Mar 2022 19:41:13 +0000 (12:41 -0700)]
Add unit tests and documentation for Eshell predicates/modifiers
* lisp/eshell/esh-cmd.el (eshell-eval-argument): New function.
* lisp/eshell/esh-util.el (eshell-file-attributes): Pass original
value of FILE to 'file-attributes'.
* lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char
to '=', since 's' conflicts with setuid.
(eshell-modifier-alist): Fix 'E' (eval) modifier by using
'eshell-eval-argument'. Also improve performance of 'O' (reversed
sort) modifier.
(eshell-modifier-help-string): Fix documentation of global
substitution modifier.
(eshell-pred-substitute): Fix infinite loop in some global
substitutions.
(eshell-join-members): Fix joining with implicit " " delimiter.
(Bug#54470)
* test/lisp/eshell/em-pred-tests.el: New file.
* doc/misc/eshell.texi (Argument Predication): New section.
Jim Porter [Wed, 9 Mar 2022 01:07:26 +0000 (17:07 -0800)]
Add unit tests and documentation for Eshell pattern-based globs
* lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring.
(eshell-glob-entries): Refer to '**/' in error (technically, '**' can
end a glob, but it means the same thing as '*'). (Bug#54470)
* test/lisp/eshell/em-glob-tests.el: New file.
* doc/misc/eshell.texi (Globbing): Document pattern-based globs.
Po Lu [Sun, 17 Apr 2022 04:06:52 +0000 (04:06 +0000)]
Make sure the ftcr font driver is used on Haiku when Cairo is enabled
* src/haikufont.c (syms_of_haikufont): [USE_BE_CAIRO]: Make sure
`ftcr' superseeds `haiku'.
Paul Eggert [Sun, 17 Apr 2022 01:48:51 +0000 (18:48 -0700)]
Document encode-time caveats
* doc/lispref/os.texi (Time of Day, Time Conversion):
Move the warnings about DST being -1 to closer to where DST is
discussed, and reword and improve the discussions and warnings.
Be more precise about years before 1969 (possible west of UTC) vs the
Epoch. Mention some problems due to leap seconds, leap years,
daylight saving transitions, and time zone changes. Modernize
discussion of OS timestamp range. Prefer secular ‘BCE’ to religious
‘BC’. Omit discussion of decoded-time-add and make-decoded-time, as
they are in a library and are not always available; instead, mention
the library. Warn about common mistakes when doing simple date
arithmetic.
* src/timefns.c (Fencode_time): In doc string, mention date
arithmetic and tighten up the wording a bit.
Max Nikulin [Sun, 17 Apr 2022 01:48:51 +0000 (18:48 -0700)]
Stress difference of new and old ways to call `encode-time'
* doc/lispref/os.texi (Time Conversion): Add a warning that blind
changing of code calling `encode-time' to use single list instead of
multiple values may cause deferred bugs since it is common to use nil
for ignored arguments such as DST in the old calling convention.
* src/timefns.c (encode-time): Mention the warning added to the elisp
reference in the docstring.
Refactoring related to `encode-time' caused (bug#54731), so it is better
to make apparent the difference between the recommended and the
obsolescent ways to call the function. More details concerning the
purpose and limitations of the DST field are added after discussion with
Paul Eggert in (bug#54764).
Po Lu [Sun, 17 Apr 2022 00:38:37 +0000 (08:38 +0800)]
Restore pending_signals at a point in the DND event loop
* src/xterm.c (x_dnd_begin_drag_and_drop): Restore
pending_signals after unblock_input.
Earl Hyatt [Tue, 7 Dec 2021 02:04:27 +0000 (21:04 -0500)]
Add basic Texinfo support for Flymake.
* lisp/textmodes/texinfo.el (texinfo-flymake, texinfo--flymake-proc)
(texinfo-mode):
Add the functions texinfo-flymake and process variable
texinfo--flymake-proc. Modify texinfo-mode to automatically add this
function to the hook flymake-diagnostic-functions.