1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-21 03:52:16 -08:00
Commit graph

47183 commits

Author SHA1 Message Date
Po Lu
a380ce2008 Make it easier to clear the Motif drag window for debugging
* src/xterm.c (xm_get_drag_window_1): Add comment explaining
side effect of x_special_window_exists_p.
(handle_one_xevent): Clear Motif drag window upon DestroyNotify.
In addition to debugging, it also reduces syncs necessary to
communicate via the Motif protocol after a defective/old client
sets the drag window without setting the disconnect mode.
2022-09-11 16:50:26 +08:00
Po Lu
2a1608a960 Fix compliance with the XDND specification when dropping on a proxy
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave, x_dnd_send_drop, x_dnd_do_drop): New
parameter `toplevel'.  Use it as the window in sent client
messages.
(x_dnd_cancel_dnd_early, x_dnd_cleanup_drag_and_drop)
(x_dnd_process_quit, x_dnd_update_state, handle_one_xevent)
(x_connection_closed): Give the right toplevel to the client
message sending functions.
2022-09-10 18:51:13 +08:00
Stefan Kangas
54c3794899 Doc fixes for 'text-quoting-style'
* doc/lispref/help.texi (Keys in Documentation): Remove duplicate
entry for 'text-quoting-style'.  Document the function with the same
name instead.
* src/doc.c (Ftext_quoting_style): Doc fix: clarify the return values.
(syms_of_doc) <Vtext_quoting_style>: Doc fix: clarify that you should
not read the value of this variable directly; use Ftext_quoting_style
instead (bug#51040).
2022-09-10 07:29:48 +02:00
Stefan Kangas
72daa8b95a * src/w32image.c (w32_can_use_native_image_api): Fix comment. 2022-09-10 05:30:06 +02:00
Po Lu
7008fa9fd9 ; * src/alloc.c (check_pure_size): Fix last change. 2022-09-10 09:39:14 +08:00
Po Lu
a1f1072975 Fix several printfs for 32 bit systems
* lib-src/emacsclient.c (main): Use right length modifier when
printing uintmax_t.
* src/alloc.c (check_pure_size): Use right length modifier when
printing ptrdiff_t.
2022-09-10 09:35:49 +08:00
Paul Eggert
fa99392618 Fix problem with Glib 2.73.2+ and SIGCHLD handler
This code fix is by Stefan Monnier (Bug#57699).
* src/process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
Adjust to Glib 2.73.2 behavior change on Linux kernel 5.3+.
2022-09-09 16:19:49 -05:00
Stefan Kangas
ea0b913ab6 Delete variable window-system-version obsolete since 24.3
* lisp/frame.el (window-system-version): Delete variable.
* src/dispnew.c (syms_of_display) <Vwindow_system_version>:
Delete DEFVAR, obsolete since 24.3.
(init_display_interactive, syms_of_display_for_pdumper):
* src/msdos.c (internal_terminal_init):
* src/nsterm.m (ns_term_init):
* src/pgtkfns.c (pgtk_display_info_for_name):
* src/w32fns.c (w32_display_info_for_name, Fx_open_connection):
* src/xfns.c (x_display_info_for_name, Fx_open_connection): Don't
set above deleted variable.
* admin/admin.el (set-version): Don't update above deleted
variable in msdos.c.
* lisp/textmodes/artist.el (artist-submit-bug-report): Don't use
above deleted variable.
2022-09-09 11:27:30 +02:00
Stefan Kangas
1f29ee2d21 Delete many items obsolete since 24.3
* lisp/allout.el (allout-exposure-change-hook)
(allout-structure-added-hook, allout-structure-deleted-hook)
(allout-structure-shifted-hook):
* lisp/arc-mode.el (archive-extract-hooks):
* lisp/buff-menu.el (Buffer-menu-buffer+size-width):
* lisp/calendar/timeclock.el (timeclock-modeline-display)
(timeclock-modeline-display, timeclock-update-modeline):
* lisp/cedet/semantic/db-el.el
(semanticdb-elisp-sym-function-arglist):
* lisp/cedet/semantic/db-file.el (semanticdb-save-database-hooks):
* lisp/cedet/semantic/edit.el (semantic-change-hooks)
(semantic-edits-new-change-hooks)
(semantic-edits-delete-change-hooks)
(semantic-edits-reparse-change-hooks):
* lisp/cedet/semantic/lex.el (semantic-lex-reset-hooks):
* lisp/comint.el (comint--unquote&expand-filename)
(comint-unquote-filename):
* lisp/custom.el (user-variable-p):
* lisp/dired.el (dired-shrink-to-fit, dired-pop-to-buffer)
(dired-sort-set-modeline):
* lisp/ebuff-menu.el (Electric-buffer-menu-mode):
* lisp/emacs-lisp/byte-run.el (macro-declaration-function):
* lisp/emacs-lisp/checkdoc.el (custom-print-functions)
(checkdoc-comment-style-hooks):
* lisp/emacs-lisp/cl-lib.el (custom-print-functions):
* lisp/emacs-lisp/edebug.el (gud-inhibit-global-bindings):
* lisp/erc/erc-dcc.el (erc-dcc-chat-filter-hook):
* lisp/eshell/esh-mode.el (eshell-status-in-modeline):
* lisp/eshell/eshell.el (eshell-add-to-window-buffer-names)
(eshell-remove-from-window-buffer-names):
* lisp/faces.el (set-face-underline-p, font-list-limit):
* lisp/files.el (automount-dir-prefix, toggle-read-only):
* lisp/filesets.el (filesets-cache-fill-content-hooks):
* lisp/frame.el (automatic-hscrolling):
* lisp/generic-x.el (javascript-generic-mode)
(javascript-generic-mode-hook):
* lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup-hooks):
* lisp/gnus/nndiary.el (nndiary-request-create-group-hooks)
(nndiary-request-update-info-hooks)
(nndiary-request-accept-article-hooks):
* lisp/htmlfontify.el (hfy-post-html-hooks):
* lisp/international/mule-cmds.el
(inactivate-current-input-method-function)
(inactivate-input-method, input-method-inactivate-hook)
(ucs-insert):
* lisp/international/quail.el (quail-inactivate)
(quail-inactivate-hook):
* lisp/international/robin.el (robin-inactivate)
(robin-inactivate-hook):
* lisp/leim/quail/hangul.el (hangul-input-method-inactivate):
* lisp/leim/quail/uni-input.el (ucs-input-inactivate):
* lisp/mail/emacsbug.el (report-emacs-bug-info):
* lisp/mh-e/mh-e.el (mh-kill-folder-suppress-prompt-hooks):
* lisp/mpc.el (mpc-string-prefix-p):
* lisp/net/rcirc.el (rcirc-print-hooks, rcirc-sentinel-hooks)
(rcirc-receive-message-hooks, rcirc-activity-hooks):
* lisp/obsolete/crisp.el (crisp-mode-modeline-string):
* lisp/pcomplete.el (pcomplete-arg-quote-list)
(pcomplete-quote-argument):
* lisp/progmodes/cc-mode.el (c-prepare-bug-report-hooks):
* lisp/progmodes/python.el (python-info-ppss-context)
(python-info-ppss-context-type)
(python-info-ppss-comment-or-string-p, python-indent)
(python-guess-indent, python-buffer, python-preoutput-result)
(python-proc, python-send-receive, python-send-string)
(python-use-skeletons):
* lisp/progmodes/sh-script.el (sh-maybe-here-document):
* lisp/replace.el (query-replace-interactive):
* lisp/strokes.el (strokes-modeline-string):
* lisp/subr.el (redraw-modeline):
* lisp/term.el (term-default-fg-color, term-default-bg-color):
* lisp/textmodes/tex-mode.el (latex-string-prefix-p)
(tex-string-prefix-p):
* lisp/url/url-parse.el (url-recreate-url-attributes):
* lisp/vc/add-log.el (change-log-acknowledgement):
* lisp/vc/ediff-wind.el
(ediff-choose-window-setup-function-automatically):
* lisp/vc/pcvs-util.el (cvs-string-prefix-p):
* lisp/vc/vc.el (vc-string-prefix-p):
* lisp/window.el (display-buffer-function):
* lisp/winner.el (winner-mode-leave-hook): Remove many functions and
variables obsolete since 24.3.

* lisp/buff-menu.el (list-buffers--refresh):
* lisp/dired.el (dired-mode-map):
* lisp/files.el (abbreviate-file-name):
* lisp/generic-x.el (generic-default-modes):
* lisp/mh-e/mh-funcs.el (mh-kill-folder):
* lisp/progmodes/hideif.el (hide-ifdef-mode-submap):
* lisp/replace.el (query-replace-read-from):
* lisp/term.el (term):
* lisp/window.el (display-buffer): Don't use above deleted
functions and variables.

* src/marker.c (Fbuffer_has_markers_at): Delete DEFUN obsolete
since 24.3.
(syms_of_marker) <Sbuffer_has_markers_at>: Delete defsubr.
* lisp/subr.el (buffer-has-markers-at): Remove obsoletion
of above deleted DEFUN.
* etc/TODO: Doc fix; don't mention above deleted function.

* admin/cus-test.el (cus-test-get-options):
* lisp/pcomplete.el: Doc fixes; don't mention removed items.
; * etc/NEWS: List removed items.
2022-09-09 11:27:30 +02:00
Po Lu
a0886b321c Remove some redundant calls to x_ignore_errors_for_next_request
* src/xterm.c (x_dnd_do_unsupported_drop, x_set_frame_alpha):
Wrap some requests in x_ignore_errors_for_next_request instead
of calling it each time.
2022-09-09 16:27:02 +08:00
Po Lu
adc8344e75 Remove long-broken TESTRM interface
* src/xrdb.c: [TESTRM]:
(fatal, main): Delete functions and code block.  They don't work
and rely on XLIB_ILLEGAL_ACCESS.
2022-09-09 09:54:45 +08:00
Stefan Kangas
816106b7e6 Display librsvg error when loading bad SVG
* src/image.c (svg_load_image): Display the error message from librsvg
when parsing a bad SVG image file.
* test/manual/image-tests.el
(image-tests-load-image/svg-invalid): New test.
2022-09-09 03:07:44 +02:00
Stefan Monnier
6ab183a0f9 * src/keyboard.c (safe_run_hook_funcall): Fix thinko 2022-09-08 16:15:04 -04:00
Stefan Monnier
15e0990805 * src/keyboard.c (safe_run_hook_funcall): Fix recent regression
The mutation of `args` was unsafe because that array was
later reused (and assumed unchanged) by the caller.
https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00329.html
2022-09-08 16:12:01 -04:00
Eli Zaretskii
048b0fd0db ; * src/editfns.c (syms_of_editfns) <restrictions-locked>: Doc fix. 2022-09-08 22:50:41 +03:00
Stefan Kangas
e90a457c46 * src/xrdb.c (main) [TESTRM]: Replace gets with fgets. 2022-09-08 12:46:43 +02:00
Po Lu
56f3cdef6b Avoid selecting for excessive output configuration events
* src/xterm.c (x_term_init): Only select for
RROutputPropertyNotify if GTK is in use.  Emacs doesn't need it
itself, and output property changes will otherwise lead to 2
second freezes over connections with high network latency.
2022-09-08 13:20:33 +08:00
Eli Zaretskii
579eefda36 Don't follow symlinks in w32notify file watches
* src/w32notify.c (add_watch): On filesystems that support
symlinks, don't follow symlinks.  (Bug#57536)
* src/w32.c (symlinks_supported): New function.
* src/w32.h (symlinks_supported): Add prototype.
2022-09-07 15:18:54 +03:00
Po Lu
473313d2a8 Fix nsfont breakage since 6b1ed2f2c9
* nsfont.m (ns_spec_to_descriptor): Fix coding style, also
handle `monospace' special family.
(ns_descriptor_to_entity): Fix reporting of spacing on fonts.
(ns_findfonts): Fix coding style.
2022-09-07 09:52:35 +08:00
Po Lu
976965eb5e Reenable reporting of frame movement on NS
* src/nsterm.m ([EmacsView windowDidMove:]): Restore code to
generate MOVE_FRAME_EVENTS, and use kbd_buffer_store_event
instead.
2022-09-07 09:52:35 +08:00
Po Lu
a3d7332d75 Correctly handle frame synchronization on fullscreen KWin
* src/xfns.c (x_set_use_frame_synchronization): Announce that we
do not want the compositor to unredirect the frame while
fullscreen.
* src/xterm.c (x_atom_refs): New atom
`_NET_WM_BYPASS_COMPOSITOR'.
* src/xterm.h (struct x_display_info): Likewise.
2022-09-06 19:39:24 +08:00
Po Lu
21c8a9d944 Fix crash while converting empty vector to X data
* src/xselect.c (lisp_data_to_selection_data): Assume an empty
vector represents INTEGER data, instead of blindly trying to
aref it's first element.
2022-09-05 09:51:22 +08:00
Po Lu
55ff36485f Fix earlier change to xterm.c
* src/xterm.c (x_detect_focus_change): Finally figure out what
the call to x_new_focus_frame does with the core focus, and do
the equivalent with the XInput 2 focus.
2022-09-04 21:04:19 +08:00
Jeff Walsh
22bee93d92 Update error message to reflect variable rename
* src/comp.c (Fcomp_el_to_eln_filename): Update error message.  (Bug#55861)

[ According to the Git metadata, this commit 8436e0bee9 was already
  merged from `emacs-28`, yet the code says it was not.  :-(  ]
2022-09-03 12:55:27 -04:00
Po Lu
b861adce06 ; * character.c (Fmax_char): Fix build with type checking. 2022-09-03 21:45:46 +08:00
Po Lu
ab5ca80e74 Work around another X server bug in crossing event dispatch
* src/xterm.c (xi_focus_handle_for_device): Clear implicit focus
along with FocusOut.  (bug#57468)
(x_mouse_leave): Avoid invalid reads of
dpyinfo->x_focus_event_frame on input extension builds.
2022-09-03 21:44:48 +08:00
Po Lu
91ba20fff1 Work around potential X server bug
* src/xterm.c (handle_one_xevent): Ignore core crossing events
on input extension builds.  The X server is not actually
supposed to deliver them to us, and it messes up MPX focus
tracking.  (bug#57468)
2022-09-03 19:57:12 +08:00
Eli Zaretskii
dcfe3314cd Teach 'max-char' about the Unicode code range
* src/character.c (Fmax_char): Accept an optional argument
UNICODE, and, if non-nil, return the maximum codepoint defined by
Unicode.

* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Update the
signature of 'max-char'.

* etc/NEWS:
* doc/lispref/nonascii.texi (Character Codes): Update the
documentation of 'max-char'.
2022-09-03 13:45:53 +03:00
Gregory Heytings
d0a66f3e0e Display a warning for some uses of nil in face attributes.
* src/xfaces.c (HANDLE_INVALID_NIL_VALUE): New macro, which displays
a warning for invalid uses of nil as a face attribute value.
(Finternal_set_lisp_face_attribute): Use the macro for the attributes
:foreground, :distant-foreground and :background.
2022-09-02 22:30:25 +02:00
Po Lu
2ff5763836 Prevent crashes when embedding Emacs in a nonexistent parent
* src/xfns.c (x_window, Fx_create_frame): Handle X errors while
trying to reparent the frame onto an explicitly specified
parent.
* src/xterm.c (handle_one_xevent): Handle unparenting embedded
windows correctly.  This only works if the embedder is aware of
the fixes extension and has put the window into the right save
set.
(x_embed_frame): New function.
* src/xterm.h (FRAME_X_EMBEDDED_P): Fix coding style.
2022-09-02 17:19:51 +08:00
Po Lu
177811ac0c Fix bug#57476 for Xt builds
* src/xterm.c (handle_one_xevent): Add similar event mode check
to code under USE_X_TOOLKIT conditional.  (bug#57476)
2022-09-01 21:22:28 +08:00
Mattias Engdegård
e7193902b2 Better take and ntake bignum argument handling
* src/fns.c (Ftake, Fntake): Treat positive bignum arguments
as most-positive-fixnum which results in better error checking
of improper lists.
2022-09-01 10:11:53 +02:00
Eli Zaretskii
67b85decc7 ; * src/xdisp.c (lookup_glyphless_char_display): Fix last merge. 2022-09-01 08:56:30 +03:00
Stefan Kangas
0bd860cc2e Merge from origin/emacs-28
8807a4f532 Enable 256 colors in fbterm.
bbc23ca8ab One more fix for find-file.el
0cbcaf5119 ; Yet another doc fix for 'ff-other-file-alist' (bug#57325)
2d9a391727 Recommend using fbterm in the Linux console.
a5a92e577c ; * src/window.c (syms_of_window) <window-point-insertion-...
4d52fe6b96 * lisp/find-file.el (ff-other-file-alist): Doc fix.  (Bug#...
d111b5b651 * lisp/info.el (Info-mode): Support the Linux console better.
cc945ec0ed ; Fix doc strings in latin1-disp.el
195fcc932e Improve the documentation of glyphless-character display
72ae02377e ; * lisp/jit-lock.el (jit-lock-chunk-size): Doc fix.
3fb69fad49 Fix documentation of 'glyphless-char-display'

# Conflicts:
#	lisp/international/characters.el
#	src/xdisp.c
2022-09-01 06:17:37 +02:00
Po Lu
136495f178 Gently nudge Xt into always setting size hints
* src/widget.c (update_wm_hints): Force a resource to change
every time this function is called.  (bug#57475)
(EmacsFrameInitialize): Initialize new field.
* src/widgetprv.h (EmacsFramePart): New field `size_switch'.
* src/xterm.c (x_wm_set_size_hint): Don't change flags if flags
is 0.
2022-08-31 10:17:43 +08:00
Po Lu
5bedef8f87 Fix bug#57476
* src/xterm.c (handle_one_xevent): Don't reset valuators on certain
crossing events, for the benefit of xfwm4.  (bug#57476)
2022-08-31 09:44:13 +08:00
Mattias Engdegård
e1e60e51bf Accept bignum arguments in take and ntake
* src/fns.c (Ftake, Fntake): Accept any integer as first argument, for
completeness.
* test/src/fns-tests.el (fns--take-ntake): Add test cases.
2022-08-30 16:48:25 +02:00
Mattias Engdegård
5cf7b1ada9 ; * src/lread.c (invalid_radix_integer): Use a local buffer. 2022-08-30 16:24:21 +02:00
Po Lu
0bf5463f81 Fix junk data being returned with incremental selection transfers
* src/xselect.c (receive_incremental_selection): New arg
REAL_BYTES_RET.  Set it to the actual size instead of using the
size of the array after it was grown by xpalloc.
(x_get_window_property_as_lisp_data): Adjust call to
receive_incremental_selection.
2022-08-30 19:28:03 +08:00
Mattias Engdegård
8954fcb93b ; * src/lread.c (read0): Fix specpdl off-by-one bug in last change. 2022-08-30 11:26:40 +02:00
Mattias Engdegård
c0bb1aac10 Fix reader memory leak upon error (bug#56623)
Reported by Tom Gillespie; error found by Greg Hendershott.

* src/lread.c (read_stack_reset): New.
(read0): Reset read stack when unwinding from an error.
2022-08-29 17:48:47 +02:00
Eli Zaretskii
a5a92e577c ; * src/window.c (syms_of_window) <window-point-insertion-type>: Doc fix. 2022-08-29 17:09:02 +03:00
Stefan Monnier
5cae71834b * src/keyboard.c (safe_run_hooks*): Simplify and generalize
(safe_run_hooks_1, safe_run_hook_funcall): Simplify and generalize to
arbitrary `nargs`.
(safe_run_hooks_error): Remove unneeded assertion.
2022-08-29 09:03:34 -04:00
Po Lu
18d5eadf2c Unify floating point handling when reading XI motion events
* src/xterm.c (handle_one_xevent): Always round values as
recommended, instead of just truncating them.  Also fixes
weird "jitter" during drag-and-drop on some clients.
2022-08-29 17:23:28 +08:00
Eli Zaretskii
195fcc932e Improve the documentation of glyphless-character display
* lisp/international/characters.el (glyphless-char-display-control):
* src/xdisp.c (syms_of_xdisp) <glyphless-char-display>: Mention
the 'glyphless-char' face in the doc string.

* doc/lispref/display.texi (Glyphless Chars): Index
'glyphless-char' face.
2022-08-28 08:40:25 +03:00
Po Lu
d704c61e25 Fix two issues in xterm.c
* src/xterm.c (x_atom_refs): Make EMACS_SERVER_TIME_PROP atom
have a vendor-specific prefix.
(x_query_pointer_1): Fix leak of button mask.
2022-08-28 12:02:43 +08:00
Juri Linkov
3f076a8e44 Use truncated-partial-width-window-p in more places (bug#56815)
* lisp/simple.el (line-move, line-move-finish):
Use truncated-partial-width-window-p.

* lisp/window.el (count-screen-lines, scroll-command--goto-goal-column):
Use truncated-partial-width-window-p.
(truncated-partial-width-window-p): Replace window-width with
window-total-width.

* src/indent.c (scan_for_column): Bring the logic of using
truncated-partial-width-window-p closer to what the display engine does.
2022-08-27 22:52:03 +03:00
Eli Zaretskii
6b1ed2f2c9 Fix antialias face attribute when text is scaled
This restores the code we had in realize_gui_face before commit bf0d3f7.
The problem described in bug#17973, which led to that commit, only
happens if one uses a specific (misc-fixed) font family, not for
the usual default fonts used by Emacs, and I'm not sure what's
described there is a bug at all.  At least for the purposes of
text-scale-adjust, it makes no sense to ignore the
foundry/family/adstyle of the original font, because we _want_ the
same (or very similar) font, just of a different size.

And likely in other use cases: if the :font attribute of a face
specifies some font properties, we want to keep them all, not
arbitrarily to ignore some of them.  And definitely catering to an
obscure use case such as the one cited in bug#17973 is NOT a good
reason to make such radical changes in face-realization behavior.

So I think backing out that part of commit bf0d3f7 is TRT, and if
we decide that this causes bug#17973 in too many situations we care
about, I'd rather find a kludge for that specific case than do that
for every face realization.
* src/xfaces.c (realize_gui_face): Preserve face attributes when
text is scaled.  This reverts part of the changes installed in
commit bf0d3f7.  (Bug#37473)
2022-08-27 13:13:48 +03:00
Eli Zaretskii
56aa52c346 Support "replacement characters" on TTY frames
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground):
* src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
* src/haikuterm.c (haiku_draw_glyphless_glyph_string_foreground):
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
* src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
* src/xdisp.c (lookup_glyphless_char_display): Handle extra-slot
of 'glyphless-char-display' that is a cons cell.
(syms_of_xdisp) <glyphless-char-display>: Update doc string.

* etc/NEWS:
* doc/lispref/display.texi (Glyphless Chars): Document the new
feature.

* lisp/faces.el (glyphless-char): Make the face stand out on TTY
frames that don't support the underline attribute.
2022-08-27 11:56:00 +03:00
Eli Zaretskii
3fb69fad49 Fix documentation of 'glyphless-char-display'
* src/xdisp.c (syms_of_xdisp)<glyphless-char-display>: Doc fix.
(gui_produce_glyphs, lookup_glyphless_char_display): Fix
indentation.
2022-08-27 10:50:57 +03:00