diff options
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/window.c b/src/window.c index 17489cb95e9..f696e3c2a1b 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -2988,22 +2988,24 @@ replace_buffer_in_windows (Lisp_Object buffer) | |||
| 2988 | call1 (Qreplace_buffer_in_windows, buffer); | 2988 | call1 (Qreplace_buffer_in_windows, buffer); |
| 2989 | } | 2989 | } |
| 2990 | 2990 | ||
| 2991 | 2991 | /* If BUFFER is shown in a window, safely replace it with some other | |
| 2992 | /* Safely replace BUFFER with some other buffer in all windows of all | 2992 | buffer in all windows of all frames, even those on other keyboards. */ |
| 2993 | frames, even those on other keyboards. */ | ||
| 2994 | 2993 | ||
| 2995 | void | 2994 | void |
| 2996 | replace_buffer_in_windows_safely (Lisp_Object buffer) | 2995 | replace_buffer_in_windows_safely (Lisp_Object buffer) |
| 2997 | { | 2996 | { |
| 2998 | Lisp_Object tail, frame; | 2997 | if (buffer_window_count (XBUFFER (buffer))) |
| 2998 | { | ||
| 2999 | Lisp_Object tail, frame; | ||
| 2999 | 3000 | ||
| 3000 | /* A single call to window_loop won't do the job because it only | 3001 | /* A single call to window_loop won't do the job because it only |
| 3001 | considers frames on the current keyboard. So loop manually over | 3002 | considers frames on the current keyboard. So loop manually over |
| 3002 | frames, and handle each one. */ | 3003 | frames, and handle each one. */ |
| 3003 | FOR_EACH_FRAME (tail, frame) | 3004 | FOR_EACH_FRAME (tail, frame) |
| 3004 | window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, 1, frame); | 3005 | window_loop (REPLACE_BUFFER_IN_WINDOWS_SAFELY, buffer, 1, frame); |
| 3006 | } | ||
| 3005 | } | 3007 | } |
| 3006 | 3008 | ||
| 3007 | /* If *ROWS or *COLS are too small a size for FRAME, set them to the | 3009 | /* If *ROWS or *COLS are too small a size for FRAME, set them to the |
| 3008 | minimum allowable size. */ | 3010 | minimum allowable size. */ |
| 3009 | 3011 | ||
| @@ -3338,11 +3340,11 @@ displaying that buffer. */) | |||
| 3338 | 3340 | ||
| 3339 | if (STRINGP (object)) | 3341 | if (STRINGP (object)) |
| 3340 | object = Fget_buffer (object); | 3342 | object = Fget_buffer (object); |
| 3341 | if (BUFFERP (object) && BUFFER_LIVE_P (XBUFFER (object))) | 3343 | if (BUFFERP (object) && BUFFER_LIVE_P (XBUFFER (object)) |
| 3344 | && buffer_window_count (XBUFFER (object))) | ||
| 3342 | { | 3345 | { |
| 3343 | /* Walk all windows looking for buffer, and force update | 3346 | /* If buffer is live and shown in at least one window, find |
| 3344 | of each of those windows. */ | 3347 | all windows showing this buffer and force update of them. */ |
| 3345 | |||
| 3346 | object = window_loop (REDISPLAY_BUFFER_WINDOWS, object, 0, Qvisible); | 3348 | object = window_loop (REDISPLAY_BUFFER_WINDOWS, object, 0, Qvisible); |
| 3347 | return NILP (object) ? Qnil : Qt; | 3349 | return NILP (object) ? Qnil : Qt; |
| 3348 | } | 3350 | } |