]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years ago* configure.ac (ANDROID_OBJS): Add sfntfont files.
Po Lu [Sun, 8 Jan 2023 07:43:34 +0000 (15:43 +0800)]
* configure.ac (ANDROID_OBJS): Add sfntfont files.

2 years agoCheck in new files
Po Lu [Sun, 8 Jan 2023 07:43:09 +0000 (15:43 +0800)]
Check in new files

* src/sfnt.h:
* src/sfntfont-android.c:
* src/sfntfont.c:
* src/sfntfont.h: New files.

2 years agoUpdate Android port
Po Lu [Sun, 8 Jan 2023 07:42:37 +0000 (15:42 +0800)]
Update Android port

Note that the port currently does not work as of this check-in.

* src/android.c (android_change_gc): Fix situations where clip
rects are cleared.
(android_create_pixmap_from_bitmap_data): Fix bitmap data
iteration.
* src/androidfns.c (Fx_show_tip, Fx_hide_tip): Remove annoying
errors.

* src/androidgui.h (enum android_event_type):
(struct android_crossing_event):
(struct android_motion_event):
(struct android_button_event):
(union android_event): New crossing, motion and button events.

* src/androidterm.c (android_note_mouse_movement)
(mouse_or_wdesc_frame, android_construct_mouse_click)
(handle_one_android_event, android_mouse_position)
(android_wait_for_event, android_set_window_size_1)
(android_bitmap_icon, android_free_frame_resources)
(syms_of_androidterm): New functions.  Handle crossing, motion
and button events.

* src/androidterm.h (struct android_display_info): New field
`last_mouse_movement_time'.
(struct android_output): Remove unused `need_buffer_flip' field.

* src/emacs.c (android_emacs_init): Initialize sfntfont.
* src/frame.c (syms_of_frame): Set frame_inhibit_implied_resize
to some reasonable value.
* src/frame.h (GCALIGNED_STRUCT): Set wait_event_type on
Android.

* src/sfnt.c (eassert):
(TEST_STATIC):
(available):
(enum sfnt_table):
(sfnt_table_names):
(SFNT_ENDOF):
(struct sfnt_table_directory):
(enum sfnt_scaler_type):
(sfnt_coerce_fixed):
(struct sfnt_hhea_table):
(struct sfnt_cmap_table):
(enum sfnt_platform_id):
(enum sfnt_unicode_platform_specific_id):
(enum sfnt_macintosh_platform_specific_id):
(enum sfnt_microsoft_platform_specific_id):
(struct sfnt_cmap_encoding_subtable):
(struct sfnt_cmap_encoding_subtable_data):
(struct sfnt_cmap_format_0):
(struct sfnt_cmap_format_2_subheader):
(struct sfnt_cmap_format_2):
(struct sfnt_cmap_format_4):
(struct sfnt_cmap_format_6):
(struct sfnt_cmap_format_8_or_12_group):
(struct sfnt_cmap_format_8):
(struct sfnt_cmap_format_12):
(struct sfnt_maxp_table):
(struct sfnt_loca_table_short):
(struct sfnt_loca_table_long):
(struct sfnt_glyf_table):
(struct sfnt_simple_glyph):
(struct sfnt_compound_glyph_component):
(struct sfnt_compound_glyph):
(struct sfnt_glyph):
(sfnt_read_table_directory):
(file):
(sfnt_read_cmap_table):
(sfnt_read_head_table):
(success):
(sfnt_read_hhea_table):
(sfnt_read_loca_table_short):
(sfnt_read_loca_table_long):
(sfnt_read_maxp_table):
(sfnt_read_glyf_table):
(sfnt_read_compound_glyph):
(sfnt_read_glyph):
(struct sfnt_point):
(sfnt_expand_compound_glyph_context):
(sfnt_decompose_compound_glyph):
(struct sfnt_glyph_outline):
(enum sfnt_glyph_outline_flags):
(struct sfnt_build_glyph_outline_context):
(sfnt_build_append):
(sfnt_build_glyph_outline):
(struct sfnt_raster):
(struct sfnt_edge):
(sfnt_prepare_raster):
(sfnt_build_outline_edges):
(sfnt_raster_glyph_outline): Move structures to sfnt.h.

(struct sfnt_long_hor_metric):
(struct sfnt_hmtx_table):
(struct sfnt_glyph_metrics):
(sfnt_read_hmtx_table):
(sfnt_lookup_glyph_metrics):
(sfnt_read_name_table):
(sfnt_find_name):
(sfnt_read_meta_table):
(sfnt_find_metadata):
(sfnt_test_edge_ignore): New functions.
(main): Add new tests.
* src/xdisp.c (redisplay_tool_bar):

2 years agoDelete unused files
Po Lu [Sun, 8 Jan 2023 07:39:28 +0000 (15:39 +0800)]
Delete unused files

* java/org/gnu/emacs/EmacsPaintQueue.java
* java/org/gnu/emacs/EmacsPaintReq.java: Remove files.

2 years agoUpdate Java part of Android port
Po Lu [Sun, 8 Jan 2023 07:39:02 +0000 (15:39 +0800)]
Update Java part of Android port

* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea, perform)
(paintTo):
* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
* java/org/gnu/emacs/EmacsDrawRectangle.java (EmacsDrawRectangle)
(paintTo):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
* java/org/gnu/emacs/EmacsFillRectangle.java
(EmacsFillRectangle):
* java/org/gnu/emacs/EmacsFontDriver.java (EmacsFontDriver):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
* java/org/gnu/emacs/EmacsSdk23FontDriver.java
(EmacsSdk23FontDriver):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java
(EmacsSdk7FontDriver, textExtents1, textExtents, draw):
* java/org/gnu/emacs/EmacsService.java (EmacsService, copyArea):
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
* java/org/gnu/emacs/EmacsView.java (EmacsView, onLayout)
(onFocusChanged):
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, run)
(resizeWindow, lockCanvas, getBitmap, onKeyDown, onKeyUp)
(onActivityDetached): Move rendering to main thread.  Make
drawing operations completely static.

2 years agoCheck in new file androidmenu.c
Po Lu [Sun, 8 Jan 2023 07:37:30 +0000 (15:37 +0800)]
Check in new file androidmenu.c

* src/androidmenu.c: New file.

2 years agoCheck in new file sfnt.c
Po Lu [Sat, 7 Jan 2023 12:27:30 +0000 (20:27 +0800)]
Check in new file sfnt.c

* src/sfnt.c (xmalloc, xrealloc, xfree, eassert, MIN)
(sfnt_table_names, SFNT_ENDOF, struct sfnt_table_directory)
(enum sfnt_scaler_type, sfnt_coerce_fixed, struct sfnt_hhea_table)
(struct sfnt_cmap_table, enum sfnt_platform_id)
(enum sfnt_unicode_platform_specific_id)
(enum sfnt_macintosh_platform_specific_id)
(enum sfnt_microsoft_platform_specific_id)
(struct sfnt_cmap_encoding_subtable)
(struct sfnt_cmap_encoding_subtable_data)
(struct sfnt_cmap_format_0, struct sfnt_cmap_format_2_subheader)
(struct sfnt_cmap_format_2, struct sfnt_cmap_format_4)
(struct sfnt_cmap_format_6, struct sfnt_cmap_format_8_or_12_group)
(struct sfnt_cmap_format_8, struct sfnt_cmap_format_12)
(struct sfnt_maxp_table, struct sfnt_loca_table_short)
(struct sfnt_loca_table_long, struct sfnt_glyf_table)
(struct sfnt_simple_glyph, struct sfnt_compound_glyph_component)
(struct sfnt_compound_glyph, struct sfnt_glyph, _sfnt_swap16)
(_sfnt_swap32, sfnt_swap16, sfnt_find_table)
(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)
(sfnt_read_cmap_table_1, sfnt_read_cmap_table, sfnt_lookup_glyph_0)
(sfnt_lookup_glyph_2, sfnt_bsearch_above, sfnt_compare_uint16)
(sfnt_lookup_glyph_4, sfnt_lookup_glyph_6, sfnt_lookup_glyph_8)
(sfnt_lookup_glyph_12, sfnt_lookup_glyph, sfnt_read_head_table)
(sfnt_read_hhea_table, sfnt_read_loca_table_short)
(sfnt_read_loca_table_long, sfnt_read_maxp_table)
(sfnt_read_glyf_table, sfnt_read_simple_glyph)
(sfnt_read_compound_glyph, sfnt_read_glyph, sfnt_free_glyph)
(struct sfnt_point, sfnt_transform_coordinates)
(struct sfnt_compound_glyph_context)
(sfnt_expand_compound_glyph_context, sfnt_round_fixed)
(sfnt_decompose_compound_glyph, sfnt_lerp_half)
(sfnt_decompose_glyph, struct sfnt_glyph_outline)
(enum sfnt_glyph_outline_flags)
(struct sfnt_build_glyph_outline_context, sfnt_build_append)
(sfnt_move_to_and_build, sfnt_line_to_and_build, sfnt_mul_fixed)
(sfnt_div_fixed, sfnt_ceil_fixed, sfnt_floor_fixed)
(sfnt_curve_is_flat, sfnt_curve_to_and_build_1)
(sfnt_curve_to_and_build, sfnt_build_glyph_outline)
(struct sfnt_raster, struct sfnt_edge, sfnt_poly_coverage)
(sfnt_poly_grid_ceil, sfnt_prepare_raster, sfnt_step_edge_by)
(sfnt_build_outline_edges, sfnt_compare_edges, sfnt_poly_edges)
(sfnt_saturate_short, sfnt_fill_span, sfnt_poly_span)
(sfnt_raster_span, sfnt_raster_edge, sfnt_raster_glyph_outline)
(struct sfnt_long_hor_metric, struct sfnt_hmtx_table)
(struct sfnt_glyph_metrics, sfnt_read_hmtx_table)
(sfnt_lookup_glyph_metrics, struct sfnt_test_dcontext)
(sfnt_test_move_to, sfnt_test_line_to, sfnt_test_curve_to)
(sfnt_test_get_glyph, sfnt_test_free_glyph, sfnt_test_span)
(sfnt_test_edge, sfnt_test_raster, main): Check in
5000-line-long file written by me for reading TrueType and
OpenType fonts with TrueType outlines.

2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 2 Jan 2023 13:38:37 +0000 (21:38 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoUpdate Android port
Po Lu [Mon, 2 Jan 2023 13:38:19 +0000 (21:38 +0800)]
Update Android port

* Makefile.in (java): Depend on info.
(MAKEFILE_NAME):
(config.status): Remove unneeded changes.
* configure.ac (BUILD_DETAILS, ANDROID_STUBIFY): Don't require a
C++ compiler on Android.
* java/AndroidManifest.xml: <EmacsActivity>: Set launchMode
appropriately.  <EmacsMultitaskActivity>: New activity.
* java/Makefile.in (CROSS_BINS): Add EmacsClient.
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
(onCreate): Use the window attachment manager.
* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea)
(paintTo): Implement clip masks correctly.
* java/org/gnu/emacs/EmacsDrawRectangle.java (getRect, paintTo):
Fix damage tracking rectangles.
* java/org/gnu/emacs/EmacsFontDriver.java (FontSpec, toString):
New function.
(FontMetrics, EmacsFontDriver): Fix signature of textExtents.
* java/org/gnu/emacs/EmacsMultitaskActivity.java
(EmacsMultitaskActivity): New file.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
functions sendFocusIn, sendFocusOut, sendWindowAction.
* java/org/gnu/emacs/EmacsPaintQueue.java (run): Fix clipping
handling.
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): Add
constructor for mutable pixmaps.
* java/org/gnu/emacs/EmacsSdk23FontDriver.java
(EmacsSdk23FontDriver): New file.
* java/org/gnu/emacs/EmacsSdk7FontDriver.java
(EmacsSdk7FontDriver, Sdk7Typeface, Sdk7FontEntity, Sdk7FontObject)
(checkMatch, hasChar, encodeChar): Implement text display and
fix font metrics semantics.

* java/org/gnu/emacs/EmacsService.java (EmacsService): Remove
availableChildren.
(getLibraryDirectory, onCreate): Pass pixel density to Emacs.
(clearArea): Fix arguments.  Switch to using the window
attachment manager.
* java/org/gnu/emacs/EmacsSurfaceView.java (surfaceChanged)
(surfaceCreated): Flip buffers on surface attachment.
* java/org/gnu/emacs/EmacsView.java (EmacsView, swapBuffers):
New argument FORCE.  Always swap if it is true.
(onKeyMultiple, onFocusChanged): New functions.

* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, destroyHandle)
(run): Switch to using the window attachment manager.
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(EmacsWindowAttachmentManager): New file.

* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-pressed):
* lisp/faces.el (tool-bar): Define faces correctly on Android.
* src/android.c (struct android_emacs_pixmap): Add mutable
constructor.
(struct android_emacs_drawable): New structure.
(android_write_event): Check if event queue hasn't yet been
initialized.
(android_select): Set errno to EINTR if pselect fails.
(android_close): Remove unused debugging code.
(android_get_home_directory): New function.
(Java_org_gnu_emacs_EmacsNative_setEmacsParams): Set pixel
density and compute game path.
(android_init_emacs_drawable): New function.
(Java_org_gnu_emacs_EmacsNative_sendKeyPress): New argument
`unicode_char'.  Pass it in events.
(Java_org_gnu_emacs_EmacsNative_sendKeyRelease): Likewise.
(Java_org_gnu_emacs_EmacsNative_sendFocusIn)
(Java_org_gnu_emacs_EmacsNative_sendFocusOut)
(Java_org_gnu_emacs_EmacsNative_sendWindowAction): New
functions.
(android_resolve_handle): Export function.
(android_change_gc): Clear clip rects under the right
circumstances.  Set right clip mask field.
(android_create_pixmap_from_bitmap_data): Use correct alpha
channels.
(android_create_pixmap): Create mutable pixmap and avoid
redundant color array allocation.
(android_create_bitmap_from_data, android_create_image)
(android_destroy_image, android_put_pixel, android_get_pixel)
(android_get_image, android_put_image, faccessat): New
functions.

* src/android.h: Update prototypes.

* src/androidfns.c (android_default_font_parameter): Prefer
monospace to Droid Sans Mono.
* src/androidfont.c (struct android_emacs_font_driver): New
method `draw'.
(struct android_emacs_font_spec): New field `dpi'.
(struct androidfont_info): Add font metrics cache.
(android_init_font_driver, android_init_font_spec): Adjust
accordingly.
(androidfont_from_lisp, androidfont_from_java): Handle new
fields.
(androidfont_draw): Implement function.
(androidfont_open_font): Set pixel size correctly.
(androidfont_close_font): Free metrics cache.
(androidfont_cache_text_extents)
(androidfont_check_cached_extents): New functions.
(androidfont_text_extents): Cache glyph metrics somewhere for
future use.
(androidfont_list_family): Implement function.

* src/androidgui.h (enum android_event_type): New focus and
window action events.
(enum android_modifier_mask): New masks.
(struct android_key_event): New field `unicode_char'.
(ANDROID_IS_MODIFIER_KEY): Newmacro.
(struct android_focus_event, struct
android_window_action_event): New structs.
(union android_event): Add new fields.
(enum android_image_format, struct android_image): New enums and
structs.

* src/androidterm.c (android_android_to_emacs_modifiers)
(android_emacs_to_android_modifiers, android_lower_frame)
(android_raise_frame, android_new_focus_frame)
(android_focus_changed, android_detect_focus_change): New
functions.
(handle_one_android_event): Implement focus and key event
handling.
(android_frame_rehighlight): New function.
(android_frame_raise_lower): Implement accordingly.
(android_make_frame_invisible): Clear highlight_frame if
required.
(android_free_frame_resources): Clear x_focus_event_frame if
required.
(android_draw_fringe_bitmap, android_draw_image_foreground)
(android_draw_image_foreground_1)
(android_draw_image_glyph_string): Remove unnecessary code.
(android_create_terminal, android_term_init): Set the baud rate
to something sensible.
* src/androidterm.h (struct android_bitmap_record): Make
structure the same as on X.
(struct android_display_info): New focus tracking fields.
(struct android_output): Likewise.
* src/dispextern.h (struct image): Add ximg and mask_img on
Android.

* src/emacs.c (android_emacs_init): Fix argc sorting iteration.

* src/fileio.c (user_homedir):
(get_homedir): Implement correctly on Android.

* src/font.h (PT_PER_INCH): Define correctly on Android.

* src/fringe.c (X, swap_nibble, init_fringe_bitmap): Swap fringe
bitmaps correctly on Android.

* src/image.c (GET_PIXEL, image_create_bitmap_from_data)
(image_create_bitmap_from_file, free_bitmap_record)
(image_unget_x_image_or_dc, struct image_type)
(prepare_image_for_display, image_clear_image_1)
(image_size_in_bytes, x_check_image_size)
(x_create_x_image_and_pixmap, x_destroy_x_image)
(image_check_image_size, image_create_x_image_and_pixmap_1)
(image_destroy_x_image, gui_put_x_image, image_put_x_image)
(image_get_x_image, image_unget_x_image)
(Create_Pixmap_From_Bitmap_Data, image_pixmap_draw_cross)
(MaskForeground, image_types, syms_of_image): Implement all of
the above on Android in terms of an API very similar to X.

* src/keyboard.c (FUNCTION_KEY_OFFSET, lispy_function_keys):
Define on Android to something sensible.

* src/lread.c (build_load_history): Fix problem.

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

4520f09dd8b ; * admin/git-bisect-start: Update failing commits
2569ede9c49 Update to Org 9.6-81-g563a43
d9ed736f0a7 ruby-ts-mode: Remove some currently unused functions
45618447203 ruby-ts-mode: Highlight singleton method definitions and ...
0562006da3b Add ruby-ts-mode
84e7c2fbc85 Fix fontification of C++ reference return types (bug#60441)
1864b65af60 ; Minor fix for treesit--install-language-grammar-1 (bug#...
8994f87ad40 Adjust function-call fontification in csharp-ts-mode (bug...
411647a3f65 ; Fix NEWS.
7b0b17df67e Rewrite Antinews in ELisp manual for Emacs 29
f12f72b0e09 ; * lisp/simple.el (primitive-undo): Clarify error messag...
7fd822e7f52 Update Antinews in the user manual for Emacs 29
da77d70deeb ; * test/lisp/emacs-lisp/copyright-tests.el: Fix and futu...
2baf9e107c1 Fix shortdoc-tests failure with respect to regexp-opt-cha...
5aeb8de32ee ; Fix copyright years in 2 more files.

# Conflicts:
# etc/NEWS

2 years ago; * admin/git-bisect-start: Update failing commits
Gregory Heytings [Mon, 2 Jan 2023 09:58:23 +0000 (09:58 +0000)]
; * admin/git-bisect-start: Update failing commits

2 years agoUpdate to Org 9.6-81-g563a43
Kyle Meyer [Mon, 2 Jan 2023 03:24:28 +0000 (22:24 -0500)]
Update to Org 9.6-81-g563a43

2 years agoruby-ts-mode: Remove some currently unused functions
Dmitry Gutov [Mon, 2 Jan 2023 01:51:11 +0000 (03:51 +0200)]
ruby-ts-mode: Remove some currently unused functions

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--grand-parent-is)
(ruby-ts--ancestor-start, ruby-ts--ancestor-is):
Remove some currently unused functions.

2 years agoruby-ts-mode: Highlight singleton method definitions and setters
Dmitry Gutov [Mon, 2 Jan 2023 01:29:15 +0000 (03:29 +0200)]
ruby-ts-mode: Highlight singleton method definitions and setters

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Highlight singleton method definitions and setters.

2 years agoAdd ruby-ts-mode
Perry Smith [Mon, 2 Jan 2023 00:57:38 +0000 (02:57 +0200)]
Add ruby-ts-mode

* etc/NEWS: Mention the new mode.

* lisp/progmodes/ruby-ts-mode.el: New file.

* test/lisp/progmodes/ruby-ts-mode-tests.el: New file.

* lisp/progmodes/eglot.el (eglot-server-programs):
Add ruby-ts-mode to the Ruby entry.

Co-authored-by: Dmitry Gutov <dgutov@yandex.ru>
2 years agoFix fontification of C++ reference return types (bug#60441)
Daniel Martín [Sat, 31 Dec 2022 00:45:27 +0000 (01:45 +0100)]
Fix fontification of C++ reference return types (bug#60441)

* lisp/progmodes/c-ts-mode.el (c-ts-fontify-error): Treat
reference_declarator nodes the same as pointer_declarator nodes when
calculating the identifier to fontify.

2 years ago; Minor fix for treesit--install-language-grammar-1 (bug#60465)
Yuan Fu [Mon, 2 Jan 2023 00:15:02 +0000 (16:15 -0800)]
; Minor fix for treesit--install-language-grammar-1 (bug#60465)

* lisp/treesit.el (treesit--install-language-grammar-1): Fix.

2 years agoFix build with older versions of gnutls
Andreas Schwab [Sun, 1 Jan 2023 23:31:00 +0000 (00:31 +0100)]
Fix build with older versions of gnutls

* src/gnutls.c (key_file2_aux): Use GNUTLS_PKCS_* constants only
if defined.

2 years agoAdjust function-call fontification in csharp-ts-mode (bug#60376)
Jostein Kjønigsen [Sun, 1 Jan 2023 16:27:06 +0000 (17:27 +0100)]
Adjust function-call fontification in csharp-ts-mode (bug#60376)

- Ensure method-invocations are highlighted only on level 4.
- Ensure consistent fontification of variable declarations
  (don't highlight usage of all variables).
- Fix issues with highlighting types in new() expressions.
- Fix issues with generic types in variable-declarations not using "var".
- Use fewer, more general queries for function-invocations. simplify code.

* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Change rules.
(csharp-ts-mode): Update feature list.

2 years ago; Fix NEWS.
Eli Zaretskii [Sun, 1 Jan 2023 17:38:24 +0000 (19:38 +0200)]
; Fix NEWS.

2 years agoRewrite Antinews in ELisp manual for Emacs 29
Eli Zaretskii [Sun, 1 Jan 2023 17:37:22 +0000 (19:37 +0200)]
Rewrite Antinews in ELisp manual for Emacs 29

* doc/lispref/anti.texi (Antinews): Rewrite for Emacs 29.
* doc/lispref/elisp.texi (Top): Update the top-level menu for
Antinews.

2 years ago; * lisp/simple.el (primitive-undo): Clarify error message (bug#60467)
Eli Zaretskii [Sun, 1 Jan 2023 15:49:10 +0000 (17:49 +0200)]
; * lisp/simple.el (primitive-undo): Clarify error message (bug#60467)

2 years agoUpdate Antinews in the user manual for Emacs 29
Eli Zaretskii [Sun, 1 Jan 2023 15:38:23 +0000 (17:38 +0200)]
Update Antinews in the user manual for Emacs 29

* doc/emacs/anti.texi (Antinews): Rewrite for Emacs 29.
* doc/emacs/emacs.texi (Top): Adjust the top-level menu.

2 years ago; * test/lisp/emacs-lisp/copyright-tests.el: Fix and future-safe.
Mattias Engdegård [Sun, 1 Jan 2023 12:18:50 +0000 (13:18 +0100)]
; * test/lisp/emacs-lisp/copyright-tests.el: Fix and future-safe.

2 years agoUpdate Modus themes to version 4 and add new themes
Protesilaos Stavrou [Sun, 1 Jan 2023 12:14:09 +0000 (14:14 +0200)]
Update Modus themes to version 4 and add new themes

* etc/NEWS: Document the addition of four new Modus themes.

* doc/misc/modus-themes.org: Update the manual.

* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el: Add theme files.

* etc/themes/modus-themes.el: Update main file to the latest version.

Detailed release notes here:
<https://protesilaos.com/codelog/2023-01-01-modus-themes-4-0-0/>.

The inclusion of the four new Modus themes was discussed on
emacs-devel:
<https://lists.gnu.org/archive/html/emacs-devel/2022-12/msg00834.html>.

2 years agoFix shortdoc-tests failure with respect to regexp-opt-charset
Mattias Engdegård [Sun, 1 Jan 2023 11:52:47 +0000 (12:52 +0100)]
Fix shortdoc-tests failure with respect to regexp-opt-charset

* test/lisp/emacs-lisp/shortdoc-tests.el (regexp-opt): Require.
`regexp-opt-charset` is not autoloaded, and whether `regexp-opt` is
preloaded is configuration-dependent.

2 years ago; Fix copyright years in 2 more files.
Eli Zaretskii [Sun, 1 Jan 2023 11:08:15 +0000 (13:08 +0200)]
; Fix copyright years in 2 more files.

2 years agoImprove Haiku font size fallback
Po Lu [Sun, 1 Jan 2023 11:01:53 +0000 (11:01 +0000)]
Improve Haiku font size fallback

* src/haikufont.c (haikufont_open): If pixel_size is zero, don't
use a font parameter that doesn't exist.

2 years agoFix copyright years of NEWS.29.
Eli Zaretskii [Sun, 1 Jan 2023 10:51:16 +0000 (05:51 -0500)]
Fix copyright years of NEWS.29.

2 years agoMerge from origin/emacs-29
Eli Zaretskii [Sun, 1 Jan 2023 10:47:47 +0000 (05:47 -0500)]
Merge from origin/emacs-29

cae528457c ; Add 2023 to copyright years.
b394359261 Improve documentation of 'isearch-open-overlay-temporary'
ab3210e709 Document 'use-package' in the 2 main manuals

# Conflicts:
# etc/refcards/ru-refcard.tex
# lib/explicit_bzero.c
# m4/explicit_bzero.m4

2 years ago; Merge from origin/emacs-29
Eli Zaretskii [Sun, 1 Jan 2023 10:46:25 +0000 (05:46 -0500)]
; Merge from origin/emacs-29

The following commit was skipped:

f0e9775b18 ; Auto-commit of loaddefs files.

2 years agoMerge from origin/emacs-29
Eli Zaretskii [Sun, 1 Jan 2023 10:46:24 +0000 (05:46 -0500)]
Merge from origin/emacs-29

72a81e2022 ; * lisp/treesit.el (treesit-simple-indent-presets): Fix t...
ddfeee3e8a Build recipe interactively in treesit-install-language-gra...
6837469780 ; Add REVISION to treesit-language-source-alist
0dc788aa01 ; Remove GRAMMAR-DIR from treesit-language-source-alist
f9aef67c36 Tweak csharp-mode font-lock-settings (bug#60376)
46362c0a3a ; * doc/lispref/tips.texi (Documentation Tips): Add indexing.
9a386b682e Revert a recent change which causes errors
9871ee8b14 ; More fixes for documentation of 'defalias'
f309651b67 ; Fix handling of 'not' by 'buffer-match-p'
9292f595a7 ; Fix typos
43c7e05a2a Fix misspelled functions in shortdoc groups
01acecc79c Simplify introduction of use-package manual
2a7e072e53 ; Fix documentation of 'defalias'
eee2aeca25 Fix python-shell-buffer-substring when retrieving a single...
bfdad6c4e5 ; Fix recent treesit-related changes

2 years ago; Add 2023 to copyright years.
Eli Zaretskii [Sun, 1 Jan 2023 10:31:12 +0000 (05:31 -0500)]
; Add 2023 to copyright years.

2 years agoImprove documentation of 'isearch-open-overlay-temporary'
Eli Zaretskii [Sun, 1 Jan 2023 09:04:22 +0000 (11:04 +0200)]
Improve documentation of 'isearch-open-overlay-temporary'

* lisp/isearch.el (isearch-open-overlay-temporary): Document that
the overlay passed to the 'isearch-open-invisible-temporary'
function cannot be deleted too early.  (Bug#60399)

2 years agoDocument 'use-package' in the 2 main manuals
Eli Zaretskii [Sun, 1 Jan 2023 08:38:11 +0000 (10:38 +0200)]
Document 'use-package' in the 2 main manuals

* doc/emacs/custom.texi (Init Examples):
* doc/lispref/loading.texi (Named Features): Document 'use-package'
and its most important features.

2 years agovc-git-dir-extra-headers: Improve detection of rebases
Sean Whitton [Sun, 1 Jan 2023 05:55:42 +0000 (22:55 -0700)]
vc-git-dir-extra-headers: Improve detection of rebases

* lisp/vc/vc-git.el (vc-git--cmds-in-progress): New function.
(vc-git-dir-extra-headers): Use it.

2 years agovc-git: Don't assume .git is a directory
Sean Whitton [Sun, 1 Jan 2023 05:45:10 +0000 (22:45 -0700)]
vc-git: Don't assume .git is a directory

* lisp/vc/vc-git.el (vc-git--git-path): New function.
(vc-git-dir-extra-headers)
(vc-git-merge-branch)
(vc-git-resolve-when-done): Use it.

2 years agoUpdate publicsuffix.txt from upstream
Stefan Kangas [Sun, 1 Jan 2023 05:01:59 +0000 (06:01 +0100)]
Update publicsuffix.txt from upstream

* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-12-19 14:09:50 UTC.

2 years ago; Auto-commit of loaddefs files.
Stefan Kangas [Sun, 1 Jan 2023 04:08:28 +0000 (05:08 +0100)]
; Auto-commit of loaddefs files.

2 years ago; Auto-commit of loaddefs files.
Stefan Kangas [Sun, 1 Jan 2023 04:08:26 +0000 (05:08 +0100)]
; Auto-commit of loaddefs files.

2 years ago; * lisp/treesit.el (treesit-simple-indent-presets): Fix typo.
Yuan Fu [Sun, 1 Jan 2023 01:10:50 +0000 (17:10 -0800)]
; * lisp/treesit.el (treesit-simple-indent-presets): Fix typo.

Well it's sort of a typo :-)

2 years agoBuild recipe interactively in treesit-install-language-grammar
Yuan Fu [Sat, 31 Dec 2022 23:13:50 +0000 (15:13 -0800)]
Build recipe interactively in treesit-install-language-grammar

If there is not existing recipe for a language, prompt to build the
recipe interactively.

* lisp/treesit.el (treesit--install-language-grammar-build-recipe):
New functions.
(treesit-install-language-grammar): Use the new function.

2 years ago; Add REVISION to treesit-language-source-alist
Yuan Fu [Sat, 31 Dec 2022 22:55:10 +0000 (14:55 -0800)]
; Add REVISION to treesit-language-source-alist

This allows users to install a particular version or branch.  Prompted
by bug#60427 and bug#60223.

* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Add REVISION.

2 years ago; Remove GRAMMAR-DIR from treesit-language-source-alist
Yuan Fu [Sat, 31 Dec 2022 22:27:51 +0000 (14:27 -0800)]
; Remove GRAMMAR-DIR from treesit-language-source-alist

Removing it doesn't affect building all the language grammars in
batch.sh, so it must be an artifact I added for something else and
later forgot to remove.

* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Remove GRAMMAR-DIR.

2 years agoTweak csharp-mode font-lock-settings (bug#60376)
Theodor Thornhill [Fri, 30 Dec 2022 19:26:09 +0000 (20:26 +0100)]
Tweak csharp-mode font-lock-settings (bug#60376)

* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Rearrange features.
(csharp-ts-mode): Rearrange features.

2 years ago; * doc/lispref/tips.texi (Documentation Tips): Add indexing.
Eli Zaretskii [Sat, 31 Dec 2022 16:47:51 +0000 (18:47 +0200)]
; * doc/lispref/tips.texi (Documentation Tips): Add indexing.

2 years agoRevert a recent change which causes errors
Eli Zaretskii [Sat, 31 Dec 2022 16:32:54 +0000 (18:32 +0200)]
Revert a recent change which causes errors

* lisp/subr.el (buffer-match-p): Undo last change, as it causes an
error in a timer function of show-paren-mode.

2 years ago; More fixes for documentation of 'defalias'
Eli Zaretskii [Sat, 31 Dec 2022 15:01:22 +0000 (17:01 +0200)]
; More fixes for documentation of 'defalias'

* doc/lispref/functions.texi (Defining Functions): Document
other possible values of DEFINITION in a defalias.
(Bug#60432)

2 years ago; Fix handling of 'not' by 'buffer-match-p'
Philip Kaludercic [Sat, 31 Dec 2022 14:04:18 +0000 (15:04 +0100)]
; Fix handling of 'not' by 'buffer-match-p'

* lisp/subr.el (buffer-match-p): Look up the cadr instead of the cdr
for the negation in 'not'.
* doc/lispref/buffers.texi (Buffer List): Update documentation.
(Bug#58951)

2 years ago; Fix typos
Stefan Kangas [Mon, 26 Dec 2022 09:43:57 +0000 (10:43 +0100)]
; Fix typos

2 years agoFix misspelled functions in shortdoc groups
Stefan Kangas [Sat, 31 Dec 2022 11:31:13 +0000 (12:31 +0100)]
Fix misspelled functions in shortdoc groups

* lisp/emacs-lisp/shortdoc.el (file, list): Fix misspelled function
names: 'file-writable-p' and 'seq-reduce'.
* test/lisp/emacs-lisp/shortdoc-tests.el (subr-x): Require.
(shortdoc-all-functions-fboundp): New test.

2 years agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 31 Dec 2022 10:05:12 +0000 (18:05 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

2 years agoBring up the Android operating system and its window system
Po Lu [Sat, 31 Dec 2022 10:04:18 +0000 (18:04 +0800)]
Bring up the Android operating system and its window system

* .dir-locals.el (c-mode): Add ANDROID_EXPORT noise macro.
* .gitignore: Add new files to ignore.
* Makefile.in: Adjust for Android.
* admin/merge-gnulib: Add new warning.
* configure.ac: Detect Android.  Run cross-configuration for
Android when appropriate.

* etc/DEBUG: Document how to debug Emacs on Android.

* java/AndroidManifest.xml:
* java/Makefile.in:
* java/README:
* java/debug.sh:
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication):
* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea):
* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
* java/org/gnu/emacs/EmacsDrawRectangle.java
(EmacsDrawRectangle):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
* java/org/gnu/emacs/EmacsFillRectangle.java
(EmacsFillRectangle):
* java/org/gnu/emacs/EmacsFontDriver.java (EmacsFontDriver):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsHandleObject.java (EmacsHandleObject):
* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
* java/org/gnu/emacs/EmacsPaintQueue.java (EmacsPaintQueue):
* java/org/gnu/emacs/EmacsPaintReq.java (EmacsPaintReq):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java
(EmacsSdk7FontDriver):
* java/org/gnu/emacs/EmacsService.java (class Holder<T>)
(EmacsService):
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
* java/org/gnu/emacs/EmacsThread.java (EmacsThread):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): New files
and classes.

* lib-src/Makefile.in (srcdir):
* lib/Makefile.in (VPATH):
(HAVE_NATIVE_COMP):
(libgnu_a_SOURCES):
(DEPFLAGS): Configure correctly for cross-compiling.

* lib/faccessat.c:
* lib/fpending.c (__fpending):
* lib/open.c:
* lib/unistd.c (_GL_UNISTD_INLINE): Temporary adjustments to
gnulib.

* lisp/frame.el (display-graphic-p):
(display-screens):
(display-pixel-height):
(display-pixel-width):
(display-mm-height):
(display-mm-width):
(display-backing-store):
(display-save-under):
(display-planes):
(display-color-cells):
(display-visual-class): Adjust for new window system `android'.

* lisp/image/wallpaper.el (x-open-connection): Add declaration.
* lisp/loadup.el (featurep): Load up files for Android.
* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select): Adjust faces for android.
* lisp/term/android-win.el: New file.
* src/Makefile.in: Add new targets emacs.so and android-emacs,
then adjust for cross compilation.
* src/alloc.c (cleanup_vector): Clean up Android font entities
as well.
(garbage_collect): Mark androidterm.
* src/android-emacs.c (main):
* src/android.c (ANDROID_THROW, enum android_fd_table_entry_flags)
(struct android_emacs_service, struct android_emacs_pixmap)
(struct android_graphics_point, struct android_event_container)
(struct android_event_queue, android_run_select_thread)
(android_handle_sigusr1, android_init_events, android_pending)
(android_next_event, android_write_event, android_select)
(android_run_debug_thread, android_user_full_name)
(android_get_asset_name, android_fstat, android_fstatat)
(android_file_access_p, android_hack_asset_fd, android_open)
(android_close, JNICALL, android_init_emacs_service)
(android_init_emacs_pixmap, android_init_graphics_point)
(MAX_HANDLE, struct android_handle_entry, android_alloc_id)
(android_destroy_handle, android_resolve_handle)
(android_resolve_handle2, android_change_window_attributes)
(android_create_window, android_set_window_background)
(android_destroy_window, android_init_android_rect_class)
(android_init_emacs_gc_class, android_create_gc, android_free_gc)
(android_change_gc, android_set_clip_rectangles)
(android_reparent_window, android_lookup_method)
(android_clear_window, android_map_window, android_unmap_window)
(android_resize_window, android_move_window, android_swap_buffers)
(android_get_gc_values, android_set_foreground)
(android_fill_rectangle, android_create_pixmap_from_bitmap_data)
(android_set_clip_mask, android_set_fill_style, android_copy_area)
(android_free_pixmap, android_set_background, android_fill_polygon)
(android_draw_rectangle, android_draw_point, android_draw_line)
(android_create_pixmap, android_set_ts_origin, android_clear_area):
* src/android.h (ANDROID_EXPORT):
* src/androidfns.c (android_display_info_for_name)
(check_android_display_info, check_x_display_info, gamma_correct)
(android_defined_color, android_decode_color)
(android_implicitly_set_name, android_explicitly_set_name)
(android_set_tool_bar_lines, android_change_tool_bar_height)
(android_set_tab_bar_lines, android_change_tab_bar_height)
(android_set_scroll_bar_default_height)
(android_set_scroll_bar_default_width, android_icon_verify)
(android_icon, android_make_gc, android_free_gcs)
(unwind_create_frame, do_unwind_create_frame)
(android_default_font_parameter, android_create_frame_window)
(Fx_create_frame, Fxw_color_defined_p, Fxw_color_values)
(Fxw_display_color_p, Fx_display_grayscale_p)
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_planes, Fx_display_color_cells, Fx_display_screens)
(Fx_display_mm_width, Fx_display_mm_height)
(Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_monitor_attributes_list, Fx_frame_geometry)
(Fx_frame_list_z_order, Fx_frame_restack)
(Fx_mouse_absolute_pixel_position)
(Fx_set_mouse_absolute_pixel_position, Fandroid_get_connection)
(Fx_display_list, Fx_show_tip, Fx_hide_tip)
(android_set_background_color, android_set_border_color)
(android_set_cursor_color, android_set_cursor_type)
(android_set_foreground_color)
(android_set_child_frame_border_width)
(android_set_internal_border_width, android_set_menu_bar_lines)
(android_set_mouse_color, android_set_title, android_set_alpha)
(android_frame_parm_handlers, syms_of_androidfns):
* src/androidfont.c (struct android_emacs_font_driver)
(struct android_emacs_font_spec, struct android_emacs_font_metrics)
(struct android_emacs_font_object, struct android_integer)
(struct androidfont_info, struct androidfont_entity)
(android_init_font_driver, android_init_font_spec)
(android_init_font_metrics, android_init_integer)
(android_init_font_object, androidfont_get_cache)
(androidfont_from_lisp, androidfont_from_java, androidfont_list)
(androidfont_match, androidfont_draw, androidfont_open_font)
(androidfont_close_font, androidfont_has_char)
(androidfont_encode_char, androidfont_text_extents)
(androidfont_list_family, androidfont_driver)
(syms_of_androidfont_for_pdumper, syms_of_androidfont)
(init_androidfont, android_finalize_font_entity):
* src/androidgui.h (_ANDROID_GUI_H_, struct android_rectangle)
(struct android_point, enum android_gc_function)
(enum android_gc_value_mask, enum android_fill_style)
(enum android_window_value_mask)
(struct android_set_window_attributes, struct android_gc_values)
(struct android_gc, enum android_swap_action, enum android_shape)
(enum android_coord_mode, struct android_swap_info)
(NativeRectangle, struct android_any_event)
(struct android_key_event, struct android_configure_event)
(union android_event):
* src/androidterm.c (android_window_to_frame, android_clear_frame)
(android_ring_bell, android_toggle_invisible_pointer)
(android_update_begin, android_update_end, show_back_buffer)
(android_flush_dirty_back_buffer_on, handle_one_android_event)
(android_read_socket, android_frame_up_to_date)
(android_buffer_flipping_unblocked_hook)
(android_query_frame_background_color, android_parse_color)
(android_alloc_nearest_color, android_query_colors)
(android_mouse_position, android_get_focus_frame)
(android_focus_frame, android_frame_rehighlight)
(android_frame_raise_lower, android_make_frame_visible)
(android_make_frame_invisible)
(android_make_frame_visible_invisible, android_fullscreen_hook)
(android_iconify_frame, android_set_window_size_1)
(android_set_window_size, android_set_offset, android_set_alpha)
(android_new_font, android_bitmap_icon, android_free_pixmap_hook)
(android_free_frame_resources, android_delete_frame)
(android_delete_terminal, android_scroll_run)
(android_after_update_window_line, android_flip_and_flush)
(android_clear_rectangle, android_reset_clip_rectangles)
(android_clip_to_row, android_draw_fringe_bitmap)
(android_set_cursor_gc, android_set_mouse_face_gc)
(android_set_mode_line_face_gc, android_set_glyph_string_gc)
(android_set_glyph_string_clipping)
(android_set_glyph_string_clipping_exactly)
(android_compute_glyph_string_overhangs)
(android_clear_glyph_string_rect)
(android_draw_glyph_string_background, android_fill_triangle)
(android_make_point, android_inside_rect_p, android_clear_point)
(android_draw_relief_rect, android_draw_box_rect)
(HIGHLIGHT_COLOR_DARK_BOOST_LIMIT, android_setup_relief_color)
(android_setup_relief_colors, android_draw_glyph_string_box)
(android_draw_glyph_string_bg_rect, android_draw_image_relief)
(android_draw_image_foreground, android_draw_image_foreground_1)
(android_draw_image_glyph_string)
(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_define_frame_cursor)
(android_clear_frame_area, android_clear_under_internal_border)
(android_draw_hollow_cursor, android_draw_bar_cursor)
(android_draw_window_cursor, android_draw_vertical_window_border)
(android_draw_window_divider, android_redisplay_interface)
(frame_set_mouse_pixel_position, get_keysym_name)
(android_create_terminal, android_term_init, syms_of_androidterm)
(mark_androidterm):
* src/androidterm.h (_ANDROID_TERM_H_, struct android_display_info)
(struct android_output, FRAME_ANDROID_OUTPUT, XSCROLL_BAR): New
files.
* src/dired.c (file_attributes): Do not use openat on Android.
* src/dispextern.h (No_Cursor): Define appropriately on Android.
(struct glyph_string, struct face): Make gc field of type struct
android_gc on Android.
* src/dispnew.c (clear_current_matrices, clear_desired_matrices)
(adjust_frame_glyphs_for_window_redisplay, free_glyphs)
(update_frame, scrolling, char_ins_del_cost, update_frame_line)
(init_display_interactive): Disable text terminal support
completely on Android.  Fix non-toolkit menus for non-X systems.
* src/editfns.c (Fuser_full_name): Call android_user_full_name.
* src/emacs.c (android_emacs_init): Make main this on Android.
Prohibit argv sorting from exceeding end of argv.
* src/epaths.in: Add path definitions for Android.

* src/fileio.c (file_access_p): Call android_file_access_p.
(file_name_directory): Avoid using openat on Android.
(Fcopy_file): Adjust to call sys_fstat instead.
(file_directory_p):
(Finsert_file_contents):
(write_region): Likewise.
* src/filelock.c:
* src/fns.c (Flocale_info): Pacify warning on Android.
* src/font.c (font_make_entity_android): New function.
* src/font.h:
* src/frame.c (Fframep):
(Fwindow_system): Handle new window system `android'.  Update doc strings.
(Fmake_terminal_frame): Disable on Android.
(gui_display_get_resource): Disable get_string_resource_hook on Android.
(syms_of_frame): New defsym `android'.

* src/frame.h (GCALIGNED_STRUCT): Add new output data for
Android.
(ENUM_BF): Expand enumerator size.
(FRAME_ANDROID_P, FRAME_WINDOW_P, MOUSE_HL_INFO): Add
definitions for Android.

* src/image.c (GET_PIXEL):
(image_create_bitmap_from_file):
(image_create_x_image_and_pixmap_1):
(image_get_x_image):
(slurp_file):
(lookup_rgb_color):
(image_to_emacs_colors):
(image_from_emacs_colors):
(image_pixmap_draw_cross):
(image_disable_image):
(MaskForeground):
(gif_load): Add stubs for Android.

* src/lisp.h:
* src/lread.c (safe_to_load_version, maybe_swap_for_eln1, openp):
* src/pdumper.c (pdumper_load): Call sys_fstat instead of fstat.
* src/process.c (wait_reading_process_output): Use
android_select instead of pselect.
* src/scroll.c: Disable on Android.
* src/sysdep.c (widen_foreground_group, reset_sys_modes)
(init_signals, emacs_fstatat, sys_fstat): New function.
(emacs_open, emacs_open_noquit, emacs_close): Implement
differently on Android.
(close_output_streams): Disable what is not required on Android.

* src/term.c (OUTPUT1_IF, encode_terminal_code, string_cost)
(string_cost_one_line, per_line_cost, calculate_costs)
(struct fkey_table, tty_append_glyph, produce_glyphs)
(tty_capable_p, Fsuspend_tty, Fresume_tty, device, init_tty)
(maybe_fatal, syms_of_term): Disable text terminal support on
Android.

* src/termhooks.h (enum output_method): Add android output
method.
(GCALIGNED_STRUCT, TERMINAL_FONT_CACHE): Define for Android.

* src/terminal.c (Fterminal_live_p): Implement for Android.

* src/verbose.mk.in (AM_V_GLOBALS): Add JAVAC and DX.
* src/xdisp.c (redisplay_internal): Disable text terminals on Android.
(display_menu_bar):
(display_tty_menu_item):
(draw_row_with_mouse_face):
(expose_frame): Make the non toolkit menu bar work on Android.

* src/xfaces.c (GCGraphicsExposures):
(x_create_gc):
(x_free_gc):
(Fx_load_color_file): Define for Android.

* xcompile/Makefile.in (top_srcdir):
(top_builddir):
* xcompile/README:
* xcompile/langinfo.h (nl_langinfo): New files.

2 years agoSimplify introduction of use-package manual
Kévin Le Gouguec [Tue, 27 Dec 2022 14:40:43 +0000 (15:40 +0100)]
Simplify introduction of use-package manual

* doc/misc/use-package.texi (Getting Started): Do not advise requiring
the package, since the macro is autoloaded; also correct the macro's
name.  (Bug#60366)

2 years agowhitespace: Use `define-globalized-minor-mode' for global mode
Richard Hansen [Sat, 10 Dec 2022 05:57:15 +0000 (00:57 -0500)]
whitespace: Use `define-globalized-minor-mode' for global mode

* lisp/whitespace.el (global-whitespace-mode): Fix interoperability
between `whitespace-mode' and `global-whitespace-mode' by using
`define-globalized-minor-mode'.  (Bug#60334)
* test/lisp/whitespace-tests.el (whitespace-tests--global): Add a
regression test.

2 years ago; Fix documentation of 'defalias'
Eli Zaretskii [Sat, 31 Dec 2022 08:44:53 +0000 (10:44 +0200)]
; Fix documentation of 'defalias'

* doc/lispref/functions.texi (Defining Functions): Document that a
defalias's DEFINITION can be a macro.  (Bug#60432)

2 years agoFix python-shell-buffer-substring when retrieving a single statement
kobarity [Thu, 22 Dec 2022 14:08:40 +0000 (23:08 +0900)]
Fix python-shell-buffer-substring when retrieving a single statement

* lisp/progmodes/python.el (python-shell-buffer-substring): Do not add
"if True:" line when retrieving a single statement.
(python-shell-send-region): Add a reference to
`python-shell-buffer-substring' in docstring.
* test/lisp/progmodes/python-tests.el (python-shell-buffer-substring-13)
(python-shell-buffer-substring-14, python-shell-buffer-substring-15)
(python-shell-buffer-substring-16, python-shell-buffer-substring-17):
New tests. (Bug#60142)

2 years ago; Fix recent treesit-related changes
Eli Zaretskii [Sat, 31 Dec 2022 08:13:15 +0000 (10:13 +0200)]
; Fix recent treesit-related changes

* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Doc fixes.

* src/treesit.c (Ftreesit_language_abi_version): Fix a typo in
function's Lisp name.  Doc fix.
(Ftreesit_language_available_p): Fix a typo in the function's C
name.

* doc/lispref/parsing.texi (Language Grammar): Fix wording.

2 years agoFix the build broken by latest GnuTLS-related changes
Eli Zaretskii [Sat, 31 Dec 2022 07:24:32 +0000 (09:24 +0200)]
Fix the build broken by latest GnuTLS-related changes

* src/gnutls.c (key_file2_aux): Don't use GNUTLS_PKCS_PBES2_*
constants that are defined only in latest versions of GnuTLS.
(Bug#50507)
(Fgnutls_boot): Mention in the doc string that some flags of
'gnutls_certificate_set_x509_key_file2' are only supported since
GnuTLS 3.6.3.

2 years agoMerge from origin/emacs-29
Stefan Kangas [Sat, 31 Dec 2022 05:30:21 +0000 (06:30 +0100)]
Merge from origin/emacs-29

ab1f245f1a1 Show tree-sitter query source when signaling query error
0b58ea0e602 ; * lisp/treesit.el (treesit--install-language-grammar-1)...
724da28763c Add version tags and mention the new options in NEWS
8675f4136c7 Add new options for Ruby code indentation
4922de626f0 ; Fix doc strings of 'treesit-install-language-grammar'
69b2aaaaded ; Fix recently modified docs of 'set-face-attribute' (bug...
0248fc9e1ac Add treesit-install-language-grammar
0237c5927e9 Add treesit-language-abi-version
312f82d36f0 Change "language definition" to "language grammar" in man...
fba35657da5 ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragrap...
dec1b37a32b ; * doc/lispref/parsing.texi (Accessing Node Information)...
39265abf0cc * test/lisp/net/tramp-tests.el (tramp-test32-shell-comman...
ebf65c7e7e3 * lisp/eshell/em-tramp.el (tramp): Require also at runtim...

# Conflicts:
# etc/NEWS

2 years ago; * src/gnutls.c (Fgnutls_boot): Fix typo.
Po Lu [Sat, 31 Dec 2022 01:10:36 +0000 (09:10 +0800)]
; * src/gnutls.c (Fgnutls_boot): Fix typo.

2 years agoFix last change in gnutls.c
Po Lu [Sat, 31 Dec 2022 01:10:23 +0000 (09:10 +0800)]
Fix last change in gnutls.c

* src/gnutls.c (Fgnutls_boot): Pacify
--enable-check-lisp-object-type and Haiku GCC warning involving
`key_file2_aux'.

2 years agoShow tree-sitter query source when signaling query error
Yuan Fu [Sat, 31 Dec 2022 00:57:45 +0000 (16:57 -0800)]
Show tree-sitter query source when signaling query error

* src/treesit.c (treesit_compose_query_signal_data): Add QUERY_SOURCE
parameter.
(treesit_ensure_query_compiled)
(Ftreesit_query_capture): Add query source.

2 years ago; * lisp/treesit.el (treesit--install-language-grammar-1): Minor fix.
Yuan Fu [Sat, 31 Dec 2022 00:23:39 +0000 (16:23 -0800)]
; * lisp/treesit.el (treesit--install-language-grammar-1): Minor fix.

2 years agoAdd version tags and mention the new options in NEWS
Dmitry Gutov [Fri, 30 Dec 2022 22:12:51 +0000 (00:12 +0200)]
Add version tags and mention the new options in NEWS

* etc/NEWS: Mention the new options (bug#60186).

* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): Add version tags.

2 years agoAdd new options for Ruby code indentation
Dmitry Gutov [Fri, 30 Dec 2022 21:58:26 +0000 (23:58 +0200)]
Add new options for Ruby code indentation

* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): New options (bug#60186).
(ruby-smie-grammar): Specify associativity for "?".
(ruby-smie--indent-to-stmt): Add optional argument.

* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New cases.

* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/
ruby-parenless-call-arguments-indent.rb: New files.

* test/lisp/progmodes/ruby-mode-tests.el: Add indentation tests for new files.

2 years agoCorrect suppression of suspicious eq type warning
Mattias Engdegård [Fri, 30 Dec 2022 12:48:47 +0000 (13:48 +0100)]
Correct suppression of suspicious eq type warning

* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
* lisp/emacs-lisp/bytecomp.el (bytecomp--warn-dodgy-eq-arg):
Suppress warning using (suspicious FUNCTION), where FUNCTION is
not always `eq`.

2 years ago; Fix Eshell tests on macOS
Jim Porter [Fri, 30 Dec 2022 18:40:08 +0000 (10:40 -0800)]
; Fix Eshell tests on macOS

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-statement-pipe)
(esh-cmd-test/if-else-statement-pipe):
* test/lisp/eshell/esh-io-tests.el (esh-io-test/pipeline/subcommands):
Allow trailing newlines in the output.

2 years agoAdd :pass and :flags to gnutls-boot for :keylist
Nikolaos Chatzikonstantinou [Mon, 26 Sep 2022 15:08:18 +0000 (11:08 -0400)]
Add :pass and :flags to gnutls-boot for :keylist

* lisp/net/gnutls.el (gnutls-boot-parameters): Add the keys :pass and
:flags, and update the documentation.
* src/gnutls.c (gnutls-boot): Add the keys :pass and :flags, and
update the documentation.
(syms_of_gnutls): Add the symbols :pass, :flags, and the symbols that
correspond to the enumeration constants of the GnuTLS enum
`gnutls_pkcs_encrypt_flags_t'.
(key_file2_aux): Private helper function that translates a list of
symbols to its corresponding `unsigned int' value of the GnuTLS C enum
`gnutls_pkcs_encrypt_flags_t'.

(Bug#50507)

2 years ago; Fix doc strings of 'treesit-install-language-grammar'
Eli Zaretskii [Fri, 30 Dec 2022 15:10:22 +0000 (17:10 +0200)]
; Fix doc strings of 'treesit-install-language-grammar'

* lisp/treesit.el (treesit-install-language-grammar)
(treesit--install-language-grammar-1): Doc fixes.

2 years ago; Fix recently modified docs of 'set-face-attribute' (bug#52493)
Eli Zaretskii [Fri, 30 Dec 2022 14:43:38 +0000 (16:43 +0200)]
; Fix recently modified docs of 'set-face-attribute' (bug#52493)

* doc/lispref/display.texi (Attribute Functions): Clarify wording
and restore removed information about resetting attributes to
'unspecified' for future frames.

* lisp/faces.el (set-face-attribute): Minor copyedit of doc
string.

2 years agoAdd treesit-install-language-grammar
Yuan Fu [Fri, 30 Dec 2022 10:56:26 +0000 (02:56 -0800)]
Add treesit-install-language-grammar

Per discussion on emacs-devel, I added function to install and compile
language grammars.

* lisp/treesit.el (treesit-language-source-alist): New variable.
(treesit-install-language-grammar)
(treesit--call-process-signal)
(treesit--install-language-grammar-1): New functions.

2 years agoAdd treesit-language-abi-version
Yuan Fu [Fri, 30 Dec 2022 10:54:13 +0000 (02:54 -0800)]
Add treesit-language-abi-version

Also rename treesit-language-version to treesit-library-abi-version,
because the old name is somewhat misleading.

* doc/lispref/parsing.texi (Language Grammar): Update.
* src/treesit.c (Ftreesit_library_abi_version): Rename.
(Ftreesit_language_abi_version): New function.

2 years ago; fix misplaced bracketing of `and` inside `when`
Mattias Engdegård [Fri, 30 Dec 2022 10:30:23 +0000 (11:30 +0100)]
; fix misplaced bracketing of `and` inside `when`

2 years ago; remove incorrect quoting of condition names
Mattias Engdegård [Fri, 30 Dec 2022 10:11:14 +0000 (11:11 +0100)]
; remove incorrect quoting of condition names

2 years agoChange "language definition" to "language grammar" in manual.
Yuan Fu [Fri, 30 Dec 2022 08:47:22 +0000 (00:47 -0800)]
Change "language definition" to "language grammar" in manual.

"Language grammar" is apparently the more widely used term among
people talking about tree-sitter.  To avoid confusion, I think it's
good to use that rather than "language definition", which is a term
that I made up :-)

Feel free to revert this if it is too much change.

* doc/lispref/elisp.texi:
* doc/lispref/modes.texi:
* doc/lispref/parsing.texi:
* lisp/treesit.el: Change "language definition" to "language grammar".

2 years ago; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix.
Yuan Fu [Fri, 30 Dec 2022 08:34:42 +0000 (00:34 -0800)]
; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix.

2 years ago; * doc/lispref/parsing.texi (Accessing Node Information): Fix typo.
Yuan Fu [Fri, 30 Dec 2022 04:54:42 +0000 (20:54 -0800)]
; * doc/lispref/parsing.texi (Accessing Node Information): Fix typo.

2 years ago* test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Fix test.
Michael Albinus [Fri, 30 Dec 2022 08:26:56 +0000 (09:26 +0100)]
* test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Fix test.

2 years ago* lisp/eshell/em-tramp.el (tramp): Require also at runtime. (Bug#60402)
Michael Albinus [Fri, 30 Dec 2022 08:26:41 +0000 (09:26 +0100)]
* lisp/eshell/em-tramp.el (tramp): Require also at runtime.  (Bug#60402)

2 years agoFix reference-counting of Eshell I/O handles
Jim Porter [Sat, 24 Dec 2022 22:31:50 +0000 (14:31 -0800)]
Fix reference-counting of Eshell I/O handles

This ensures that output targets in Eshell are only closed when Eshell
is actually done with them.  In particular, this means that
"{ echo foo; echo bar } | rev" prints "raboof" as expected
(bug#59545).

* lisp/eshell/esh-io.el (eshell-create-handles): Structure the handles
differently so the targets and their ref-count can be shared.
(eshell-duplicate-handles): Reimplement this to share targets between
the original and new handle sets.  Add STEAL-P argument.
(eshell-protect-handles, eshell-copy-output-handle)
(eshell-interactive-output-p, eshell-output-object): Account for
changes to the handle structure.
(eshell-close-handle): New function...
(eshell-close-handles, eshell-set-output-handle): ... use it.
(eshell-get-targets): Remove.  This only existed to make the previous
implementation of 'eshell-duplicate-handles' work.

* lisp/eshell/esh-cmd.el (eshell-with-copied-handles): New argument
STEAL-P.
(eshell-do-pipelines): Use STEAL-P for the last item in the pipeline.
(eshell-parse-command): Don't copy handles for the last command in the
list; explain why we can't use STEAL-P here.
(eshell-eval-command): When queuing input, set 'eshell-command-body'
and 'eshell-test-body' for the 'if' conditional (see
'eshell-do-eval').

* test/lisp/eshell/esh-io-tests.el (esh-io-test/redirect-pipe): Split
into...
(esh-io-test/pipeline/default, esh-io-test/pipeline/all): ... these.
(esh-io-test/pipeline/subcommands): New test.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-pipe)
(esh-cmd-test/while-loop-pipe, esh-cmd-test/if-statement-pipe)
esh-cmd-test/if-else-statement-pipe): New tests.
(esh-cmd-test/while-loop): Use 'pop' to simplify the test a bit.

* test/lisp/eshell/eshell-test-helpers.el
(eshell-test--max-subprocess-time): Rename to...
(eshell-test--max-wait-time): ... this.
(eshell-wait-for): New function...
(eshell-wait-for-subprocess): ... use it.

* test/lisp/eshell/eshell-tests.el (eshell-test/queue-input): Fix this
test.  Previously, it didn't correctly verify that the original
command completed.

* test/lisp/eshell/em-tramp-tests.el
(em-tramp-test/should-replace-command): New macro...
(em-tramp-test/su-default, em-tramp-test/su-user)
(em-tramp-test/su-login, em-tramp-test/sudo-shell)
(em-tramp-test/sudo-user-shell, em-tramp-test/doas-shell)
(em-tramp-test/doas-user-shell): ... use it.

2 years agoMerge from origin/emacs-29
Stefan Kangas [Fri, 30 Dec 2022 05:45:13 +0000 (06:45 +0100)]
Merge from origin/emacs-29

644c71d6788 lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (...
ab38abfdf75 lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTe...
d086cd6cf87 Clarify the documentation of 'set-face-attribute'
dafa6d6badd Handle non-string values in pcomplete
beed746f944 Fix completion when completion-auto-select is set
7ccb88486eb ; * etc/DEBUG: Update MS-Windows specifics for GDB 13 and...
558b59d81b9 Add color fontification in css-ts-mode (bug#60405)
a96a7c81151 ; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu s...
793641a3db5 ; * lisp/progmodes/js.el: Fix byte-compile warning.
0aea1cf8190 * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (b...
60418e6f09c * src/keyboard.c (echo_add_key): Use recently rebound C-h...
706ed852855 Avoid assertion violations in treesit.c with --enable-che...
38c35bf0f6a Clean up treesit-default-defun-skipper and add comments
9371d488be6 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
9d814bea460 ; whitespace.el: Use the new 'ert-with-buffer-selected' i...
784e509bded Fix c-ts-mode bracket indentation (bug#60398)

2 years agoAvoid some obsolescent tz abbrevs in doc.
Paul Eggert [Fri, 30 Dec 2022 03:16:10 +0000 (19:16 -0800)]
Avoid some obsolescent tz abbrevs in doc.

2 years agoDocument calc-time-zone abbreviation obsolescence
Paul Eggert [Fri, 30 Dec 2022 03:16:09 +0000 (19:16 -0800)]
Document calc-time-zone abbreviation obsolescence

* doc/misc/calc.texi (Time Zones): Document that alphabetic
time zone abbreviations are obsolescent and in some cases wrong.

2 years agoUse RFC 822 abbrevs in sunrise-sunset strings
Paul Eggert [Fri, 30 Dec 2022 03:16:09 +0000 (19:16 -0800)]
Use RFC 822 abbrevs in sunrise-sunset strings

* lisp/calendar/solar.el (sunrise-sunset): Use RFC 822 time zone
abbreviations like "+0530" instead of idiosyncratic abbreviations
like "UTC+330min".

2 years agoAdd nndiary-headers obsolescence comment
Paul Eggert [Fri, 30 Dec 2022 03:16:09 +0000 (19:16 -0800)]
Add nndiary-headers obsolescence comment

* lisp/gnus/nndiary.el (nndiary-headers): Add comment
about alphabetic time zone names being obsolescent.

2 years agoDefault mbox "From " time zone to -0000
Paul Eggert [Fri, 30 Dec 2022 05:27:45 +0000 (21:27 -0800)]
Default mbox "From " time zone to -0000

* lisp/mail/rmailout.el (rmail-nuke-pinhead-header):
Default the time zone to "-0000" instead of "EST", as "-0000" is
the RFC-2822-and-later standard for unknown time zones.

2 years agoIn cal-dst, be consistent re default to UTC
Paul Eggert [Fri, 30 Dec 2022 03:16:09 +0000 (19:16 -0800)]
In cal-dst, be consistent re default to UTC

* lisp/calendar/cal-dst.el (calendar-standard-time-zone-name)
(calendar-daylight-time-zone-name):
When using alphabetic time zone abbreviations, default to "UTC"
rather than to "EST" or "EDT", to be consistent with the behavior
when using numeric time zone abbreviations.
Also, in the numeric time zone use "-0000" rather than "+0000"
to show that the time zone is unknown; this is the RFC 5322
standard.

2 years agoFix newsticker timezone decode
LdBeth [Fri, 30 Dec 2022 03:16:09 +0000 (19:16 -0800)]
Fix newsticker timezone decode

'newsticker--decode-rfc822-date' has the regex pattern for
North American timezones but the actual timezone conversion
for them was not implmented. Now cond cases are added to
handle them as specified in RFC822.

Copyright-paperwork-exempt: yes

2 years agolisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)
Roland Winkler [Fri, 30 Dec 2022 05:31:08 +0000 (23:31 -0600)]
lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)

lisp/textmodes/bibtex.el (bibtex-beginning-of-entry):
use bibtex-any-entry-maybe-empty-head (bug#56636)

2 years agolisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202)
Roland Winkler [Fri, 30 Dec 2022 05:22:48 +0000 (23:22 -0600)]
lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202)

2 years agoClarify the documentation of 'set-face-attribute'
Gregory Heytings [Thu, 29 Dec 2022 22:41:58 +0000 (22:41 +0000)]
Clarify the documentation of 'set-face-attribute'

* lisp/faces.el (set-face-attribute): Mention the evaluation order
of attribute-value pairs in the docstring.

* doc/lispref/display.texi (Attribute Functions): Likewise, and
explain with an example that a different argument order might give
different results.  Also align the documentation in the manual
with that of the docstring, whose changes were discussed in
bug#57499 but not included in the manual.

2 years agoHandle non-string values in pcomplete
Gregory Heytings [Mon, 19 Dec 2022 22:18:22 +0000 (22:18 +0000)]
Handle non-string values in pcomplete

* lisp/pcomplete.el (pcomplete-arg): When
pcomplete-parse-arguments-function returns a non-string value,
return the string the user typed in, and attach the value as a
text property to that string.  Fixes bug#59956 and bug#60021.

2 years agoFix completion when completion-auto-select is set
Gregory Heytings [Thu, 29 Dec 2022 21:50:26 +0000 (21:50 +0000)]
Fix completion when completion-auto-select is set

* lisp/minibuffer.el (completion--do-completion): Do not display
"Complete, but not unique" messages when completion-auto-select is
set.  Fixes bug#60359.

2 years ago; * etc/DEBUG: Update MS-Windows specifics for GDB 13 and later.
Eli Zaretskii [Thu, 29 Dec 2022 20:04:44 +0000 (22:04 +0200)]
; * etc/DEBUG: Update MS-Windows specifics for GDB 13 and later.

2 years agoAdd color fontification in css-ts-mode (bug#60405)
Yuan Fu [Thu, 29 Dec 2022 19:52:06 +0000 (11:52 -0800)]
Add color fontification in css-ts-mode (bug#60405)

* lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification
and syntax-propertize-function.

2 years ago; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu setup.
Yuan Fu [Thu, 29 Dec 2022 19:41:26 +0000 (11:41 -0800)]
; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu setup.

2 years ago; * lisp/progmodes/js.el: Fix byte-compile warning.
Yuan Fu [Thu, 29 Dec 2022 19:34:28 +0000 (11:34 -0800)]
; * lisp/progmodes/js.el: Fix byte-compile warning.

2 years agoAllow for indentation in prog-fill-reindent-defun (bug#60322)
Theodor Thornhill [Thu, 29 Dec 2022 19:19:46 +0000 (20:19 +0100)]
Allow for indentation in prog-fill-reindent-defun (bug#60322)

* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun):
Adjust regexp.

2 years ago* lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).
Juri Linkov [Thu, 29 Dec 2022 17:45:12 +0000 (19:45 +0200)]
* lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).

Handle two cases: when a pattern is a regexp or a function.