diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2013-02-13 11:14:38 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2013-02-13 11:14:38 +0400 |
commit | 5a655b9f0d19703aad9331378c02e9c782412386 (patch) | |
tree | a6ce6b855a4014cdedc903ee8c69d0b415fd9d3c | |
parent | eeb468daa1a5c8b64b939c1b3c4144c21a38f281 (diff) | |
download | emacs-5a655b9f0d19703aad9331378c02e9c782412386.tar.gz |
* font.c (font_range): Add pos_byte argument. Adjust comment
and break long line.
* font.h (font_range): Adjust prototype.
* composite.c (autocmp_chars): Pass byte position to font_range.
Break long line. Remove useless prototype and format comment.
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/composite.c | 14 | ||||
-rw-r--r-- | src/font.c | 21 | ||||
-rw-r--r-- | src/font.h | 2 |
4 files changed, 23 insertions, 22 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 31ffd36c060..bf27fd4066d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2013-02-13 Dmitry Antipov <dmantipov@yandex.ru> + + * font.c (font_range): Add pos_byte argument. Adjust comment + and break long line. + * font.h (font_range): Adjust prototype. + * composite.c (autocmp_chars): Pass byte position to font_range. + Break long line. Remove useless prototype and format comment. + 2013-02-13 Glenn Morris <rgm@gnu.org> * keyboard.c (input-decode-map, key-translation-map): Doc fixes. diff --git a/src/composite.c b/src/composite.c index 54cebc00eb7..9bbd4550c7b 100644 --- a/src/composite.c +++ b/src/composite.c @@ -642,13 +642,7 @@ compose_text (ptrdiff_t start, ptrdiff_t end, Lisp_Object components, Qcomposition, prop, string); } - -static Lisp_Object autocmp_chars (Lisp_Object, ptrdiff_t, ptrdiff_t, - ptrdiff_t, struct window *, - struct face *, Lisp_Object); - - -/* Lisp glyph-string handlers */ +/* Lisp glyph-string handlers. */ /* Hash table for automatic composition. The key is a header of a lgstring (Lispy glyph-string), and the value is a body of a @@ -905,7 +899,9 @@ fill_gstring_body (Lisp_Object gstring) object. Otherwise return nil. */ static Lisp_Object -autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t limit, struct window *win, struct face *face, Lisp_Object string) +autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos, + ptrdiff_t limit, struct window *win, struct face *face, + Lisp_Object string) { ptrdiff_t count = SPECPDL_INDEX (); FRAME_PTR f = XFRAME (win->frame); @@ -935,7 +931,7 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) { - font_object = font_range (charpos, &to, win, face, string); + font_object = font_range (charpos, bytepos, &to, win, face, string); if (! FONT_OBJECT_P (font_object) || (! NILP (re) && to < limit diff --git a/src/font.c b/src/font.c index 5cfac07de72..e2ea7262397 100644 --- a/src/font.c +++ b/src/font.c @@ -3689,11 +3689,11 @@ font_at (int c, ptrdiff_t pos, struct face *face, struct window *w, #ifdef HAVE_WINDOW_SYSTEM -/* Check how many characters after POS (at most to *LIMIT) can be - displayed by the same font in the window W. FACE, if non-NULL, is - the face selected for the character at POS. If STRING is not nil, - it is the string to check instead of the current buffer. In that - case, FACE must be not NULL. +/* Check how many characters after character/byte position POS/POS_BYTE + (at most to *LIMIT) can be displayed by the same font in the window W. + FACE, if non-NULL, is the face selected for the character at POS. + If STRING is not nil, it is the string to check instead of the current + buffer. In that case, FACE must be not NULL. The return value is the font-object for the character at POS. *LIMIT is set to the position where that font can't be used. @@ -3701,15 +3701,15 @@ font_at (int c, ptrdiff_t pos, struct face *face, struct window *w, It is assured that the current buffer (or STRING) is multibyte. */ Lisp_Object -font_range (ptrdiff_t pos, ptrdiff_t *limit, struct window *w, struct face *face, Lisp_Object string) +font_range (ptrdiff_t pos, ptrdiff_t pos_byte, ptrdiff_t *limit, + struct window *w, struct face *face, Lisp_Object string) { - ptrdiff_t pos_byte, ignore; + ptrdiff_t ignore; int c; Lisp_Object font_object = Qnil; if (NILP (string)) { - pos_byte = CHAR_TO_BYTE (pos); if (! face) { int face_id; @@ -3720,10 +3720,7 @@ font_range (ptrdiff_t pos, ptrdiff_t *limit, struct window *w, struct face *face } } else - { - eassert (face); - pos_byte = string_char_to_byte (string, pos); - } + eassert (face); while (pos < *limit) { diff --git a/src/font.h b/src/font.h index b565fb4b01b..ffed0461ff7 100644 --- a/src/font.h +++ b/src/font.h @@ -781,7 +781,7 @@ extern int font_unparse_fcname (Lisp_Object font, int pixel_size, extern void register_font_driver (struct font_driver *driver, FRAME_PTR f); extern void free_font_driver_list (FRAME_PTR f); extern Lisp_Object font_update_drivers (FRAME_PTR f, Lisp_Object list); -extern Lisp_Object font_range (ptrdiff_t, ptrdiff_t *, +extern Lisp_Object font_range (ptrdiff_t, ptrdiff_t, ptrdiff_t *, struct window *, struct face *, Lisp_Object); extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object); |