]> code.delx.au - gnu-emacs/commitdiff
* buffer.c (Fset_buffer_modified_p): Use buffer_window_count
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 24 Dec 2012 12:21:42 +0000 (16:21 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 24 Dec 2012 12:21:42 +0000 (16:21 +0400)
to check whether the buffer is displayed in some window.
* xdisp.c (message_dolog): Likewise.

src/ChangeLog
src/buffer.c
src/xdisp.c

index 1967cdb855746e99bc1a736aab295fe2e8aa1554..cb799f627d148fdc591e08958c241b490a44744a 100644 (file)
@@ -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  <eliz@gnu.org>
 
index 21c42fc82b7d6ae95b9fc7c2d18f0255b1012aab..59b139359e2518f8d6c2b97f0d32eba4a5a29b36 100644 (file)
@@ -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;
index 5b959f5e4723f5b097b5721a62356a29f254a080..cbecf558cccc58b1bb62d0f674a8ec19e977d632 100644 (file)
@@ -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;