Commit graph

48857 commits

Author SHA1 Message Date
Stefan Kangas
1e270e580d ; Grammar fixes ("allow to" et al)
Ref:
https://lists.gnu.org/r/emacs-devel/2016-01/msg01598.html
https://lists.gnu.org/r/emacs-devel/2016-01/msg01465.html
2023-09-17 16:49:21 +02:00
Po Lu
b2362cdced Speed up Android context menu generation
* src/androidmenu.c (android_menu_show, android_dialog_show):
Circumvent JNI dynamic method dispatch overhead.
2023-09-17 09:12:48 +08:00
Eli Zaretskii
2a8ad64ddd Revert "Don't use pointer arithmetic for untagging Lisp values"
This reverts commit 056c99a34c.
It broke compilation of 32-bit build --with-wide-int.
2023-09-16 20:03:59 +03:00
Eli Zaretskii
f24aeaf4ff Revert "* src/lisp.h (XUNTAG): Work on 32-bit --with-wide-int builds"
This reverts commit c0788f0c47.
Let's finish discussing this before rushing to push.
2023-09-16 20:03:30 +03:00
Mattias Engdegård
c0788f0c47 * src/lisp.h (XUNTAG): Work on 32-bit --with-wide-int builds
This eliminates a compiler warning for that configuration
(see bug#65491).
2023-09-16 18:37:17 +02:00
Mattias Engdegård
056c99a34c Don't use pointer arithmetic for untagging Lisp values
* src/lisp.h (XUNTAG):
Instead of casting a Lisp value to char * and subtracting the tag,
cast it to a suitable integral type and work on that.

This should result in identical or at least equivalent code, except
that it avoids potential problems arising from the restrictions on
pointer arithmetic in C.  In particular, a null pointer can be neither
an operand in nor the result of pointer arithmetic.

C compilers know this and would, prior to this change, optimise

  XUNTAG(obj, Lisp_Int0, mytype) != NULL

to 1.  This means, for example, that make_pointer_integer and
XFIXNUMPTR could not be entrusted with null pointers, and
next_vector in alloc.c was unsafe to use.
2023-09-16 16:32:05 +02:00
Mattias Engdegård
b1881d7dab More accurate static vector block size assertion
* src/alloc.c: The size of a vector block is bound by the number of
words, not bytes, represented by the pseudovector header RESTSIZE
field, because that limits how big a PVEC_FREE object can be.
2023-09-16 16:32:05 +02:00
Eli Zaretskii
302bc23f7c Merge from origin/emacs-29
755ae813a6 ; Declare some treesit.c functions in typescript-ts-mode.el.
89fa204b70 Fix loss of encrypted data in plstore.el
d9a1175a61 Close SQL database when corresponding 'sqlite-mode' buffe...
cbd8fac283 Fix Unicode normalization of characters
825be05b37 Support one-time passwords in Tramp
f880b94e64 Fix the 'C' and 'c' categories of characters
58fd212d8a Fix Emoji zooming commands
8970cdd009 ; Fix last change.
ba924be452 ; * etc/DEBUG: Improve the redisplay section.
e110312ad9 ; * doc/lispref/minibuf.texi (Text from Minibuffer): Ment...
65f4810003 tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve
6fe11b88ed Avoid using --display in emacsclient to reuse frames on PGTK
2fc7463c0e ; * INSTALL: Don't advertise -O3.  (Bug#65988)
29055412f2 ; Fix doc string of 'lsh'
738d854333 Support emacsclient on Windows with server on GNU or Unix...
f0a89fa1d0 ; * lisp/saveplace.el (save-place-ignore-files-regexp): F...
c9cb8ee0fc Fix defcustom in saveplace.el (Bug#65977)
5ec8be1d58 ; * lisp/subr.el (string-suffix-p, string-prefix-p): Doc ...
809305e6d8 Fix 'window-text-pixel-size' when there are several image...
ea14b0dcc2 : Doc fix.
01e8a0c6cb Doc fix for prettify-symbols-unprettify-at-point
0065621d0d (report_overlay_modification): Fix bug#65929
6cc6455e93 Fix SVG colors (bug#56182)
9396d73942 * doc/emacs/text.texi (Outline Minor Mode): Add a note ab...
a65d1a5a16 Improve documentation of 'list-abbrevs'
5dcc4b7eab Tweak s-p-f for js-ts-mode
1fb2fb501f typescript-ts-mode, tsx-ts-mode: Fix syntax properties fo...
946b395e7e * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug...
33ee3e588f Fix regression of treesit_cursor_helper_1
d11d81dfcc ; Fix doc typos (Bug#65868)
6554ec2246 Update docs for passing of Thien-Thi Nguyen
5ab2792d5c Update defvar usage tips example in manual
35d88c657e Document using Flymake together with Eglot
3f04efe9e7 ; * src/font.h (struct font): Comment about use of averag...
459b5f6b6d ; * admin/authors.el (authors-aliases): Update.
0c029ae8bc ; tweak etc/TODO item

# Conflicts:
#	admin/authors.el
#	lisp/subr.el
2023-09-16 07:36:49 -04:00
Andreas Schwab
d9efc9aa0f Update pdumper hashes
* src/pdumper.c (dump_vectorlike_generic, dump_vectorlike)
(dump_buffer): Update hash.
2023-09-16 09:18:25 +02:00
Po Lu
d55a106f0a ; * src/sfntfont.c (sfntfont_list_family): Remove unused variable. 2023-09-16 10:55:43 +08:00
Po Lu
ee4b6a4a2d Update Android port
* java/org/gnu/emacs/EmacsContextMenu.java (display): Return
false if the list of menu buttons is empty, lest Android cease
displaying menus on the assumption that Emacs is defective.

* java/org/gnu/emacs/EmacsView.java (popupMenu): Likewise.

* src/fns.c (sort_list): Render sentence motion commands
functional within commentary

* src/sfntfont.c (sfntfont_list_family): Sort and deduplicate
the returned family list and make it a list of symbols.
(syms_of_sfntfont) <Qstring_lessp>: New defsym.
2023-09-16 10:38:46 +08:00
Stefan Monnier
e7e925f062 (mutually_exclusive_p): Fix the regression from commit 6fad73d7cc
Commit 6fad73d7cc throws away some useful optimization because
it misfired in some cases (as seen in bug#657260).  Here we try to
recover those useful optimizations with a slightly more careful
algorithm.

* src/regex-emacs.c (mutually_exclusive_aux): Rename from
`mutually_exclusive_p`.  Add two new args.  Improve the
case where we need to recurse.
(mutually_exclusive_p): New function defined on top of it.

* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Re-enable the test.
2023-09-15 14:53:24 -04:00
Stefan Monnier
9610aaeb9e * src/regex-emacs.c (mutually_exclusive_p): Refactor
Minor refactoring to avoid swapping p1/p2.

* src/regex-emacs.c (mutually_exclusive_exactn)
(mutually_exclusive_charset): New functions, extracted from
`mutually_exclusive_p`.
(mutually_exclusive_p): Use them.
2023-09-15 14:16:48 -04:00
Eli Zaretskii
160b4c295d ; * src/process.c (child_signal_notify): Avoid compiler warning (bug#65919). 2023-09-15 09:05:14 +03:00
Po Lu
1442f4043a ; * src/xterm.c (handle_one_xevent): Cite the bug meant to be fixed. 2023-09-15 10:35:06 +08:00
Po Lu
e1a730017d Correct bug#65919
* src/process.c (child_signal_notify): Expunge call to
non-reentrant function from signal handler.

* src/xfns.c (setup_xi_event_mask): Cease selecting for
XI_FocusIn and XI_FocusOut under X toolkit builds.

* src/xterm.c (xi_handle_interaction, xi_handle_focus_change)
(xi_handle_focus_change): Make conditional on GTK 3 or no
toolkit builds.
(xi_handle_delete_frame, x_free_frame_resources): Adjust
correspondingly.
(handle_one_xevent) <EnterNotify, LeaveNotify>: Examine
EnterNotify and LeaveNotify events for focus changes
irrespective of whether XI2 is enabled under the X toolkit and
GTK 2.x.
2023-09-15 10:30:12 +08:00
Eli Zaretskii
809305e6d8 Fix 'window-text-pixel-size' when there are several images at START
* src/xdisp.c (window_text_pixel_size): Remove unnecessary call to
'move_it_to'.  (Bug#65899)  (Bug#54862)
2023-09-14 12:52:14 +03:00
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
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
Stefan Monnier
0065621d0d (report_overlay_modification): Fix bug#65929
Somehow the new overlay code in Emacs-29 changed slightly
the test to decide when to run the `modification-hooks` of overlays,
with the consequence that these hook functions end up being executed
also when text is deleted right after an empty overlay, which is
contrary to Emacs-28 behavior as well as contrary to the Texinfo doc.

* src/buffer.c (report_overlay_modification): Better reproduce the
Emacs-28 code.

* test/src/buffer-tests.el (overlay-modification-hooks):
Add corresponding test.
2023-09-13 18:49:55 -04: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
Alan Third
6cc6455e93 Fix SVG colors (bug#56182)
* src/image.c (svg_load_image): Reverse the R and B bytes in the
Windows colors before using them to generate the SVG.
2023-09-13 20:19:44 +01: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
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
Stefan Monnier
1e1f3e30ef * src/alloc.c (garbage_collect): Run post-gc-hook later (bug#65700) 2023-09-12 14:06:54 -04: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
33ee3e588f
Fix regression of treesit_cursor_helper_1
* src/treesit.c (treesit_cursor_helper_1)
(treesit_cursor_first_child_for_byte): Use
ts_tree_cursor_goto_first_child_for_byte first, and
ts_tree_cursor_goto_first_child second.
2023-09-11 12:50:31 -07: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
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
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
Eli Zaretskii
3f04efe9e7 ; * src/font.h (struct font): Comment about use of average_width. 2023-09-10 18:31:06 +03:00
Mattias Engdegård
90b8762ac8 Replace PVEC_FONT as pseudo-vector subtype upper bound
* src/lisp.h (enum pvec_type): Add PVEC_TAG_MAX.
* src/alloc.c (allocate_pseudovector): Use PVEC_TAG_MAX instead of
PVEC_FONT.
2023-09-10 14:00:19 +02:00
Mattias Engdegård
2f8204f5c3 ; Spruce up union vectorlike_header description
* src/lisp.h (union vectorlike_header): Rewrite the description of the
header word layout, with some useful added precision and the customary
ASCII art for bit fields.
2023-09-10 13:59:45 +02:00
Po Lu
df18864aa9 Update Android port
* src/sfntfont.c (sfntfont_probe_widths): Prevent widths of
glyphs representing control characters from affecting the
average width.
2023-09-10 13:48:39 +08:00
Po Lu
c0400151f8 Correct many instances of ``allows to''
Refer to:
lists.gnu.org/archive/html/emacs-devel/2016-01/msg01598.html

* doc/emacs/frames.texi (Tab Bars):

* doc/emacs/maintaining.texi (Tag Syntax):

* doc/lispref/compile.texi (Native Compilation):

* doc/lispref/control.texi (Destructuring with pcase Patterns):

* doc/lispref/display.texi (Overlay Properties, Glyphless Chars):

* doc/lispref/frames.texi (Size Parameters, Layout Parameters)
(Child Frames):

* doc/lispref/minibuf.texi (Minibuffer Windows):

* doc/lispref/processes.texi (Asynchronous Processes):

* doc/lispref/windows.texi (Precedence of Action Functions)
(Mouse Window Auto-selection):

* doc/misc/autotype.texi (Autoinserting):

* doc/misc/efaq.texi (New in Emacs 28):

* doc/misc/idlwave.texi (Examining Variables):

* doc/misc/ses.texi (Quick Tutorial, Standard formula functions):

* doc/misc/tramp.texi (External methods, FUSE-based methods):

* lisp/comint.el (comint-insert-previous-argument-from-end):

* lisp/emacs-lisp/rmc.el (read-multiple-choice):

* lisp/gnus/gnus-util.el:

* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):

* lisp/mouse.el (mouse-drag-track):

* lisp/net/tramp-sudoedit.el:

* lisp/obsolete/landmark.el:

* lisp/org/org.el (org-startup-truncated, org-file-apps):

* lisp/pixel-scroll.el (pixel-scroll-precision-mode):

* lisp/progmodes/cperl-mode.el (cperl-praise):

* lisp/simple.el (yank-from-kill-ring, kill-visual-line):

* lisp/window.el (delete-window-choose-selected):

* src/ChangeLog.11:

* src/xdisp.c (syms_of_xdisp):

* src/xterm.c (handle_one_xevent): The construct ``allows to
<infinitive>'' is not English inasmuch as no direct object to
``allows'' is provided.  Correct and rephrase each instance of such a
construct within our documentation and commentary.
2023-09-10 09:33:50 +08:00
Eli Zaretskii
9d27b95b26 Merge from origin/emacs-29
b8a8106fa1 ; Add missing space in the manual
5b906b6215 Fix defcustom :type of ielm-indirect-setup-hook
82af484ec1 ; Two updates of etc/TODO
0ab2823f51 ; Describe in PROBLEMS 2 problems with keyboard input
4e7112ab21 ; Fix inaccuracy in ELisp reference manual
34bbb6c8d2 Document NonGNU ELPA in FAQ
2af092741e Fix remote path setting in Eshell
4613575d97 ; * lisp/completion.el (dynamic-completion-mode): Fix las...
2f0f33fbf9 Update docs for (co-)maintainer changes
b068fcd4a3 * doc/lispref/strings.texi (Text Comparison): Fix typo (b...
2e2a5f8118 Adapt Tramp manual
d32f00a35b Improve docstring of message-sendmail-envelope-from
1a668cda8b Unbreak builds with CHECK_STRUCTS.
77b6e9bb17 Improve documentation of EPG
d3382f9471 ; * lisp/completion.el (dynamic-completion-mode): Doc fix.
1458daf316 Avoid crashes on macOS with context menus

# Conflicts:
#	src/pdumper.c
2023-09-09 04:33:47 -04:00
Eli Zaretskii
0273914921 Merge from origin/emacs-29
bc56da92d8 ; Fix error in 'tex-recenter-output-buffer'
d17c5adc05 Fix regexp for recognizing PBM images
9e9f61866e Improve wording in ELisp manual
7427efa033 Fix typo (Bug#65764)
59c6624408 ; * lisp/ido.el (ido-completion-buffer): Fix :type (bug#6...
4ec4b18c2a Fix libgccjit build on Haiku
80bdcf8f35 (regexp-tests-backtrack-optimization): Mark it as failing
8a9e653cc8 ; Add regression test for bug#65726
6fad73d7cc * src/regex-emacs.c (mutually_exclusive_p): Fix inf-loop ...
1d3d419607 ; * lisp/files.el (save-some-buffers-functions): Doc fix ...
42b14c6e5b Bump seq version to 2.24
ff5190a174 Add note on ELPA to admin/notes/bug-triage
f1e4cbe72a ; * etc/PROBLEMS: Minor wording fix.
fd5593c7f2 * etc/PROBLEMS: Mention bug#65432 and its remedy.
dd896ea1e6 Ignore errors when checking for object initializers (bug#...
3550f44c17 ; Fix typos
5b246b9b81 * CONTRIBUTE: Document making ChangeLogs with Magit.
0bd4661941 Doc fixes for obsolete functions and variables
524c0c34f2 ; * lisp/ffap.el (ffap-rfs-regexp): Fix :type (bug#65698).
f48dccc467 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
71a85e2266 A revision to the Widget manual
dbbcf4a659 Fix fontification of " in edit-kbd-macro

# Conflicts:
#	test/src/regex-emacs-tests.el
2023-09-09 04:32:45 -04:00
Po Lu
8b9d25b408 Update Android port
* src/android-asset.h (android_asset_read_internal): Return an
error indication if an exception arises while reading.
(AAsset_getBuffer): Free BUFFER using the C library free
function.
2023-09-09 15:50:06 +08:00
Po Lu
ec097d85ff Micro-optimize sfnt_interpret_trap
* src/sfnt.c (AVOID) [TEST]: Define to its standard value in
lisp.h.
(sfnt_interpret_trap): Label AVOID.
2023-09-09 10:00:17 +08:00
Po Lu
1d07bbe106 Fix typos
* src/android.c (android_set_task_name):

* src/sfnt.c (main): Test if fd < 0, not fd < 1.
2023-09-08 19:58:02 +08:00
Po Lu
46249f6139 Fix typos in last change
* src/font.c (font_dynamic_unparse_xlfd): Remove unused variable.
(Ffont_xlfd_name): Initialize name.
2023-09-08 11:01:30 +08:00
Po Lu
3fb671c88e ; * src/fontset.c: Remove extraneous portion of last change. 2023-09-08 10:37:53 +08:00
Po Lu
c933f5081f Permit XLFD names to exceed 255 characters
* doc/lispref/display.texi (Low-Level Font)
<font-xlfd-name>: Document new argument `long-xlfds'.

* etc/NEWS: Mention removal of XLFD length restrictions.

* src/font.c (font_build_object): Dynamically allocate XLFD,
permitting them to surpass 255 characters in length.
(font_parse_xlfd_1): Cease rejecting XLFDs more than 255
characters in length.
(font_dynamic_unparse_xlfd): New function.  Like
font_unparse_xlfd, but allocate the XLFD dynamically.
(font_delete_unmatched): Dynamically allocate XLFD if necessary.
(Ffont_xlfd_name): New arg LONG_XLFDs.  If t, return a
dynamically allocated XLFD.  All callers changed.

* src/font.h: Update prototypes.

* src/fontset.c (Fnew_fontset): Dynamically allocate XLFD when
establishing fontset name.
2023-09-08 10:37:18 +08:00
Yuan Fu
a9a096ff8b
Add Ftreesit_parser_tag
* lisp/treesit.el (treesit-parser-tag): Add.
* src/treesit.c (Ftreesit_parser_tag): Add.
2023-09-07 16:04:47 -07:00
Philipp Stephani
1a668cda8b Unbreak builds with CHECK_STRUCTS.
* src/pdumper.c (dump_buffer): Fix hash for 'struct buffer'.  The
recent changes to that structure where commits
8f3091defb and
0bd4661941, both of which just affected
comments.
2023-09-07 11:33:37 +02:00
Daniel Martín
1458daf316 Avoid crashes on macOS with context menus
* src/nsmenu.m ([EmacsMenu menuNeedsUpdate:]): Avoid crashes with
context menus.  (Bug#63495)
2023-09-07 08:21:38 +03:00