1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-06 14:02:07 -08:00
Commit graph

46832 commits

Author SHA1 Message Date
Lars Ingebrigtsen
4738aa1e12 Make clear-image-cache clear the animation cache
* src/dispextern.h: Declare image_prune_animation_caches for use
in gc.

* src/image.c (Fclear_image_cache): Clear animation cache.
(anim_prune_animation_cache, anim_get_animation_cache): Allow
clearing in addition to pruning.
(imagemagick_prune_animation_cache)
(imagemagick_get_animation_cache): Ditto.
(image_prune_animation_caches): New function (bug#56546).
2022-07-14 11:49:47 +02:00
Stefan Kangas
4e79f77635 Merge from origin/emacs-28
5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo.
ba0871bef1 ; Fix typos: prefer American spelling
e3e7f31faa Adapt Tramp doc

# Conflicts:
#	etc/NEWS
#	etc/themes/modus-themes.el
#	lisp/emacs-lisp/byte-opt.el
#	test/lisp/so-long-tests/spelling-tests.el
2022-07-14 11:37:42 +02:00
Po Lu
d37ba6f259 Fix killing Emacs upon display disconnect
* src/xterm.c (x_connection_closed): On Xt builds terminals can
be left alive without any frames on them, so take that into
account.  (bug#56528)
2022-07-14 11:47:00 +08:00
Po Lu
9a888323c6 ; * src/xterm.c (x_error_handler): Fix magic numbers. 2022-07-14 09:11:37 +08:00
Po Lu
9f6d8486b4 Fix recursive calls of x_connection_closed leading to dead terminal
* src/xterm.c (x_connection_closed): Return if called again for
the current display.
(x_io_error_quitter): Fix attributes.  (bug#56528)
2022-07-13 20:16:45 +08:00
Stefan Kangas
ba0871bef1 ; Fix typos: prefer American spelling 2022-07-13 13:04:22 +02:00
Po Lu
defe6cf2d9 Implement TIMESTAMP target for Haiku selections
* lisp/term/haiku-win.el (haiku-selection-targets): Fix return
values.
(gui-backend-get-selection): Handle TIMESTAMP specially.
* src/haiku_select.cc (be_get_clipboard_count): New function.
* src/haikuselect.c (Fhaiku_selection_timestamp): New function.
(syms_of_haikuselect): Add new defsubr.
* src/haikuselect.h: Update prototypes.
2022-07-13 05:45:30 +00:00
Po Lu
6be201cf51 Fix closing displays when preserving selections is enabled
* src/frame.c (delete_frame): Bind `x-auto-preserve-selections'
to nil if deleting display.
* src/xselect.c (x_clear_frame_selections): Pass original frame
to that function.
* src/xterm.c (x_preserve_selections): Fix determining the new
owner.
(syms_of_xterm): New defsym `x-auto-preserve-selections'.
* src/xterm.h: Update prototypes.
2022-07-13 11:01:59 +08:00
Lars Ingebrigtsen
f62e1f39be Fix buffer-stale-function fix
* src/buffer.c (Fmake_indirect_buffer): Kill the local
buffer-stale-function variable instead of setting it
buffer-locally to the default value.  This should have the same
effect, but is less confusing.
2022-07-12 14:39:52 +02:00
Po Lu
227f3842c2 Reduce syncing when fetching selection names during frame deletion
* src/xterm.c (x_preserve_selections): Use XCB to asynchronously
fetch the selection owner.
2022-07-12 20:02:59 +08:00
Alan Mackenzie
fe5e789ff8 Expunge unused recompute-lucid-menubar, lucid-menu-bar-dirty-flag
This fixes bug #56502.  That function and these variables were manipulated by
the former file emacs-lisp/lmenu.el that was finally expunged from directory
obsolete/ by Stefan Kangas on 2020-05-15.  There remain references to them in
the *.c, and *.m files.

* src/keyboard.c (syms_of_keyboard): Remove declarations of the symbol and
variable.

* src/haikumenu.c (set_frame_menu_bar)
* src/keyboard.c (command_loop_1)
* src/nsmenu.m (ns_update_menubar)
* src/pgtkmenu.c (set_frame_menubar)
* src/xdisp.c (update_menu_bar)
* src/xmenu.c (set_frame_menubar): Remove calls to Qrecompute_lucid_menubar
contitional on Vlucid_menu_bar_dirty_flag.
2022-07-12 09:31:08 +00:00
Po Lu
93b31707e9 Fix preserving selections if `x-lost-selection-functions' signals
* src/xterm.c (x_preserve_selections): Get selection owner and
run lost selection hook separately.
2022-07-12 15:14:25 +08:00
Po Lu
86d128c6c3 Try to save selections from being disowned during frame deletion
* lisp/cus-start.el (standard): Add
`x-auto-preserve-selections'.
* src/xselect.c (x_clear_frame_selections): Collect deleted
selections into a variable and preserve them.
* src/xterm.c (x_preserve_selections): New function.
(syms_of_xterm): New variable `x-auto-preserve-selections'.
* src/xterm.h: Update prototypes.
2022-07-12 10:47:51 +08:00
Mattias Engdegård
871db806e6 Remove obsolete uses of obsolete functions
* src/minibuf.c (minibuf_conform_representation): Remove.
(Ftry_completion): Don't call it.
(Ftest_completion): Don't use the obsolete Fstring_make_unibyte or
Fstring_make_multibyte; they don't serve any useful purpose here.
We don't try to equate unibyte and multibyte raw bytes in symbol
lookups elsewhere and there is no reason to do it here.
2022-07-11 17:35:01 +02:00
Lars Ingebrigtsen
b2e6e95581 Only reset buffer-local buffer-stale-function in make-indirect-buffer
* src/buffer.c (Fmake_indirect_buffer): Don't set the global
buffer-stale-function (bug#48348).
2022-07-11 16:05:08 +02:00
Stefan Kangas
899616108b * src/.lldbinit: Fix copyright year. 2022-07-11 14:57:20 +02:00
Lars Ingebrigtsen
4e8448b4bc Allow commands that call `yes-or-no-p' to be repeatable again
* lisp/subr.el (y-or-n-p): Enable commands that call this function
to be repeatable (bug#45999).  This stopped working after this
function started using read-from-minibuffer.
* src/fns.c (Fyes_or_no_p): Ditto.
2022-07-11 14:56:06 +02:00
Gerd Möllmann
7af425f87b Support for debugging Emacs with LLDB
* (src/.lldbinit): New file.
* (etc/emacs_lldb.py): Module loaded from .lldbinit.
2022-07-11 14:08:05 +02:00
Mattias Engdegård
5990da6290 Simplify str_to_multibyte and related code
* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Remove `nbytes` argument; return
it instead.  Copy forwards.
* src/fns.c (concat_to_string, Fstring_make_multibyte):
Use str_to_multibyte.
(string_make_multibyte): Remove.
(string_to_multibyte):
* src/print.c (print_string):  Adapt calls.
2022-07-11 13:52:01 +02:00
Po Lu
6f57fb71a5 Improve behavior of `lost-selection-mode' with multiple buffers
* etc/NEWS: Announce new hook `post-select-region-hook'.

* lisp/select.el (lost-selection-last-region-buffer): New
variable.
(lost-selection-post-select-region-function): New function.
Deactivate the mark if the buffer changed.
(lost-selection-mode): Add new hook.

* src/keyboard.c (command_loop_1): Run that hook when
appropriate.
(syms_of_keyboard): New hook `post-select-region-hook'.
2022-07-11 19:36:12 +08:00
Po Lu
c0ced4e499 Prevent setting user time if the WM doesn't support it
* src/xterm.c (x_update_frame_user_time_window): Don't set
_NET_WM_USER_TIME if it's not supported by the window manager.
2022-07-11 18:48:37 +08:00
Daniel Martín
7ae7a95e80 Fix memory leak in ns_draw_relief
* src/nsterm.h (struct ns_output): New fields to store the relief
colors.
* src/nsterm.m (ns_setup_relief_colors): New function to keep the
relief colors as part of the ns_output structure.
(ns_draw_relief): Remove static local variables.  Assigning them to
nil caused a memory leak of NSColor instances (bug#56462).  Call
ns_setup_relief_colors instead.
2022-07-11 18:21:43 +08:00
Mattias Engdegård
69b68099ec Simplify and speed up string-to-multibyte
* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Change signature and simplify;
the conversion is no longer done in-place.
* src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy;
adapt to new str_to_multibyte signature.
* src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte.
* test/src/fns-tests.el (fns--string-to-unibyte): Rename to...
(fns--string-to-unibyte-multibyte): ... this and strengthen, so that
the test covers string-to-multibyte reasonably well.
2022-07-11 10:38:49 +02:00
Po Lu
d9464d7fe5 Handle errors sending selection decline events asynchronously
* src/xselect.c (x_decline_selection_request): Handle errors
asynchronously.
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Export functions.
* src/xterm.h: Update prototypes.
2022-07-11 10:07:21 +08:00
Mattias Engdegård
cfda663282 Speed up string-to-unibyte
* src/character.h (str_to_unibyte):
* src/character.c (str_to_unibyte): Remove.
* src/fns.c (Fstring_to_unibyte): Ditch the call to str_to_unibyte and
the unnecessary heap allocation.  Write new, faster code.
* test/src/fns-tests.el (fns--string-to-unibyte): New test.
2022-07-10 18:20:37 +02:00
Stefan Monnier
d51d72b4a6 * src/dired.c (directory_files_internal): Update comment 2022-07-10 11:15:27 -04:00
Stefan Monnier
46a2e5dc93 * src/dired.c (directory_files_internal): Fix bug#56469
Avoid concatenating encoded and decoded file names.
2022-07-10 10:13:27 -04:00
Po Lu
a7fff36991 Minor fixes to WM_DELETE_WINDOW handling
* src/xterm.c (handle_one_xevent): Only handle WM_DELETE_WINDOW
to toplevel windows, and set event timestamp.
2022-07-10 20:05:31 +08:00
Po Lu
84473eb610 ; * src/composite.c (Fcomposition_get_gstring): Fix compiler warnings. 2022-07-10 15:25:00 +08:00
Po Lu
d7120d9766 Fix build with old sqlite libraries
* src/sqlite.c (Fsqlite_open): Don't use SQLITE_OPEN_FULLMUTEX
if not defined.
2022-07-10 15:23:55 +08:00
Eli Zaretskii
8dc4c19be8 Speed up 'find_automatic_composition'
* src/composite.c (find_automatic_composition): Limit search
backward in buffers to the first newline.  Fix commentary.
2022-07-10 09:37:40 +03:00
Po Lu
143548fdd6 Don't sync for errors setting up DND targets and toplevels
* src/xterm.c (xm_setup_dnd_targets, x_dnd_free_toplevels)
(x_dnd_compute_toplevels): Avoid catching errors synchronously.
2022-07-10 13:22:58 +08:00
Po Lu
932cf200bb Make `x-no-window-manager' cover user time as well
* src/xterm.c (x_update_frame_user_time_window):
(x_wm_supports_1): Respect `x-no-window-manager'.  This makes
testing some features easier.
2022-07-10 10:49:46 +08:00
Stefan Monnier
ad011fd3ac Make STRING_SET_MULTIBYTE an inline function
* src/lisp.h (STRING_SET_MULTIBYTE): Make it into a function.

* src/composite.c (Fcomposition_get_gstring):
Prefer `make_multibyte_string` over Fconcat+STRING_SET_MULTIBYTE.
2022-07-09 12:53:34 -04:00
Po Lu
30cf1f34c5 Avoid extra sync and atom name query on ending Motif DND
* src/xterm.c (handle_one_xevent): Use `x_dnd_action_symbol' to
set the Motif action instead.
2022-07-09 20:20:36 +08:00
Po Lu
bab449f034 Improve drag-and-drop emulation time handling
* src/xselect.c (x_handle_selection_request): Use
display-specific pending DND time.
(x_set_pending_dnd_time): Delete function.
* src/xterm.c (x_dnd_do_unsupported_drop, handle_one_xevent):
Set dpyinfo->pending_dnd_time instead.
* src/xterm.h (struct x_display_info): New field
`pending_dnd_time'.  Make handling pending drops
display-specific to avoid interference when there are multiple
displays.
2022-07-09 16:18:35 +08:00
Po Lu
edabfe4ff6 Fix race conditions handling selection clear events on Haiku
* src/haiku_select.cc (be_handle_clipboard_changed_message):
Include current clipboard count.
(be_selection_outdated_p): New function.
* src/haikuselect.c (haiku_handle_selection_clear): Ignore
outdated events.
(haiku_selection_disowned): New argument `count'.  Include it in
the timestamp field of the selection clear event.
* src/haikuselect.h: Update prototypes.
* src/systime.h: Define `Time' to an appropriate value on Haiku.
2022-07-09 04:50:35 +00:00
Stefan Kangas
f400c60237 Merge from origin/emacs-28
3442de2edd Doc fix; don't mention obsolete variable
c4e251103b ; * lisp/textmodes/rst.el: Update URLs.
2022-07-09 06:30:38 +02:00
Po Lu
29c8866c7f Fix redisplay after running selection hook on Haiku
* src/haikuselect.c (haiku_handle_selection_clear): Call
redisplay_preserve_echo_area.
2022-07-09 01:16:05 +00:00
Po Lu
ee58141785 Speed up querying for window manager support
* src/xterm.c (handle_one_xevent): Clear net_supported_window if
it is destroyed.
(x_get_wm_check_window): New function.
(x_wm_supports_1): First try net_supported_window.  If it still
exists, don't ask for _NET_SUPPORTING_WM_CHECK.
2022-07-09 08:05:30 +08:00
Alan Mackenzie
0508d7c4d6 Remove now unused parameter TRACK from do_switch_frame.
* src/lisp.h (extern do_swith_frame declaration)
* src/frame.c (do_switch_frame): Remove parameter TRACK and its comment.
* src/frame.c (Fselect_frame, Fhandle_switch_frame, delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/minibuf.c (read_minibuf_unwind (twice))
* src/window.c (Fset_window_configuration): Remove argument TRACK.
2022-07-08 20:19:03 +00:00
Stefan Kangas
3442de2edd Doc fix; don't mention obsolete variable
* src/window.c (Fset_window_hscroll): Doc fix; don't mention obsolete
variable.
2022-07-08 21:16:00 +02:00
Mattias Engdegård
1c300c983f Remove unused member of internal struct
* src/fns.c (struct textprop_rec, concat_to_string): Remove `from`.
2022-07-08 18:26:28 +02:00
Po Lu
9e0f52b7d9 Ensure correct position is returned after child frame movement
* src/xterm.c (x_set_offset): Synchronize child frame movement
correctly.
2022-07-08 21:16:25 +08:00
Mattias Engdegård
6791165b2a Fix file-name-case-insensitive-p in ffap (bug#56443)
Don't crash if the file name argument to file-name-case-insensitive-p,
after expansion, doesn't have a parent directory.  This occurs
when calling ffap on something that looks like an email address.

* src/fileio.c (Ffile_name_case_insensitive_p): Return nil if no file
or parent directory could be found.
* test/src/fileio-tests.el (fileio-tests--identity-expand-handler)
(fileio--file-name-case-insensitive-p): New test.
2022-07-08 15:13:21 +02:00
Stefan Kangas
739e3dbe05 Remove many items obsolete since 24.1
* lisp/allout.el (allout-abbreviate-flattened-numbering)
(allout-mode-deactivate-hook):
* lisp/ansi-color.el (ansi-color-unfontify-region):
* lisp/auth-source.el (auth-source-hide-passwords)
(auth-source-user-or-password)
(auth-source-forget-user-or-password):
* lisp/cedet/data-debug.el (data-debug-map):
* lisp/cedet/semantic/grammar.el (semantic-grammar-syntax-table)
(semantic-grammar-map):
* lisp/chistory.el (command-history-map):
* lisp/comint.el (comint-dynamic-complete)
(comint-dynamic-complete-as-filename)
(comint-dynamic-simple-complete):
* lisp/dired-x.el (read-filename-at-point)
(dired-x-submit-report):
* lisp/dos-fns.el (register-name-alist, make-register)
(register-value, set-register-value, intdos, mode25, mode4350):
* lisp/emacs-lisp/bytecomp.el (byte-compile-disable-print-circle):
* lisp/emacs-lisp/chart.el (chart-map):
* lisp/emacs-lisp/package.el (package-menu-view-commentary):
* lisp/emacs-lock.el (toggle-emacs-lock, emacs-lock-from-exiting):
* lisp/erc/erc.el (erc-complete-word):
* lisp/eshell/em-cmpl.el (eshell-cmpl-suffix-list):
* lisp/eshell/esh-util.el (eshell-for):
* lisp/files.el (inhibit-first-line-modes-regexps)
(inhibit-first-line-modes-suffixes):
* lisp/gnus/gnus-msg.el (gnus-outgoing-message-group)
(gnus-debug-files, gnus-debug-exclude-variables):
* lisp/gnus/gnus-registry.el (gnus-registry-user-format-function-M):
* lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal):
* lisp/gnus/nnimap.el (nnimap-split-rule):
* lisp/iimage.el (turn-on-iimage-mode):
* lisp/image.el (image-extension-data, image-library-alist):
* lisp/mail/emacsbug.el (report-emacs-bug-pretest-address):
* lisp/mail/mail-utils.el (rmail-dont-reply-to):
* lisp/mail/mailalias.el (mail-complete-function)
(mail-completion-at-point-function):
* lisp/mail/rmail.el (rmail-dont-reply-to-names)
(rmail-default-dont-reply-to-names):
* lisp/mail/sendmail.el (mail-mailer-swallows-blank-line)
(mail-sent-via):
* lisp/menu-bar.el (menu-bar-kill-ring-save):
* lisp/minibuffer.el (completion-annotate-function)
(minibuffer-local-filename-must-match-map):
* lisp/msb.el (msb-after-load-hooks):
* lisp/obsolete/eieio-compat.el (eieio-defmethod)
(eieio-defgeneric):
* lisp/obsolete/info-edit.el (Info-edit-map):
* lisp/obsolete/starttls.el (starttls-any-program-available):
* lisp/progmodes/cfengine.el (cfengine-mode-abbrevs):
* lisp/progmodes/cwarn.el (turn-on-cwarn-mode):
* lisp/progmodes/make-mode.el (makefile-complete):
* lisp/progmodes/meta-mode.el (meta-complete-symbol)
(meta-mode-map):
* lisp/progmodes/pascal.el (pascal-toggle-completions)
(pascal-last-completions, pascal-show-completions):
* lisp/progmodes/prolog.el (prolog-char-quote-workaround):
* lisp/progmodes/which-func.el (which-func-mode): [FUNCTION]
* lisp/simple.el (count-lines-region, minibuffer-completing-symbol):
* lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
* lisp/strokes.el (strokes-report-bug):
* lisp/subr.el (condition-case-no-debug):
* lisp/term/ns-win.el (ns-alternatives-map)
(ns-store-cut-buffer-internal):
* lisp/term/w32-win.el (w32-default-color-map):
* lisp/term/x-win.el (x-cut-buffer-or-selection-value):
* lisp/textmodes/bibtex.el (bibtex-complete)
(bibtex-entry-field-alist):
* lisp/textmodes/reftex-index.el (reftex-index-map)
(reftex-index-phrases-map):
* lisp/textmodes/reftex-sel.el (reftex-select-label-map)
(reftex-select-bib-map):
* lisp/textmodes/reftex-toc.el (reftex-toc-map):
* lisp/textmodes/rst.el (rst-block-face, rst-external-face)
(rst-definition-face, rst-directive-face, rst-comment-face)
(rst-emphasis1-face, rst-emphasis2-face, rst-literal-face)
(rst-reference-face):
* lisp/vc/vc-hooks.el (vc-toggle-read-only):
* lisp/view.el (view-return-to-alist)
(view-return-to-alist-update): Remove many functions and variables
obsolete since 24.1.

* lisp/textmodes/bibtex.el (bibtex-entry-alist): Don't use above
removed variable 'bibtex-entry-field-alist'.
* lisp/cedet/data-debug.el (data-debug-edebug-expr)
(data-debug-eval-expression):
* lisp/emacs-lisp/trace.el (trace--read-args):
* lisp/files-x.el (read-file-local-variable-value):
* lisp/simple.el (read--expression): Don't use above removed variable
'minibuffer-completing-symbol'.
* lisp/textmodes/rst.el (rst-font-lock-keywords): Don't use above
removed variables.
* src/w32fns.c (Fw32_default_color_map): Delete obsolete function.
(syms_of_w32fns): Delete defsubr for above defun.
* src/keyboard.c (syms_of_keyboard) <Vdeferred_action_list>
<Vdeferred_action_function>: Delete DEFVARs.
<Qdeferred_action_function>: Delete DEFSYM.
(syms_of_keyboard_for_pdumper): Adjust for above change.
(command_loop_1): Don't run deferred-action-function hook.
* lisp/subr.el (deferred-action-list, deferred-action-function):
Delete obsoletion statements.
* lisp/emacs-lisp/ert-x.el (ert-simulate-command): Don't run
'deferred-action-list' hook.
* doc/lispref/hooks.texi (Standard Hooks): Delete
'deferred-action-function'.

* lisp/emacs-lisp/lisp.el (field-complete):
* lisp/eshell/em-cmpl.el (eshell-cmpl-initialize):
* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc):
* lisp/gnus/nnmail.el (nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-dont-reply-to):
* lisp/mail/sendmail.el (sendmail-send-it):
* lisp/mail/smtpmail.el (smtpmail-send-it):
* lisp/minibuffer.el (minibuffer-completion-help):
* lisp/progmodes/python.el: Don't use above removed items.
* lisp/emacs-lisp/eieio-core.el:
* lisp/mail/mailalias.el (mail-complete-alist): Doc fixes; don't refer
to above removed items.
; * etc/NEWS: List removed items.
2022-07-08 14:10:38 +02:00
Po Lu
0fc9808ded Improve behavior of sticky tooltips on Haiku
* src/haiku_support.cc (class EmacsView, MouseMoved): Remove
`tooltip_position'.
(class EmacsMotionSuppressionView): New class.
(BView_set_and_show_sticky_tooltip): Rename to
`be_show_sticky_tooltip'.  Add motion suppression view.

* src/haiku_support.h: Update prototypes.
* src/haikufns.c (Fx_show_tip): Update for renamed function.
2022-07-08 07:34:45 +00:00
Po Lu
bc015a7b44 Fix flickering system tooltips on Haiku
* src/haiku_support.cc (class EmacsView, MouseMoved): Restore
sticky status and mouse relative position.
(BView_set_and_show_sticky_tooltip):
* src/haikufns.c (haiku_hide_tip): Fix coding style.
2022-07-08 06:55:01 +00:00
Po Lu
eb86a375e8 Reduce synchronization setting frame alpha
* src/xterm.c (x_set_frame_alpha): Don't synchronize while
setting alpha property, and don't ask for the current value of
the opacity property, which is much more expensive than changing
it.
2022-07-08 13:43:24 +08:00
Po Lu
b6a90b71a2 Fix returned action symbol upon "xterm" drop
* src/xterm.c (x_dnd_do_unsupported_drop): Set
x_dnd_action_symbol.
(x_dnd_begin_drag_and_drop): Don't clear it afterwards.
2022-07-08 10:44:49 +08:00