From: Dmitry Antipov Date: Mon, 24 Dec 2012 12:21:42 +0000 (+0400) Subject: * buffer.c (Fset_buffer_modified_p): Use buffer_window_count X-Git-Tag: emacs-24.3.90~173^2~7^2~504 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2944d406dbf0512368ce0c9de36f347ccbae289b;p=emacs.git * buffer.c (Fset_buffer_modified_p): Use buffer_window_count to check whether the buffer is displayed in some window. * xdisp.c (message_dolog): Likewise. --- diff --git a/src/ChangeLog b/src/ChangeLog index 1967cdb8557..cb799f627d1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -5,6 +5,9 @@ struct buffer_text to avoid accessing an uninitialized value when compact_buffer is called for the first time. (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF. + (Fset_buffer_modified_p): Use buffer_window_count to check + whether the buffer is displayed in some window. + * xdisp.c (message_dolog): Likewise. 2012-12-23 Eli Zaretskii diff --git a/src/buffer.c b/src/buffer.c index 21c42fc82b7..59b139359e2 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1341,7 +1341,7 @@ DEFUN ("set-buffer-modified-p", Fset_buffer_modified_p, Sset_buffer_modified_p, A non-nil FLAG means mark the buffer modified. */) (Lisp_Object flag) { - Lisp_Object fn, buffer, window; + Lisp_Object fn; #ifdef CLASH_DETECTION /* If buffer becoming modified, lock the file. @@ -1394,9 +1394,7 @@ A non-nil FLAG means mark the buffer modified. */) Ideally, I think there should be another mechanism for fontifying buffers without "modifying" buffers, or redisplay should be smarter about updating the `*' in mode lines. --gerd */ - XSETBUFFER (buffer, current_buffer); - window = Fget_buffer_window (buffer, Qt); - if (WINDOWP (window)) + if (buffer_window_count (current_buffer)) { ++update_mode_lines; current_buffer->prevent_redisplay_optimizations_p = 1; diff --git a/src/xdisp.c b/src/xdisp.c index 5b959f5e472..cbecf558ccc 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -9397,7 +9397,8 @@ message_dolog (const char *m, ptrdiff_t nbytes, int nlflag, int multibyte) int old_windows_or_buffers_changed = windows_or_buffers_changed; ptrdiff_t point_at_end = 0; ptrdiff_t zv_at_end = 0; - Lisp_Object old_deactivate_mark, tem; + Lisp_Object old_deactivate_mark; + bool shown; struct gcpro gcpro1; old_deactivate_mark = Vdeactivate_mark; @@ -9539,9 +9540,9 @@ message_dolog (const char *m, ptrdiff_t nbytes, int nlflag, int multibyte) unchain_marker (XMARKER (oldbegv)); unchain_marker (XMARKER (oldzv)); - tem = Fget_buffer_window (Fcurrent_buffer (), Qt); + shown = buffer_window_count (current_buffer) > 0; set_buffer_internal (oldbuf); - if (NILP (tem)) + if (!shown) windows_or_buffers_changed = old_windows_or_buffers_changed; message_log_need_newline = !nlflag; Vdeactivate_mark = old_deactivate_mark;