Commit graph

44880 commits

Author SHA1 Message Date
Po Lu
4234995d42 * src/xterm.c (handle_one_xevent): Set user time on touch events. 2021-12-21 09:43:23 +08:00
Po Lu
2bcd299431 Ignore all emulated button events (i.e. those from touchscreens)
* src/xterm.c (handle_one_xevent): Ignore all XIPointerEmulated
events if the display supports XI 2.2 or later.
2021-12-21 09:41:40 +08:00
Paul Eggert
aa1fdb3f6f Put AM_V_GEN etc. first
With the recent changes to src/verbose.mk.in, it’s more important
to be consistent about putting AM_V_GEN and similar macros at the
start of a rule’s recipe, since ‘make’ now outputs the diagnostic
before it executes the recipe rather than the shell outputting it.
Most of the uses were already this way, but there were a few
outliers.  Problem reported by Pip Cet.
* Makefile.in (${srcdir}/info/dir):
* admin/unidata/Makefile.in (${unidir}/charprop.el, ${unifiles})
(${unidir}/emoji-labels.el):
* lib/Makefile.in (libgnu.a, libegnu.a):
* lisp/Makefile.in (TAGS):
* src/Makefile.in (lisp.mk, Emacs):
* test/Makefile.in (%.log, $(test_module)):
Put AM_V_GEN and similar macros first.
2021-12-20 15:05:08 -08:00
Paul Eggert
eaa44ca40e Prefer $(info) to @echo
Have GNU Make output some diagnostics directly, instead of forking
and execing a shell to do it.
* GNUmakefile (help):
* doc/lispref/two-volume.make (vol2.pdf, elisp2med-init)
(elisp2-init):
* doc/misc/Makefile.in (echo-info, echo-sources):
* lib-src/Makefile.in (archlibdir, install, check):
* src/verbose.mk.in (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD)
(AM_V_CXXLD, AM_V_ELC, AM_V_ELN, AM_V_GEN, AM_V_GLOBALS)
(AM_V_RC):
* test/Makefile.in (subdirs, subdir-targets):
Prefer $(info) to @echo.
* GNUmakefile (MAKECMDGOALS, configure, Makefile):
Prefer $(warning) to @echo >&2.
* src/verbose.mk.in (AM_V_ELN): Output target, like the others.
2021-12-20 12:24:04 -08:00
Mattias Engdegård
a34650acff Fix sloppy base64 acceptance of some multibyte characters
The base64 encoding functions incorrectly accepted some multibyte
characters; stop doing that (bug#52670).

* src/fns.c (base64_encode_1): Reject all multibyte characters.
* test/src/fns-tests.el (fns-tests-base64-encode-string)
(fns-test-base64url-encode-region)
(fns-test-base64url-encode-string): Add tests.
* doc/lispref/text.texi (Base 64): Rephrase outdated manual text.
* etc/NEWS: Add a notice.
2021-12-20 20:22:09 +01:00
Sam Steingold
27be90154d Fix build in a separate directory (bug#52669)
* src/lisp.h: Include <globals.h> instead of "globals.h"
2021-12-20 13:25:46 -05:00
Mattias Engdegård
8706f6fde1 Add macroexp--dynamic-variable-p
This predicate can be used for discriminating between lexically and
dynamically bound variables during macro-expansion (only).
It is restricted to internal use for the time being.

* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
Use macroexpand--all-toplevel.
* lisp/emacs-lisp/macroexp.el (macroexp-dynamic-variable-p): New.
(macroexp--expand-all): Maintain macroexp--dynvars.
(macroexpand-all): Rebind macroexp--dynvars.
(macroexpand--all-toplevel): New.
(internal-macroexpand-for-load): Use macroexpand--all-toplevel.
* src/eval.c (eval_sub): Transfer defvar declarations from
Vinternal_interpreter_environment into macroexp--dynvars during
lazy macro-expansion.
* src/lread.c (readevalloop): Rebind macroexp--dynvars around
read-and-evaluate operations.
(syms_of_lread): Define macroexp--dynvars.
* test/lisp/emacs-lisp/macroexp-resources/vk.el: New file.
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp-tests--run-emacs)
(macroexp-tests--eval-in-subprocess)
(macroexp-tests--byte-compile-in-subprocess)
(macroexp--tests-dynamic-variable-p): Add tests.
2021-12-20 16:26:02 +01:00
Eli Zaretskii
cc63704815 New error symbol 'permission-denied'
* src/fileio.c (syms_of_fileio) <permission-denied>: Define the
symbol and its 'err-conditions' and 'error-message' properties.
(get_file_errno_data): Return permission-denied on EACCES.

* test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled)
(filelock-tests-unlock-spoiled)
(filelock-tests-kill-buffer-spoiled): Adapt the tests to the new
error symbol.

* doc/lispref/errors.texi (Standard Errors):
* etc/NEWS: Document 'permission-denied' error.
2021-12-19 17:29:40 +02:00
Eli Zaretskii
ec692470bd Fix last change in 'handle_display_prop'
* src/xdisp.c (handle_display_prop): Pass the window's buffer to
'display_min_width' and to 'handle_display_spec'.  (Bug#52385)
2021-12-19 15:48:30 +02:00
Po Lu
1fce1d99d4 * src/gtkutil.c: Remove obsolete fixme. 2021-12-19 09:18:20 +08:00
Eli Zaretskii
f60265e73f Clean up some of PGTK code
* src/pgtkgui.h: Fix comments.
* src/image.c (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE)
(is_wayland_display, check_x_display_info)
(pgtk_get_string_resource): Reformat comments.
* src/gtkutil.c (xg_show_tooltip): Add comments to large #ifdef's.
2021-12-18 16:12:23 +02:00
Po Lu
97b6907563 * src/pgtkfns.c (Fx_show_tip): Adjust call for new signature. 2021-12-18 20:59:11 +08:00
Po Lu
4ff3a70153 Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-18 20:58:44 +08:00
Po Lu
4544651b3f Work around some mysterious touch ownership race on GNOME Shell
* src/xterm.c (x_unlink_touch_point): Return if touchpoint was
actually unlinked.
(handle_one_xevent): Catch and ignore errors during touch
sequence grabbing.
2021-12-18 20:46:50 +08:00
Eli Zaretskii
d99aa9461b ; Fix last change
* src/xdisp.c (window_text_pixel_size): Fix whitespace and braces.

* src/xdisp.c (Fwindow_text_pixel_size):
* etc/NEWS:
* doc/lispref/display.texi (Size of Displayed Text): Improve
wording of the documentation of the new argument of
'window-text-pixel-size'.
2021-12-18 13:56:10 +02:00
Po Lu
43c4cc2ea2 Add new argument ignore-line-at-end' to window-text-pixel-size'
* doc/lispref/display.texi (Size of Displayed Text): Update
documentation.
* etc/NEWS: Announce new argument.
* src/xdisp.c (window_text_pixel_size): Allow controlling if
the iterator's ascent and descent will be appended to the
pixel height returned.  All callers changed.
(Fwindow_text_pixel_size): New argument `ignore-line-at-end'.
All callers changed.
2021-12-18 19:16:16 +08:00
Eli Zaretskii
3fea95b79f Fix display of window-specific overlays with 'display' property
* src/xdisp.c (handle_display_prop): Pass the window to
'get_char_property_and_overlay', not the buffer.  (Bug#52385)
The assignment of the buffer to OBJECT was moved to before
the call to 'get_char_property_and_overlay', for unknown
reasons, as part of installing the support for the
'min-width' space spec.
2021-12-18 11:03:48 +02:00
Po Lu
7ab1b71c0d Coding style fixes
* src/gtkutil.c (xg_frame_set_char_size): Fix coding style.
2021-12-18 15:45:42 +08:00
Po Lu
6ad5ff4496 Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-18 15:30:43 +08:00
Po Lu
f7755b8818 Flip buffers if display were modified in haiku_read_socket
* src/haikuterm.c (flush_dirty_back_buffers): New function.
(haiku_read_socket): Flip buffers if the display could have
been modified.
2021-12-18 03:40:44 +00:00
Po Lu
26d1f04d76 Don't abort upon untracked TouchUpdate events
Emacs might get an untracked TouchUpdate event in the unlikely
event of a device hierarchy change during a touch sequence, in
which case all devices and touchpoints will be reset.

* src/xterm.c (handle_one_xevent): Don't abort when receiving
a TouchUpdate that isn't part of a touch sequence.
2021-12-18 08:58:51 +08:00
Po Lu
efdfe22704 Fix touchscreen support on Xt builds
* src/xterm.c (handle_one_xevent): Make menu bar touch event
code conditional on GTK3.
2021-12-17 19:17:50 +08:00
Po Lu
62fc53d75b Update menu bar when processing touch sequences on it
* src/xterm.c (handle_one_event): Prevent menu bar from
becoming outdated when handling XI_TouchBegin events that may
cause it to be opened.
2021-12-17 19:11:54 +08:00
Po Lu
75e6c169ae Ignore motion events sent by an emulated pointer
* src/xterm.c (handle_one_xevent): Ignore XI_Motion events that
have PointerEmulated set when the display supports XInput 2.2
or later.
2021-12-17 19:04:03 +08:00
Eli Zaretskii
1b2511fa2a Fix selection of fonts that don't have regular weight
* src/font.c (font_delete_unmatched): The kludge of allowing
inexact matches of the font weight is now used for non-NTGUI
platforms as well.  (Bug#52493)
2021-12-17 10:35:44 +02:00
Po Lu
5e5cde55e5 Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-17 14:23:07 +08:00
Po Lu
f6339412ee Add support for touchscreen events generated by XInput 2
* doc/lispref/commands.texi (Input Events): Add "Touchscreen
Events" to menu.
(Touchscreen Events): New node.
* etc/NEWS: Announce new event types.

* src/keyboard.c (make_lispy_event): Handle touchscreen events.
(syms_of_keyboard): New symbols `touchscreen-begin',
`touchscreen-end' and `touchscreen-update'.
* src/termhooks.h (enum event_kind): New touchscreen events.

* src/xfns.c (setup_xi_event_mask): Set up touch event mask if
appropriate.
(x_window) [USE_GTK]: Call `setup_xi_event_mask'.

* src/xterm.c (x_free_xi_devices): Free touchpoints.
(x_init_master_valuators): Handle all devices and set master and
touch mode flags appropriately.
(xi_reset_scroll_valuators_for_device_id):
(x_get_scroll_valuator_delta): Ignore slave devices.

(xi_link_touch_point):
(xi_unlink_touch_point):
(xi_find_touch_point): New functions.
(handle_one_xevent): Handle XI touch events and events from
non-master devices.

* src/xterm.h (struct xi_touch_point_t): New structure.
(struct xi_device_t): Add touchpoints field.
2021-12-17 14:20:05 +08:00
Paul Eggert
895215854d * src/timefns.c: Minor comment fix. 2021-12-16 15:35:32 -08:00
Paul Eggert
73d6b19024 Omit temporary warning re obsolete timestamps
Do not warn about timestamps like (1 . 1000).  This warning was added
in Emacs 27 as a temporary transition aid, and has now served its
purpose.  These timestamps, which Emacs 26 and earlier treated as (HI
. LO) instead of as (TICKS . HZ), were never generated by Emacs
primitives, and in practice the warning seems to have been triggered
only by test cases designed to generate it.
* src/timefns.c (WARN_OBSOLETE_TIMESTAMPS): Remove.
All uses changed to assume it’s false.
(decode_lisp_time): Simplify by taking a bool instead of an
integer bitmask.  All uses changed.
2021-12-16 11:17:27 -08:00
Paul Eggert
34e3ad5ae4 Fix encode-time doc string
* src/timefns.c (Fencode_time): Fix incorrect doc string
that talks about FORM (which doesn’t exist) by copying
wording from the manual instead.
2021-12-16 11:17:24 -08:00
Po Lu
32b9b22f66 Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-16 17:57:56 +08:00
Po Lu
1c6363ff4b Require xwidget.el in `make-xwidget'
* src/xwidget.c (Fmake_xwidget): Require `xwidget'.
2021-12-16 14:12:53 +08:00
Andrea Corallo
e6b93245fe Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open'
* src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln'
in place of 'dynlib_open'.
* src/dynlib.h (dynlib_open_for_eln): Declare it.
* src/dynlib.c (dynlib_open_for_eln): New function.
(dynlib_open): Add RTLD_GLOBAL.
* src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place
of 'dynlib_open'.
2021-12-15 15:55:01 +01:00
Po Lu
81d2e846a8 Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-15 18:39:06 +08:00
Stefan Kangas
92ed2fe688 Merge from origin/emacs-28
7078f32b5b Fix crash when dumping charset_table with portable dumper ...
a4fcbf46a7 ; etc/NEWS: Move the note about Xref EIEIO change to the p...
f88c1d222f Remove maintainer comment from Emacs 28 module snippet.

# Conflicts:
#	etc/NEWS
2021-12-15 06:30:41 +01:00
YAMAMOTO Mitsuharu
7078f32b5b Fix crash when dumping charset_table with portable dumper (Bug#52461)
* src/charset.h:
* src/charset.c (charset_table_used): Now extern.
* src/pdumper.c (dump_charset): Don't dump code_space_mask for unused
slots of charset_table.
2021-12-15 13:12:02 +09:00
Po Lu
aab2477516 Prevent GDK from handling emulated button events
* src/xterm.c (handle_one_xevent): Drop emulated button events.
2021-12-15 10:34:51 +08:00
Philipp Stephani
f88c1d222f Remove maintainer comment from Emacs 28 module snippet.
This is the same as 44c13eefe8 on
master.  We should also remove this comment on the release branch,
otherwise it ends up in the emacs-module.h shipped to users.

* src/module-env-28.h: Remove maintainer comment.
2021-12-14 11:17:37 +01:00
Po Lu
30ac6fbbed Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-14 17:43:16 +08:00
Lars Ingebrigtsen
8c0f9be0d1 Only allow SQLite extensions from an allowlist
* src/sqlite.c (Fsqlite_load_extension): Only allow extensions
from an allowlist.
2021-12-14 09:29:13 +01:00
Stefan Kangas
b8e6beaab0 Merge from origin/emacs-28
3607508f3f Set calc-make-windows-dedicated to nil by default
9de8eec3bc * make-dist: Don't run "make --question info".  (Bug#52322)
cea8deea72 ; * src/xdisp.c (move_it_vertically_backward): Clarify com...
6170c5036e Fix regression in help-mode prompt

# Conflicts:
#	etc/NEWS
2021-12-14 06:31:37 +01:00
Eli Zaretskii
cea8deea72 ; * src/xdisp.c (move_it_vertically_backward): Clarify commentary. 2021-12-13 21:02:38 +02:00
Philipp Stephani
ae169bda2c ; Add a FIXME regarding the GMP memory allocation functions.
* src/bignum.c (init_bignum): Add a warning about the technically
incorrect use of the GMP memory allocation functions.
2021-12-13 18:28:13 +01:00
Eli Zaretskii
57efc5d1bb * src/sqlite.c (Fsqlite_open, Fsqlite_load_extension): Use ENCODE_FILE. 2021-12-13 15:35:31 +02:00
Po Lu
da2c0e8f7d Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-13 13:32:53 +08:00
Lars Ingebrigtsen
9ce0fe5ef4 Add a new `sqlite-pragma' command
* doc/lispref/text.texi (Database): Document it.
* src/sqlite.c (Fsqlite_pragma): Add a separate command for
pragmas.  These can be done via sqlite-execute, but it's less
confusing to have them in a separate command.
2021-12-13 06:08:09 +01:00
Lars Ingebrigtsen
c86b86f9a9 Introduce a new sqlite-locked-error
* src/sqlite.c (Fsqlite_execute): Use it.
(syms_of_sqlite): Introduce a new error for locked databases so
that we can catch that condition on higher levels.
2021-12-13 05:38:29 +01:00
Po Lu
5181276b43 Stop using XI focus events on non-GTK builds
* src/xfns.c (setup_xi_event_mask): Stop setting XI_FocusIn
and XI_FocusOut.
* src/xterm.c (x_detect_focus_change) <GenericEvent>: Don't
handle XI_FocusIn and XI_FocusOut events when not on GTK.
2021-12-13 09:17:55 +08:00
Po Lu
13edadb492 Fix overline display when there is a box on PGTK
* src/pgtkterm.c (pgtk_draw_glyph_string): Draw box before any
text decorations.
2021-12-12 21:44:02 +08:00
Po Lu
2de147e93c Merge remote-tracking branch 'origin/master' into feature/pgtk 2021-12-12 21:40:17 +08:00