Commit graph

44176 commits

Author SHA1 Message Date
Martin Rudalics
04716ca48f Add tab-bar-drag-maybe for indication of tab dragging (bug#50993)
* lisp/tab-bar.el (tab-bar--event-to-item)
(tab-bar-mouse-move-tab): Set tab-bar-drag-maybe to nil.
(tab-bar-mouse-down-1): Set tab-bar-drag-maybe to t.

* src/xdisp.c (note_mouse_highlight): Set cursor to 'hand_cursor'
when tab_bar_drag_maybe is true.
(syms_of_xdisp): New variable tab-bar-drag-maybe.
2021-10-17 20:48:45 +03:00
Po Lu
77dbaedadc Add tab bar support to the nextstep port
* src/nsfns.m (ns_change_tab_bar_height): New function.
(ns_set_tab_bar_lines): Check tab bar height and set tab bar
accordingly.
* src/nsterm.m (ns_clear_under_internal_border): Clear internal border
correctly when there is a tab bar.
(ns_create_terminal): Add ns_change_tab_bar_height.
(mouseDown): Handle tab bar mouse click events.
2021-10-17 10:54:18 +01:00
Alan Third
7b6fb486c2 Fix potential buffer overflow (bug#50767)
* src/image.c (svg_load_image): Check how many bytes were actually
written to the buffer.  Don't check xmalloc return value as xmalloc
doesn't return if it fails.
2021-10-17 10:54:18 +01:00
Eli Zaretskii
e8488808df Avoid aborts when a thread is signaled while "waiting for input".
* src/process.c (kbd_is_ours): New function.
(wait_reading_process_output): Set 'waiting_for_input' only if the
current thread is monitoring the keyboard descriptor.  See also
https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01180.html.
(Bug#51229)
2021-10-16 14:47:32 +03:00
Martin Rudalics
f5b8df14c6 Fixes to account for windows' tab lines
* doc/lispref/display.texi (Size of Displayed Text): Fix entry
on 'window-text-pixel-size'.
* lisp/window.el (window--dump-window): Dump tab-line-height and
scroll-bar-height too.
(window--min-size-1): Take 'window-tab-line-height' into account.
* src/xdisp.c (Fwindow_text_pixel_size): Fix doc-string of
'window-text-pixel-size'.  Rename last argument to 'MODE-LINES'.
2021-10-15 10:21:05 +02:00
Martin Rudalics
8153f70b9c In make_lispy_position fix Bug#50993 in rudimentary fashion
* src/keyboard.c (make_lispy_position): Do not set posn to
tool- or tab-bar when track_mouse is enabled (Bug#50993).
2021-10-14 10:39:27 +02:00
Paul Eggert
ebeaa54f19 Pacify GCC 11 -fanalyzer on x86-64
* src/buffer.c (fix_overlays_before):
Redo slightly to work around GCC bug 102692
<https://gcc.gnu.org/bugzilla//show_bug.cgi?id=102692>.
2021-10-12 11:54:32 -07:00
Eli Zaretskii
66b8dfd060 ; Fix last change related to shorthands
* src/lread.c (read1): Minor stylistic fixes of the last change,
including the wording of the comment.

* doc/lispref/symbols.texi (Shorthands): Fix wording and typos.
2021-10-12 16:20:47 +03:00
Martin Rudalics
3832b983cf In Fdelete_other_windows_internal fix new total window sizes (Bug#51007)
* src/window.c (Fdelete_other_windows_internal): Assign the
new total sizes of windows _after_ the new window configuration
is in place (Bug#51007).
2021-10-12 09:25:57 +02:00
João Távora
cf1409db71 Don't apply shorthands to punctuation-only symbols (bug#51089)
This includes symbols used for arithmetic functions such as -, /=,
etc.  Using "-" or "/=" is still possible but doing so won't shadow
those functions.

* doc/lispref/symbols.texi (Shorthand, Exceptions): New
subsubsection.

* src/lread.c (read1): Exempt punctionation-only symbols from
oblookup_considering_shorthand.

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-dont-shadow-punctuation-only-symbols): Tweak test.
2021-10-11 22:29:16 +01:00
Paul Eggert
0d374b1b83 Work around GCC bug 102671
This is for --enable-gcc-warnings on GCC 11.2.1.
* src/window.c, src/timefns.c: Disable -Wanalyzer-null-dereference.
2021-10-11 09:24:56 -07:00
Eli Zaretskii
1a1b206a8b Adapt the recent 'num_processors' change to MS-Windows
* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nproc): Omit nproc.

* src/w32.c (num_processors): New function.
* src/w32proc.c (Fw32_get_nproc): Remove.
2021-10-11 15:56:31 +03:00
Paul Eggert
96278de8ac New function num-processors
This addresses a FIXME comment in lisp/emacs-lisp/comp.el,
relating to the number of subsidiary processes used by
comp-run-async-workers in native compilation.
* admin/merge-gnulib (GNULIB_MODULES): Add nproc.
* doc/lispref/processes.texi (Process Information), etc/NEWS:
Document num-processors.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/nproc.c, lib/nproc.h, m4/nproc.m4:
New files, copied from Gnulib by admin/merge-gnulib.
* lisp/emacs-lisp/comp.el (w32-get-nproc): Remove decl.
(comp-effective-async-max-jobs): Use num-processors.
* src/process.c: Include nproc.h.
(Fnum_processors): New function.
(syms_of_process): Define ‘all’, ‘current’, ‘num-processors’.
* src/w32proc.c (Fw32_get_nproc): Add FIXME comment.
* test/src/process-tests.el (process-num-processors): New test.
2021-10-10 14:00:26 -07:00
Eli Zaretskii
ae61d7a57d Fix point positioning on mouse clicks with non-zero line-height
* src/xdisp.c (move_it_to): After passing a newline, reset
it->override_ascent, like 'display_line' does (in
'append_space_for_newline').  (Bug#51111)
2021-10-10 17:14:55 +03:00
Eli Zaretskii
00eb21c897 ; * src/dispextern.h (struct glyph_string): Comment on NCHARS. (Bug#51105) 2021-10-09 14:38:06 +03:00
Eli Zaretskii
315fe20086 ; * src/Makefile.in (../native-lisp): Add comment. 2021-10-09 11:23:44 +03:00
Stephen Gildea
65de510c16 ; Fix 'restore-buffer-modified-p' doc string typo
* src/buffer.c (restore-buffer-modified-p): Fix typo in doc string:
"and" for "or" regarding lock/unlock.  Note that 'set-buffer-modified-p'
doc string already uses the correct "or".
2021-10-07 20:11:36 -07:00
Paul Eggert
89d64fca75 Pacify GCC 10.3 -Wmaybe-uninitialized
Problem reported by Basil L. Contovounesios (Bug#51075).
* src/term.c (encode_terminal_code):
Add an UNINIT to pacify GCC 10 bug.
2021-10-07 13:09:47 -07:00
Eli Zaretskii
7ae70054aa ; * src/composite.h (LGSTRING_FONT): Add comment about its role. 2021-10-07 19:27:49 +03:00
Eli Zaretskii
3c29fb705c ; * src/Makefile.in (../native-lisp): Make the long recipe silent. 2021-10-07 18:48:09 +03:00
Eli Zaretskii
7cb98ba057 ; * src/keyboard.c (make_lispy_position): Avoid GCC warning. (Bug#51076) 2021-10-07 16:09:37 +03:00
Eli Zaretskii
b5afbedc90 Backward compatibility option for 'nobreak-char-display'
* src/xdisp.c (syms_of_xdisp) <nobreak-char-ascii-display>: New
variable.
(get_next_display_element): If 'nobreak-char-ascii-display' is
non-nil, display non-ASCII space and hyphen characters as their
ASCII equivalents.  (Bug#50983)

* etc/NEWS:
* etc/PROBLEMS: Mention 'nobreak-char-ascii-display'.
2021-10-05 17:12:49 +03:00
Paul Eggert
1a65d49931 Port recent Gnulib changes to MS-Windows
* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_free-posix)
(OMIT_GNULIB_MODULE_malloc-posix)
(OMIT_GNULIB_MODULE_realloc-gnu)
(OMIT_GNULIB_MODULE_realloc-posix):
New macros, since we don’t want these modules on MS-Windows.
* src/w32heap.c (heap_alloc, heap_realloc): New functions.
(malloc_after_dump, realloc_after_dump, realloc_before_dump):
Use them.
2021-10-04 15:21:43 -07:00
Paul Eggert
68a256c892 Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove.  These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 15:21:31 -07:00
Ken Brown
894dfe70da Fix native-compilation build from tarball on Cygwin
* src/Makefile.in (../native-lisp) [CYGWIN]: Rebase the *.eln
files after they are all created, to avoid fork problems later in
the build.  (Bug#50666)
2021-10-04 14:53:46 -04:00
Robert Pluim
9750e78202 Fix problem with 'vertical-motion' and emoji
* src/font.c (font_range): Pass correct position to
font_for_char (Bug#51012).
2021-10-04 18:56:52 +02:00
Gregory Heytings
95a0227ff7 Avoid exiting when outputting error messages during loadup
* src/print.c (print_error_message): Don't call
'substitute-command-keys' when it isn't fboundp.
2021-10-04 18:04:20 +03:00
Eli Zaretskii
b7ae0232be ; * src/Makefile.in (../native-lisp): More tweaks of the recipe. 2021-10-04 16:54:37 +03:00
Paul Eggert
3b8dda6c90 Add safety check in x_menu_show
* src/xmenu.c (x_menu_show): Explicitly check whether save_wv can
be null here.  Looks like it can be but I am not 100% sure, so
play it safe and add a FIXME comment.
2021-10-03 20:30:55 -07:00
Paul Eggert
e1fb731393 Tweak x_connection_closed when I/O error
* src/xterm.c (x_connection_closed): Don’t dereference dpyinfo
in the unlikely case where it is null and ioerror is true.
This pacifies gcc 11.2.1 -Wanalyzer-null-dereference.
2021-10-03 20:19:38 -07:00
Paul Eggert
d00f3d4c05 Port unused decls to C2x
* src/conf_post.h (ATTRIBUTE_UNUSED): Remove.  All uses replaced
by MAYBE_UNUSED, and moved to start as needed for C2x.
2021-10-03 20:05:09 -07:00
Paul Eggert
87153cc915 Tweak x_hide_tip for consistency
* src/xfns.c (x_hide_tip, Fx_show_tip): Be consistent about using
!NILP (tip_frame) instead of FRAMEP (tip_frame).  The two
expressions are logically equivalent since tip_frame is either a
frame or nil, !NILP is a bit faster, and making things consistent
pacifies gcc 11.2.1 -Wanalyzer-null-dereference.
2021-10-03 17:59:32 -07:00
Paul Eggert
7e871dcd27 Remove encode_terminal_code UNINITs
* src/term.c (encode_terminal_code): Clarify by removing a couple
of UNINITs and testing the local variable ‘cmp’ instead of
retesting src->u.cmp.automatic.  This pacifies gcc 11.2.1
-Wanalyzer-null-dereference.
2021-10-03 17:52:28 -07:00
Paul Eggert
2a00634880 Port pdumper.c maybe_unused to C2x
Port pdumper.c to C2x, and pacify gcc 11.2.1 -Wattributes -Wunused.
* src/pdumper.c (dump_tailq_prepend):
Omit ATTRIBUTE_UNUSED, since it’s always used.
(dump_tailq_append): Remove; unused.
2021-10-03 17:46:00 -07:00
Paul Eggert
6d9b3c0eaa Port systhreads.h to C2x
* src/systhread.h: Put NODISCARD at the start of extern
declarations, not at the end.  This is needed by C2x.
This patch also pacifies gcc 11.2.1 -Wattributes.
2021-10-03 17:32:03 -07:00
Paul Eggert
fd274d7d24 Pacify -Wanalyzer-null-argument in lisp_malloc
* src/alloc.c (lisp_malloc): Document that NBYTES must be
positive, and omit a needless runtime check.  This pacifies a
false alarm with gcc 11.2.1 -Wanalyzer-possible-null-dereference.
2021-10-03 16:55:17 -07:00
Paul Eggert
cc3fc94f09 Pacify gcc 11.2.1 -Wanalyzer-null-argument
* src/gtkutil.c (xg_item_label_same_p): Clarify boolean expression
to pacify -Wanalyzer-null-argument with GCC 11.2.1 20210728
(Red Hat 11.2.1-1).
2021-10-03 16:55:17 -07:00
Eli Zaretskii
4831426158 Fix recipe for 'native-lisp' directory
* src/Makefile.in (../native-lisp): If the directory native-lisp
exists, do nothing.
2021-10-03 22:35:04 +03:00
Andreas Schwab
5deeb0947d * src/Makefile.in: Simplify conditionals. 2021-10-03 19:46:13 +02:00
Eli Zaretskii
c1b1e1f545 Define HAVE_NATIVE_COMP in src/Makefile.in
* src/Makefile.in (HAVE_NATIVE_COMP): Define.  Reported by Ken
Brown <kbrown@cornell.edu>.
2021-10-03 19:05:49 +03:00
João Távora
137fa2d716 Rename elisp-shorthands to read-symbol-shorthands
The new name fits better in the family of variables that affect
the Lisp reader.

Suggested-by: Po Lu <luangruo@yahoo.com>

* doc/lispref/symbols.texi (Shorthands): Mention read-symbol-shorthands

* lisp/shorthands.el (hack-read-symbol-shorthands)
(hack-read-symbol-shorthands)
(shorthands-font-lock-shorthands): Use read-symbol-shorthands

* lisp/progmodes/elisp-mode.el (elisp--completion-local-symbols)
(elisp--completion-local-symbols)
(elisp-shorthands): Use read-symbol-shorthands

* src/lread.c:
(syms_of_lread): Define Vread_symbol_shorthands
(oblookup_considering_shorthand): Use Vread_symbol_shorthands.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer):
(elisp-shorthand-read-from-string): Use read-symbol-shorthands

* test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el
Use new symbol name read-symbol-shorthands.
2021-10-03 16:18:40 +01:00
Mattias Engdegård
c006286780 ; * src/nsterm.h: Use objc-mode. 2021-09-30 10:58:01 +02:00
Lars Ingebrigtsen
3efa45849a Improve the max-specpdl-size doc string
* src/eval.c (syms_of_eval): Mention what "specpdl" means.
2021-09-29 07:53:15 +02:00
Eli Zaretskii
90655e4bc0 Make the build of source tarball produce *.eln files
* lisp/emacs-lisp/comp.el (batch-native-compile): Accept an
optional argument; if non-nil, place the .eln file as appropriate
for building a source tarball.

* doc/lispref/compile.texi (Native-Compilation Functions):
Document the new optional argument of 'batch-native-compile'.

* lisp/Makefile.in (.PHONY, $(THEFILE)n) [HAVE_NATIVE_COMP]: New
targets.

* src/Makefile.in (%.eln) [HAVE_NATIVE_COMP]: New recipe.
(all) [HAVE_NATIVE_COMP]: Add ../native-lisp to prerequisites.
(elnlisp) [HAVE_NATIVE_COMP]: New list of *.eln files.
(../native-lisp) [HAVE_NATIVE_COMP]: New recipe.

* src/verbose.mk.in (AM_V_ELN): New macro.
2021-09-28 15:00:50 +03:00
Eli Zaretskii
7c21d2c7f5 ; * src/lisp.h (enum char_bits): Update the comment. 2021-09-28 11:15:43 +03:00
Alan Third
75f2739e1a Fix GNUstep build failure
* src/nsfns.m (Fns_hide_emacs): NSRunningApplication is only available
in GNUstep 0.27 and above.
2021-09-27 14:24:25 +01:00
Alan Third
51c79967c3 Fix resizing glitches in NS port (bug#50413)
* src/nsterm.m ([EmacsView resizeWithOldSuperviewSize:]): Use the
superview's size instead of trusting the view's size.
2021-09-27 13:38:06 +01:00
Stefan Kangas
dc12ad8978 ; Update some links to HTTPS and note some broken links 2021-09-27 12:40:04 +02:00
Alan Third
d22d7d6be8 Attempt to debug a graphical glitch on macOS
* src/nsterm.m (ns_scroll_run):
(ns_shift_glyphs_for_insert): Switch to using NSPoint for destination.
([EmacsView copyRect:to:]): Use NSPoint for the destination, always
use the view's layer, and log any questionable copy requests.
2021-09-27 11:00:30 +01:00
Alan Third
86bf8afa45 Fix NS toolbar again (bug#50534)
* src/nsmenu.m (free_frame_tool_bar): Remove toolbar.
(update_frame_tool_bar_1): New function.
(update_frame_tool_bar): Move most of the functionality to
update_frame_tool_bar_1.
* src/nsterm.h: Definitions of functions and methods.
* src/nsterm.m (ns_update_begin):
([EmacsView windowDidEnterFullScreen]):
([EmacsView windowDidExitFullScreen]): We no longer need to reset the
toolbar visibility as that's done when we create the new fullscreen
window.
([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Move the check
for undecorated frames into createToolbar:.
([EmacsWindow createToolbar:]): Check whether a toolbar should be
created, and run the toolbar update immediately.
2021-09-27 11:00:30 +01:00