Lars Ingebrigtsen [Wed, 24 Nov 2021 13:43:37 +0000 (14:43 +0100)]
Make display_min_width work from the mode line
* src/xdisp.c (display_min_width): Make this work from mode line
constructs via display_string.
Michael Albinus [Wed, 24 Nov 2021 13:47:55 +0000 (14:47 +0100)]
; Fix syntax error in generated test/infra/test-jobs.yml
Robert Pluim [Mon, 22 Nov 2021 16:42:03 +0000 (17:42 +0100)]
* admin/unidata/emoji-zwj.awk: Quote functions properly.
Po Lu [Wed, 24 Nov 2021 12:48:01 +0000 (12:48 +0000)]
Make `yank-media' work on Haiku
This works with what WebPositive does with images, at least. I don't
know about other programs, but Haiku doesn't seem to standardize this
very well.
* lisp/term/haiku-win.el (haiku--selection-type-to-mime): Handle
regular symbols.
(gui-backend-get-selection): Handle special type `TARGETS'.
(gui-backend-set-selection): Always clear clipboard.
* src/haiku_select.cc (BClipboard_get_targets): New function.
(BClipboard_set_data): New argument `clear'. All callers
changed.
(BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): New argument `clear'.
(BClipboard_system_targets, BClipboard_primary_targets)
(BClipboard_secondary_targets): New functions.
* src/haikuselect.c (haiku_selection_data_1): New function.
(Fhaiku_selection_targets): New function.
(Fhaiku_selection_put): Allow controlling if the clipboard is
cleared.
(syms_of_haikuselect): New symbols and subrs.
* src/haikuselect.h (BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): New argument `clear'.
(BClipboard_system_targets, BClipboard_primary_targets)
(BClipboard_secondary_targets): New functions.
Michael Albinus [Wed, 24 Nov 2021 12:43:32 +0000 (13:43 +0100)]
* admin/notes/emba (Emacs jobset): Remove stage slow.
* test/infra/Makefile.in (subdir_template): Add rule.
* test/infra/gitlab-ci.yml (.job-template): Remove changes section.
(.build-template, .gnustep-template, .filenotify-gio-template):
(.native-comp-template): Adapt changes section.
(.test-template): Add needs. Adapt artifacts paths.
(stages): Remove slow.
(test-all-inotify): Move up. Change stage to normal. Remove timeout.
(test-filenotify-gio, test-gnustep, test-native-comp-speed0):
Move needs up.
* test/infra/test-jobs.yml: Regenerate.
Lars Ingebrigtsen [Wed, 24 Nov 2021 11:44:45 +0000 (12:44 +0100)]
Fix min-width end condition handling
* src/xdisp.c (handle_display_prop): Fix check for min-width ends
-- they may be consecutive.
Po Lu [Wed, 24 Nov 2021 11:15:06 +0000 (11:15 +0000)]
Correct adjustments to frame widths in events
* src/haiku_support.cc (EmacsWindow.FrameResized)
(EmacsWindow.Zoom): Adjust widths to fit into the correct
coordinate system.
Po Lu [Wed, 24 Nov 2021 11:03:58 +0000 (11:03 +0000)]
Remove unused arguments to EmacsView.AfterResize
* src/haiku_support.cc (EmacsView.AfterResize): Remove
unused arguments.
(BView_resize_to): Stop passing unused arguments.
Lars Ingebrigtsen [Wed, 24 Nov 2021 10:55:53 +0000 (11:55 +0100)]
Add support for the min-width display property
* doc/lispref/display.texi (Display Property): Document
get-display-property.
(Other Display Specs): Document min-width property.
* src/dispextern.h (struct it): Add fields for min-width handling.
* src/xdisp.c (find_display_property, get_display_property): New
helper functions.
(display_min_width): Insert stretch glyphs based on the min width.
(Fget_display_property): New defun.
(handle_display_prop): Handle min-width ends.
(handle_single_display_spec): Handle min-width starts.
Gregory Heytings [Wed, 24 Nov 2021 07:54:37 +0000 (08:54 +0100)]
Re-enable the disabledForeground X resource.
* doc/emacs/xresources.texi (Lucid Resources): Document the resource.
Also document the 'cursor' resource (bug#52052).
* lwlib/xlwmenu.c (make_drawing_gcs): Re-enable the use of the
disabledForeground resource. The use of this X resource was disabled
without reason in commit
ef93458b2f8 by overwriting its value with the
value of the foreground resource.
Alan Third [Tue, 23 Nov 2021 20:56:44 +0000 (20:56 +0000)]
Allow NS to handle non-text clipboard contents
* src/nsselect.m (ns_get_foreign_selection): Handle non-plain text
clipboard entries.
(ns_string_from_pasteboard): Remove EOL conversion.
(syms_of_nsselect): Define QTARGETS.
Po Lu [Wed, 24 Nov 2021 09:56:29 +0000 (09:56 +0000)]
Clear past end of frame on Haiku
* src/haiku_support.c (EmacsWindow.FrameResized): Delete
size adjustment.
* src/haikuterm.c (haiku_clear_frame): Clear one pixel
past the end of the frame.
Po Lu [Wed, 24 Nov 2021 09:39:58 +0000 (09:39 +0000)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Po Lu [Wed, 24 Nov 2021 09:38:26 +0000 (09:38 +0000)]
Fix 1 pixel wide border in frames on Haiku
* src/haiku_support.cc (EmacsWindow.FrameResized): Add 1 to
pixel widths.
* src/haikuterm.c (haiku_read_socket): Use `lrint' to round
widths.
Lars Ingebrigtsen [Wed, 24 Nov 2021 07:27:22 +0000 (08:27 +0100)]
Fix string-glyph-split infloop
* lisp/emacs-lisp/subr-x.el (string-glyph-split): Fix infloop when
applied to (string-glyph-split "✈️🌍") (bug#52067).
Gregory Heytings [Wed, 24 Nov 2021 06:58:11 +0000 (07:58 +0100)]
Pass options from make to configure through a variable.
* GNUmakefile (configure): Use the variable.
* INSTALL.REPO: Document the variable (bug#51965).
Stefan Kangas [Wed, 24 Nov 2021 06:00:27 +0000 (07:00 +0100)]
Merge from origin/emacs-28
756b8a5f1b Fix typos in documentation
38fdeaef46 ; * etc/DEBUG: Fix last change.
Po Lu [Wed, 24 Nov 2021 01:49:39 +0000 (09:49 +0800)]
Fix mouse-wheel-text-scale
* lisp/mwheel.el (mouse-wheel-text-scale): Test for alternative
events correctly.
Po Lu [Wed, 24 Nov 2021 01:46:33 +0000 (01:46 +0000)]
Remove extraneous code left over from the ftbe font driver
* src/haikuterm.c (syms_of_haikuterm): Remove dead code.
Po Lu [Wed, 24 Nov 2021 01:09:45 +0000 (09:09 +0800)]
Use only effective modifiers when handling XI2 button events
* src/xterm.c (handle_one_xevent): Use mods.effective when
constructing button events.
Michael Albinus [Tue, 23 Nov 2021 15:25:41 +0000 (16:25 +0100)]
Adapt artifacts paths in emba testjobs
* test/infra/Makefile.in (subdir_template): Adapt artifacts paths.
* test/infra/test-jobs.yml: Regenerate.
Takesi Ayanokoji [Tue, 23 Nov 2021 14:30:23 +0000 (23:30 +0900)]
Fix typos in documentation
* doc/lispref/anti.texi:
* doc/misc/efaq.texi: Fix typos.
Copyright-paperwork-exempt: yes
Eli Zaretskii [Tue, 23 Nov 2021 14:25:48 +0000 (16:25 +0200)]
; * etc/DEBUG: Fix last change.
Eli Zaretskii [Tue, 23 Nov 2021 13:11:14 +0000 (15:11 +0200)]
Merge from origin/emacs-28
bdb489a ; * etc/DEBUG: Adjust instructions for libgccjit reproducer.
b4fb381 ; * src/xdisp.c (produce_stretch_glyph): Avoid compilation wa...
Eli Zaretskii [Tue, 23 Nov 2021 12:44:45 +0000 (14:44 +0200)]
; * etc/DEBUG: Adjust instructions for libgccjit reproducer.
Eli Zaretskii [Tue, 23 Nov 2021 12:37:53 +0000 (14:37 +0200)]
; * src/xdisp.c (produce_stretch_glyph): Avoid compilation warning.
Stefan Kangas [Tue, 23 Nov 2021 10:39:21 +0000 (11:39 +0100)]
Prefer locate-user-emacs-file in gitmerge.el
* admin/gitmerge.el (gitmerge-status-file): Prefer
'locate-user-emacs-file' to fiddling with 'user-emacs-directory'.
Po Lu [Tue, 23 Nov 2021 09:57:09 +0000 (17:57 +0800)]
Fix compilation with XInput 2 but without XKB
* src/xterm.c (handle_one_xevent): Remove extraneous
conditional.
Stefan Kangas [Tue, 23 Nov 2021 07:49:49 +0000 (08:49 +0100)]
Merge from origin/emacs-28
d791cd556d Fix '(space :relative-width N)' display spec w/non-ASCII c...
712898210f * lisp/proced.el (proced-sort-header): Fix event positions...
# Conflicts:
# lisp/proced.el
Po Lu [Tue, 23 Nov 2021 03:08:45 +0000 (11:08 +0800)]
Only reset scroll valuators on real enter events
* src/xterm.c (handle_one_xevent): Test event detail and mode
before resetting scroll valuators.
Po Lu [Tue, 23 Nov 2021 01:20:15 +0000 (01:20 +0000)]
Fix delay between tool bar clicks and visual feedback
* src/haikuterm.c (haiku_read_socket): Redisplay after tool
bar click.
Po Lu [Tue, 23 Nov 2021 01:01:33 +0000 (09:01 +0800)]
Fix XI2 keysym translation
* src/xterm.c (handle_one_xevent): Handle XI_KeyPress events
that can't be translated into strings.
Stefan Monnier [Mon, 22 Nov 2021 19:23:26 +0000 (14:23 -0500)]
* lisp/subr.el (event-start, event-end): Handle `(menu-bar)` events
* lisp/net/browse-url.el (browse-url-interactive-arg): Simplify accordingly
Juri Linkov [Mon, 22 Nov 2021 19:05:15 +0000 (21:05 +0200)]
* lisp/textmodes/flyspell.el: Pop up the menu under cursor from keyboard.
* lisp/textmodes/flyspell.el (flyspell-emacs-popup):
Use popup-menu-normalize-position with point when no mouse is involved,
instead of the incorrect use of mouse-position (bug#52025).
Stefan Monnier [Mon, 22 Nov 2021 19:06:14 +0000 (14:06 -0500)]
src/indent.c, src/xdisp.c: Questions about with_echo_area_buffer_unwind_data
Michael Albinus [Mon, 22 Nov 2021 18:40:56 +0000 (19:40 +0100)]
; Remove "needs" from emba jobs
Juri Linkov [Mon, 22 Nov 2021 18:15:28 +0000 (20:15 +0200)]
* lisp/tab-bar.el: 'C-x t RET' creates a new tab for non-existent tab name.
* lisp/tab-bar.el (tab-bar-switch-to-tab): Create a new tab and
rename it to NAME when can't find the tab with the given NAME (bug#51935).
Mattias Engdegård [Mon, 22 Nov 2021 18:07:32 +0000 (19:07 +0100)]
Simplify `gnu` compilation-mode regexp
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Remove the pattern ostensibly added for Ruby, because at closer
inspection it could never have matched anything. This lessens the
performance impact of the pattern added for GCC's -fanalyzer,
now slightly tweaked.
Eli Zaretskii [Mon, 22 Nov 2021 18:00:48 +0000 (20:00 +0200)]
Fix '(space :relative-width N)' display spec w/non-ASCII chars
* src/xdisp.c (produce_stretch_glyph): Use the correct face for
non-ASCII characters. Support :relative-width display spec on
Lisp strings, not just on buffer text.
Juri Linkov [Mon, 22 Nov 2021 17:57:59 +0000 (19:57 +0200)]
* lisp/tab-bar.el (tab-bar-history-old-minibuffer-depth): Remove variable.
(tab-bar--history-pre-change, tab-bar--history-change): Use minibuffer-depth
instead of this variable (bug#51370).
Juri Linkov [Mon, 22 Nov 2021 17:39:28 +0000 (19:39 +0200)]
* lisp/proced.el (proced-sort-header): Fix event positions (bug#1779).
The logic was copied from 'tabulated-list-col-sort'.
Michael Albinus [Mon, 22 Nov 2021 15:47:23 +0000 (16:47 +0100)]
; Fix error in artifacts paths of emba jobs
Michael Albinus [Mon, 22 Nov 2021 15:33:16 +0000 (16:33 +0100)]
Adapt emba jobs
* admin/notes/emba (Emacs jobset): Precise.
* test/infra/Makefile.in (tn): New variable.
(subdir_template): Use it. Handle eieio-tests, faceup-tests and
so-long-tests. Rearrange .PHONY entry. Add needs and artifacts
to emba job.
* test/infra/gitlab-ci.yml (test-filenotify-gio): Move up.
* test/infra/test-jobs.yml: Regenerate.
Stefan Kangas [Mon, 22 Nov 2021 15:27:55 +0000 (16:27 +0100)]
; Improve recent NEWS entry
* etc/NEWS: Improve recently added entry on substitution of
literal key sequences. Thanks to Eli Zaretskii <eliz@gnu.org>.
Stefan Kangas [Mon, 22 Nov 2021 15:11:45 +0000 (16:11 +0100)]
; Further minor simplification of rx form in bytecomp.el
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Simplify even more. Thanks to Mattias Engdegård <mattiase@acm.org>.
Eli Zaretskii [Mon, 22 Nov 2021 15:05:40 +0000 (17:05 +0200)]
Improve recently installed documentation
* doc/lispref/display.texi (Size of Displayed Text): Move to
description of 'buffer-text-pixel-size' to preserve previous text;
mention the importance of WINDOW.
Robert Pluim [Mon, 22 Nov 2021 13:20:45 +0000 (14:20 +0100)]
; * etc/NEWS: Fix some typos and improve some entries.
Stefan Kangas [Mon, 22 Nov 2021 11:12:25 +0000 (12:12 +0100)]
; Fix typo
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Fix typo.
Po Lu [Mon, 22 Nov 2021 11:13:03 +0000 (11:13 +0000)]
Fix compiler warning in image.c
* src/image.c (webp_load): Initialize `mask_img' to NULL.
Stefan Kangas [Mon, 22 Nov 2021 10:55:24 +0000 (11:55 +0100)]
; Very minor simplification in bytecomp.el
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Very minor simplification of 'rx' form.
Stefan Kangas [Mon, 22 Nov 2021 10:45:44 +0000 (11:45 +0100)]
Use substitute-command-keys for literal key sequences
* lisp/abbrev.el (expand-region-abbrevs):
* lisp/calc/calc-graph.el (calc-graph-show-dumb):
* lisp/calc/calc-help.el (calc-help-for-help):
* lisp/calc/calc-mode.el (calc-auto-why):
* lisp/calc/calc.el (calc-do):
* lisp/calculator.el (calculator-mode):
* lisp/dired-aux.el (dired-create-files)
(dired-do-create-files-regexp, dired-create-files-non-directory):
* lisp/dired-x.el (dired-virtual):
* lisp/dired.el (dired-mark-region, dired-unmark-all-files):
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
* lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
* lisp/epa-ks.el (epa-ks--display-keys):
* lisp/erc/erc.el (erc-toggle-debug-irc-protocol):
* lisp/files.el (save-some-buffers):
* lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap)
(gnus-dired-print):
* lisp/gnus/gnus-group.el (gnus-keep-same-level):
* lisp/gnus/gnus-score.el (gnus-score-find-trace):
* lisp/gnus/gnus.el (to-list):
* lisp/gnus/message.el (message--send-mail-maybe-partially):
* lisp/mail/supercite.el (sc-set-variable):
* lisp/minibuffer.el (minibuffer-inactive-mode):
* lisp/progmodes/etags.el (select-tags-table):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
(idlwave-shell-char-mode-loop):
* lisp/replace.el (query-replace-help):
* lisp/simple.el (set-variable):
* lisp/subr.el (read-char-from-minibuffer):
* lisp/textmodes/ispell.el (ispell-help, ispell-message):
* lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels):
* lisp/textmodes/reftex-vars.el
(reftex-toc-include-file-boundaries)
(reftex-toc-include-labels, reftex-toc-include-index-entries)
(reftex-toc-include-context, reftex-toc-follow-mode)
(reftex-index-include-context, reftex-index-follow-mode)
(reftex-enable-partial-scans)
(reftex-auto-update-selection-buffers)
(reftex-highlight-selection):
* lisp/time.el (display-time-update):
* lisp/vc/ediff-help.el (ediff-help-for-quick-help):
* lisp/vc/ediff-init.el (ediff-keep-variants):
* lisp/vc/ediff-ptch.el (ediff-fixup-patch-map)
(ediff-patch-file-internal):
* lisp/windmove.el (windmove-delete-default-keybindings): Use
'substitute-command-keys' for literal key sequences.
* lisp/userlock.el (userlock--fontify-key): Remove function.
(ask-user-about-lock, ask-user-about-lock-help)
(ask-user-about-supersession-threat)
(ask-user-about-supersession-help): Use 'substitute-command-keys' for
literal key sequences.
* lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys'
for command.
Stefan Kangas [Mon, 22 Nov 2021 07:08:11 +0000 (08:08 +0100)]
Avoid false positives about wide docstrings for key sequences
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Ignore literal key sequence substitutions.
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-substitutions.el:
New file.
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-wide-docstring-ignore-substitutions.el"): New test.
martin rudalics [Mon, 22 Nov 2021 11:02:35 +0000 (12:02 +0100)]
Add new function buffer-text-pixel-size
* doc/lispref/display.texi (Size of Displayed Text): Document it.
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Use
buffer-text-pixel-size (bug#51995).
* src/xdisp.c (window_text_pixel_size): Factor out from
Fwindow_text_pixel_size.
(Fbuffer_text_pixel_size): New function.
Po Lu [Mon, 22 Nov 2021 07:10:57 +0000 (07:10 +0000)]
Fix mouse movement event generation on Haiku
* src/haikuterm.c (haiku_mouse_position): Set timestamp.
(haiku_read_socket): Set last_mouse_movement_time.
* src/haikuterm.h (struct haiku_display_info): Add field
`last_mouse_movement_time'.
Po Lu [Mon, 22 Nov 2021 06:33:22 +0000 (06:33 +0000)]
Don't set button event modifiers twice on Haiku
* src/haikuterm.c (haiku_read_socket): Simplify.
Po Lu [Mon, 22 Nov 2021 06:06:18 +0000 (14:06 +0800)]
Move XI2 event filtering to a more appropriate location
* src/xterm.c (handle_one_xevent): Filter all key press events
even if no frame is found.
Stefan Kangas [Mon, 22 Nov 2021 05:44:10 +0000 (06:44 +0100)]
Add new format for literal key sequences to substitute-command-keys
* lisp/help.el (substitute-command-keys): Add new format "\\`f'" for
literal key sequences. (Bug#50804)
* doc/lispref/help.texi (Keys in Documentation): Document the above
new substitution.
* test/lisp/help-tests.el
(help-tests-substitute-command-keys/literal-key-sequence):
(help-tests-substitute-command-keys/literal-key-sequence-errors): New
tests.
(help-tests-substitute-key-bindings/face-help-key-binding): Extend test.
Po Lu [Mon, 22 Nov 2021 05:24:59 +0000 (13:24 +0800)]
Use more precise test for emulated wheel events in XI2
* src/xterm.c (handle_one_xevent): Ignore button events
that have XIPointerEmulated set.
Po Lu [Mon, 22 Nov 2021 02:42:46 +0000 (10:42 +0800)]
Make `xwidget-display-event' a special event as well
* doc/lispref/commands.texi (Xwidget Events): Document that
`xwidget-display-event' is a special event, and that it should
be handled through callbacks.
* etc/NEWS: Update NEWS entry.
* lisp/xwidget.el (xwidget-webkit-new-session)
(xwidget-webkit-import-widget): Attach display callback.
(xwidget-webkit-display-event): Call display callback instead.
(xwidget-webkit-display-callback): New function.
* src/keyboard.c (make_lispy_event): Store
source information for XWIDGET_DISPLAY_EVENT correctly.
* src/xwidget.c (store_xwidget_display_event): Store
source of the display request.
(webkit_ready_to_show): Store source if available.
(webkit_create_cb_1): Store source if available.
(kill_xwidget): Remove dead widget from internal_xwidget_list.
Glenn Morris [Mon, 22 Nov 2021 02:29:24 +0000 (18:29 -0800)]
Fix recent compile-tests addition
* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
Bump number of expected errors.
; Surely running the tests before committing would have flagged this?
Po Lu [Mon, 22 Nov 2021 01:40:47 +0000 (09:40 +0800)]
Also filter XI_KeyRelease events
* src/xterm.c (handle_one_xevent): Also filter XI_KeyRelease
events through the X input method.
Po Lu [Mon, 22 Nov 2021 01:34:39 +0000 (09:34 +0800)]
Use only effective modifiers for XI2 key press events
* src/xterm.c (handle_one_xevent): Use only effective modifiers
in XI_KeyPress events.
Po Lu [Mon, 22 Nov 2021 00:24:26 +0000 (00:24 +0000)]
Remove variable that no longer exists from manual
* doc/emacs/haiku.texi: Remove nonexistent variable.
Stefan Kangas [Sun, 21 Nov 2021 20:05:47 +0000 (21:05 +0100)]
Adapt isearch help screen for variable-pitch-mode
* lisp/isearch.el (isearch-help-for-help-internal): Adapt for
'variable-pitch-mode', now that 'make-help-screen' uses that.
Omar Polo [Mon, 15 Nov 2021 21:49:23 +0000 (21:49 +0000)]
; Simplify rcirc authentication querying functions
Omar Polo [Mon, 15 Nov 2021 17:40:58 +0000 (17:40 +0000)]
implement certfp authentication to rcirc
* lisp/net/rcirc.el (rcirc-connect): Use the provided client certs
* doc/misc/rcirc.texi (Configuration): Document the change
Omar Polo [Mon, 15 Nov 2021 17:33:51 +0000 (17:33 +0000)]
Move the sasl section after the bitlbee text
Philip Kaludercic [Mon, 15 Nov 2021 23:05:11 +0000 (00:05 +0100)]
Improve error parsing for GCC -fanalyzer output
* compile.el (compilation-error-regexp-alist-alist): Adjust gnu rule
* compile-tests.el (compile-tests--test-regexps-data): Add testcase
Eli Zaretskii [Sun, 21 Nov 2021 17:07:10 +0000 (19:07 +0200)]
Fix positioning of pop-up menus when there are window-margins
* src/menu.c (x_popup_menu_1): Calculate X and Y correctly for
clicks in the text area. (Bug#51782)
Robert Pluim [Sun, 21 Nov 2021 15:20:20 +0000 (16:20 +0100)]
Add :version tags to new mwheel defcustoms
* lisp/mwheel.el (mouse-wheel-down-alternate-event):
(mouse-wheel-up-alternate-event): Add :version tag.
Robert Pluim [Sun, 21 Nov 2021 15:00:11 +0000 (16:00 +0100)]
; Fix a few haiku typos
* lisp/net/browse-url.el (browse-url-webpositive-program): Correct
:version tag.
* src/frame.c (Fframep): Fix quoting of "haiku".
Eli Zaretskii [Sun, 21 Nov 2021 14:57:12 +0000 (16:57 +0200)]
Minor cleanup in w32inevt.c
* src/w32inevt.c (w32_console_mouse_position, mouse_moved_to)
(do_mouse_event): Use 'get_frame' to obtain the frame pointer.
Stefan Kangas [Sun, 21 Nov 2021 13:44:41 +0000 (14:44 +0100)]
Use variable-pitch-mode in 'C-h C-h'
* lisp/faces.el (help-key-binding): Inherit 'fixed-pitch'.
* lisp/help-macro.el (make-help-screen): Use
'variable-pitch-mode'.
This was discussed in
https://lists.gnu.org/r/emacs-devel/2021-11/msg01378.html
Michael Albinus [Sun, 21 Nov 2021 13:39:29 +0000 (14:39 +0100)]
Reorganize emba control files
Using dynamic job generation in GitLab does not work sufficiently. So
we generate the jobs in the Emacs sources.
* configure.ac (SUBDIR_MAKEFILES): Add test/infra/Makefile.
* test/Makefile.in (subdirs, generate-test-jobs): New targets.
* test/infra/Makefile.in:
* test/infra/test-jobs.yml: New files.
* test/infra/default-gitlab-ci.yml:
* test/infra/test-jobs-generator.sh: Remove.
* test/infra/gitlab-ci.yml: Insert contents of default-gitlab-ci.yml.
(stages): Remove generator and trigger. Add normal.
(test-jobs-generator, test-jobs-pipeline): Remove jobs.
(top): Include test-jobs.yml.
Po Lu [Sun, 21 Nov 2021 13:14:06 +0000 (13:14 +0000)]
Fix double and triple click in Haiku.
* src/haikuterm.c (haiku_read_socket): Record timestamp
in events.
Po Lu [Sun, 21 Nov 2021 13:07:58 +0000 (21:07 +0800)]
Report time in XInput 2 button events
* src/xterm.c (handle_one_xevent): Report time in XI button
events.
Po Lu [Sun, 21 Nov 2021 12:43:53 +0000 (12:43 +0000)]
Fix horizontal wheel events on Haiku
* src/haikuterm.c (haiku_read_socket): Fix modifier
calculation for horizontal wheel events.
Stefan Kangas [Sun, 21 Nov 2021 10:18:23 +0000 (11:18 +0100)]
Merge from origin/emacs-28
0dd3883def Update to Org
9.5-72-gc5d6656
e3d5337970 Fix mouse handling with several TTY frames on MS-Windows
7e437af413 Fix temacs invocation from outside of the 'src' directory
0fbfd4253e ; Avoid byte-compilation warnings in edmacro.el
c22c988b1f Fix mouse events on tab bar or tool bar when 'track-mouse'...
354c834fba Fix `browse-url-interactive-arg' for certain kinds of events
# Conflicts:
# lisp/mouse.el
Lars Ingebrigtsen [Sun, 21 Nov 2021 10:04:35 +0000 (11:04 +0100)]
Fill the Emacs version on the splash page
* lisp/startup.el (fancy-startup-tail):
(normal-mouse-startup-screen):
(normal-no-mouse-startup-screen): Fill the Emacs version data,
since it's usually longer than a single line, anyway.
Po Lu [Sun, 21 Nov 2021 09:38:41 +0000 (17:38 +0800)]
Implement `pick_embedded_child' for offscreen xwidgets
* src/xwidget.c (pick_embedded_child): New function.
(Fmake_xwidget): Connect `pick-embedded-child' signal
to offscreen window.
Stefan Kangas [Sun, 21 Nov 2021 09:10:07 +0000 (10:10 +0100)]
Revert "* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap."
This reverts commit
4c467e4aff12e65fa4fa62d7f4bdcbf4a2bcd92c.
dickmao [Sun, 21 Nov 2021 08:18:57 +0000 (09:18 +0100)]
Fix icalendar time zone parsing
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Parse time zones more correctly.
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--decode-isodatetime): Fix tests so that they work
in other time zones than Europe/Berlin (bug#51959).
Po Lu [Sun, 21 Nov 2021 08:05:13 +0000 (08:05 +0000)]
Fix documentation string of x_coalesce_scroll_events
* src/xterm.c (x_coalesce_scroll_events): Update doc string to
reflect that this option is now supported under Haiku.
Eli Zaretskii [Sun, 21 Nov 2021 07:52:43 +0000 (09:52 +0200)]
Improve the fix for bug#51864
* src/xfaces.c (face_at_buffer_position): Call
FACE_FROM_ID_OR_NULL just once.
(face_at_string_position): Make sure we have a usable base face.
Po Lu [Sun, 21 Nov 2021 05:37:50 +0000 (05:37 +0000)]
Improve Haiku documentation
* doc/emacs/haiku.texi: Remove duplicate text and
extraneous pxref.
Po Lu [Sun, 21 Nov 2021 05:32:03 +0000 (13:32 +0800)]
Add a user command to stop page loading in xwidget-webkit
* lisp/xwidget.el: Add `xwidget-webkit-stop' to menu.
(xwidget-webkit-stop): New command.
(xwidget-webkit-tool-bar-map): New tool bar item.
Po Lu [Sun, 21 Nov 2021 03:48:27 +0000 (03:48 +0000)]
Fix compiler warnings
* src/haikuterm.c (haiku_read_socket): Fix compiler
warnings intoduced by last change.
Po Lu [Sun, 21 Nov 2021 03:40:36 +0000 (03:40 +0000)]
Add pixel delta support for wheel events on Haiku
* src/haiku_support.cc (EmacsWindow.MessageReceived): Stop
adjusting scroll deltas.
* src/haikuterm.c (haiku_read_socket): Handle pixel deltas
correctly.
Po Lu [Sun, 21 Nov 2021 03:14:14 +0000 (11:14 +0800)]
Attach download-started signals to correct WebKit context
* src/xwidget.c (Fmake_xwidget): Use correct context.
Po Lu [Sun, 21 Nov 2021 03:04:29 +0000 (11:04 +0800)]
Allow handling smooth scroll events in xwidgets
* src/xterm.c (handle_one_xevent): Pass through XI2 motion
events to xwidgets.
* src/xterm.c (xwidget_button): Don't handle legacy scroll
events on XInput 2.
(xwidget_motion_notify, xwidget_scroll): New functions.
Po Lu [Sun, 21 Nov 2021 01:32:46 +0000 (09:32 +0800)]
Select device notification events correctly
* src/xfns.c (setup_xi_event_mask): Select PropertyEvent,
HierarchyChanged and DeviceChanged for all devices.
Po Lu [Sun, 21 Nov 2021 01:22:31 +0000 (09:22 +0800)]
Add XInput 2 input method support
* src/xterm.c (handle_one_xevent): Let input methods filter
events first before trying to handle an XI2 key press event.
Michael Albinus [Sat, 20 Nov 2021 20:50:20 +0000 (21:50 +0100)]
* test/infra/test-jobs-generator.sh: Generate also stages entry.
Michael Albinus [Sat, 20 Nov 2021 19:05:52 +0000 (20:05 +0100)]
Revert last change on emba files
Kyle Meyer [Sat, 20 Nov 2021 18:12:18 +0000 (13:12 -0500)]
Eli Zaretskii [Sat, 20 Nov 2021 18:08:06 +0000 (20:08 +0200)]
Fix mouse handling with several TTY frames on MS-Windows
* src/w32inevt.c (do_mouse_event): Reset the 'mouse_moved' flag of
the selected frame. Without that, this flag might remain set on a
TTY frame that is not displayed.
Eli Zaretskii [Sat, 20 Nov 2021 16:17:59 +0000 (18:17 +0200)]
Fix temacs invocation from outside of the 'src' directory
* src/emacs.c (main) [HAVE_NATIVE_COMP]: Recompute the value of
native-comp-eln-load-path if about to load loadup in uninitialized
Emacs. (Bug#51999)
Po Lu [Sat, 20 Nov 2021 13:30:08 +0000 (21:30 +0800)]
Add support for the Haiku operating system and its window system
* .gitignore: Add binaries specific to Haiku.
* Makefie.in (HAVE_BE_APP): New variable.
(install-arch-dep): Install Emacs and Emacs.pdmp when
using Haiku.
* configure.ac: Detect and configure for Haiku and
various related configurations.
(be-app, be-freetype, be-cairo): New options.
(HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ)
(HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(HAIKU, HAVE_TINY_SPEED_T): New define.
(emacs_config_features): Add BE_APP.
* doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku
appendix.
* doc/emacs/emacs.texi: Add Haiku appendix to menus and
include it.
* doc/emacs/haiku.texi: New Haiku appendix.
* doc/lispref/display.texi (Defining Faces, Window Systems):
Explain meaning of `haiku' as a window system identifier.
(haiku-use-system-tooltips): Explain meaning of system
tooltips on
Haiku.
* doc/lispref/frames.texi (Multiple Terminals): Explain
meaning of haiku as a display type.
(Frame Layout): Clarify section for Haiku frames.
(Size Parameters): Explain limitations of fullwidth and
fullheight on Haiku.
(Management Parameters): Explain limitations of
inhibiting double buffering on builds with Cairo,
and the inability of frames with no-accept-focus to
receive keyboard input on Haiku.
(Font and Color Parameters): Explain the different font
backends available on Haiku.
(Raising and Lowering): Explain that lowering and
restacking frames doesn't work on Haiku.
(Child Frames): Explain oddities of child frame
visibility on Haiku.
* doc/lispref/os.texi (System Environment): Explain
meaning of haiku.
* etc/MACHINES: Add appropriate notices for Haiku.
* etc/NEWS: Document changes.
* etc/PROBLEMS: Document font spacing bug on Haiku.
* lib-src/Makefile.in: Build be-resources binary on
Haiku.
(CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS)
(HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(DONT_INSTALL): Add be-resources binary if on Haiku.
(be-resources): New target.
* lib-src/be_resources: Add helper binary for setting
resources on the Emacs application.
* lib-src/emacsclient.c (decode_options): Set
alt_display to "be" on Haiku.
* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-unraised, custom-button-pressed): Update
face definitions for Haiku.
* lisp/cus-start.el: Add haiku-debug-on-fatal-error and
haiku-use-system-tooltips.
* lisp/faces.el (face-valid-attribute-values): Clarify
attribute comment for Haiku.
(tool-bar): Add appropriate toolbar color for Haiku.
* lisp/frame.el (haiku-frame-geometry)
(haiku-mouse-absolute-pixel-position)
(haiku-set-mouse-absolute-pixel-position)
(haiku-frame-edges)
(haiku-frame-list-z-order): New function declarations.
(frame-geometry, frame-edges)
(mouse-absolute-pixel-position)
(set-mouse-absolute-pixel-position)
(frame-list-z-order): Call appropriate window system
functions on Haiku.
(display-mouse-p, display-graphic-p)
(display-images-p, display-pixel-height)
(display-pixel-width, display-mm-height)
(display-mm-width, display-backing-store)
(display-save-under, display-planes)
(display-color-cells, display-visual-class): Update type
tests for Haiku.
* lisp/international/mule-cmds.el
(set-coding-system-map): Also
prevent set-terminal-coding-system from appearing in the menu
bar on Haiku.
* lisp/loadup.el: Load Haiku-specific files when built
with Haiku, and don't rename newly built Emacs on Haiku as BFS
doesn't support hard links.
* lisp/menu-bar.el (menu-bar-open): Add for Haiku.
* lisp/mwheel.el (mouse-wheel-down-event): Expect
wheel-up on Haiku.
(mouse-wheel-up-event): Expect wheel-down on Haiku.
(mouse-wheel-left-event): Expect wheel-left on Haiku.
(mouse-wheel-right-event): Expect wheel-right on Haiku.
* lisp/net/browse-url.el
(browse-url--browser-defcustom-type):
Add option for WebPositive.
(browse-url-webpositive-program): New variable.
(browse-url-default-program): Search for WebPositive.
(browse-url-webpositive): New function.
* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select): Define faces
appropriately for Haiku.
* lisp/term/haiku-win.el: New file.
* lisp/tooltip.el (menu-or-popup-active-p): New function
declaration.
(tooltip-show-help): Don't use tooltips on Haiku when a
menu is active.
* lisp/version.el (haiku-get-version-string): New
function declaration.
(emacs-version): Add Haiku version string if
appropriate.
* src/Makefile.in: Also produce binary named "Emacs"
with Haiku resources set.
(CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS)
(HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS)
(ALL_CXX_FLAGS): New variables.
(.SUFFIXES): Add .cc.
(.cc.o): New target.
(base_obj): Add Haiku C objects.
(doc_obj, obj): Split objects that should scanned for
documentation into doc_obj.
(SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects.
(all): Depend on Emacs and Emacs.pdmp on Haiku.
(LIBES): Add Haiku libraries.
(gl-stamp)
($(etc)/DOC): Scan doc_obj instead of obj
(temacs$(EXEEXT): Use C++ linker on Haiku.
(ctagsfiles3): New variable.
(TAGS): Scan C++ files.
* src/alloc.c (garbage_collect): Mark Haiku display.
* src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable
on Haiku.
(struct image): Add fields for Haiku transforms.
(RGB_PIXEL_COLOR): Define to unsigned long on Haiku as
well.
(sit_for): Also check USABLE_SIGPOLL.
(init_display_interactive): Set initial window system to
Haiku on Haiku builds.
* src/emacs.c (main): Define Haiku syms and init haiku
clipboard.
(shut_down_emacs): Quit BApplication on Haiku and
trigger debug
on aborts if haiku_debug_on_fatal_error.
(Vsystem_type): Update docstring.
* src/fileio.c (next-read-file-uses-dialog-p): Enable on
Haiku.
* src/filelock.c (WTMP_FILE): Only define if BOOT_TIME
is also defined.
* src/floatfns.c (double_integer_scale): Work around
Haiku libroot brain damage.
* src/font.c (syms_of_font): Define appropriate font
driver symbols for Haiku builds with various options.
* src/font.h: Also enable ftcrfont on Haiku builds with
Cairo.
(font_data_structures_may_be_ill_formed): Also enable on
Haiku builds that have Cairo.
* src/frame.c (Fframep): Update doc-string for Haiku
builds and return haiku if appropriate.
(syms_of_frame): New symbol `haiku'.
* src/frame.h (struct frame): Add output data for Haiku.
(FRAME_HAIKU_P): New macro.
(FRAME_WINDOW_P): Test for Haiku frames as well.
* src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG): New macros.
(ftcrfont_draw): Add haiku specific code for Haiku
builds with Cairo.
* src/ftfont.c (ftfont_open): Set face.
(ftfont_has_char, ftfont_text_extents): Work around
crash.
(syms_of_ftfont): New symbol `mono'.
* src/ftfont.h (struct font_info): Enable Cairo-specific
fields for Cairo builds on Haiku.
* src/haiku_draw_support.cc:
* src/haiku_font_support.cc:
* src/haiku_io.c:
* src/haiku_select.cc:
* src/haiku_support.cc:
* src/haiku_support.h:
* src/haikufns.c:
* src/haikufont.c:
* src/haikugui.h:
* src/haikuimage.c:
* src/haikumenu.c:
* src/haikuselect.c:
* src/haikuselect.h:
* src/haikuterm.c:
* src/haikuterm.h: Add new files for Haiku windowing
support.
* src/haiku.c: Add new files for Haiku operating system
support.
* src/image.c: Implement image transforms and native XPM
support
on Haiku.
(GET_PIXEL, PUT_PIXEL, NO_PIXMAP)
(PIX_MASK_RETAIN, PIX_MASK_DRAW)
(RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG)
(BLUE16_FROM_ULONG): Define to appropriate values on
Haiku.
(image_create_bitmap_from_data): Add Haiku support.
(image_create_bitmap_from_file): Add TODO on Haiku.
(free_bitmap_record): Free bitmap on Haiku.
(image_size_in_bytes): Implement for Haiku bitmaps.
(image_set_transform): Implement on Haiku.
(image_create_x_image_and_pixmap_1): Implement on Haiku,
24-bit or 1-bit only.
(image_destroy_x_image, image_get_x_image): Use correct
img and pixmap values on Haiku.
(lookup_rgb_color): Use correct macro on Haiku.
(image_to_emacs_colors): Implement on Haiku.
(image_disable_image): Disable on Haiku.
(image_can_use_native_api): Test for translator presence
on Haiku.
(native_image_load): Use translator on Haiku.
(imagemagick_load_image): Add Haiku-specific quirks.
(Fimage_transforms_p): Allow rotate90 on Haiku.
(image_types): Enable native XPM support on Haiku.
(syms_of_image): Enable XPM images on Haiku.
* src/keyboard.c (kbd_buffer_get_event)
(handle_async_input, handle_input_available_signal)
(handle_user_signal, Fset_input_interrupt_mode)
(init_keyboard): Check for USABLE_SIGPOLL along with
USABLE_SIGIO.
* src/lisp.h (pD): Work around broken Haiku headers.
(HAVE_EXT_MENU_BAR): Define on Haiku.
(handle_input_available_signal): Enable if we just have
SIGPOLL as well.
* src/menu.c (have_boxes): Return true on Haiku.
(single_menu_item): Enable toolkit menus on Haiku.
(find_and_call_menu_selection): Also enable on Haiku.
* src/process.c (keyboard_bit_set): Enable with only
usable SIGPOLL.
(wait_reading_process_output): Test for SIGPOLL as well
as SIGIO availability.
* src/sound.c (sound_perror, vox_open)
(vox_configure, vox_close): Enable for usable SIGPOLL as
well.
* src/sysdep.c (sys_subshell): Enable for usable SIGPOLL.
(reset_sigio): Make conditional on F_SETOWN.
(request_sigio, unrequest_sigio)
(emacs_sigaction_init): Also handle SIGPOLLs.
(init_sys_modes): Disable TCXONC usage on Haiku, as it
doesn't have any ttys other than pseudo ttys, which don't
support C-s/C-q flow control, and causes compiler warnings.
(speeds): Disable high speeds if HAVE_TINY_SPEED_T.
* src/termhooks.h (enum output_method): Add output_haiku.
(struct terminal): Add Haiku display info.
(TERMINAL_FONT_CACHE): Enable for Haiku.
* src/terminal.c (Fterminal_live_p): Return `haiku' if
appropriate.
* src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging
variables.
* src/xdisp.c (redisplay_internal)
(note_mouse_highlight): Return on Haiku if a popup is activated.
(display_menu_bar): Return on Haiku if frame is a Haiku
frame.
* src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku.
(x_create_gc): Enable dummy GC code on Haiku.
* src/xfns.c (x-server-version, x-file-dialog): Add
Haiku specifics to doc strings.
* src/xterm.c (syms_of_xterm): Add Haiku information to
doc string.
Michael Albinus [Sat, 20 Nov 2021 12:29:33 +0000 (13:29 +0100)]
; Rearrange normal stage in emba files
Stefan Kangas [Sat, 20 Nov 2021 12:18:17 +0000 (13:18 +0100)]
; Fix my last commit
* lisp/play/animate.el (animate-string): Ensure the delay is always a
float.