Commit 5a655b9f authored by Dmitry Antipov's avatar Dmitry Antipov

* 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.
parent eeb468da
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
......
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment