* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
(FACE_FOR_CHAR): Simplify because face_for_char does the same. * fontset.c (face_suitable_for_char_p) [0]: Remove unused function. (font_for_char): Prefer ptrdiff_t to int for buffer position. (face_for_char): Likewise. Rearrange eassert and return ASCII face for CHAR_BYTE8_P. * fontset.h (font_for_char, face_for_char): Adjust prototypes.
This commit is contained in:
parent
09faee72dd
commit
397a32c12a
4 changed files with 19 additions and 42 deletions
|
@ -5,6 +5,13 @@
|
|||
http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
|
||||
* keyboard.c (poll_for_input_1, input_polling_used): Define
|
||||
unconditionally.
|
||||
* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
|
||||
(FACE_FOR_CHAR): Simplify because face_for_char does the same.
|
||||
* fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
|
||||
(font_for_char): Prefer ptrdiff_t to int for buffer position.
|
||||
(face_for_char): Likewise. Rearrange eassert and return ASCII
|
||||
face for CHAR_BYTE8_P.
|
||||
* fontset.h (font_for_char, face_for_char): Adjust prototypes.
|
||||
|
||||
2013-12-11 Ken Brown <kbrown@cornell.edu>
|
||||
|
||||
|
|
|
@ -1819,24 +1819,16 @@ struct face_cache
|
|||
#define FACE_SUITABLE_FOR_ASCII_CHAR_P(FACE, CHAR) \
|
||||
((FACE) == (FACE)->ascii_face)
|
||||
|
||||
#define FACE_SUITABLE_FOR_CHAR_P(FACE, CHAR) \
|
||||
(ASCII_CHAR_P (CHAR) \
|
||||
? FACE_SUITABLE_FOR_ASCII_CHAR_P(FACE) \
|
||||
: face_suitable_for_char_p ((FACE), (CHAR)))
|
||||
|
||||
/* Return the id of the realized face on frame F that is like the face
|
||||
with id ID but is suitable for displaying character CHAR.
|
||||
This macro is only meaningful for multibyte character CHAR. */
|
||||
|
||||
#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT) \
|
||||
((ASCII_CHAR_P (CHAR) || CHAR_BYTE8_P (CHAR)) \
|
||||
? (FACE)->ascii_face->id \
|
||||
: face_for_char ((F), (FACE), (CHAR), (POS), (OBJECT)))
|
||||
face_for_char ((F), (FACE), (CHAR), (POS), (OBJECT))
|
||||
|
||||
#else /* not HAVE_WINDOW_SYSTEM */
|
||||
|
||||
#define FACE_SUITABLE_FOR_ASCII_CHAR_P(FACE, CHAR) 1
|
||||
#define FACE_SUITABLE_FOR_CHAR_P(FACE, CHAR) 1
|
||||
#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT) ((FACE)->id)
|
||||
|
||||
#endif /* not HAVE_WINDOW_SYSTEM */
|
||||
|
|
|
@ -899,42 +899,21 @@ free_face_fontset (struct frame *f, struct face *face)
|
|||
face->fontset = -1;
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
/* Return true if FACE is suitable for displaying character C.
|
||||
Called from the macro FACE_SUITABLE_FOR_CHAR_P
|
||||
when C is not an ASCII character. */
|
||||
|
||||
bool
|
||||
face_suitable_for_char_p (struct face *face, int c)
|
||||
{
|
||||
Lisp_Object fontset, rfont_def;
|
||||
|
||||
fontset = FONTSET_FROM_ID (face->fontset);
|
||||
rfont_def = fontset_font (fontset, c, NULL, -1);
|
||||
return (VECTORP (rfont_def)
|
||||
&& INTEGERP (RFONT_DEF_FACE (rfont_def))
|
||||
&& face->id == XINT (RFONT_DEF_FACE (rfont_def)));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Return ID of face suitable for displaying character C on frame F.
|
||||
FACE must be realized for ASCII characters in advance. Called from
|
||||
the macro FACE_FOR_CHAR. */
|
||||
/* Return ID of face suitable for displaying character C at buffer position
|
||||
POS on frame F. FACE must be realized for ASCII characters in advance.
|
||||
Called from the macro FACE_FOR_CHAR. */
|
||||
|
||||
int
|
||||
face_for_char (struct frame *f, struct face *face, int c, int pos, Lisp_Object object)
|
||||
face_for_char (struct frame *f, struct face *face, int c,
|
||||
ptrdiff_t pos, Lisp_Object object)
|
||||
{
|
||||
Lisp_Object fontset, rfont_def, charset;
|
||||
int face_id;
|
||||
int id;
|
||||
|
||||
/* If face->fontset is negative (that happens when no font is found
|
||||
for face), just return face->ascii_face because we can't do
|
||||
anything. Perhaps, we should fix the callers to assure
|
||||
that face->fontset is always valid. */
|
||||
if (ASCII_CHAR_P (c) || face->fontset < 0)
|
||||
eassert (fontset_id_valid_p (face->fontset));
|
||||
|
||||
if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c))
|
||||
return face->ascii_face->id;
|
||||
|
||||
#ifdef HAVE_NS
|
||||
|
@ -950,7 +929,6 @@ face_for_char (struct frame *f, struct face *face, int c, int pos, Lisp_Object o
|
|||
}
|
||||
#endif
|
||||
|
||||
eassert (fontset_id_valid_p (face->fontset));
|
||||
fontset = FONTSET_FROM_ID (face->fontset);
|
||||
eassert (!BASE_FONTSET_P (fontset));
|
||||
|
||||
|
@ -1005,7 +983,7 @@ face_for_char (struct frame *f, struct face *face, int c, int pos, Lisp_Object o
|
|||
|
||||
|
||||
Lisp_Object
|
||||
font_for_char (struct face *face, int c, int pos, Lisp_Object object)
|
||||
font_for_char (struct face *face, int c, ptrdiff_t pos, Lisp_Object object)
|
||||
{
|
||||
Lisp_Object fontset, rfont_def, charset;
|
||||
int id;
|
||||
|
|
|
@ -28,8 +28,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
|
||||
extern void free_face_fontset (struct frame *, struct face *);
|
||||
extern int face_for_char (struct frame *, struct face *, int,
|
||||
int, Lisp_Object);
|
||||
extern Lisp_Object font_for_char (struct face *, int, int, Lisp_Object);
|
||||
ptrdiff_t, Lisp_Object);
|
||||
extern Lisp_Object font_for_char (struct face *, int, ptrdiff_t, Lisp_Object);
|
||||
|
||||
extern int make_fontset_for_ascii_face (struct frame *, int, struct face *);
|
||||
extern int fontset_from_font (Lisp_Object);
|
||||
|
|
Loading…
Add table
Reference in a new issue