Commit Graph

167711 Commits

Author SHA1 Message Date
Po Lu
4d3442ebad Merge remote-tracking branch 'origin/master' into feature/android 2023-07-20 09:23:06 +08:00
Po Lu
882e1d659f Introduce a `dired-click-select' mode
* doc/emacs/dired.texi (Marks vs Flags): Document command bound
to `touchscreen-hold'.
* doc/lispref/commands.texi (Touchscreen Events): Describe
`touch-screen-inhibit-drag'.
* etc/NEWS: Improve description of changes to touch screen
support.
* lisp/dired-aux.el (dired-do-chxxx, dired-do-chmod)
(dired-do-print, dired-do-shell-command, dired-do-compress-to)
(dired-do-create-files, dired-do-rename, dired-do-isearch)
(dired-do-isearch-regexp, dired-do-search)
(dired-do-query-replace-regexp, dired-do-find-regexp)
(dired-vc-next-action): Disable ``click to select'' after
running this command.
* lisp/dired.el (dired-insert-set-properties): Attach
click-to-select keymap to file names if necessary.
(dired-mode-map): Bind `touchscreen-hold' to click to select
mode.
(dired-post-do-command): New function.
(dired-do-delete): Call it.
(dired-mark-for-click, dired-enable-click-to-select-mode): New
functions.
(dired-click-to-select-mode): New minor mode.
* lisp/touch-screen.el (touch-screen-current-tool): Fix doc
string.
(touch-screen-inhibit-drag): New function.
2023-07-20 09:22:41 +08:00
F. Jason Park
e2cc16fbd0 Warn when toggling erc-nicks-mode in target buffers
* lisp/erc/erc-nicks.el (erc-nicks-mode, erc-nicks-enable): This local
module isn't autoloaded like most global modules, in part to dissuade
users from attempting to enable it by running M-x erc-nicks-mode RET.
However, rather than signal an error upon detecting such an attempt,
ERC should explain that the only supported means of activation is via
`erc-modules'.  This change does that and then enables it anyway,
despite the degraded experience.
2023-07-19 06:11:21 -07:00
F. Jason Park
8af96d831f ; Address some ambiguities in ERC's documentation
* doc/misc/erc.texi: Change name of example function from
`erc-my-enable-read-indicator-on-join' to
`erc-my-enable-keep-place-indicator-on-join'.  Fix example functions
`erc-cmd-TRACK' and `erc-cmd-UNTRACK' to work with server buffers as
well as target buffers.
* etc/ERC-NEWS: Revise `keep-place' entry and make headlines less
redundant.
* lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Fix
portion of existing wording that was more likely interpreted as a
single multiline submission, whereas the intended meaning is three
separate submissions.
2023-07-19 06:11:21 -07:00
Alan Mackenzie
f9f9c95ab5 Fix native compilation in dynamically bound files.
This fixes bug#64642.

* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol): Add
code for dynamically bound functions.

* test/src/comp-tests.el (comp-tests-result-lambda): New test.

* test/src/comp-resources/comp-test-funcs-dyn2.el: New test
file.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#	modified:   lisp/emacs-lisp/comp.el
#	new file:   test/src/comp-resources/comp-test-funcs-dyn2.el
#	modified:   test/src/comp-tests.el
#
# Changes not staged for commit:
#	modified:   .gitignore
#
# Untracked files:
#	.gitignore.acm
#	.gitignore.backup
#	.timestamps.txt
#	2021-01-03.err
#	2021-01-06.err
#	2021-12-16.make
#	2021-12-30.err
#	2021-12-31.err
#	2022-01-01.err
#	2022-01-02.check.err
#	2022-01-02.err
#	2022-01-04.err
#	2022-01-05.err
#	2022-01-06.err
#	2022-01-07.err
#	2022-01-07.outerr
#	2022-01-08.err
#	2022-01-09.err
#	2022-01-09b.err
#	2022-01-10.err
#	2022-01-11
#	2022-01-11.err
#	2022-02-22.err
#	2022-02-22.outerr
#	checkout.20220228.out
#	checkout.20220301.out
#	checkout.20220302.out
#	doc/lispref/syntax.20160318.techsi
#	doc/lispref/syntax.20160318b.techsi
#	lib/.deps/
#	lisp/2022-01-09.err
#	lisp/emacs-lisp/comp.el.rej
#	src/2021-12-20.err
#	src/globals.20211124.aitch
#	src/lisp.20211127.aitch
#	test/lisp/calendar/icalendar-tests.elcr5m9Wq
#
2023-07-19 11:26:11 +00:00
Po Lu
fb5e43040f Port file-name-case-insensitive-p to Haiku
* src/fileio.c (file_name_case_insensitive_err): Don't return
errno upon failure, just 1, since errno is not used in the sole
caller.
2023-07-19 07:03:12 +00:00
Po Lu
1eb24c6c38 ; * src/sfnt.c (sfnt_infer_deltas): Improve commentary. 2023-07-19 15:00:39 +08:00
Po Lu
b3054d69d8 Improve behavior of `restart-drag'
* lisp/touch-screen.el (touch-screen-handle-point-up): If what
is `restart-drag' (meaning that a drag has been restarted but
the touchpoint has not moved), translate the release into a
regular mouse click to deactivate the region.
2023-07-19 14:42:02 +08:00
Po Lu
8b1c92da79 Improve commentary in xterm.c
* src/xterm.c (xi_populate_device_from_info, xi_handle_new_classes)
(syms_of_xterm): Improve commentary on touch events.
2023-07-19 13:51:41 +08:00
Po Lu
db48c88e7e Update Android port
* build-aux/makecounter.sh (curcount): Rename `counter' to
`emacs_shortlisp_counter'.
* doc/emacs/input.texi (Touchscreens): Document
`touch-screen-extend-selection'.
* doc/lispref/commands.texi (Touchscreen Events): Document
`touchscreen-restart-drag'.
* lisp/touch-screen.el (touch-screen-extend-selection): New user
option.
(touch-screen-restart-drag): New function.
(touch-screen-handle-point-update): Handle `restart-drag'
gestures.
(touch-screen-handle-touch): Check if the prerequisites for
extending a previous drag gesture are met, and generate such
events if so.
(touch-screen-translate-touch): Update doc string.
* src/Makefile.in (otherobj): Remove BUILD_COUNTER_OBJ.
($(lispsource)/international/charprop.el):
(%.elc): Don't depend on bootstrap-emacs if cross configuring
for Android.
(libemacs.so): Directly depend on and link with
BUILD_COUNTER_OBJ.
2023-07-19 12:46:02 +08:00
Po Lu
69828fba28 Make sure Android builds are redumped upon changes to shortlisp
* build-aux/makecounter.sh: New script.
* src/Makefile.in (abs_top_builddir): New variable.
(BUILD_COUNTER_OBJ): Define to build-counter.o
if compiling for Android.
(build-counter.c): New target.  Generate this file using
makecounter.sh upon changes to lisp.mk or shortlisp.
(lisp.mk): Make and load relative to abs_top_builddir.
(emacs$(EXEEXT)): Adjust acordingly.
(mostlyclean): Remove build-counter.c.
2023-07-19 09:53:58 +08:00
Po Lu
5a3de76532 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-19 08:23:06 +08:00
Po Lu
a4087f5955 Improve reliability of minor mode menu dispatch
* lisp/mouse.el (minor-mode-menu-from-indicator): Instead of using the
word at point, search for a matching enabled minor mode from the
beginning of the string object when mode-line-compact is enabled.
2023-07-19 08:21:43 +08:00
Po Lu
a177e8fd18 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-19 07:54:08 +08:00
Jim Porter
dec15620d8 ; * etc/NEWS (Eshell): Fix typo. 2023-07-18 14:07:03 -07:00
Eli Zaretskii
f624b283bf Fix line number display under 'mode-line-format-right-align'
* src/xdisp.c (Fbuffer_text_pixel_size): Restore window attributes
important for redisplay of the target WINDOW.  (Bug#64713)
2023-07-18 21:06:30 +03:00
Po Lu
f13c0464cc Fix typos in touch-screen.el
* lisp/touch-screen.el (touch-screen-handle-point-update)
(touch-screen-handle-point-up): Fix typos.
2023-07-18 22:01:17 +08:00
Po Lu
a636a66070 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-18 21:26:56 +08:00
Po Lu
607f826edd Fix event data leak
* src/xterm.c (handle_one_xevent): Jump to XI_OTHER after
handling touch ownership event.
2023-07-18 21:26:05 +08:00
Po Lu
ef497028bd Merge remote-tracking branch 'origin/master' into feature/android 2023-07-18 16:17:28 +08:00
Po Lu
c4f8ead08d Fix display of minor mode menus when mode-line-compact is enabled
* lisp/mouse.el (minor-mode-menu-from-indicator): New arg
WINDOW.  If INDICATOR is a string object and mode-line-compat is
enabled within WINDOW, use the symbol within the object at its
position instead.
(mouse-minor-mode-menu): Pass posn-object and posn-window to
minor-mode-menu-from-indicator.
2023-07-18 16:15:05 +08:00
Po Lu
cf50cd99ce * lisp/touch-screen.el (touch-screen-handle-point-update): Fix typo. 2023-07-18 15:46:07 +08:00
Po Lu
7cd11a71fa Avoid splurious menu-bar nil events
* src/keyboard.c (make_lispy_event): Return nil if no menu item
is found.
2023-07-18 13:24:55 +08:00
Po Lu
eaf13bc739 Update Android port
* lisp/touch-screen.el (touch-screen-hold)
(touch-screen-handle-point-up): Don't select inactive minibuffer
windows.
(touch-screen-handle-point-update): Improve detection of left
and right edges.
2023-07-18 13:24:36 +08:00
Po Lu
48329b7914 Update Android port
* lisp/touch-screen.el (touch-screen-handle-touch): Fix
treatment of stray update events.
2023-07-18 12:16:05 +08:00
Po Lu
391c084355 Don't enable scroll-bar-mode by default on Android
* src/frame.c (syms_of_frame): Default to nil if HAVE_ANDROID.
2023-07-18 12:08:04 +08:00
Po Lu
07716075db ; * src/keyboard.c (make_lispy_event): Fix botched merge. 2023-07-18 10:15:16 +08:00
Po Lu
5ff31bf36c Update Android port
* doc/lispref/commands.texi (Touchscreen Events): Describe
treatment of canceled touch sequences during touch event
translation.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Update JNI
prototypes.
* java/org/gnu/emacs/EmacsWindow.java (motionEvent): Set
cancelation flag in events sent where appropriate.
* lisp/touch-screen.el (touch-screen-handle-point-update):
Improve treatment of horizontal scrolling near window edges.
(touch-screen-handle-touch): Don't handle point up if the touch
sequence has been canceled.
* src/android.c (sendTouchDown, sendTouchUp, sendTouchMove): New
argument `flags'.
* src/androidgui.h (enum android_touch_event_flags): New enum.
(struct android_touch_event): New field `flags'.
* src/androidterm.c (handle_one_android_event): Report
cancelation in TOUCHSCREEN_END_EVENTs.
* src/keyboard.c (make_lispy_event): Fix botched merge.
2023-07-18 10:12:40 +08:00
Po Lu
46fd03a496 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-18 09:29:16 +08:00
Po Lu
9ad601e7d7 Expose the ``cancellation'' of touch events to Lisp
* doc/lispref/commands.texi (Touchscreen Events):
* etc/NEWS: Describe new event parameter `canceled'.
* src/keyboard.c (make_lispy_event) <TOUCHSCREEN_END_EVENT>:
If event->modifiers, set canceled to t.

* src/termhooks.h (enum event_kind): Describe meaning of
modifiers in TOUCHSCREEN_END_EVENTs.
* src/xfns.c (setup_xi_event_mask): Select for
XI_TouchOwnership.
* src/xterm.c (xi_link_touch_point): Round X and Y and clear
ownership.
(xi_unlink_touch_point): Return 1 if the touch point is not
owned by Emacs, 2 otherwise.
(handle_one_xevent): Handle XI_TouchOwnership events and report
ownership correctly.
* src/xterm.h (enum xi_touch_ownership): New enum.  Write
commentary on XI touch sequence ownership.
(struct xi_touch_point_t): Use integer X and Y.  New field
`ownership'.  Adjust for alignment.
2023-07-18 09:28:14 +08:00
Dmitry Gutov
2f48e488d4 Delete vc-deduce-fileset-1, taking advantage of set-buffer
* lisp/vc/vc.el (vc-deduce-fileset): Set buffer to the base
buffer, if any (bug#63949).  That's to replace the more complex
previous strategy.  vc-deduce-fileset is allowed to change the
current buffer, so why not do it for that case.
(vc-deduce-fileset-1): Delete, moving the meat of the logic back
to vc-deduce-fileset.
2023-07-18 03:49:44 +03:00
Po Lu
324d66e390 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-18 08:09:01 +08:00
Juri Linkov
bec707da4d * lisp/bindings.el (mode--line-format-right-align): Add 'mode-line' face.
Like in `tab-bar-format-align-right', use `add-face-text-property' to
add 'mode-line' face on the `rest-str' string for `string-pixel-width'
to calculate the correct pixel width (bug#62606).
2023-07-17 20:56:29 +03:00
Mattias Engdegård
157e735ce8 Don't distort character ranges in rx translation
The Emacs regexp engine interprets character ranges from ASCII to raw
bytes, such as [a-\xfe], as not including non-ASCII Unicode at all;
ranges from non-ACII Unicode to raw bytes, such as [ü-\x91], are
ignored entirely.

To make rx produce a translation that works as intended, split ranges
that that go from ordinary characters to raw bytes. Such ranges may
appear from set manipulation and regexp optimisation.

* lisp/emacs-lisp/rx.el (rx--generate-alt): Split intervals that
straddle the char-raw boundary when rendering a string regexp from an
interval set.
* test/lisp/emacs-lisp/rx-tests.el (rx-char-any-raw-byte):
Add test cases.
2023-07-17 17:56:54 +02:00
Brian Leung
7446a8c34e Eglot: check correct capability name in eglot-imenu (bug#64682)
* lisp/progmodes/eglot.el (eglot-imenu): Declare the correct name of
the server capability providing textDocument/documentSymbol.

Without this change, eglot-imenu always aborts even when used with
servers supporting textDocument/documentSymbol.
2023-07-17 14:36:51 +01:00
Po Lu
53023eba94 Merge remote-tracking branch 'origin/master' into feature/android 2023-07-17 20:44:00 +08:00
Po Lu
ac566bcdee Don't deliver touch or pinch events from master or slave devices
* src/xfns.c (setup_xi_event_mask): Select for gesture events on
only master devices if safe.
* src/xterm.c (handle_one_xevent): Deliver touchscreen events
only from direct slave devices, and gesture events only from
master pointers.
2023-07-17 20:43:10 +08:00
Robert Pluim
91424cb9ad Fix eshell.texi markup
* doc/misc/eshell.texi (Aliases): Add missing @end table.  (Bug#64674)
2023-07-17 14:25:18 +02:00
Marc van der Wal
fcf9e91f44 Check correct bit for DNS truncation
* lisp/net/dns.el (dns-read): The TC bit is the second bit, not the
third bit.  (Bug#64678)

Copyright-paperwork-exempt: yes
2023-07-17 14:15:14 +02:00
Eli Zaretskii
9d332c4993 ; * lisp/files.el (create-file-buffer): Add commentary. 2023-07-17 14:36:44 +03:00
Eli Zaretskii
5b6b95dbf8 ; * lisp/files.el (create-file-buffer): Fix last change (bug#62732). 2023-07-17 14:34:35 +03:00
Po Lu
85e39e86b0 Update Android port
* doc/lispref/commands.texi (Touchscreen Events): Document
meaning of `mouse-1-menu-command'.
* lisp/mouse.el (minor-mode-menu-from-indicator): New arg EVENT.
Give it to popup-menu.
(mouse-minor-mode-menu): Use posn specified within EVENT.
* lisp/touch-screen.el (touch-screen-handle-touch): Fix
interactive translation.  Treat commands labeled
`mouse-1-menu-command' like ordinary keymaps.
2023-07-17 14:28:20 +08:00
Po Lu
51a06388b7 Update Android port
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to simple translation.
* lisp/touch-screen.el (touch-screen-handle-point-up): Generate
`down-mouse-1' if the current gesture is `mouse-1-menu'.
(touch-screen-handle-touch): If binding is a keymap, set state
to `mouse-1-menu' and wait for point to be released before
generating down-mouse-1.
2023-07-17 13:58:32 +08:00
Po Lu
089a710ab0 Improve word selection behavior
* lisp/tab-bar.el (tab-bar-map): Don't bind touch-screen-drag.
* lisp/touch-screen.el (touch-screen-drag): Extend the region
based on the position of the mark, not the position of point
relative to EVENT.
(touch-screen-translate-touch): Don't generate virtual function
keys for non-mouse events.
(function-key-map): Remove redundant definitions.
* src/keyboard.c (read_key_sequence): Don't generate *-bar
prefix keys for mock input (such as input from function key
translation.)
2023-07-17 12:58:29 +08:00
Po Lu
21c7024cf8 Improve touch screen support
* doc/emacs/input.texi (Touchscreens): Document the new feature
for people who have trouble dragging to word boundaries.
* lisp/touch-screen.el (touch-screen-word-select): New
defcustom.
(touch-screen-word-select-bounds)
(touch-screen-word-select-initial-word): New variable
definitions.
(touch-screen-hold): If `touch-screen-word-select', select the
word around EVENT.
(touch-screen-drag): If `touch-screen-word-select', extend the
region to the next word boundary if the character under point
constitutes a word.
(touch-screen-handle-point-update, touch-screen-handle-touch)
(touch-screen-translate-touch): Fix doc strings and fill
comments.
2023-07-17 09:46:37 +08:00
Stefan Monnier
207cd4c235 xdisp.c: Improve doc of redisplay flags a bit 2023-07-16 21:12:20 -04:00
Po Lu
2e33d1b62d Merge remote-tracking branch 'origin/master' into feature/android 2023-07-17 07:29:11 +08:00
Po Lu
8335c76e88 Update Android port
* java/org/gnu/emacs/EmacsService.java (displayToast):
* src/android.c (android_init_emacs_service): Remove unused
function.
* lisp/touch-screen.el (touch-screen-handle-point-up): Correctly
compute posn point.
(touch-screen-translate-touch): Update doc string.
(function-key-map): Define touch screen translation functions
within the internal border.
2023-07-16 20:10:18 +08:00
Po Lu
64256d2923 Update Android port
* doc/lispref/commands.texi (Touchscreen Events): Improve
documentation.
* lisp/tab-bar.el (tab-bar-map): Bind `[tab-bar
touchscreen-hold]'.
* lisp/touch-screen.el (touch-screen-hold, touch-screen-drag):
New functions.
(touch-screen-handle-timeout): Generate a `touchscreen-hold'
event instead.
(touch-screen-handle-point-update): Generate a
`touchscreen-drag' event upon dragging.
(touch-screen-translate-touch): Cancel touch screen timer upon
exit.
* src/keyboard.c (access_keymap_keyremap): Take unsigned int
start and end instead.
2023-07-16 17:29:58 +08:00
Eli Zaretskii
a65ece8b20 Fix Wdired with relative and abbreviated file names
* lisp/wdired.el (wdired-finish-edit): Support Dired buffers where
'dired-directory' is a list made of relative or abbreviated file
names.  (Bug#64606)
2023-07-16 12:15:24 +03:00