diff options
author | Kenichi Handa <handa@gnu.org> | 2012-10-30 20:14:15 +0900 |
---|---|---|
committer | Kenichi Handa <handa@gnu.org> | 2012-10-30 20:14:15 +0900 |
commit | aee5b18ec3c7844ca125249914113eeaef04342c (patch) | |
tree | fc23a336c177f6c8a730041792e17a89e5a93139 /src | |
parent | 6a8f8193298e05931baeebb1bd3aba6f8f5a7b5e (diff) | |
download | emacs-aee5b18ec3c7844ca125249914113eeaef04342c.tar.gz |
font.c (Ffont_at): If WINDOW is specified and it is not displaying the current buffer, signal an error.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/font.c | 14 |
2 files changed, 14 insertions, 5 deletions
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 <handa@gnu.org> + + * font.c (Ffont_at): If WINDOW is specified and it is not + displaying the current buffer, signal an error. + 2012-10-23 Kenichi Handa <handa@gnu.org> 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); } |