1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00
Commit graph

168828 commits

Author SHA1 Message Date
Po Lu
6ffb0a1719 Avert a crash in the Android last resort font driver
* java/org/gnu/emacs/EmacsFontDriver.java (FONT_INVALID_CODE):
New constant.
(hasChar, encodeChar): Accept a jint character code rather than
a jchar.

* java/org/gnu/emacs/EmacsSdk23FontDriver.java (hasChar)
(encodeChar): Return 0 or FONT_INVALID_CODE if the character is
not representable in a Java char.

* java/org/gnu/emacs/EmacsSdk7FontDriver.java (hasChar): Ditto.

* src/androidfont.c (android_init_font_driver): Adjust signature
to match.
2023-09-14 16:53:21 +08:00
Yuan Fu
f13b08be11
; * src/treesit.c (Ftreesit_parser_set_included_ranges): Minor fix. 2023-09-13 21:41:56 -07:00
Yuan Fu
de6a652a03
Refactor treesit-font-lock-fontify-region
* lisp/treesit.el (treesit-font-lock-fontify-region): Extract out
treesit--font-lock-fontify-region-1.
2023-09-13 21:04:18 -07:00
Yuan Fu
b1291a2f84
; * admin/notes/tree-sitter/performance (Facts): Fix filling. 2023-09-13 21:01:19 -07:00
Yuan Fu
63766b49e2
Fix treesit-font-lock-fontify-region wrt local parsers
* lisp/treesit.el (treesit--update-ranges-local): Minor change.
(treesit-font-lock-fontify-region): Don't try to fontify if node is
nil.  Don't use alist-get to get the root node for a language: there
might be multiple root nodes (from multiple local parsers) for the
same language.
(treesit-major-mode-setup): Remove existing local parsers when major
mode is activated.
2023-09-13 21:00:29 -07:00
Po Lu
921c0a16ce Improve the Android last resort font driver
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7Typeface):
Rename fileName to familyName and cease attempting to infer a
style from it.
(EmacsSdk7FontDriver): Employ preset typefaces rather than
enumerating each typeface within the system fonts directory.
(draw): Circumvent kerning difficulties by advancing past each
character individually.
2023-09-14 09:59:45 +08:00
Jim Porter
ef2bd5e487 Improve process instrumentation in Eshell
* lisp/eshell/esh-proc.el (eshell-insertion-filter): Add more logging,
and try to bulletproof the implementation.
(eshell-sentinel): Add more logging.
2023-09-13 18:19:18 -07:00
Yuan Fu
8facdb62d3
Improve docstring for treesit-language-at
* lisp/treesit.el (treesit-language-at-point-function)
(treesit-language-at): Several people has confused over this, make it
extra clear than treesit-language-at requires
treesit-language-at-point-function to work.
2023-09-13 18:15:28 -07:00
Yuan Fu
c916f471ca
Add tree-sitter performance note 2023-09-13 18:15:28 -07:00
Yuan Fu
ad624b961b
Update tree-sitter traversing functions' docstrings
* src/treesit.c (Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Update docstring.
2023-09-13 18:15:27 -07:00
F. Jason Park
d8c0bfb265 ; * test/lisp/erc/erc-stamp-tests.el (erc-echo-timestamp): Tag unstable. 2023-09-13 16:05:55 -07:00
Stephen Berman
9d9570bfbf Fix last Ibuffer change and improve feedback messages
* lisp/ibuf-macs.el (define-ibuffer-op): Emit grammatically
correct message on finishing operation, and don't operate when
there are no marked buffer lines and point is not on a buffer
line.  (bug#64230, Message #21)

* lisp/ibuffer.el (ibuffer-map-lines): Take acting on only one
buffer line and using non-nil 'ibuffer-expert' into account.
2023-09-13 23:43:54 +02:00
Jim Porter
9838f786de When waiting for processes in Eshell, wait until all the I/O is complete
This should fix bug#59103, bug#65590, and bug#65601.

* lisp/eshell/esh-proc.el (eshell-sentinel): Set ':eshell-handles' to
nil when finished with I/O.
(eshell-wait-for-process): Wait until ':eshell-handles' is nil.
2023-09-13 13:37:38 -07:00
Jim Porter
922d76e856 ; Fix an Eshell error when calling a lambda with form logging enabled
* lisp/eshell/esh-cmd.el (eshell-do-eval): Don't call 'symbol-name';
the function might be a closure.
2023-09-13 12:48:52 -07:00
Alan Third
4b44178e72 Fix build error on older macOS versions
* src/nsterm.m (ns_scroll_run): Use srcRect instead of destRect.
2023-09-13 20:27:49 +01:00
Jim Porter
0fe1cd4929 ; * lisp/eshell/esh-cmd.el (eshell-do-eval): Fix 'eshell-manipulate' call. 2023-09-13 11:31:36 -07:00
Stefan Kangas
32ded573cc ; Fix bootstrap
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't use void variable.
2023-09-13 18:22:51 +02:00
Mauro Aranda
012f9c2805 Fix defcustom :type in replace.el (Bug#65920)
* lisp/replace.el (list-matching-lines-face)
(list-matching-lines-buffer-name-face): Allow a nil value.
2023-09-13 18:01:41 +02:00
Damien Cassou
1f7113e689 Shorten docstrings generated by cl-defstruct
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Split the first line of
generated docstrings if either the struct name or a field name is very
long.  This reduces the likelihood of "docstring wider than 80
characters" errors.  (Bug#65790)
2023-09-13 16:34:45 +02:00
Damien Cassou
f045750fa5 Shorten docstrings generated by cl-defsubst
* lisp/emacs-lisp/cl-macs.el (cl-defsubst): Split the first line of
the docstring into 2 lines if the function name is very long.
Additionally, remove the word "inlining" in the generated docstring as
it is not very useful and increases the likelihood of "docstring wider
than 80 characters" errors.  (Bug#65790)
2023-09-13 16:34:45 +02:00
Damien Cassou
d436c559a4 bytecomp-tests.el: Add new helper function
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp--without-warning-test): Add helper function.
(bytecomp-warn--ignore): Use the helper.
2023-09-13 16:34:44 +02:00
Michael Albinus
2d703432a8 Fix problem with long file names in Tramp
* lisp/net/tramp-sh.el (tramp-ls-file-attributes): New defconst.
(tramp-do-file-attributes-with-ls): Use it.  (Bug#65324)
2023-09-13 16:21:13 +02:00
Po Lu
a6c29365a5 Reorganize Android permissions documentation
* doc/emacs/android.texi (Android Environment): Illustrate the
behavior of modern Android versions first.  Reported by Stefan
Kangas <stefankangas@gmail.com>.
2023-09-13 21:39:22 +08:00
Po Lu
3ef5f10b19 Exclude ``regular'' from font adstyle
* src/sfntfont.c (sfnt_parse_style): Disregard tokens matching
Regular entirely.
2023-09-13 13:42:29 +08:00
Po Lu
dfaaedfba8 Request additional permissions on Android
* doc/emacs/android.texi (Android Environment): List two
additional permissions within the summary of permissions granted
by default.

* java/AndroidManifest.xml.in: Request READ_CALENDAR and
WRITE_CALENDAR.
2023-09-13 09:30:14 +08:00
Po Lu
9500fbe231 Facilitate opening content:// files without a linked file name
* java/org/gnu/emacs/EmacsOpenActivity.java
(checkReadableOrCopy): If FILE is NULL, return a matching
content URI if possible, else generate a file name with the URI
as a reference.
(onCreate): Catch SecurityException around calls to
openFileDescriptor.
2023-09-13 09:30:14 +08:00
Jim Porter
f542a4537e ; Improve recent change to printing exit status in Eshell
* lisp/eshell/esh-proc.el (eshell-interactive-filter): Declare.
(eshell-interactive-process-filter): Simplify.
(eshell-sentinel): Call 'eshell-interactive-filter'.

* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/kill-process/redirect-message): Use
'eshell-with-temp-buffer'.
2023-09-12 18:13:52 -07:00
Yuan Fu
d1d311a3b2
Avoid unnecessary tree-sitter reparse when setting the same range
* src/treesit.h (Lisp_TS_Parser)
* src/treesit.c (make_treesit_parser): Remove has_range field, add
last_set_ranges field.
(Ftreesit_parser_set_included_ranges): Return early if the new range
is the same as the old one.
(Ftreesit_parser_included_ranges): Change has_range to
last_set_ranges.
2023-09-12 13:16:42 -07:00
Yuan Fu
b392d05089
Make sure undefined tree-sitter thing doesn't raise an error
A previous change should've achived this, but that wasn't enough.
This one actually achieves the intended effect, namely,
treesit-node-match-p doesn't raise an error if IGNORE-MISSING is
non-nil, and traverse functions don't raise error by default.

* src/treesit.c (treesit_traverse_validate_predicate): Remove
ignore_missing parameter, return error symbol.
(Ftreesit_node_match_p)
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Check returned error symbol.
(syms_of_treesit): New symbol.
2023-09-12 13:16:41 -07:00
Jim Porter
fad91b56d1 Ensure that Eshell doesn't consider a process complete until stderr is done
This will hopefully help resolve some timing issues with subprocesses
in Eshell.  There's now much less chance of output going missing when
using redirects.

* lisp/eshell/esh-proc.el (eshell-gather-process-output): Set
':eshell-stderr-live'...
(eshell-sentinel): ... use it.
2023-09-12 11:44:27 -07:00
Jim Porter
a0c8b45820 Be more careful about when to print abnormal exit status in Eshell
* lisp/eshell/esh-proc.el (eshell-sentinel): Only output abnormal
status when stderr is interactive.

* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/kill-process/redirect-message): New test.
2023-09-12 11:44:27 -07:00
Jim Porter
bffdb84cda Don't do anything in 'eshell-sentinel' if the process status is "run"
This doesn't change anything right now, but it will prevent future
issues when we add the ability to resume suspended processes in
Eshell.

* lisp/eshell/esh-proc.el (eshell-sentinel): Check for "run" status
earlier.
2023-09-12 11:44:27 -07:00
Stefan Monnier
1e1f3e30ef * src/alloc.c (garbage_collect): Run post-gc-hook later (bug#65700) 2023-09-12 14:06:54 -04:00
Stefan Monnier
ff87aecf85 Address "Useless clause following default cond clause" warnings
* lisp/gnus/message.el (message-position-point): Fix paren typo.

* lisp/org/org.el: Remove dead-code.
2023-09-12 12:59:03 -04:00
Stefan Monnier
68dd520e39 (read-char-from-minibuffer): Allow use of quoted-insert (bug#65805)
* lisp/subr.el (read-char-from-minibuffer-map): No need to remap
`self-insert-command` any more.
(read-char-from-minibuffer): Use `post-command-hook` to exit as soon as
a char is provided.
2023-09-12 12:55:54 -04:00
Alan Mackenzie
bfa958bb2c Correct the XEmacs version of c-put-char-properties
* lisp/progmodes/cc-defs.el (c-put-char-properties): Use the
put-text-property interface rather than make-extent for XEmacs
as well as Emacs.
2023-09-12 14:45:47 +00:00
Po Lu
2b6928edb9 Merge remote-tracking branch 'savannah/master' into master-android-1 2023-09-12 10:39:51 +08:00
Po Lu
c465740273 Extract font foundry metadata from the OS/2 table
* src/sfnt.c (sfnt_table_names): Append an entry for OS/2
tables.
(sfnt_read_OS_2_table): New function.
(main): Introduce a new test for the OS/2 table reader.

* src/sfnt.h (sfnt_read_OS_2_table): New declaration.

* src/sfntfont.c (sfnt_decode_foundry_name): Delete function.
(sfnt_enum_font_1): Read the font's OS/2 table and extract the
foundry name from there.  Use `misc' if absent.
(sfntfont_desc_to_entity, sfntfont_open): Cease interning
desc->designer, as that is now a symbol.
(syms_of_sfntfont) <Qmisc>: New defsym Qmisc.  (bug#65865)
2023-09-12 10:37:55 +08:00
Yuan Fu
b1c4089171
; * lisp/treesit.el (treesit-explore-mode): Support local parsers. 2023-09-11 18:08:08 -07:00
Łukasz Stelmach
e25ad6e2a3 Fix tracing for advanced scoring in gnus-logic.el
* lisp/gnus/gnus-logic.el (gnus-score-advanced): Move the tracing code
outside conditional so it's executed for both branches.  (Bug#59458)
2023-09-12 02:29:50 +02:00
Stefan Kangas
37c4f6103e Match recent version of GNU global in CEDET
* lisp/cedet/cedet-global.el (cedet-gnu-global-version-check):
Match recent version of GNU global.  (Bug#62581)
2023-09-12 01:51:36 +02:00
Alan Third
6acb3c5b05 Remove check for appdefined events on the queue (bug#65843)
It seems this was likely a bug in macOS 10.10.1. I have no way to find
out when it was fixed, but hopefully before 10.10.5, the most recent
release of that version.

* src/nsterm.m (ns_send_appdefined): Remove check for whether previous
appdefined events have been lost.
2023-09-11 17:22:01 +01:00
Alan Third
c19a2dff5a Fix crash on child frame creation (bug#65817)
* src/nsterm.m ([EmacsView initFrameFromEmacs:]): Reorder the way the
frame and layers are created.
([EmacsView makeBackingLayer]): Change to the newly renamed method
below.
([EmacsLayer initWithColorSpace:doubleBuffered:]):
([EmacsLayer initWithDoubleBuffered:]): Rename the method and remove
the colorspace argument as it's no longer able to be set on initial
creation.
* src/nsterm.h: Use new method prototype.
2023-09-11 17:22:01 +01:00
Alan Third
fa24bbb631 Simplify the EmacsLayer double buffering code (bug#63187) 2023-09-11 17:22:00 +01:00
Stephen Berman
ca95e45f7e Avoid confusing message in Ibuffer (bug#64230)
* lisp/ibuffer.el (ibuffer-map-lines): With `ibuffer-auto-mode'
enabled, Ibuffer counts the automatically popped up (and hence not
user-marked) buffer "*Ibuffer confirmation*".  Since Ibuffer
reports how many user-marked buffers were acted upon, and in this
case the reported count would be too high by one, decrement the
count to avoid the confusing message.
2023-09-11 16:15:29 +02:00
Gerd Möllmann
7a3e992ba5 Eglot support for objc-mode
* lisp/progmodes/eglot.el (eglot-server-programs): Add objc-mode to
the list containing c-mode.
2023-09-11 15:02:50 +02:00
Michael Albinus
6e93e76083 New command tramp-revert-buffer-with-sudo
* doc/misc/tramp.texi (Ad-hoc multi-hops):
Document tramp-file-name-with-method and tramp-revert-buffer-with-sudo.

* etc/NEWS: New command tramp-revert-buffer-with-sudo.

* lisp/net/tramp-cmds.el (dired-advertise, dired-unadvertise): Declare.
(tramp-dired-buffer-p, tramp-remote-process-p): Rename.
(tramp-file-name-with-method): New defcustom.
(tramp-file-name-with-sudo, tramp-revert-buffer-with-sudo): New defuns.
2023-09-11 13:51:58 +02:00
Po Lu
38e96bee1f Provide an option to disable font instruction code execution
* etc/PROBLEMS: Mention instruction code woes and illustrate how
to circumvent them.

* src/sfntfont.c (sfntfont_setup_interpreter): Respect
Vsfnt_uninstructable_family_regexp.
(syms_of_sfntfont) <Vsfnt_uninstructable_family_regexp>: New
option.
2023-09-11 19:45:58 +08:00
Po Lu
f6568dabf2 Expunge another instance of ``allows to''
* etc/NEWS (Tramp) <tramp-cleanup-some-buffers>: Reword and
rephrase to avoid ``allows to''.
2023-09-11 15:41:07 +08:00
Po Lu
f6d2ae766a Respect vertical centering preferences under Android
* src/sfntfont.c (sfntfont_open): Match XLFD name against
Vvertical_centering_font_regexp; if they agree, set
font->vertical_centering.  Also set a suitable full name.
2023-09-11 12:57:21 +08:00