* 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.
This commit is contained in:
parent
eeb468daa1
commit
5a655b9f0d
4 changed files with 23 additions and 22 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
21
src/font.c
21
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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue