From: Kenichi Handa Date: Tue, 30 Oct 2012 11:14:15 +0000 (+0900) Subject: font.c (Ffont_at): If WINDOW is specified and it is not displaying the current buffer... X-Git-Tag: emacs-24.2.90~210 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=aee5b18ec3c7844ca125249914113eeaef04342c;p=emacs.git font.c (Ffont_at): If WINDOW is specified and it is not displaying the current buffer, signal an error. --- diff --git a/src/ChangeLog b/src/ChangeLog index e59a286110d..a5f76b22def 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-30 Kenichi Handa + + * font.c (Ffont_at): If WINDOW is specified and it is not + displaying the current buffer, signal an error. + 2012-10-23 Kenichi Handa The following change is to make face-font-rescale-alist work diff --git a/src/font.c b/src/font.c index bff2356d6ca..e79ce5d80bc 100644 --- a/src/font.c +++ b/src/font.c @@ -4760,14 +4760,22 @@ FONT is a font-spec, font-entity, or font-object. */) DEFUN ("font-at", Ffont_at, Sfont_at, 1, 3, 0, doc: /* Return a font-object for displaying a character at POSITION. Optional second arg WINDOW, if non-nil, is a window displaying -the current buffer. It defaults to the currently selected window. */) +the current buffer. It defaults to the currently selected window. +Optional third arg STRING, if non-nil, is a string containing the target +character at index specified by POSITION. */) (Lisp_Object position, Lisp_Object window, Lisp_Object string) { struct window *w; ptrdiff_t pos; + if (NILP (window)) + window = selected_window; + CHECK_LIVE_WINDOW (window); + w = XWINDOW (window); if (NILP (string)) { + if (XBUFFER (w->buffer) != current_buffer) + error ("Specified window is not displaying the current buffer."); CHECK_NUMBER_COERCE_MARKER (position); if (! (BEGV <= XINT (position) && XINT (position) < ZV)) args_out_of_range_3 (position, make_number (BEGV), make_number (ZV)); @@ -4781,10 +4789,6 @@ the current buffer. It defaults to the currently selected window. */) args_out_of_range (string, position); pos = XINT (position); } - if (NILP (window)) - window = selected_window; - CHECK_LIVE_WINDOW (window); - w = XWINDOW (window); return font_at (-1, pos, NULL, w, string); }