summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2012-12-24 16:21:42 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2012-12-24 16:21:42 +0400
commit2944d406dbf0512368ce0c9de36f347ccbae289b (patch)
treeb4f9cc3c30718e89ae67c085085ff4e9d58f5021
parente7d52a4de53b86c780c9ee0fbd6239450550756f (diff)
downloademacs-2944d406dbf0512368ce0c9de36f347ccbae289b.tar.gz
* 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.
-rw-r--r--src/ChangeLog3
-rw-r--r--src/buffer.c6
-rw-r--r--src/xdisp.c7
3 files changed, 9 insertions, 7 deletions
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 <eliz@gnu.org>
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;