Mattias Engdegård
60102016e4
Abolish max-specpdl-size (bug#57911)
...
The max-lisp-eval-depth limit is sufficient to prevent unbounded stack
growth including the specbind stack; simplify matters for the user by
not having them to worry about two different limits. This change
turns max-specpdl-size into a harmless variable with no effects,
to keep existing code happy.
* lisp/subr.el (max-specpdl-size):
Define as an ordinary (but obsolete) dynamic variable.
* admin/grammars/Makefile.in:
* doc/lispintro/emacs-lisp-intro.texi (Loops & Recursion):
* doc/lispref/control.texi (Cleanups):
* doc/lispref/edebug.texi (Checking Whether to Stop):
* doc/lispref/eval.texi (Eval):
* doc/lispref/variables.texi (Local Variables):
* doc/misc/calc.texi (Recursion Depth):
Update documentation.
* etc/NEWS: Announce.
* src/eval.c
(FletX): Use safe iteration to guard against circular bindings list.
(syms_of_eval): Remove old max-specpdl-size definition.
(init_eval_once, restore_stack_limits, call_debugger)
(signal_or_quit, grow_specpdl_allocation):
* leim/Makefile.in:
* lisp/Makefile.in:
* lisp/calc/calc-stuff.el (calc-more-recursion-depth)
(calc-less-recursion-depth):
* lisp/calc/calc.el (calc-do):
* lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-rules):
* lisp/cedet/semantic/grammar.el (semantic-grammar-batch-build-one-package):
* lisp/cus-start.el (standard):
* lisp/emacs-lisp/comp.el (comp--native-compile):
* lisp/emacs-lisp/edebug.el (edebug-max-depth):
(edebug-read-and-maybe-wrap-form, edebug-default-enter):
* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
* lisp/eshell/esh-mode.el (eshell-mode):
* lisp/loadup.el (max-specpdl-size):
* lisp/mh-e/mh-e.el (mh-invisible-headers):
* lisp/net/shr.el (shr-insert-document, shr-descend):
* lisp/play/hanoi.el (hanoi-internal):
* lisp/progmodes/cperl-mode.el:
* src/fileio.c (Fdo_auto_save):
Remove references to and modifications of max-specpdl-size.
2022-09-19 19:30:03 +02:00
Eli Zaretskii
cd2168cd13
Fix 'posn-at-point' around several 'display' properties
...
* src/xdisp.c (pos_visible_p): Fix the case when CHARPOS is hidden
by a display property, and its neighbors are also hidden.
(Bug#45915)
2022-09-19 16:24:44 +03:00
Stefan Kangas
97679d06e8
Avoid an unnecessary call to intern
...
* src/doc.c (Fdocumentation): Prefer DEFSYM to using intern directly.
2022-09-19 11:38:49 +02:00
Stefan Kangas
731c453b03
Merge from origin/emacs-28
...
a2f9788cbc ; Minor copyedits of *-frame-alist doc strings
c200098dde ; * src/intervals.c (get_local_map): Fix commentary.
69cc3d38bc Fix Tramp error with eshell integration
2022-09-19 06:31:49 +02:00
Po Lu
5b3c4004a9
Remove calls to intern with a static string from code that runs on X
...
* Makefile.in (actual-all): Reword build failure advice.
* src/bytecode.c (exec_byte_code, syms_of_bytecode):
* src/font.c (syms_of_font):
* src/hbfont.c (uni_combining):
* src/xfns.c (Fx_display_backing_store, Fx_display_visual_class)
(x_create_tip_frame, Fx_show_tip, syms_of_xfns):
* src/xfont.c (xfont_supported_scripts, xfont_driver)
(syms_of_xfont):
* src/xsmfns.c (Fhandle_save_session, syms_of_xsmfns): Remove
calls to intern with a static string.
2022-09-19 10:01:52 +08:00
Po Lu
202c416e2e
Get rid of intern calls to static strings in xterm.c
...
* src/xterm.c (x_cr_export_frames): Use Qconcat instead of
interning concat.
(syms_of_xterm): New defsym Qconcat.
2022-09-19 09:39:21 +08:00
Po Lu
a5405e5644
Fix GC protection of scroll bar windows
...
* src/xterm.c (x_atom_refs): Add _EMACS prefix to
vendor-specific scroll-bar atoms.
(handle_one_xevent): Unprotect windows immediately upon
receiving an _EMACS_SCROLLBAR event, instead of waiting for the
event to be put on the keyboard buffer. Reported by martin
rudalics <rudalics@gmx.at >.
2022-09-19 09:36:44 +08:00
Eli Zaretskii
a2f9788cbc
; Minor copyedits of *-frame-alist doc strings
...
* src/frame.c (syms_of_frame) <default-frame-alist>:
* lisp/frame.el (initial-frame-alist): Minor doc fixes.
2022-09-18 20:21:58 +03:00
Eli Zaretskii
c200098dde
; * src/intervals.c (get_local_map): Fix commentary.
2022-09-18 19:59:58 +03:00
Stefan Kangas
1bdac41e4d
Prefer using DEFSYMs to intern with wrong_type_argument
...
* src/data.c (syms_of_data) <Qbooleanp>:
* src/fileio.c (syms_of_fileio) <Qinserted_chars, Qfile_offset>:
* src/font.c (syms_of_font) <Qfont_extra_type>: New DEFSYMs.
* src/dbusbind.c (xd_signature, xd_append_arg):
* src/fileio.c (file_offset, Finsert_file_contents):
* src/font.c (Ffontp): Prefer using above new DEFSYMs to using intern
directly.
2022-09-18 18:55:19 +02:00
Po Lu
25587ada2c
Remove what should be unnecessary calls to block_input
...
* src/xterm.c (handle_one_xevent): Do not block input inside.
This function is not reentrant and is always called with input
blocked.
2022-09-18 15:24:02 +08:00
Gerd Möllmann
117795a059
Fix possible null pointer access
...
* src/term.c (Ftty__output_buffer_size): Handle case of
decode_tty_terminal returning NULL.
2022-09-18 07:44:23 +02:00
YAMAMOTO Mitsuharu
7fe22182d3
Fix rare shaping problems with Urdu and Arabic
...
* src/composite.c (fill_gstring_body): Clear unused slots of the
gstring. (Bug#50951)
2022-09-17 19:58:52 +03:00
Gerd Möllmann
cbac94b4ae
Optimize tty display updates (bug#57727)
...
* src/dispnew.c (update_frame_1): Don'f flush if tty's
output_buffer_size is non-zero.
* src/sysdep.c (init_sys_modes): Setvbuf depending on the tty's
output_buffer_size.
* src/term.c (Ftty__set_output_buffer_size, Ftty__output_buffer_size):
Low-level interface for setting and retrieving a tty's output buffer
size.
(syms_of_term): Defsubr the new functions.
* src/termchar.h (struct tty_display_info): New member
output_buffer_size.
* stc/NEWS: Describe the change.
2022-09-17 15:33:10 +02:00
Po Lu
f7eec293a6
Fix MPX focus tracking upon frame deletion
...
* src/xterm.c (x_free_frame_resources): Consider focus change
after.
2022-09-17 16:46:40 +08:00
Eli Zaretskii
55cffddad4
; Update src/macuvs.h, forgotten in Unicode 15.0 commit.
2022-09-17 10:15:14 +03:00
Po Lu
4cb3b4e98a
Fix wrong source window being generated for XDND leave events
...
* src/xterm.c (x_dnd_update_state, handle_one_xevent): Let
x_dnd_last_seen_toplevel remain at its old value until any
XdndLeave event was definitely sent.
2022-09-16 17:01:41 +08:00
Po Lu
3c0dda2663
Avoid asserting for fontset validity before it is used
...
* src/fontset.c (face_for_char): Move `eassert' to before the
fontset is really used. Suggested by Eli Zaretskii
<eliz@gnu.org >
2022-09-16 15:52:21 +08:00
Gerd Möllmann
e3b79c641e
Fix crash in GC on macOS (bug#57751)
...
* src/nsterm.m ([EmacsView windowDidMove:]): Initialize input_event.
2022-09-16 07:17:47 +02:00
Eli Zaretskii
6bcc7a2df7
; Fix last change in w32fns.c.
2022-09-15 14:59:50 +03:00
Eli Zaretskii
09e93c4daf
Implement support for 'wallpaper-set' on MS-Windows
...
* src/w32fns.c (Fw32_set_wallpaper): New primitive.
(syms_of_w32fns): Defsubr it.
(globals_of_w32fns): Attempt to load SystemParametersInfoW from
its DLL at run time.
* lisp/image/wallpaper.el (wallpaper-set): Support MS-Windows by
calling 'w32-set-wallpaper'.
* etc/NEWS: Update and simplify wording of the 'wallpaper-set'
entry.
2022-09-15 14:51:31 +03:00
Mattias Engdegård
3ad2adc48c
Simplify and shrink reader buffers
...
A big on-stack buffer in a potentially long-running function can
interact badly with the GC's conservative scanning of the C stack.
It may make the scanning slower (since the stack frame is big) and
risks accidental retention of objects from stack detritus
(because the buffer isn't cleaned on entry).
* src/lread.c (stackbufsize): Remove.
(read_integer, read_string_literal, read_bool_vector): Use a local
buffer instead of piggy-backing on that in read0.
(read0): Reduce buffer to something suitable for most identifiers and
numbers.
2022-09-15 09:41:15 +02:00
Mattias Engdegård
f941cc76df
mapconcat fast path with identity function argument
...
This makes (mapconcat #'identity SEQ) slightly faster than
(apply #'concat SEQ), which used to be much faster.
Notably, `string-join` benefits from this change as it uses mapconcat.
* src/fns.c (Fmapconcat): Speed up execution when the function
argument is `identity`.
2022-09-15 09:40:08 +02:00
Po Lu
429e61b130
More fixes for XDND proxy support
...
* src/xterm.c (handle_one_xevent): Check replies against
toplevel, not proxy.
2022-09-15 15:30:47 +08:00
Eli Zaretskii
52a3ba102c
Revert "; Fix doc string of 'loaddefs-generate'"
...
This reverts commit 5fe9a1a85a .
It included unrelated changes.
2022-09-15 09:14:59 +03:00
Eli Zaretskii
5fe9a1a85a
; Fix doc string of 'loaddefs-generate'
...
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Doc fix.
(Bug#57815)
2022-09-15 09:12:13 +03:00
Augusto Stoffel
05971d2b8d
; * src/emacs.c (usage_message): Remove stray tabs.
2022-09-14 21:21:33 +02:00
Mattias Engdegård
cba866599c
Raise default max-specpdl-size and max-lisp-eval-depth
...
Recent changes have caused bootstrapping to fail for certain
configurations, and it was likely getting close to the limits
for others. This change raises the limits to those previously
used when configured for nativecomp:
max-specpdl-size raised from 1800 to 2500
max-lisp-eval-depth raised from 800 to 1600
* src/eval.c (init_eval_once): Raise limits.
* doc/lispref/eval.texi (Eval):
* doc/lispref/variables.texi (Local Variables): Document new values.
2022-09-14 15:59:43 +02:00
Po Lu
b9ca1a8e4f
Implement wallpaper.el support for Haiku
...
* lisp/image/wallpaper.el (haiku-set-wallpaper, wallpaper-set):
Use `haiku-set-wallpaper' on Haiku.
* lisp/term/haiku-win.el (haiku-write-node-attribute)
(haiku-send-message, haiku-set-wallpaper): New function.
* src/haiku_support.cc (be_write_node_message, be_send_message):
New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (haiku_message_to_lisp)
(haiku_lisp_to_message): Fix CSTR type handling to include NULL
byte.
(haiku_report_system_error, Fhaiku_write_node_attribute)
(Fhaiku_send_message): New functions.
(syms_of_haikuselect): Add defsubrs.
2022-09-14 06:25:11 +00:00
Paul Eggert
49419912f2
Port alignas definition to C23
...
* src/lisp.h (alignas): C23 is removing the __alignas_is_defined
macro, so do not rely on it. Instead, do not define alignas if C23
or later, or if C++11 or later.
2022-09-13 12:42:31 -05:00
Lars Ingebrigtsen
07ee1be052
Move imagep in image.c from the debugging section
...
* lisp/simple.el (imagep): Remove.
* src/image.c (Fimagep): Always define.
2022-09-13 16:37:31 +02:00
Eli Zaretskii
48c562fb74
; * src/image.c (svg_load_image): Another minor cleanup. (Bug#51104)
2022-09-13 17:12:40 +03:00
Eli Zaretskii
96b221dd2a
; * src/image.c (svg_load_image): Always free 'err' if non-NULL.
2022-09-13 16:38:50 +03:00
Eli Zaretskii
dfbe745ed9
Fix last change in image.c
...
* src/image.c (svg_load_image): Don't call Lisp to remove trailing
whitespace from librsvg error messages, do it in C instead; this
reduces consing and is much cleaner. Don't display empty error
reason if librsvg happens to return an empty message text.
(syms_of_image): Don't DEFSYM string-trim-right. (Bug#57755)
2022-09-13 16:26:50 +03:00
dickmao
dd22694421
Avoid double svg error reporting and segfaults
...
* src/image.c (svg_load_image): Use g_error_free directly instead
of the helder g_clear_error (since we're only calling it with
non-nil values).
(svg_load_image): Avoid segfault and double reporting errors.
* test/manual/image-tests.el (image-tests-load-image/svg-too-big)
(image-tests-load-image/svg-invalid): Test it (bug#57755).
2022-09-13 13:57:44 +02:00
Po Lu
a139748e54
Fix frames with explicit parent being unmapped after parent shuts down
...
* src/xterm.c (handle_one_xevent): Delete leftover _XEMBED_INFO
property after parent shuts down.
2022-09-13 14:30:09 +08:00
Po Lu
239bad7921
Fix focus restoration upon x_mouse_leave again
...
* src/xterm.c (x_mouse_leave): Call xi_handle_focus_change after
changing the implicit focus.
2022-09-12 14:01:52 +08:00
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