diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2015-09-09 10:47:53 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2015-09-09 10:48:31 -0700 |
commit | 1267e12ba716734195a3bb6667f7ef5807ea0567 (patch) | |
tree | 4aab322ca0a5c8321f00029c7ea8c51f5c0cc404 /src/fontset.c | |
parent | 88694fb65887ebc2fde9dea18c817e08be26b564 (diff) | |
download | emacs-1267e12ba716734195a3bb6667f7ef5807ea0567.tar.gz |
Define internal-char-font even if --without-x
The function is used now even in non-graphical environments.
Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00401.html
* src/font.c (Finternal_char_font): Move here ...
* src/fontset.c (Finternal_char_font): ... from here.
Diffstat (limited to 'src/fontset.c')
-rw-r--r-- | src/fontset.c | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/fontset.c b/src/fontset.c index f8334f16e55..e735989bcbf 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -1786,107 +1786,6 @@ update_auto_fontset_alist (Lisp_Object font_object, Lisp_Object fontset) } } -/* Return a description of the font at POSITION in the current buffer. - If the 2nd optional arg CH is non-nil, it is a character to check - the font instead of the character at POSITION. - - For a graphical display, return a cons (FONT-OBJECT . GLYPH-CODE). - FONT-OBJECT is the font for the character at POSITION in the current - buffer. This is computed from all the text properties and overlays - that apply to POSITION. POSITION may be nil, in which case, - FONT-SPEC is the font for displaying the character CH with the - default face. GLYPH-CODE is the glyph code in the font to use for - the character. - - For a text terminal, return a nonnegative integer glyph code for - the character, or a negative integer if the character is not - displayable. Terminal glyph codes are system-dependent integers - that represent displayable characters: for example, on a Linux x86 - console they represent VGA code points. - - It returns nil in the following cases: - - (1) The window system doesn't have a font for the character (thus - it is displayed by an empty box). - - (2) The character code is invalid. - - (3) If POSITION is not nil, and the current buffer is not displayed - in any window. - - (4) For a text terminal, the terminal does not report glyph codes. - - In addition, the returned font name may not take into account of - such redisplay engine hooks as what used in jit-lock-mode if - POSITION is currently not visible. */ - - -DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0, - doc: /* For internal use only. */) - (Lisp_Object position, Lisp_Object ch) -{ - ptrdiff_t pos, pos_byte, dummy; - int face_id; - int c; - struct frame *f; - struct face *face; - - if (NILP (position)) - { - CHECK_CHARACTER (ch); - c = XINT (ch); - f = XFRAME (selected_frame); - face_id = lookup_basic_face (f, DEFAULT_FACE_ID); - pos = -1; - } - else - { - Lisp_Object window; - struct window *w; - - CHECK_NUMBER_COERCE_MARKER (position); - if (! (BEGV <= XINT (position) && XINT (position) < ZV)) - args_out_of_range_3 (position, make_number (BEGV), make_number (ZV)); - pos = XINT (position); - pos_byte = CHAR_TO_BYTE (pos); - if (NILP (ch)) - c = FETCH_CHAR (pos_byte); - else - { - CHECK_NATNUM (ch); - c = XINT (ch); - } - window = Fget_buffer_window (Fcurrent_buffer (), Qnil); - if (NILP (window)) - return Qnil; - w = XWINDOW (window); - f = XFRAME (w->frame); - face_id = face_at_buffer_position (w, pos, &dummy, - pos + 100, false, -1); - } - if (! CHAR_VALID_P (c)) - return Qnil; - if (!FRAME_WINDOW_P (f)) - return terminal_glyph_code (FRAME_TERMINAL (f), c); - /* We need the basic faces to be valid below, so recompute them if - some code just happened to clear the face cache. */ - if (FRAME_FACE_CACHE (f)->used == 0) - recompute_basic_faces (f); - face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil); - face = FACE_FROM_ID (f, face_id); - if (face->font) - { - unsigned code = face->font->driver->encode_char (face->font, c); - Lisp_Object font_object; - - if (code == FONT_INVALID_CODE) - return Qnil; - XSETFONT (font_object, face->font); - return Fcons (font_object, INTEGER_TO_CONS (code)); - } - return Qnil; -} - DEFUN ("fontset-info", Ffontset_info, Sfontset_info, 1, 2, 0, doc: /* Return information about a fontset FONTSET on frame FRAME. @@ -2254,7 +2153,6 @@ at the vertical center of lines. */); defsubr (&Squery_fontset); defsubr (&Snew_fontset); defsubr (&Sset_fontset_font); - defsubr (&Sinternal_char_font); defsubr (&Sfontset_info); defsubr (&Sfontset_font); defsubr (&Sfontset_list); |