mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-16 00:40:06 +00:00
Update Android port
* configure.ac: Add support for HarfBuzz on Android. * java/INSTALL: Document where to get Emacs with HarfBuzz. * lisp/subr.el (overriding-text-conversion-style, y-or-n-p): Correctly set text conversion style if y-or-n-p is called inside the minibuffer. * src/sfnt.c (sfnt_read_cmap_format_8) (sfnt_read_cmap_format_12): Fix typos. (sfnt_read_24, sfnt_read_cmap_format_14): New function. (sfnt_read_cmap_table_1, sfnt_read_cmap_table): Handle format 14 cmap tables. (sfnt_read_default_uvs_table, sfnt_read_nondefault_uvs_table) (sfnt_compare_table_offsets, sfnt_create_uvs_context) (sfnt_free_uvs_context, sfnt_compare_uvs_mapping) (sfnt_variation_glyph_for_char, sfnt_map_table, sfnt_unmap_table) (sfnt_read_table, sfnt_test_uvs): New functions. (main): Add UVS tests. * src/sfnt.h (struct sfnt_cmap_format_14) (struct sfnt_variation_selector_record) (struct sfnt_default_uvs_table, struct sfnt_unicode_value_range) (struct sfnt_nondefault_uvs_table, struct sfnt_uvs_mapping) (struct sfnt_mapped_variation_selector_record) (struct sfnt_table_offset_rec, struct sfnt_uvs_context) (struct sfnt_mapped_table): New structures. Update prototypes. * src/sfntfont-android.c (android_sfntfont_driver): Register HarfBuzz callbacks where required. * src/sfntfont.c (sfntfont_select_cmap): Look for a format 14 table. Save it in new arg FORMAT14. (sfntfont_read_cmap): Adjust accordingly. (struct sfnt_font_info): New field `uvs'. New fields `hb_font', `fd' and `directory'. (sfntfont_open): Open uvs context. Under HarfBuzz, don't close the fd or subtable, but save them in the font info instead. (sfntfont_close): Free UVS context. Close font fd and table directory and HarfBuzz font. (sfntfont_draw): Handle case where s->padding_p. (sfntfont_get_variation_glyphs): New function. (sfntfont_unmap_blob, sfntfont_get_font_table) (sfntfont_begin_hb_font): New functions. * src/sfntfont.h: Update prototypes. * src/textconv.c (Fset_text_conversion_style): Fix doc string.
This commit is contained in:
parent
739558c369
commit
6bd1cfa24f
9 changed files with 1322 additions and 31 deletions
16
lisp/subr.el
16
lisp/subr.el
|
@ -3598,6 +3598,7 @@ character. This is not possible when using `read-key', but using
|
|||
|
||||
;; Actually in textconv.c.
|
||||
(defvar overriding-text-conversion-style)
|
||||
(declare-function set-text-conversion-style "textconv.c")
|
||||
|
||||
(defun y-or-n-p (prompt)
|
||||
"Ask user a \"y or n\" question.
|
||||
|
@ -3674,6 +3675,9 @@ like) while `y-or-n-p' is running)."
|
|||
(while
|
||||
(let* ((scroll-actions '(recenter scroll-up scroll-down
|
||||
scroll-other-window scroll-other-window-down))
|
||||
;; Disable text conversion so that real key events
|
||||
;; are sent.
|
||||
(overriding-text-conversion-style nil)
|
||||
(key
|
||||
(let ((cursor-in-echo-area t))
|
||||
(when minibuffer-auto-raise
|
||||
|
@ -3721,9 +3725,15 @@ like) while `y-or-n-p' is running)."
|
|||
map))
|
||||
;; Protect this-command when called from pre-command-hook (bug#45029)
|
||||
(this-command this-command)
|
||||
(str (read-from-minibuffer
|
||||
prompt nil keymap nil
|
||||
(or y-or-n-p-history-variable t))))
|
||||
(str (progn
|
||||
(when (active-minibuffer-window)
|
||||
;; If the minibuffer is already active, the
|
||||
;; selected window might not change. Disable
|
||||
;; text conversion by hand.
|
||||
(set-text-conversion-style text-conversion-style))
|
||||
(read-from-minibuffer
|
||||
prompt nil keymap nil
|
||||
(or y-or-n-p-history-variable t)))))
|
||||
(setq answer (if (member str '("y" "Y")) 'act 'skip)))))
|
||||
(let ((ret (eq answer 'act)))
|
||||
(unless noninteractive
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue