* .gitignore: Ignore the generated emoji-labels.el file.
* admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Generate
the emoji-labels.el file.
(gen-clean): Delete it.
* admin/unidata/README (https): Note the source for the Unicode
file that has emoji categorisations.
* admin/unidata/emoji-test.txt: Import another Unicode file.
* doc/emacs/mule.texi (Input Methods): Document the new key bindings.
* lisp/international/emoji.el: New file.
* lisp/international/mule-cmds.el (ctl-x-map): Bind the emoji
commands.
* lisp/leim/quail/latin-pre.el ("latin-2-prefix"):
* lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants
of "`s" and "s," for Romanian. Add key bindings for moving
between variants, when there are more than one. (Bug#51638)
5e9b4e70ab Fix dbus-test04-register-method on CentOS (Bug#51369)
d96de23510 * lisp/transient.el: Update to package version v0.3.7-11-g...
7343b0d0e4 ; * etc/NEWS: Native compilation is more picky about missi...
0d6b2b0b9d ; * etc/PROBLEMS: Move entry about LLVM plugin to the righ...
# Conflicts:
# etc/NEWS
* src/dispextern.h: Remove some !HAVE_NS conditionals around grab
related code.
* src/frame.c (gui_mouse_grabbed, gui_redo_mouse_highlight): Remove
!HAVE_NS conditionals around code.
* src/nsmenu.m (ns_update_menubar): Prevent recursive calls and enable
shallow updates on GNUstep.
(menuNeedsUpdate): Prevent recursive calls.
(ns_menu_show): Fix mysterious GC-related bug.
(update_frame_tool_bar_1): Work around mysterious toolbar sizing bug
on GNUstep.
* src/nsterm.h (struct ns_output): New field for tracking toolbar
visibility changes.
* src/nsterm.m (frame_set_mouse_pixel_position): Implement for
GNUstep.
(ns_redraw_scroll_bars): Enable for GNUstep.
(ns_clear_frame): Redraw scrollbars on GNUstep.
(ns_update_window_end): New function.
(ns_redisplay_interface): Add ns_update_window_end on GNUstep.
(- keyDown): Remove debug code that doesn't work on GNUstep.
(- mouseDown): Enable grab tracking on NS port.
(- resizeWithOldSuperviewSize): Fix build with NSTRACE.
* src/xdisp.c (note_tab_bar_highlight): Enable some code for NS port.
* src/nsfns.m (Fx_create_frame): Use "fixed" for the default font on
GNUstep.
* src/nsfont.m (LCD_SMOOTHING_MARGIN, ns_escape_name)
(ns_unescape_name, ns_attribute_fvalue)
(STYLE_REF): Remove unused defines and functions.
(struct ns_glyph_layout, enum lgstring_direction).
(enum gs_font_slant, enum gs_font_weight, enum gs_font_width)
(enum gs_specified, struct gs_font_data): New enumerators and
structures.
(ns_font_descs_match_p)
(ns_done_font_data, ns_get_font_data): New functions.
(ns_glyph_metrics): Stop escaping names.
(ns_spec_to_descriptor): Fix font descriptor creation for symbolic
font spec entires.
(ns_descriptor_to_entity): Create entries with the correct symbolic
styles.
(ns_fallback_entity): Fix fallback entity selection.
(ns_findfonts): Use our own font matcher instead of the broken GNUstep
matcher.
(ns_list_family): Remove obsolete comment.
(nsfont_open): Remove obsolete code, comments, and synthItal logic
which doesn't work on GNUstep.
(nsfont_encode_char): Use a type that can fit NSGlyph
(nsfont_draw): Chose correct font, remove obsolete mouse face logic,
obsolete comments, and switch to using glyph-based drawing instead of
character-based drawing.
(ns_font_shape, nsfont_shape): New functions.
(ns_uni_to_glyphs_1): New function.
(ns_uni_to_glyphs): Return glyphs instead of unicode codepoints.
(ns_glyph_metrics): Use NSGlyphs instead of unicode codepoints and fix
left bearing, right bearing, ascent and descent computation.
(struct nsfont_driver): Add shaping capability.
* src/nsterm.h (struct nsfont_info): Use unsigned int for glyph cache.
* src/nsterm.c (ns_focus): Set DPS clipping on GNUstep.
(ns_compute_glyph_string_overhangs): Fix overhang computation by using
xterm code.
(ns_draw_window_cursor): Simplify cursor drawing.
(ns_maybe_dumpglyphs_background): Test for cursor HL and remove
obsolete mouse face logic.
(ns_dumpglyphs_image)
(ns_dumpglyphs_box_or_relief): Rectify for new cursor logic.
(ns_dumpglyphs_stretch): Rectify for new cursor logic and rely on
ns_draw_glyph_string to set focus.
(ns_draw_glyph_string_foreground): Remove mouse face logic.
(ns_draw_glyph_strings): Implement overhangs, remove obsolete
comment, and always focus before dumping glyphs.
(ns_draw_text_decoration): Add condition for DRAW_CURSOR and simplify
color selection.
(ns_define_frame_cursor): Remove nonsensical code (define_frame_cursor
has nothing to do with the text cursor, aka caret).
* src/xdisp.c (draw_glyphs): Enable code for NS port to fix mouse face
cursor display.
* src/macfont.m (get_cgcolor_from_nscolor): New function.
(macfont_draw): Remove obsolete mouse-face code and enable cursor
display.
* src/bidi.c (bidi_find_first_overridden): Detect suspiciously
reordered EN types as well.
* test/src/xdisp-tests.el
(xdisp-tests--find-directional-overrides-case-1): Rename from
'xdisp-tests--find-directional-overrides'.
(xdisp-tests--find-directional-overrides-case-2): New test.
9bdb1d0 ; * etc/PROBLEMS: Describe a crash in xwidgets due to Bubblew...
550887c ; * etc/PROBLEMS: Rearrange and update the section about cras...
c2e3cd6 Clarify "text area of a window" in the documentation
4e7e78d Improve docstring of kmacro-set-format
The following commits were skipped:
b1885ac ; * etc/NEWS: slightly more careful wording
6ee929c Use current face foreground for SVG icons in customize
82529b9 ; * etc/NEWS: Improve wording of a recently changed entry.
e9c7a49 ; * etc/NEWS: Improve NEWS entry for Image-Dired.
2de7be4 ; * etc/NEWS: Various fixes.
* src/keyboard.c (Fposn_at_x_y): Clarify that the Y coordinate
includes the header-line and the tab-line. (Bug#51590)
* doc/lispref/windows.texi (Window Sizes, Splitting Windows)
(Textual Scrolling, Coordinates and Windows): Fix/remove improper
or confusing uses of "text area" of a window.
* lisp/kmacro.el (kmacro-set-format): Improve docstring.
(kmacro-insert-counter, kmacro-display-counter)
(kmacro-set-counter, kmacro-add-counter): Add cross-references
to the info manual.
* doc/lispref/display.texi (Showing Images): Mention it.
* lisp/image.el (insert-image): Take an optional parameter to
inhibit isearch of the STRING argument.
* doc/lispref/text.texi (Special Properties): Mention it.
* lisp/image.el (insert-image): Make `C-s' skip over the image data.
* lisp/isearch.el (isearch--search-skip-inhibited): New function.
(isearch-search-string): Use it.
(isearch--invisible-p): New function.
(isearch-range-invisible): Use it.
* lisp/erc/erc-backend.el (erc-server-reconnecting-p):
Don't consider erc-server-reconnecting when rendering verdict.
(erc-process-sentinel-2): ensure local variable
erc-server-reconnecting is t when timers are scheduled or running and
trying to reconnect, and nil otherwise, including after no retries
remain. Previously, its use and meaning in erc-backend were convoluted
and conflicted with its use in erc-cmd-RECONNECT (bug#50007).
* erc.el (erc-send-input-line): Previously, any line typed into a
query or channel buffer without an explicit user-command
handler (meaning most lines), would be sent twice because a trailing
newline (linefeed) would be appended. This has been verified by
checking IRCd server logs. IRCds won't return an error upon receiving
an empty message, but they also won't forward them to channel
subscribers and DM pals.
* erc-tests.el: Add test for erc-process-input-line, which also
indirectly tests erc-send-input-line. It also tests the command
lookup and dispatch facility (bug#50008).
* lisp/progmodes/cc-mode.el (c-electric-pair-inhibit-predicate):
Inhibit insertion of paired quote in fewer cases.
* test/lisp/electric-tests.el (define-electric-pair-test):
Add 'c-mode' to list of modes to test by default (bug#50538).
This ensures that quotes are paired correctly within comments, allows for
insertion of quote pairs immediately before another quote, and allows
inserting quote pairs within a string (thus splitting the string in two).
* lisp/emacs-lisp/checkdoc.el
(checkdoc-commentary-header-string): New defvar.
(checkdoc-file-comments-engine): Insert value of above new
variable instead of hardcoding what is inserted for the
"Commentary" section.
* doc/lispref/files.texi (File Attributes): Be precise when
filename does not exist in `file-has-changed-p'.
* lisp/files.el (file-has-changed-p): Suppress remote file caches.
Handle the case FILE does not exists.
In Bug#44655#32 (2020-11-19) it was reported that
rsvg_handle_get_dimensions was not deprecated. However, it became
deprecated in librsvg 2.52.0 (2021-09-15), and because of this Emacs
builds with --enable-gcc-warnings fail in Fedora 35 (2025-11-02)
with the diagnostic “‘rsvg_handle_get_dimensions’ is deprecated:
Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead
[-Werror=deprecated-declarations]”.
* src/image.c (rsvg_handle_get_dimensions): Define as a DLL
function only if < librsvg 2.46.0, since it’s not used
in 2.46.0 or later.
(svg_load_image): Use rsvg_handle_get_dimensions only if librsvg <
2.46.0, since it isn’t needed if >= 2.46.0.
* lisp/emacs-lisp/pp.el (pp-max-width, pp-use-max-width): New user
options (bug#11934).
(pp-to-string): Use it.
(pp--insert-lisp): Tweak whether to use standard-output or not.
(pp--max-width): New function.
* lisp/image-dired.el (image-dired-gallery-image-root-url)
(image-dired-gallery-thumb-image-root-url)
(image-dired-gallery-dir): Don't use "path" for file names and
URLs.
* lisp/international/mule-cmds.el (confusingly-reordered): Make
sure the face looks distinct on displays that don't support the
"wavy" underline attribute.
(highlight-confusing-reorderings): Add a tooltip explaining why
the text was highlighted. Allow to remove the highlighting by
invoking the command with a prefix argument.
* lisp/progmodes/python.el
(python-shell-completion-native-get-completions): Match dummy output
even when readline is configured in non-default ways. (Bug#51010)