]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sun, 15 Jan 2023 03:57:20 +0000 (11:57 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoImplement toolkit menus on Android
Po Lu [Sun, 15 Jan 2023 03:57:10 +0000 (11:57 +0800)]
Implement toolkit menus on Android

* java/org/gnu/emacs/EmacsActivity.java (onContextMenuClosed):
New function.
* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
New field `itemAlreadySelected'.
(onMenuItemClick): New function.
(inflateMenuItems): Attach onClickListener as appropriate.
(display1): Clear itemAlreadySelected.
(display): Fix runnable synchronization.
* java/org/gnu/emacs/EmacsNative.java (sendContextMenu): New
function.
* java/org/gnu/emacs/EmacsView.java (popupMenu):
(cancelPopupMenu): Set popupactive correctly.

* src/android.c (android_run_select_thread): Fix android_select
again.
(android_wait_event): New function.
* src/android.h: Update prototypes.
* src/androidgui.h (enum android_event_type): New
`ANDROID_CONTEXT_MENU' event.
(struct android_menu_event, union android_event): Add new event.

* src/androidmenu.c (struct android_emacs_context_menu): New
structure.
(android_init_emacs_context_menu): Add `dismiss' method.
(struct android_dismiss_menu_data): New structure.
(android_dismiss_menu, android_process_events_for_menu): New
functions.
(android_menu_show): Set an actual item ID.
(popup_activated): Define when stubify as well.
(Fmenu_or_popup_active_p): New function.
(syms_of_androidmenu): New function.

* src/androidterm.c (handle_one_android_event): Handle context
menu events.
* src/androidterm.h (struct android_display_info): New field for
menu item ID.
* src/emacs.c (android_emacs_init): Call syms_of_androidmenu.
* src/xdisp.c (note_mouse_highlight): Return if popup_activated
on Android as well.

2 years agoFix the MS-DOS build
Po Lu [Sun, 15 Jan 2023 01:26:18 +0000 (09:26 +0800)]
Fix the MS-DOS build

* msdos/sed1v2.inp: Edit out QCOPY_ACL_LIB.

2 years agoUse treesit-sentence-type-regexp in java-ts-mode
Theodor Thornhill [Sat, 14 Jan 2023 21:41:00 +0000 (22:41 +0100)]
Use treesit-sentence-type-regexp in java-ts-mode

Initial support for forward/backward-sentence movement with
tree-sitter.  Include all statements, and some declarations.  Don't
include the bigger declarations we don't want to jump over too big
blocks of code.

* lisp/progmodes/java-ts-mode.el (java-ts-mode): Add relevant node
types to treesit-sentence-type-regexp.

2 years agoUse the 'field' property to navigate through Eshell prompts
Jim Porter [Sun, 8 Jan 2023 21:50:50 +0000 (13:50 -0800)]
Use the 'field' property to navigate through Eshell prompts

* lisp/eshell/esh-mode.el (eshell-skip-prompt-function): Make
obsolete.

* lisp/eshell/em-prompt.el (eshell-prompt-regexp): Update docstring.
(eshell-prompt-initialize): Don't set 'eshell-skip-prompt-function'.
(eshell-next-prompt): Search for the 'field' property set to 'prompt'
to find the next prompt.
(eshell-previous-prompt): Move 'forward-line' call into
'eshell-next-prompt'.
(eshell-forward-matching-input, eshell-backward-matching-input):
Reimplement on top of 'eshell-next-prompt'.
(eshell-skip-prompt): Make obsolete.

* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test/next-previous-prompt): New test.

2 years agoMake 'eshell-bol' obsolete
Jim Porter [Sun, 8 Jan 2023 21:05:59 +0000 (13:05 -0800)]
Make 'eshell-bol' obsolete

Now that Eshell uses fields for its output, 'eshell-bol' is no longer
needed, and we can just use 'beginning-of-line'.

* lisp/eshell/esh-mode.el (eshell-bol): Mark obsolete.
(eshell-mode-map): Remove 'C-a' mapping.
(eshell-command-map): Use 'move-beginning-of-line'.
(eshell-move-argument, eshell-kill-input): Use 'beginning-of-line'.
(eshell-get-old-input): Remove unnecessary call to
'eshell-skip-prompt-function'.

* lisp/eshell/em-rebind.el (eshell-rebind-keys-alist): Remove 'C-a'
and '<home>' mappings; the global mapping for these
('move-beginning-of-line') does the same thing now.

* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments):
* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash):
* lisp/eshell/em-hist.el (eshell-hist-word-reference)
(eshell-previous-matching-input-from-input, eshell-test-imatch):
* lisp/eshell/em-prompt.el (eshell-backward-matching-input):
* lisp/eshell/em-rebind.el (eshell-point-within-input-p):
* test/lisp/eshell/eshell-tests.el (eshell-test/forward-arg): Use
'beginning-of-line'.

* test/lisp/eshell/eshell-tests.el (eshell-test/run-old-command):
Rename to...
(eshell-test/get-old-input): ... this, and expand the test.

2 years agoSet the 'field' property for Eshell output
Jim Porter [Sun, 8 Jan 2023 21:00:47 +0000 (13:00 -0800)]
Set the 'field' property for Eshell output

This makes Eshell work more like 'M-x shell', and lets the <home> key
move to the beginning of the user's input at the prompt (bug#60666).

* lisp/eshell/em-prompt.el (eshell-emit-prompt): Add 'field' property
to prompt.
(eshell-bol-ignoring-prompt): New function.

* lisp/eshell/esh-io.el: Declare 'eshell-interactive-print'...
(eshell-output-object-to-target): ... use it.

* lisp/eshell/esh-mode.el (eshell-output-filter-functions): Update
docstring.
(eshell-interactive-print): Set the output to have a field value of
'command-output'.
(eshell-output-filter): Rename to...
(eshell-interactive-filter): ... this, and take a buffer instead of a
process.

* lisp/eshell/esh-proc.el (eshell-interactive-process-filter): New
function, adapted from 'eshell-output-filter'...
(eshell-gather-process-output): ... use it.

* test/lisp/eshell/em-prompt-tests.el: New file.

* etc/NEWS: Announce this change.

2 years agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 14 Jan 2023 18:56:58 +0000 (13:56 -0500)]
Merge from origin/emacs-29

fd77de542d8 ; * etc/NEWS: Fix typos.
195afb68e31 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
cd83bc930ca ; * lisp/htmlfontify.el (hfy-exclude-file-rules): Fix :ve...
8d7ad656658 Fix indent and font-lock for annotation_type

# Conflicts:
# etc/NEWS

2 years ago; * etc/NEWS: Fix typos.
Michael Albinus [Sat, 14 Jan 2023 18:30:55 +0000 (19:30 +0100)]
; * etc/NEWS: Fix typos.

2 years agoMerge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29
Eli Zaretskii [Sat, 14 Jan 2023 16:30:05 +0000 (18:30 +0200)]
Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29

2 years ago; * lisp/htmlfontify.el (hfy-exclude-file-rules): Fix :version.
Eli Zaretskii [Sat, 14 Jan 2023 16:15:46 +0000 (18:15 +0200)]
; * lisp/htmlfontify.el (hfy-exclude-file-rules): Fix :version.

2 years agoFix android_select
Po Lu [Sat, 14 Jan 2023 14:48:28 +0000 (22:48 +0800)]
Fix android_select

* src/android.c (android_run_select_thread, android_select):
Handle EINTR in sem_wait and fix sigsets.

2 years ago(apropos-documentation): Don't try to parse .elc files
Stefan Monnier [Sat, 14 Jan 2023 14:26:17 +0000 (09:26 -0500)]
(apropos-documentation): Don't try to parse .elc files

The old code scanned for #@ in .elc files, assuming they're
docstrings and then looking around them to try and guess to which
definition that docstring belongs, making many assumptions about how
the code happens to be layed out by bytecomp.
Replace that with code which relies on the (FILE . POS) info to
extract the docstring knowing already where they are and what def they
belong to.

* lisp/apropos.el (apropos-documentation-check-elc-file): Delete function.
(apropos--documentation-add-from-elc): New function to replace it.
(apropos--documentation-add): New function, extracted from
`apropos-documentation`.
(apropos-documentation): Use them.  Let-bind `apropos-accumulator` and
`apropos-files-scanned`.
(apropos-documentation-internal): Don't handle the `cons` case any more.
(apropos-item): Don't declare as global var.
(apropos-documentation-check-doc-file): Use `apropos-item` as a local
var rather than a global var.
(apropos-print-doc): Receive `apropos-item` as arg rather than refer to
it as a global variable.
(apropos-print): Adjust calls accordingly.

2 years agoAdd temporary gnulib patch
Po Lu [Sat, 14 Jan 2023 14:23:08 +0000 (22:23 +0800)]
Add temporary gnulib patch

* xcompile/lib/fpending.c (__fpending): Fix gnulib problem.

2 years agoFix indent and font-lock for annotation_type
Theodor Thornhill [Sat, 14 Jan 2023 14:18:40 +0000 (15:18 +0100)]
Fix indent and font-lock for annotation_type

* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent
inside body.
(java-ts-mode--font-lock-settings): Add rule for name in
annotation_type_element_declaration.

2 years agoMerge remote-tracking branch 'refs/remotes/origin/master'
Stefan Monnier [Sat, 14 Jan 2023 14:17:30 +0000 (09:17 -0500)]
Merge remote-tracking branch 'refs/remotes/origin/master'

2 years agoMerge from origin/emacs-29
Stefan Monnier [Sat, 14 Jan 2023 14:12:14 +0000 (09:12 -0500)]
Merge from origin/emacs-29

96601cd90ba apropos.el: Fix bug#60628
10032f424cc Fix indentation of some declarations and statements
e2e937300f5 Fix indentation of object_expressions in csharp-ts-mode
0116e27b26c ; Fix NEWS markup
435ba92ccc4 ; Fix last change in htmlfontify.el
7100ecd7a47 Replace 'hfy-find-cmd' with 'directory-files-recursively'.
f102145d381 ; * etc/PROBLEMS: Describe problems with MuPDF 1.21.  (Bu...

2 years agoDrop unneeded changes to gnulib
Po Lu [Sat, 14 Jan 2023 14:14:10 +0000 (22:14 +0800)]
Drop unneeded changes to gnulib

* xcompile/lib/fpending.c (__fpending):
* xcompile/lib/open.c:
* xcompile/lib/unistd.c (_GL_UNISTD_INLINE): Remove Android
patches.

2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 14 Jan 2023 14:13:26 +0000 (22:13 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoUpdate Android port
Po Lu [Sat, 14 Jan 2023 14:12:16 +0000 (22:12 +0800)]
Update Android port

* java/Makefile.in (clean): Fix distclean and bootstrap-clean rules.
* java/debug.sh (jdb_port):
(attach_existing):
(num_pids):
(line): Add new options to upload a gdbserver binary to the device.

* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): Make
focusedActivities public.
* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
New class.
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Fix
bounds computation.
* java/org/gnu/emacs/EmacsGC.java (markDirty): Set stroke width
explicitly.
* java/org/gnu/emacs/EmacsService.java (EmacsService)
(getLocationOnScreen, nameKeysym): New functions.
* java/org/gnu/emacs/EmacsView.java (EmacsView): Disable focus
highlight.
(onCreateContextMenu, popupMenu, cancelPopupMenu): New
functions.
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): Implement a
kind of ``override redirect'' window for tooltips.
* src/android.c (struct android_emacs_service): New method
`name_keysym'.
(android_run_select_thread, android_init_events):
(android_select): Release select thread on semaphores instead of
signals to avoid one nasty race on SIGUSR2 delivery.
(android_init_emacs_service): Initialize new method.
(android_create_window): Handle CW_OVERRIDE_REDIRECT.
(android_move_resize_window, android_map_raised)
(android_translate_coordinates, android_get_keysym_name)
(android_build_string, android_exception_check): New functions.
* src/android.h: Update prototypes.

* src/androidfns.c (android_set_parent_frame, Fx_create_frame)
(unwind_create_tip_frame, android_create_tip_frame)
(android_hide_tip, compute_tip_xy, Fx_show_tip, Fx_hide_tip)
(syms_of_androidfns): Implement tooltips and iconification
reporting.

* src/androidgui.h (enum android_window_value_mask): Add
CWOverrideRedirect.
(struct android_set_window_attributes): Add `override_redirect'.
(ANDROID_IS_MODIFIER_KEY): Recognize Caps Lock.

* src/androidmenu.c (struct android_emacs_context_menu): New
struct.
(android_init_emacs_context_menu, android_unwind_local_frame)
(android_push_local_frame, android_menu_show, init_androidmenu):
New functions.

* src/androidterm.c (handle_one_android_event): Fix NULL pointer
dereference.
(android_fullscreen_hook): Handle fullscreen correctly.
(android_draw_box_rect): Fix top line.
(get_keysym_name): Implement function.
(android_create_terminal): Remove scroll bar stubs and add menu
hook.

* src/androidterm.h: Update prototypes.
* src/emacs.c (android_emacs_init): Initialize androidmenu.c.
* xcompile/Makefile.in: Fix clean rules.

2 years ago; Merge from origin/emacs-29
Stefan Monnier [Sat, 14 Jan 2023 14:10:45 +0000 (09:10 -0500)]
; Merge from origin/emacs-29

The following commit was skipped:

79971ebacc7 Disable and document 'doc-view-mupdf-use-svg' (bug#58041)

2 years agoMerge from origin/emacs-29
Stefan Monnier [Sat, 14 Jan 2023 14:10:45 +0000 (09:10 -0500)]
Merge from origin/emacs-29

f1032bf24e7 Eglot: don't use "nil" as minibuffer initial input
1b9ffd28116 Fix dependency bug when building lwlib
dc33a122230 Fix use of build_pure_c_string in treesit.c

2 years ago; Merge from origin/emacs-29
Stefan Monnier [Sat, 14 Jan 2023 14:10:45 +0000 (09:10 -0500)]
; Merge from origin/emacs-29

The following commits were skipped:

59c3c53efa4 * lisp/subr.el (combine-change-calls-1): Fix bug#60467
9f8f8ed1baf Adapt tramp-tests.el  (do not merge with master)

2 years agoMerge from origin/emacs-29
Stefan Monnier [Sat, 14 Jan 2023 14:10:45 +0000 (09:10 -0500)]
Merge from origin/emacs-29

861556c1339 Fix minibuffer-completion tests
c0578edc8fc ; * doc/misc/eglot.texi (Troubleshooting Eglot): Fix typo...
c6bbf9cc270 Add c-ts-mode tests
a760364f5f3 Fix c-ts-mode--fill-paragraph
2a2b1d09ac7 Fix minor issues with 'pp' and related commands
dfb38fb2ee6 ; Improve documentation of tree-sitter node comparison
e8a89a18b69 ; Fix non-tree-sitter builds
f27a330b99e ; Fix typo in ert-with-temp-file
956889d8ff1 Equal now recognizes tree-sitter nodes (bug#60659)
8f446c2d397 Fix c-ts-mode comment indentation (bug#60270)
083badc9c12 * lisp/subr.el (while-let): Use if-let, not if-let* (bug#...
9ecebcdded1 * lisp/simple.el (next-completion): Handle first completi...
cfd2b3504ab Fix encoding with 'utf-8-auto'
53b47df8229 Report cursor correctly on PGTK when there is a margin

# Conflicts:
# etc/NEWS

2 years agoapropos.el: Fix bug#60628
Stefan Monnier [Sat, 14 Jan 2023 14:06:10 +0000 (09:06 -0500)]
apropos.el: Fix bug#60628

* lisp/apropos.el (apropos--map-preloaded-atoms): New function.
(apropos-documentation): Use it.
(apropos-documentation-check-elc-file): Don't presume #@ is preceded by
a newline (since that's not the case any more since commit
900b09c0235d54d5), but be more careful not to burp on false positives.

2 years agoFix indentation of some declarations and statements
Theodor Thornhill [Fri, 13 Jan 2023 10:33:58 +0000 (11:33 +0100)]
Fix indentation of some declarations and statements

* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
rules so that we don't anchor at col 0.

2 years agoFix indentation of object_expressions in csharp-ts-mode
Theodor Thornhill [Thu, 12 Jan 2023 08:06:45 +0000 (09:06 +0100)]
Fix indentation of object_expressions in csharp-ts-mode

* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): Make
sure the opening brace is indented at parent-bol, and everything else
is indented.

2 years ago; Fix NEWS markup
Eli Zaretskii [Sat, 14 Jan 2023 09:53:37 +0000 (11:53 +0200)]
; Fix NEWS markup

2 years agoTeach 'eww-open-file' about prefix argument
Eli Zaretskii [Sat, 14 Jan 2023 09:48:55 +0000 (11:48 +0200)]
Teach 'eww-open-file' about prefix argument

* lisp/net/eww.el (eww-open-file): Accept a new optional argument
NEW-BUFFER to show FILE in a new buffer.  (Bug#60809)

* etc/NEWS:
* doc/misc/eww.texi (Basics): Document the new feature.

2 years ago; Fix last change in htmlfontify.el
Eli Zaretskii [Sat, 14 Jan 2023 09:10:53 +0000 (11:10 +0200)]
; Fix last change in htmlfontify.el

2 years agoReplace 'hfy-find-cmd' with 'directory-files-recursively'.
Xi Lu [Sat, 7 Jan 2023 14:46:40 +0000 (22:46 +0800)]
Replace 'hfy-find-cmd' with 'directory-files-recursively'.

This removes a potential vulnerability to maliciously
named files.  (Bug#60562)
* lisp/htmlfontify.el (hfy-exclude-file-rules): New defcustom.
(hfy-list-files): Reimplement using 'directory-files-recursively'.

2 years ago; * etc/PROBLEMS: Describe problems with MuPDF 1.21. (Bug#60308)
Eli Zaretskii [Sat, 14 Jan 2023 08:52:06 +0000 (10:52 +0200)]
; * etc/PROBLEMS: Describe problems with MuPDF 1.21.  (Bug#60308)

2 years ago; * lisp/proced.el (proced--determine-pos): Fix doc string wording.
Eli Zaretskii [Sat, 14 Jan 2023 08:40:15 +0000 (10:40 +0200)]
; * lisp/proced.el (proced--determine-pos): Fix doc string wording.

2 years agoPreserve the window position with proced (bug#60381)
Laurence Warne [Thu, 22 Dec 2022 17:16:08 +0000 (17:16 +0000)]
Preserve the window position with proced (bug#60381)

Preserve the window position for windows which display a proced
buffer, but are not the selected window when a proced buffer is
updated.  Previously, the window position would be set to the
start of the buffer when a proced buffer was updated and it was
not displayed in the selected window.

Similarly, preserve the position in proced buffers which are not
displayed in any window by setting
'switch-to-buffer-preserve-window-point' to nil in proced buffers.

* lisp/proced.el (proced-auto-update-timer): Only update a given
proced buffer if it is displayed in a window.
(proced-update): Set the window position if the proced buffer is
displayed in a window.
(proced--position-info, proced--determine-pos): New Functions.
(proced-mode): Set 'switch-to-buffer-preserve-window-point' to
nil in proced buffers.
* test/lisp/proced-tests.el
(proced-update-preserves-pid-at-point-test): New test.

2 years ago; * lisp/doc-view.el (doc-view-mupdf-use-svg): Bump :version.
Eli Zaretskii [Sat, 14 Jan 2023 08:32:44 +0000 (10:32 +0200)]
; * lisp/doc-view.el (doc-view-mupdf-use-svg): Bump :version.

2 years agoDisable and document 'doc-view-mupdf-use-svg' (bug#58041)
Eli Zaretskii [Sat, 14 Jan 2023 08:26:40 +0000 (10:26 +0200)]
Disable and document 'doc-view-mupdf-use-svg' (bug#58041)

* lisp/doc-view.el (doc-view-mupdf-use-svg): Disable by default.
* etc/NEWS: Document.  Patch by Visuwesh <visuweshm@gmail.com>.
Do not merge to master.

2 years agoEglot: don't use "nil" as minibuffer initial input
Eshel Yaron [Sat, 14 Jan 2023 08:12:11 +0000 (10:12 +0200)]
Eglot: don't use "nil" as minibuffer initial input

Doing M-x eglot in a buffer for which buffer-file-name is nil, prompts
the user for a major mode to manage by invoking completing-read.  The
way completing-read was called would end up with the string "nil" as
the initial minibuffer input, which is not very useful nor is it a
valid input.
* lisp/progmodes/eglot.el (eglot--guess-contact): Tweak prompt for
major mode.  (Bug#60379)

Copyright-paperwork-exempt: yes

2 years agoFix dependency bug when building lwlib
Paul Eggert [Sat, 14 Jan 2023 02:22:47 +0000 (18:22 -0800)]
Fix dependency bug when building lwlib

* lwlib/Makefile.in (DEPFLAGS): Use OBJS to calculate dependency
file names, not ALLOBJS.  This fixes a typo introduced
in 2015-05-15 "Replace AC_SUBST_FILE in configure with include in
Makefiles" that caused lwlib/*.o to not be rebuilt sometimes
when that was needed.

2 years agoUpdate from Gnulib by running admin/merge-gnulib
Paul Eggert [Sat, 14 Jan 2023 03:32:47 +0000 (19:32 -0800)]
Update from Gnulib by running admin/merge-gnulib

This adds a new file m4/xattr.m4 from Gnulib,
for NFS v4 attribute copying.
Also, do these changes by hand:
* configure.ac: Mention $LIB_XATTR" in ACL summary.
* src/Makefile.in (QCOPY_ACL_LIB): New macro.
(LIBES): Use it.

2 years agoImprove reliability of Android build system
Po Lu [Sat, 14 Jan 2023 01:34:53 +0000 (09:34 +0800)]
Improve reliability of Android build system

* .gitignore: Add new files.
* INSTALL.android: New file.
* Makefile.in (clean_dirs): Clean xcompile as well.
* admin/merge-gnulib (avoided_flags): Import gnulib into Android
directory as well.
* doc/emacs/android.texi (Android):
* doc/emacs/emacs.texi (Top): New node `Android'.
* java/org/gnu/emacs/EmacsThread.java (run): Use right
executable name.
* lib/Makefile.in (ANDROID_CFLAGS): Use better way to refer to
/src.
(vpath): Delete ugly block of vpath statements.
(mostlyclean): Remove Makefile.android.
* lib/fpending.c (__fpending):
* lib/open.c:
* lib/unistd.c (_GL_UNISTD_INLINE): Revert changes to gnulib in
lib/.
* src/android.h:
* src/androidterm.c: Fix build.
* xcompile/Makefile.in (LIB_SRCDIR):
(LIBSRC_BINARIES, src/verbose.mk):
(PRE_BUILD_DEPS, PHONY): Use gnulib in xcompile/lib/ as opposed
to lib/.
* xcompile/README: Adjust README.

2 years agoFix use of build_pure_c_string in treesit.c
Yuan Fu [Sat, 14 Jan 2023 01:26:08 +0000 (17:26 -0800)]
Fix use of build_pure_c_string in treesit.c

This is brought up in bug#60691.  build_pure_c_string should only be
used in places such as syms_of_treesit, which are called just once,
during dumping.

* src/treesit.c (Vtreesit_str_libtree_sitter):
(Vtreesit_str_tree_sitter):
(Vtreesit_str_dot):
(Vtreesit_str_question_mark):
(Vtreesit_str_star):
(Vtreesit_str_plus):
(Vtreesit_str_pound_equal):
(Vtreesit_str_pound_match):
(Vtreesit_str_pound_pred):
(Vtreesit_str_open_bracket):
(Vtreesit_str_close_bracket):
(Vtreesit_str_open_paren):
(Vtreesit_str_close_paren):
(Vtreesit_str_space):
(Vtreesit_str_equal):
(Vtreesit_str_match):
(Vtreesit_str_pred): New variables.

(treesit_load_language):
(Ftreesit_pattern_expand):
(Ftreesit_query_expand):
(treesit_eval_predicates): Use new varaibles.

(treesit_check_buffer_size):
(treesit_compose_query_signal_data):
(treesit_check_range_argument):
(Ftreesit_parser_set_included_ranges):
(treesit_predicate_capture_name_to_node):
(treesit_predicate_equal):
(treesit_predicate_match):
(treesit_predicate_pred): Use build_string for signal message.

(syms_of_treesit): Initialize new variables.

2 years agoCheck in gnulib with Android patches
Po Lu [Sat, 14 Jan 2023 01:27:33 +0000 (09:27 +0800)]
Check in gnulib with Android patches

* xcompile/lib: Check-in gnulib with patches for Android.

2 years ago* lisp/apropos.el (apropos-safe-documentation): Use `function-documentation`
Stefan Monnier [Fri, 13 Jan 2023 23:00:29 +0000 (18:00 -0500)]
* lisp/apropos.el (apropos-safe-documentation): Use `function-documentation`

2 years ago(function-documentation): Make it work for the remaining cases
Stefan Monnier [Fri, 13 Jan 2023 22:56:04 +0000 (17:56 -0500)]
(function-documentation): Make it work for the remaining cases

* lisp/simple.el (function-documentation):
Use `internal-subr-documentation` and make it work also with symbols
and macros.

* src/doc.c (Fsubr_documentation): New function, extracted
from Fdocumentation.
(syms_of_doc): defsubr it.
(Fdocumentation): Don't handle subrs and module functions here.

2 years ago* lisp/reveal.el (reveal-open-new-overlays): Use `invisible-p`
Stefan Monnier [Fri, 13 Jan 2023 22:52:23 +0000 (17:52 -0500)]
* lisp/reveal.el (reveal-open-new-overlays): Use `invisible-p`

2 years agoundo-tests.el: Tests for bug#60467
Gregory Heytings [Fri, 13 Jan 2023 22:43:31 +0000 (17:43 -0500)]
undo-tests.el: Tests for bug#60467

* test/src/undo-tests.el (undo-test-combine-change-calls-1)
(undo-test-combine-change-calls-2, undo-test-combine-change-calls-3):
New tests.

2 years ago* lisp/subr.el (combine-change-calls-1): Fix bug#60467
Stefan Monnier [Fri, 13 Jan 2023 22:41:37 +0000 (17:41 -0500)]
* lisp/subr.el (combine-change-calls-1): Fix bug#60467

Don't stop at timestamps.
Also Don't burp about breakage just because (cdr old-bul) is nil.

2 years ago* lisp/subr.el (combine-change-calls-1): Fix bug#60467
Stefan Monnier [Fri, 13 Jan 2023 22:38:04 +0000 (17:38 -0500)]
* lisp/subr.el (combine-change-calls-1): Fix bug#60467

Don't stop at timestamps.  Strip them for now, to be on the safe side.
Don't merge into `master` where we'll use a better fix.

2 years agoAdapt tramp-tests.el
Michael Albinus [Fri, 13 Jan 2023 18:41:08 +0000 (19:41 +0100)]
Adapt tramp-tests.el

* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Rename from `tramp--test-docker-p'.  Handle also "podman" method.
Adapt callees.

2 years agoAdapt tramp-tests.el (do not merge with master)
Michael Albinus [Fri, 13 Jan 2023 18:35:52 +0000 (19:35 +0100)]
Adapt tramp-tests.el  (do not merge with master)

* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Rename from `tramp--test-docker-p'.  Handle also "podman" method.
Adapt callees.

2 years agoFix minibuffer-completion tests
Eli Zaretskii [Fri, 13 Jan 2023 13:36:00 +0000 (15:36 +0200)]
Fix minibuffer-completion tests

* test/lisp/minibuffer-tests.el (completions-header-format-test):
Fix the test which first fired, and then drew the target...

2 years ago; * doc/misc/eglot.texi (Troubleshooting Eglot): Fix typo (bug#60780).
Arash Esbati [Fri, 13 Jan 2023 13:24:25 +0000 (15:24 +0200)]
; * doc/misc/eglot.texi (Troubleshooting Eglot): Fix typo (bug#60780).

2 years agoAdd c-ts-mode tests
Daniel Martín [Sun, 8 Jan 2023 13:04:24 +0000 (14:04 +0100)]
Add c-ts-mode tests

* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New .erts file
to test indentation of typical C constructs and prevent regression of
bug fixes.
* test/lisp/progmodes/c-ts-mode-tests.el: New file with c-ts-mode
tests.

2 years agoFix c-ts-mode--fill-paragraph
Yuan Fu [Fri, 13 Jan 2023 01:29:14 +0000 (17:29 -0800)]
Fix c-ts-mode--fill-paragraph

Example:

       doc: /* Return non-nil if NODE1 and NODE2 are the same node.
If any one of NODE1 and NODE2 is nil, return nil.
This function uses the same equivalence metric as `equal'.  */

* lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix the
case where there are words before the /*, like the example above.

2 years agoFix minor issues with 'pp' and related commands
Eli Zaretskii [Fri, 13 Jan 2023 08:39:58 +0000 (10:39 +0200)]
Fix minor issues with 'pp' and related commands

* etc/NEWS:
* lisp/emacs-lisp/pp.el (pp-use-max-width, pp-emacs-lisp-code):
Mention in doc string that formatting via 'pp-emacs-lisp-code'
could be slow.
(pp-eval-expression, pp-macroexpand-expression): Honor
'pp-use-max-width'.  (Bug#58687)

2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 13 Jan 2023 08:08:29 +0000 (16:08 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoFix crashes in Android port
Po Lu [Fri, 13 Jan 2023 08:08:11 +0000 (16:08 +0800)]
Fix crashes in Android port

* java/org/gnu/emacs/EmacsService.java (queryTree): Fix NULL
pointer dereference.
* src/android.c (android_query_tree): Set *nchildren_return.

2 years ago* .gitignore: Add AndroidManifest.xml.
Po Lu [Fri, 13 Jan 2023 08:05:55 +0000 (16:05 +0800)]
* .gitignore: Add AndroidManifest.xml.

2 years ago* java/AndroidManifest.xml: Remove file that is now generated.
Po Lu [Fri, 13 Jan 2023 08:05:08 +0000 (16:05 +0800)]
* java/AndroidManifest.xml: Remove file that is now generated.

2 years ago* src/frame.c (make_monitor_attribute_list): Allow source to be NULL.
Po Lu [Fri, 13 Jan 2023 07:53:22 +0000 (15:53 +0800)]
* src/frame.c (make_monitor_attribute_list): Allow source to be NULL.

2 years agoUpdate Android port
Po Lu [Fri, 13 Jan 2023 07:53:08 +0000 (15:53 +0800)]
Update Android port

* configure.ac (ANDROID_MIN_SDK): New variable.
(DX): Remove and replace with D8.
(XCONFIGURE): Check for the minimum version of Android the cross
compiler compiles for.  Generate java/AndroidManifest.xml from
java/AndroidManifest.xml.in.  Allow using Zlib on Android.

* java/AndroidManifest.xml.in: New file.  Use the minimum SDK
detected by configure.

* java/Makefile.in (top_srcdir, version): New variables.
(DX, D8): Replace with D8.
(ANDROID_MIN_SDK, APK_NAME): New variables.
(.PHONY):
(.PRECIOUS):
(classes.dex):
(emacs.apk): Generate $(APK_NAME) instead of `emacs.apk'.

* java/debug.sh: New option --attach-existing.  Attach to an
existing Emacs instance when specified.

* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New
field `isPaused'.
(invalidateFocus1): Fix infinite recursion.
(detachWindow): Deiconify window.
(attachWindow): Iconify the window if the activity is paused.
(onCreate): Use the ``no title bar'' theme.
(onPause, onResume): New functions.
* java/org/gnu/emacs/EmacsNative.java (sendTouchUp, sendTouchDown)
(sendTouchMove, sendWheel, sendIconified, sendDeiconified): New
functions.
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7Typeface):
(list): Remove logging for code that is mostly going to be unused.
* java/org/gnu/emacs/EmacsService.java (ringBell, queryTree)
(getScreenWidth, getScreenHeight, detectMouse): New functions.
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
(surfaceChanged, surfaceCreated, surfaceDestroyed): Add extra
debug logging.  Avoid deadlock in surfaceCreated.

* java/org/gnu/emacs/EmacsView.java (EmacsView): Try very hard
to make the SurfaceView respect Z order.  It didn't work.
(handleDirtyBitmap): Copy over the contents from the old bitmap.
(explicitlyDirtyBitmap): New function.
(onLayout): Don't dirty bitmap if unnecessary.
(damageRect, swapBuffers): Don't synchronize so hard.
(onTouchEvent): Call window.onTouchEvent instead.
(moveChildToBack, raise, lower): New functions.

* java/org/gnu/emacs/EmacsWindow.java (Coordinate): New
subclass.
(pointerMap, isMapped, isIconified, dontFocusOnMap)
(dontAcceptFocus): New fields.
(EmacsWindow): Don't immediately register unmapped window.
(viewLayout): Send configure event outside the lock.
(requestViewLayout): Explicitly dirty the bitmap.
(mapWindow): Register the window now.  Respect dontFocusOnMap.
(unmapWindow): Unregister the window now.
(figureChange, onTouchEvent): New functions.
(onSomeKindOfMotionEvent): Handle scroll wheel events.
(reparentTo, makeInputFocus, raise, lower, getWindowGeometry)
(noticeIconified, noticeDeiconified, setDontAcceptFocus)
(setDontFocusOnMap, getDontFocusOnMap): New functions.
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(registerWindow, detachWindow): Synchronize.
(noticeIconified, noticeDeiconified): New functions.
(copyWindows): New function.

* lisp/frame.el (frame-geometry, frame-edges)
(mouse-absolute-pixel-position, set-mouse-absolute-pixel-position)
(frame-list-z-order, frame-restack, display-mouse-p)
(display-monitor-attributes-list): Implement on Android.

* lisp/mwheel.el (mouse-wheel-down-event):
(mouse-wheel-up-event):
(mouse-wheel-left-event):
(mouse-wheel-right-event): Define on Android.

* src/android.c (struct android_emacs_service): New methods
`ringBell', `queryTree', `getScreenWidth', `getScreenHeight',
and `detectMouse'.
(struct android_event_queue, android_init_events)
(android_next_event, android_write_event): Remove write limit.
(android_file_access_p): Handle directories correcty.
(android_close): Fix coding style.
(android_fclose): New function.
(android_init_emacs_service): Initialize new methods.
(android_reparent_window): Implement function.
(android_bell, android_set_input_focus, android_raise_window)
(android_lower_window, android_query_tree, android_get_geometry)
(android_get_screen_width, android_get_screen_height)
(android_get_mm_width, android_get_mm_height, android_detect_mouse)
(android_set_dont_focus_on_map, android_set_dont_accept_focus):
New functions.
(struct android_dir): New structure.
(android_opendir, android_readdir, android_closedir): New
functions.
(emacs_abort): Implement here on Android and poke debuggerd into
generating a tombstone.

* src/android.h: Update prototypes.

* src/androidfns.c (android_set_parent_frame): New function.
(android_default_font_parameter): Use sane font size by default.
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_mm_width, Fx_display_mm_height)
(Fx_display_monitor_attributes_list): Rename to start with
`android-'.  Implement.  Fiddle with documentation to introduce
Android specific nuances.
(Fandroid_display_monitor_attributes_list): New function.
(Fx_frame_geometry, frame_geometry): New function.
(Fandroid_frame_geometry): Implement correctly.
(Fx_frame_list_z_order): Rename to start with `android-'.
(android_frame_list_z_order, Fandroid_frame_list_z_order):
Implement.
(Fx_frame_restack): Rename to start with `android-'.
(Fandroid_frame_restack): ``Implement''.
(Fx_mouse_absolute_pixel_position): Rename to start with
`android-'.
(Fandroid_mouse_absolute_pixel_position): ``Implement''.
(Fx_set_mouse_absolute_pixel_position): Rename to start with
`android-'.
(Fandroid_set_mouse_absolute_pixel_position): ``Implement''.
(Fandroid_detect_mouse): New function.
(android_set_menu_bar_lines): Use FRAME_ANDROID_DRAWABLE when
clearing area.
(android_set_no_focus_on_map, android_set_no_accept_focus): New
functions.
(android_frame_parm_handlers): Register new frame parameter
handlers.
(syms_of_androidfns): Update appropriately.

* src/androidfont.c (androidfont_draw): Use
FRAME_ANDROID_DRAWABLE instead of FRAME_ANDROID_WINDOW.

* src/androidgui.h (enum android_event_type): New events.
(struct android_touch_event, struct android_wheel_event)
(struct android_iconify_event): New structures.
(union android_event): Add new events.

* src/androidterm.c (android_clear_frame): Use
FRAME_ANDROID_DRAWABLE instead of FRAME_ANDROID_WINDOW.
(android_flash, android_ring_bell): Implement bell ringing.
(android_toggle_invisible_pointer): Don't TODO function that
can't be implemented.
(show_back_buffer, android_flush_dirty_back_buffer_on): Check if
a buffer flip is required before doing the flip.
(android_lower_frame, android_raise_frame): Implement functions.
(android_update_tools, android_find_tool): New functions.
(handle_one_android_event): Handle new iconification, wheel and
touch events.
(android_read_socket): Implement pending-autoraise-frames.
(android_frame_up_to_date): Implement bell ringing.
(android_buffer_flipping_unblocked_hook): Check if a buffer flip
is required before doing the flip.
(android_focus_frame, android_frame_highlight)
(android_frame_unhighlight): New function.
(android_frame_rehighlight): Implement functions.
(android_iconify_frame): Always display error.
(android_set_alpha): Update commentary.
(android_free_frame_resources): Free frame touch points.
(android_scroll_run, android_flip_and_flush)
(android_clear_rectangle, android_draw_fringe_bitmap)
(android_draw_glyph_string_background, android_fill_triangle)
(android_clear_point, android_draw_relief_rect)
(android_draw_box_rect, android_draw_glyph_string_bg_rect)
(android_draw_image_foreground, android_draw_stretch_glyph_string)
(android_draw_underwave, android_draw_glyph_string_foreground)
(android_draw_composite_glyph_string_foreground)
(android_draw_glyphless_glyph_string_foreground)
(android_draw_glyph_string, android_clear_frame_area)
(android_clear_under_internal_border, android_draw_hollow_cursor)
(android_draw_bar_cursor, android_draw_vertical_window_border)
(android_draw_window_divider): Use FRAME_ANDROID_DRAWABLE
instead of FRAME_ANDROID_WINDOW for drawing operations.

* src/androidterm.h (struct android_touch_point): New structure.
(struct android_output): New fields.
(FRAME_ANDROID_NEED_BUFFER_FLIP): New macro.

* src/dired.c (emacs_readdir, open_directory)
(directory_files_internal_unwind, read_dirent)
(directory_files_internal, file_name_completion): Add
indirection over readdir and opendir.  Use android variants on
Android.

* src/dispnew.c (Fopen_termscript):
* src/fileio.c (fclose_unwind): Use emacs_fclose.
(Faccess_file): Call android_file_access_p.
(file_accessible_directory_p): Append right suffix to Android
assets directory.
(do_auto_save_unwind): Use emacs_fclose.
* src/keyboard.c (lispy_function_keys): Use right function key
for page up and page down.
(Fopen_dribble_file): Use emacs_fclose.

* src/lisp.h: New prototype emacs_fclose.

* src/lread.c (close_infile_unwind): Use emacs_fclose.

* src/sfnt.c (sfnt_curve_is_flat): Fix area-squared computation.
(sfnt_prepare_raster): Compute raster width and height
consistently with outline building.
(sfnt_build_outline_edges): Use the same offsets used to set
offy and offx.
(main): Adjust debug code.

* src/sfntfont-android.c (sfntfont_android_saturate32): Delete
function.
(sfntfont_android_blend, sfntfont_android_blendrgb): Remove
unnecessary debug code.
(sfntfont_android_composite_bitmap): Prevent out of bounds
write.
(sfntfont_android_put_glyphs): Use FRAME_ANDROID_DRAWABLE.
(init_sfntfont_android): Initialize Monospace Serif font to
something sensible.
* src/sfntfont.c (sfntfont_text_extents): Clear glyph metrics
before summing up pcm.
(sfntfont_draw): Use s->font instead of s->face->font.

* src/sysdep.c (emacs_fclose): Wrap around android_fclose on
android.

* src/term.c (Fsuspend_tty):
(delete_tty): Use emacs_fclose.
* src/verbose.mk.in (AM_V_DX): Replace with D8 version.

2 years ago; Improve documentation of tree-sitter node comparison
Eli Zaretskii [Fri, 13 Jan 2023 07:13:24 +0000 (09:13 +0200)]
; Improve documentation of tree-sitter node comparison

* doc/lispref/parsing.texi (Accessing Node Information):
* src/treesit.c (Ftreesit_node_eq): Improve documentation of node
comparison.

2 years ago; Fix non-tree-sitter builds
Eli Zaretskii [Fri, 13 Jan 2023 06:58:03 +0000 (08:58 +0200)]
; Fix non-tree-sitter builds

* src/fns.c (internal_equal): Call treesit_node_eq only if
tree-sitter was compiled in.

2 years ago; Fix typo in ert-with-temp-file
Stefan Kangas [Fri, 13 Jan 2023 01:44:44 +0000 (02:44 +0100)]
; Fix typo in ert-with-temp-file

* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Fix typo.
Reported by F. Jason Park <jp@neverwas.me>.  (Bug#60730)

2 years agoEqual now recognizes tree-sitter nodes (bug#60659)
Yuan Fu [Fri, 13 Jan 2023 01:07:21 +0000 (17:07 -0800)]
Equal now recognizes tree-sitter nodes (bug#60659)

Now equal uses ts_node_eq to check equality between nodes.

* doc/lispref/parsing.texi:
(Accessing Node Information): Update manual.
* src/fns.c (internal_equal): Handle tree-sitter nodes.
* src/treesit.c (treesit_node_eq): New function.
(Ftreesit_node_eq): Factor out.  Update docstring.
* src/treesit.h (treesit_node_eq): Declare new function.

2 years agoFix c-ts-mode comment indentation (bug#60270)
Yuan Fu [Wed, 11 Jan 2023 09:26:21 +0000 (01:26 -0800)]
Fix c-ts-mode comment indentation (bug#60270)

* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move the
star rule up.

2 years agoRemove deprecated RLS server from eglot server list
Dimitri Belopopsky [Thu, 12 Jan 2023 21:16:01 +0000 (22:16 +0100)]
Remove deprecated RLS server from eglot server list

* lisp/progmodes/eglot.el (eglot-server-programs) Remove deprecated
RLS server from list since it is no longer maintained.  (Bug#60761)
Ref: https://github.com/rust-lang/rls

Copyright-paperwork-exempt: yes

2 years ago* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758).
Sean Whitton [Fri, 13 Jan 2023 00:09:01 +0000 (17:09 -0700)]
* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758).

2 years ago* lisp/simple.el (next-completion): Handle first completion specially.
Gregory Heytings [Thu, 12 Jan 2023 17:47:28 +0000 (19:47 +0200)]
* lisp/simple.el (next-completion): Handle first completion specially.

When completions-header-format is nil and completion-show-help is nil,
the first completion is at the beginning the buffer, so 'M-<down>'
missed it and moved to the second completion.  Handle this case by
setting/checking the special text-property 'first-completion' that
is nil at the first call (bug#60411).

2 years agoFix encoding with 'utf-8-auto'
Eli Zaretskii [Thu, 12 Jan 2023 14:36:35 +0000 (16:36 +0200)]
Fix encoding with 'utf-8-auto'

* src/coding.c (encode_coding_utf_8): Fix encoding with
'utf-8-auto': it should produce BOM, per the documentation of
the :bom attribute.  (Bug#60750)

* lisp/international/mule.el (define-coding-system): Doc fix.

* test/src/coding-tests.el (coding-tests): Use
'with-coding-priority' instead of 'prefer-coding-system', as the
latter has global persistent effect and affects further tests.

2 years agoReport cursor correctly on PGTK when there is a margin
Po Lu [Thu, 12 Jan 2023 10:36:14 +0000 (18:36 +0800)]
Report cursor correctly on PGTK when there is a margin

* src/pgtkterm.c (pgtk_draw_window_cursor): Adjust frame_x by
the margin width as well.

2 years agoMerge from origin/emacs-29
Stefan Kangas [Thu, 12 Jan 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

f4f30ff4c44 Update to Org 9.6.1
09f7a920644 Add support for annotation_type_declaration
4a8891a462e * etc/NEWS: Mention incompatible changes in 'outline-mino...
384504edf35 Ensure VC package names are not empty
70947da708c Handle missing package description when unpacking vc pack...

# Conflicts:
# etc/NEWS

2 years agoUpdate to Org 9.6.1
Kyle Meyer [Thu, 12 Jan 2023 02:15:37 +0000 (21:15 -0500)]
Update to Org 9.6.1

2 years agoAdd support for annotation_type_declaration
Theodor Thornhill [Wed, 11 Jan 2023 20:49:04 +0000 (21:49 +0100)]
Add support for annotation_type_declaration

* lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords): Add new
keyword.
(java-ts-mode--font-lock-settings): Add font-locking to the type
feature.

2 years ago* etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'.
Juri Linkov [Wed, 11 Jan 2023 19:37:33 +0000 (21:37 +0200)]
* etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'.

* lisp/outline.el (outline-minor-mode-cycle--bind):
Add docstring (bug#60426).
(outline-minor-mode-cycle--bind): Default 'map' to
'outline-minor-mode-cycle-map'.
(outline-minor-mode-cycle-map): Improve docstring.
(outline-minor-mode): Move margin-cycling keys to
'outline-minor-mode-cycle-map'.

2 years ago; Fix documentation of last change
Eli Zaretskii [Wed, 11 Jan 2023 17:15:30 +0000 (19:15 +0200)]
; Fix documentation of last change

* etc/NEWS:
* doc/emacs/programs.texi (Moving by Sentences): Minor wording fixes.

2 years agoAdd forward-sentence with tree sitter support (bug#60623)
Theodor Thornhill [Sun, 8 Jan 2023 19:28:02 +0000 (20:28 +0100)]
Add forward-sentence with tree sitter support (bug#60623)

* etc/NEWS: Mention the new changes.
* lisp/textmodes/paragraphs.el (forward-sentence-default-function):
Move old implementation to its own function.
(forward-sentence-function): New defvar defaulting to old behavior.
(forward-sentence): Use the variable in this function unconditionally.
* lisp/treesit.el (treesit-sentence-type-regexp): New defvar.
(treesit-forward-sentence): New defun.
(treesit-major-mode-setup): Conditionally set
forward-sentence-function.
* doc/emacs/programs.texi (Defuns): Add new subsection.
(Moving by Sentences): Add some documentation with xrefs to the elisp
manual and related nodes.
* doc/lispref/positions.texi (List Motion): Mention
treesit-sentence-type-regexp and describe how to enable this
functionality.

2 years agoEnsure VC package names are not empty
Philip Kaludercic [Wed, 11 Jan 2023 08:27:01 +0000 (09:27 +0100)]
Ensure VC package names are not empty

* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error
if the package name is empty.
(package-vc-install): Avoid generating an empty file name, if a URL
ends with a slash, and raise an error if the package name is empty.

2 years agoHandle missing package description when unpacking vc packages
Philip Kaludercic [Wed, 11 Jan 2023 08:21:57 +0000 (09:21 +0100)]
Handle missing package description when unpacking vc packages

* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Create a dummy
descriptor if PKG-DESC is nil.

2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Wed, 11 Jan 2023 08:07:32 +0000 (16:07 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoBring up the sfnt-android font driver
Po Lu [Wed, 11 Jan 2023 08:06:15 +0000 (16:06 +0800)]
Bring up the sfnt-android font driver

* configure.ac (ANDROID_CFLAGS): Add sfnt-related font objects
to ANDROID_OBJ when not building stubs.
* lisp/startup.el (android-fonts-enumerated): New variable.
(normal-top-level): Set it.  Also enumerate fonts as early as
possible upon startup.

* src/alloc.c (cleanup_vector): Only finalize Android font
entities.
(garbage_collect): Mark sfntfont.c.

* src/android.c (struct android_emacs_drawable): New field
`damage_rect'.
(android_init_emacs_drawable): Initialize
Lorg/gnu/emacs/EmacsDrawable;#damageRect(Landroid/graphics/rect;)V.
(android_create_gc): Initialize cached GC fields.
(android_free_gc): Free cached GC clip rectangles.
(android_change_gc): Cache fields as appropriate.
(android_set_clip_rectangles): Set cached clip rectangles for
easy access from C.
(android_get_gc_values): Use cached values.
(android_get_image): Remove obsolete comment.
(android_lock_bitmap, android_damage_window): New functions that
don't parallel anything on X.

* src/android.h: Update prototypes.

* src/androidfns.c (android_default_font_parameter): Set Droid
Sans Mono as the default monospace font.
(Fx_create_frame): Register the sfntfont driver.

* src/androidgui.h (struct android_gc): Add C side caches for
clip rectangles and the foreground and background colors.

* src/androidterm.h: Update prototypes.

* src/dispextern.h (struct gui_box): New struct.
(gui_union_rectangles): New function.

* src/emacs.c (android_emacs_init): Initialize Android font
stuff late.
* src/font.c (font_make_entity): Clear `is_android' field on
Android.
(font_make_entity_android): Set `is_android' field.
* src/font.h (struct font_entity): New field `is_android'.

* src/print.c (print_vectorlike): Don't print private data,
which could include Lisp_Misc.

* src/sfnt.c (sfnt_read_cmap_format_0, sfnt_read_cmap_format_2)
(sfnt_read_cmap_format_4, sfnt_read_cmap_format_6)
(sfnt_read_cmap_format_8, sfnt_read_cmap_format_12): Remove
buggy pragmas.
(sfnt_lookup_glyph_4_1): New function.
(sfnt_lookup_glyph_4): Handle malformed lookup tables found on
Android.
(sfnt_lookup_glyph): Fix overflow problems in glyph checks.
(sfnt_read_glyph): Handle empty glyphs.  This implements some
behavior which everyone else seems to as well, but I can't find
documented in the TrueType Reference Manual.
(sfnt_free_glyph): Export correctly.
(sfnt_transform_coordinates): Make faster.
(sfnt_lerp_half): Fix lerping in some cases.
(sfnt_decompose_glyph): Handle empty glyphs correctly.  Close
contours manually instead of waiting for the edge building
process to do that.  This lets curves be handled correctly.
(struct sfnt_build_glyph_outline_context): Move internal struct
back to sfnt.c.
(sfnt_build_append): Fix detection of initial entry.
(sfnt_curve_to_and_build_1): Fix De Casteljau implementation.
(sfnt_curve_to_and_build): Use fixed point arithmetic to scale
outlines.
(sfnt_build_glyph_outline): Clear reference counts.  Use fixed
point arithmetic.
(sfnt_prepare_raster): Align rasters to 4 bytes,
SFNT_POLY_ALIGNMENT.  Fix calculation of offx and offy.
(sfnt_step_edge_by): Step edge by previously computed step_x.
(sfnt_build_outline_edges): Adjust for already closed contours.
Ignore edges abandoned after grid fit.  Also precompute step_x
to avoid multiplication on each span rastered.
(sfnt_poly_edges): Improve alignment.
(sfnt_fill_span): Rewrite to avoid control flow in while loop.
(sfnt_poly_span): Remove unnecessary code.
(sfnt_raster_glyph_outline): Use raster stride instead of width.
(sfnt_test_edge, sfnt_test_raster, main): Improve debugging
code.

* src/sfnt.h (struct sfnt_glyph_outline): Add refcount field to
outline.
(struct sfnt_build_glyph_outline_context): Remove private
struct.
(struct sfnt_raster): Add refcount field to raster.
(struct sfnt_edge): Improve doc.  Add `source_x' field used when
built with TEST.
(SFNT_CEIL_FIXED): New macro.

* src/sfntfont-android.c (sfntfont_android_saturate32)
(sfntfont_android_scale32, sfntfont_android_mul8x2)
(sfntfont_android_blend, U255TO256)
(sfntfont_android_composite_bitmap, sfntfont_android_union_boxes)
(sfntfont_android_put_glyphs, sfntfont_android_get_cache): New
functions.
(android_sfntfont_driver): New font driver.
(Fandroid_enumerate_fonts): New function.
(syms_of_sfntfont_android_for_pdumper, init_sfntfont_android)
(syms_of_sfntfont_android): Initialize default fonts, special
family mapping and font driver.
* src/sfntfont.c (struct sfnt_font_desc): New fields
`char_cache', `cmap_invalid' and `subtable'.
(sfnt_setup_coding_system): Improve commentary.  Add default
branch.  Fix return value.
(sfnt_safe_encode_coding_object_1)
(sfnt_safe_encode_coding_object_2):
(sfnt_safe_encode_coding_object): Use decode_coding_object
instead of encode_coding_object.
(sfnt_decode_font_string): Adjust for rename.
(sfnt_decode_foundry_name): New function.
(sfnt_weight_descriptions, sfnt_slant_descriptions)
(sfnt_width_descriptions): Fix definitions.
(sfnt_parse_style): Make function work.
(sfnt_enum_font): Initialize designer, char-cache and subtable
platform ID.
(sfntfont_charset_for_name, mark_sfntfont)
(sfntfont_charset_for_cmap): New functions.
(syms_of_sfntfont): New variable `sfnt-default-family-alist'.

* src/sfntfont.h (_SFNTFONT_H_): Update prototypes.

* src/xdisp.c (gui_union_rectangles): New function.

2 years agoMerge from origin/emacs-29
Stefan Kangas [Wed, 11 Jan 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

1cbc22b9c7f CC Mode: partially revert commit from 2022-10-04
136c0272215 Fix reftex-citation docstring (bug#60710)
64fe6bdb618 Improve 'describe-char-fold-equivalences' docstring
fda1ad4a9ec Remove obsolete server buffers on MOTD in erc-track
bb98666d03f ; Fix wrong type in erc-ignore hide-list options
c267cd01517 ; Kill some stray buffers left behind by ERC tests
f31e65694ca Fix completion-auto-help docstring (bug#60709)

2 years agoCC Mode: partially revert commit from 2022-10-04
Alan Mackenzie [Tue, 10 Jan 2023 20:29:37 +0000 (20:29 +0000)]
CC Mode: partially revert commit from 2022-10-04

This reversion is of an ill-advised optimization, which resulted in non-type
identifiers getting fontified as types.

* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Rather than writing
the expected face directly to the text, instead remove the `fontified'
property.  This allows the full font-lock mechanism to fontify the buffer
correctly.

2 years agoFix reftex-citation docstring (bug#60710)
Manuel Uberti [Tue, 10 Jan 2023 14:51:46 +0000 (15:51 +0100)]
Fix reftex-citation docstring (bug#60710)

* lisp/textmodes/reftex-cite.el (reftex-citation): Fix spelling.

2 years agoImprove 'describe-char-fold-equivalences' docstring
Robert Pluim [Tue, 10 Jan 2023 14:22:34 +0000 (15:22 +0100)]
Improve 'describe-char-fold-equivalences' docstring

* lisp/char-fold.el (describe-char-fold-equivalences): Explain what
the output looks like.

2 years agoRemove obsolete server buffers on MOTD in erc-track
F. Jason Park [Wed, 4 Jan 2023 07:10:53 +0000 (23:10 -0800)]
Remove obsolete server buffers on MOTD in erc-track

* lisp/erc/erc-networks.el
(erc-networks--copy-server-buffer-functions): New internal hook
through which modules can perform housekeeping when server buffers
belonging to the same network context are merged.
(erc-networks--copy-over-server-buffer-contents): Run new internal
hook `erc-networks--copy-server-buffer-functions'.
* lisp/erc/erc-track.el (erc-track-enable, erc-track-disable): Manage
membership in `erc-networks--copy-server-buffer-functions' hook.
(erc-track--replace-killed-buffer): New function to replace server
buffer being killed in `erc-modified-channels-alist'.
* test/lisp/erc/erc-scenarios-base-association.el
(erc-scenarios-networks-merge-server-track): New test.
* test/lisp/erc/resources/networks/merge-server/track.eld: New test
data.  (Bug#60560.)

2 years ago; Fix wrong type in erc-ignore hide-list options
F. Jason Park [Tue, 3 Jan 2023 02:13:08 +0000 (18:13 -0800)]
; Fix wrong type in erc-ignore hide-list options

* lisp/erc/erc.el (erc-network-hide-list, erc-channel-hide-list):
Fix type in custom definition.

2 years ago; Kill some stray buffers left behind by ERC tests
F. Jason Park [Wed, 4 Jan 2023 07:10:53 +0000 (23:10 -0800)]
; Kill some stray buffers left behind by ERC tests

* test/lisp/erc/erc-services-tests.el
(erc--auth-source-search--plstore-standard,
erc--auth-source-search--plstore-announced,
erc--auth-source-search--plstore-overrides): Kill buffer renamed by
plstore.  In the future, try using the `:buffer' keyword introduced in
Emacs 29.
* test/lisp/erc/resources/erc-d/erc-d-t.el
(erc-d-t-kill-related-buffers): Don't forget about `erc-dcc-chat-mode'
buffers.

2 years agoFix completion-auto-help docstring (bug#60709)
Manuel Uberti [Tue, 10 Jan 2023 13:24:04 +0000 (14:24 +0100)]
Fix completion-auto-help docstring (bug#60709)

* lisp/minibuffer.el (completion-auto-help): Remove extra period.

2 years agoMerge from origin/emacs-29
Stefan Kangas [Tue, 10 Jan 2023 08:51:57 +0000 (09:51 +0100)]
Merge from origin/emacs-29

55aabfea4ac Fix c-ts-mode comment indent
8377ed5298f Highlight identifier in import statements in js-ts-mode
aa9df1260c3 Don't print named tree-sitter nodes with parenthesizes (b...
e385c099b8c Improve fontification for import-statements in typescript...
28dd6021384 Fix c-ts-mode indentation for 2nd line in block comment (...
8a36a0f44aa ; xref.el: Bump version
f16cc7c49c7 ; project.el: Bump version
ebc5263667b ; * src/callint.c (Finteractive): Doc string clarification.
c1401d1c6c8 * lisp/vc/diff-mode.el (diff-font-lock-keywords): Check f...
1f8ad353d9f Minor improvement for tree-sitter explorer
ef87c755660 Make sure NODE is not the root node in tree-sitter indent...
1238fa8e49b Fix label indent of GNU and Linux style in c-ts-mode (bug...
dc911e4ba5c Improve go-ts-mode Imenu, navigation and electric pair (b...
20f36c8f6f9 ; ruby.rb: Fix pattern matching syntax and extend the exa...
d46f7f4edcc Revert "Add c-or-c++-ts-mode (bug#59613)"
1469aac20d8 ; * src/pgtkfns.c (parse_resource_key): Use recursive sch...
da96a1fd741 Add back renamed function 'font-lock-fontify-syntacticall...
b1aa720671e ; * lisp/progmodes/ruby-ts-mode.el: Fix compilation warni...
5cb01ac5d78 ; * src/callint.c (Finteractive): Fix the doc string (bug...
53e64cfb852 Improve options and docs of M-x command completion
fef4f18cc33 ; Fix NEWS
e04b3d41bb4 Update to Org 9.6-90-ga6523f
e3d806b4172 Fix string fontification on python-ts-mode (bug#60599)
800e15e3be0 Fix string-interpolation feature of python-ts-mode (bug#6...
38b63f4c3ce Add indentation rule for concatenated_string (bug#60572)
2cdd75a18ff Fix highlighting of variable-declarations in typescript-t...
73168793c01 Fix label indentation for Linux style in c-ts-mode (bug#6...
8575043f56b Remove duplicate entries in c-ts-mode's Imenu
ef7f3c6388b Fix use of treesit-ready-p in c/c++-ts-mode
cc1de953d4f ; * lisp/progmodes/gud.el (gud-tooltip-modes): Add ts- mo...
16f1e47ca8b ; * lisp/align.el (align-c++-modes): Add c/c++-ts-mode.
508389ad2bb Add documentation for c/c++-ts-mode (bug#60443)
ee3e8d3f927 (ruby-ts--font-lock-settings): Improve highlighting in pa...
614f8c431d3 Optionally include the namespace in c-ts-mode--declarator...
7c356934fbb Support namespaces in c++-ts-mode (bug#60397)
757c2c25922 Fix c-ts-mode--looking-at-star
1df2826639c Add c-or-c++-ts-mode (bug#59613)
0cb686ffb6b Document the 'definition-name' property.
7f855b5297b ; Fix description of etc/DOC
e9341119fe4 ; Fix documentation of etc/DOC
86a3462e3d2 (treesit-simple-indent-presets): Do that for 'or' as well.
e0fef510b00 ; Minor rewording of tree-sitter terminology
f58452e3ae7 Fix 'python-shell-buffer-substring' when START is in midd...
7f9588685a0 ; Fix last change
e8b85f225d9 Rearrange the "Saving Emacs Sessions" section of the user...

# Conflicts:
# etc/NEWS
# lisp/progmodes/c-ts-mode.el

2 years agoFix c-ts-mode comment indent
Yuan Fu [Tue, 10 Jan 2023 05:46:07 +0000 (21:46 -0800)]
Fix c-ts-mode comment indent

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--comment-2nd-line-matcher): Also make sure PARENT is a
comment node.

2 years agoHighlight identifier in import statements in js-ts-mode
Yuan Fu [Tue, 10 Jan 2023 05:31:38 +0000 (21:31 -0800)]
Highlight identifier in import statements in js-ts-mode

Follow-up on bug#60689.  This commit just copied the change in
e385c099b8c to js-ts-mode.

* lisp/progmodes/js.el:
(js--treesit-font-lock-settings): Add import query.

2 years agoDon't print named tree-sitter nodes with parenthesizes (bug#60696)
Yuan Fu [Tue, 10 Jan 2023 04:15:12 +0000 (20:15 -0800)]
Don't print named tree-sitter nodes with parenthesizes (bug#60696)

* src/print.c (print_vectorlike): Use empty string as delimiters if
the node is named.

2 years agoImprove fontification for import-statements in typescript-ts-mode
Jostein Kjønigsen [Mon, 9 Jan 2023 10:17:53 +0000 (11:17 +0100)]
Improve fontification for import-statements in typescript-ts-mode

(bug#60689)

* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--font-lock-settings): Add rules to highlight the
actual imports in import-statements.

2 years agoFix c-ts-mode indentation for 2nd line in block comment (bug#60270)
Yuan Fu [Mon, 9 Jan 2023 09:44:44 +0000 (01:44 -0800)]
Fix c-ts-mode indentation for 2nd line in block comment (bug#60270)

If the first line is "/*" or "/*   ", indent like this:

/*
   aaa

If the first line is "/*   some text", indent like this:

/*   some text
     aaa

* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
(c-ts-mode--looking-at-star): Minor refactor.
(c-ts-mode--comment-2nd-line-matcher)
(c-ts-mode--comment-2nd-line-anchor): New functions.
* lisp/treesit.el (treesit-simple-indent-presets):
prev-adaptive-prefix doesn't handle the comment-start-skip case (i.e,
2nd line) anymore.  (Handled by the new matcher.)

2 years ago; xref.el: Bump version
Dmitry Gutov [Tue, 10 Jan 2023 00:02:09 +0000 (02:02 +0200)]
; xref.el: Bump version

2 years ago; project.el: Bump version
Dmitry Gutov [Tue, 10 Jan 2023 00:00:29 +0000 (02:00 +0200)]
; project.el: Bump version

2 years agoAdd named defun for transpose-sexps-default-function (bug#60654)
Theodor Thornhill [Mon, 9 Jan 2023 06:52:38 +0000 (07:52 +0100)]
Add named defun for transpose-sexps-default-function (bug#60654)

* lisp/simple.el (transpose-sexps-default-function): Move the lambda
into its own function.
(transpose-sexps-function): Refer to it by name.
* etc/NEWS: Mention the change.

2 years agoRemove unneeded restriction in using AEAD ciphers with GnuTLS
Eli Zaretskii [Mon, 9 Jan 2023 20:05:40 +0000 (22:05 +0200)]
Remove unneeded restriction in using AEAD ciphers with GnuTLS

* src/gnutls.c (gnutls_symmetric_aead): Disable the enforcement of
block size on input data.  (Bug#60693)

2 years ago; * src/callint.c (Finteractive): Doc string clarification.
Eli Zaretskii [Mon, 9 Jan 2023 12:03:04 +0000 (14:03 +0200)]
; * src/callint.c (Finteractive): Doc string clarification.