* src/font.c (check_gstring, check_otf_features, otf_tag_symbol)
(otf_open, font_otf_capability, generate_otf_features)
(font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
Move closer to the primitives that use them. Add commentary for
the purpose of this code.
* lisp/international/characters.el (glyphless-char-display-control):
* src/xdisp.c (syms_of_xdisp) <glyphless-char-display>: Mention
the 'glyphless-char' face in the doc string.
* doc/lispref/display.texi (Glyphless Chars): Index
'glyphless-char' face.
* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Always use the standard
position unit value on HarfBuzz 5 and later regardless of whether the
font is bitmap-only or not. (Bug#57066)
* src/emacs.c (load_pdump): Don't overwrite the leading
directories of the Emacs executable just because the pdumper file
was not found in the expected directory relative to the binary.
This is needed to support builds with a separate --bindir
configure-time option and native-compilation. (Bug#55741)
* src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Make
sure we have valid frame glyph matrices for the interactive
session. (Bug#55760)
(adjust_frame_glyphs): Add assertions for when we fail to allocate
valid frame glyph matrices for a TTY frame.
This fixes bug#55684. There, with a minibuffer-only frame at start up,
Emacs tried to switch to this frame, whose selected window was the
mini-window. There is no other active window in this frame, so the
attempt to swith to another window failed.
* src/frame.c (do_switch_frame): On switching to a frame whose selected
window is as above, before selecting the most recently used window, check
this ostensible window is an actual live window. Otherwise leave the
mini-window selected.
This fixes bug #55412. The call to Fselect_window was removed on 2021-03-21
in the commit "Prevent open minibuffers getting lost when their frame gets
deleted". This call is actually needed to determine current elements of the
pertinent window and frame when these are used in the frame title.
* src/frame.c (do_switch_frame): When the selected window in the target frame
is the mini-window, switch away from this window unless there is a valid
minibuffer there.
* src/frame.h (struct frame): Add an incidental comment about the element
selected_window.
* src/minibuf.c (move_minibuffers_onto_frame): No longer set the selected
window of the source frame. This action is now performed later, on returning
to that frame, in do_switch_frame when needed (see above).
* src/xdisp.c (gui_consider_frame_title): Replace the Fselect_window call and
associated ancillary settings.
* lisp/faces.el (face-attribute):
* src/xfaces.c (Fx_family_fonts):
* src/font.c (Ffont_get, Ffont_put): Improve and clarify the doc
strings.
* doc/lispref/display.texi (Low-Level Font): Document the :type
attribute of a font. Improve documentation of 'font-get' and
'font-put'.
(Attribute Functions): Add cross-reference to the description of
face attributes.
* doc/lispref/display.texi (Fontsets):
* src/fontset.c (Fset_fontset_font): Improve and clarify the
documentation of 'set-fontset-font'. Rename the arguments to be
more self-explanatory. (Bug#55086)
* src/xdisp.c (get_overlay_arrow_glyph_row): Don't assume every
character in 'overlay-arrow-string' is one byte long. Reported by
Yuri D'Elia <wavexx@thregr.org>.
This reverts commit 3cccf0a910.
This is a change with far-reaching effects on MS-Windows at the least,
where file-related APIs are shadowed to support transparent support
for UTF-8 encoded file names. Making such changes on a stable branch
for the benefit of a proprietary platform with a 13-year old OS is a
tail wagging the dog. Please don't do that without discussing first.
Use openat only on platforms with O_PATH.
This ports to OS X 10.9 and earlier.
Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00805.html
* lib-src/emacsclient.c (local_sockname): Use open, not openat.
* src/sysdep.c (sys_openat): New static function,
which uses openat only if O_PATH is defined.
(emacs_openat): Use it instead of openat.
(emacs_openat_noquit): Remove.
(emacs_open_noquit): Reimplement as per the old emacs_openat_noquit,
but use plain 'open'.