aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorStefan Monnier2001-10-12 02:01:23 +0000
committerStefan Monnier2001-10-12 02:01:23 +0000
commitc58dab6376d12083c6bdee74c5c94e19252ba59a (patch)
treec8e909dd53bbb32185f1cb00f2a195ac2b1d6458 /src/buffer.c
parent07f904a3f27c8a3269c95e97ccc90fb46b1071c2 (diff)
downloademacs-c58dab6376d12083c6bdee74c5c94e19252ba59a.tar.gz
emacs-c58dab6376d12083c6bdee74c5c94e19252ba59a.zip
(Fbury_buffer): Don't try to remove the buffer from the
selected window if it's not displayed there. Handle the case when the window is dedicated. (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c86
1 files changed, 31 insertions, 55 deletions
diff --git a/src/buffer.c b/src/buffer.c
index b5d1ab89c5c..cdde404725f 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1570,6 +1570,7 @@ do not put this buffer at the front of the list of recently selected ones.")
1570 } 1570 }
1571 Fset_buffer (buf); 1571 Fset_buffer (buf);
1572 if (NILP (norecord)) 1572 if (NILP (norecord))
1573 /* This seems bogus since Fselect_window will call record_buffer anyway. */
1573 record_buffer (buf); 1574 record_buffer (buf);
1574 Fselect_window (Fdisplay_buffer (buf, other_window, Qnil)); 1575 Fselect_window (Fdisplay_buffer (buf, other_window, Qnil));
1575 return buf; 1576 return buf;
@@ -1826,10 +1827,18 @@ selected window if it is displayed there.")
1826 /* Figure out what buffer we're going to bury. */ 1827 /* Figure out what buffer we're going to bury. */
1827 if (NILP (buffer)) 1828 if (NILP (buffer))
1828 { 1829 {
1830 Lisp_Object tem;
1829 XSETBUFFER (buffer, current_buffer); 1831 XSETBUFFER (buffer, current_buffer);
1830 1832
1833 tem = Fwindow_buffer (selected_window);
1831 /* If we're burying the current buffer, unshow it. */ 1834 /* If we're burying the current buffer, unshow it. */
1832 Fswitch_to_buffer (Fother_buffer (buffer, Qnil, Qnil), Qnil); 1835 if (EQ (buffer, tem))
1836 if (NILP (Fwindow_dedicated_p (selected_window)))
1837 Fswitch_to_buffer (Fother_buffer (buffer, Qnil, Qnil), Qnil);
1838 else if (NILP (XWINDOW (selected_window)->parent))
1839 Ficonify_frame (Fwindow_frame (selected_window));
1840 else
1841 Fdelete_window (selected_window);
1833 } 1842 }
1834 else 1843 else
1835 { 1844 {
@@ -5159,34 +5168,28 @@ nil here means use current buffer's major mode.");
5159 "Pretty name of current buffer's major mode (a string)."); 5168 "Pretty name of current buffer's major mode (a string).");
5160 5169
5161 DEFVAR_PER_BUFFER ("abbrev-mode", &current_buffer->abbrev_mode, Qnil, 5170 DEFVAR_PER_BUFFER ("abbrev-mode", &current_buffer->abbrev_mode, Qnil,
5162 "Non-nil turns on automatic expansion of abbrevs as they are inserted.\n\ 5171 "Non-nil turns on automatic expansion of abbrevs as they are inserted.");
5163Automatically becomes buffer-local when set in any fashion.");
5164 5172
5165 DEFVAR_PER_BUFFER ("case-fold-search", &current_buffer->case_fold_search, 5173 DEFVAR_PER_BUFFER ("case-fold-search", &current_buffer->case_fold_search,
5166 Qnil, 5174 Qnil,
5167 "*Non-nil if searches and matches should ignore case.\n\ 5175 "*Non-nil if searches and matches should ignore case.");
5168Automatically becomes buffer-local when set in any fashion.");
5169 5176
5170 DEFVAR_PER_BUFFER ("fill-column", &current_buffer->fill_column, 5177 DEFVAR_PER_BUFFER ("fill-column", &current_buffer->fill_column,
5171 make_number (Lisp_Int), 5178 make_number (Lisp_Int),
5172 "*Column beyond which automatic line-wrapping should happen.\n\ 5179 "*Column beyond which automatic line-wrapping should happen.");
5173Automatically becomes buffer-local when set in any fashion.");
5174 5180
5175 DEFVAR_PER_BUFFER ("left-margin", &current_buffer->left_margin, 5181 DEFVAR_PER_BUFFER ("left-margin", &current_buffer->left_margin,
5176 make_number (Lisp_Int), 5182 make_number (Lisp_Int),
5177 "*Column for the default indent-line-function to indent to.\n\ 5183 "*Column for the default indent-line-function to indent to.\n\
5178Linefeed indents to this column in Fundamental mode.\n\ 5184Linefeed indents to this column in Fundamental mode.");
5179Automatically becomes buffer-local when set in any fashion.");
5180 5185
5181 DEFVAR_PER_BUFFER ("tab-width", &current_buffer->tab_width, 5186 DEFVAR_PER_BUFFER ("tab-width", &current_buffer->tab_width,
5182 make_number (Lisp_Int), 5187 make_number (Lisp_Int),
5183 "*Distance between tab stops (for display of tab characters), in columns.\n\ 5188 "*Distance between tab stops (for display of tab characters), in columns.");
5184Automatically becomes buffer-local when set in any fashion.");
5185 5189
5186 DEFVAR_PER_BUFFER ("ctl-arrow", &current_buffer->ctl_arrow, Qnil, 5190 DEFVAR_PER_BUFFER ("ctl-arrow", &current_buffer->ctl_arrow, Qnil,
5187 "*Non-nil means display control chars with uparrow.\n\ 5191 "*Non-nil means display control chars with uparrow.\n\
5188A value of nil means use backslash and octal digits.\n\ 5192A value of nil means use backslash and octal digits.\n\
5189Automatically becomes buffer-local when set in any fashion.\n\
5190This variable does not apply to characters whose display is specified\n\ 5193This variable does not apply to characters whose display is specified\n\
5191in the current display table (if there is one)."); 5194in the current display table (if there is one).");
5192 5195
@@ -5216,8 +5219,7 @@ for the buffer file.\n\
5216\n\ 5219\n\
5217The variable `coding-system-for-write', if non-nil, overrides this variable.\n\ 5220The variable `coding-system-for-write', if non-nil, overrides this variable.\n\
5218\n\ 5221\n\
5219This variable is never applied to a way of decoding\n\ 5222This variable is never applied to a way of decoding a file while reading it.");
5220a file while reading it.");
5221 5223
5222 DEFVAR_PER_BUFFER ("direction-reversed", &current_buffer->direction_reversed, 5224 DEFVAR_PER_BUFFER ("direction-reversed", &current_buffer->direction_reversed,
5223 Qnil, 5225 Qnil,
@@ -5226,7 +5228,6 @@ a file while reading it.");
5226 DEFVAR_PER_BUFFER ("truncate-lines", &current_buffer->truncate_lines, Qnil, 5228 DEFVAR_PER_BUFFER ("truncate-lines", &current_buffer->truncate_lines, Qnil,
5227 "*Non-nil means do not display continuation lines;\n\ 5229 "*Non-nil means do not display continuation lines;\n\
5228give each line of text one screen line.\n\ 5230give each line of text one screen line.\n\
5229Automatically becomes buffer-local when set in any fashion.\n\
5230\n\ 5231\n\
5231Note that this is overridden by the variable\n\ 5232Note that this is overridden by the variable\n\
5232`truncate-partial-width-windows' if that variable is non-nil\n\ 5233`truncate-partial-width-windows' if that variable is non-nil\n\
@@ -5244,51 +5245,43 @@ On other systems, this variable is normally always nil.");
5244 DEFVAR_PER_BUFFER ("default-directory", &current_buffer->directory, 5245 DEFVAR_PER_BUFFER ("default-directory", &current_buffer->directory,
5245 make_number (Lisp_String), 5246 make_number (Lisp_String),
5246 "Name of default directory of current buffer. Should end with slash.\n\ 5247 "Name of default directory of current buffer. Should end with slash.\n\
5247Each buffer has its own value of this variable. To change the\n\ 5248To interactively change the default directory, use command `cd'.");
5248default directory, use function `cd'.");
5249 5249
5250 DEFVAR_PER_BUFFER ("auto-fill-function", &current_buffer->auto_fill_function, 5250 DEFVAR_PER_BUFFER ("auto-fill-function", &current_buffer->auto_fill_function,
5251 Qnil, 5251 Qnil,
5252 "Function called (if non-nil) to perform auto-fill.\n\ 5252 "Function called (if non-nil) to perform auto-fill.\n\
5253It is called after self-inserting any character specified in\n\ 5253It is called after self-inserting any character specified in\n\
5254the `auto-fill-chars' table.\n\ 5254the `auto-fill-chars' table.\n\
5255Each buffer has its own value of this variable.\n\
5256NOTE: This variable is not a hook;\n\ 5255NOTE: This variable is not a hook;\n\
5257its value may not be a list of functions."); 5256its value may not be a list of functions.");
5258 5257
5259 DEFVAR_PER_BUFFER ("buffer-file-name", &current_buffer->filename, 5258 DEFVAR_PER_BUFFER ("buffer-file-name", &current_buffer->filename,
5260 make_number (Lisp_String), 5259 make_number (Lisp_String),
5261 "Name of file visited in current buffer, or nil if not visiting a file.\n\ 5260 "Name of file visited in current buffer, or nil if not visiting a file.");
5262Each buffer has its own value of this variable.");
5263 5261
5264 DEFVAR_PER_BUFFER ("buffer-file-truename", &current_buffer->file_truename, 5262 DEFVAR_PER_BUFFER ("buffer-file-truename", &current_buffer->file_truename,
5265 make_number (Lisp_String), 5263 make_number (Lisp_String),
5266 "Abbreviated truename of file visited in current buffer, or nil if none.\n\ 5264 "Abbreviated truename of file visited in current buffer, or nil if none.\n\
5267The truename of a file is calculated by `file-truename'\n\ 5265The truename of a file is calculated by `file-truename'\n\
5268and then abbreviated with `abbreviate-file-name'.\n\ 5266and then abbreviated with `abbreviate-file-name'.");
5269Each buffer has its own value of this variable.");
5270 5267
5271 DEFVAR_PER_BUFFER ("buffer-auto-save-file-name", 5268 DEFVAR_PER_BUFFER ("buffer-auto-save-file-name",
5272 &current_buffer->auto_save_file_name, 5269 &current_buffer->auto_save_file_name,
5273 make_number (Lisp_String), 5270 make_number (Lisp_String),
5274 "Name of file for auto-saving current buffer,\n\ 5271 "Name of file for auto-saving current buffer,\n\
5275or nil if buffer should not be auto-saved.\n\ 5272or nil if buffer should not be auto-saved.");
5276Each buffer has its own value of this variable.");
5277 5273
5278 DEFVAR_PER_BUFFER ("buffer-read-only", &current_buffer->read_only, Qnil, 5274 DEFVAR_PER_BUFFER ("buffer-read-only", &current_buffer->read_only, Qnil,
5279 "Non-nil if this buffer is read-only.\n\ 5275 "Non-nil if this buffer is read-only.");
5280Each buffer has its own value of this variable.");
5281 5276
5282 DEFVAR_PER_BUFFER ("buffer-backed-up", &current_buffer->backed_up, Qnil, 5277 DEFVAR_PER_BUFFER ("buffer-backed-up", &current_buffer->backed_up, Qnil,
5283 "Non-nil if this buffer's file has been backed up.\n\ 5278 "Non-nil if this buffer's file has been backed up.\n\
5284Backing up is done before the first time the file is saved.\n\ 5279Backing up is done before the first time the file is saved.");
5285Each buffer has its own value of this variable.");
5286 5280
5287 DEFVAR_PER_BUFFER ("buffer-saved-size", &current_buffer->save_length, 5281 DEFVAR_PER_BUFFER ("buffer-saved-size", &current_buffer->save_length,
5288 make_number (Lisp_Int), 5282 make_number (Lisp_Int),
5289 "Length of current buffer when last read in, saved or auto-saved.\n\ 5283 "Length of current buffer when last read in, saved or auto-saved.\n\
52900 initially.\n\ 52840 initially.");
5291Each buffer has its own value of this variable.");
5292 5285
5293 DEFVAR_PER_BUFFER ("selective-display", &current_buffer->selective_display, 5286 DEFVAR_PER_BUFFER ("selective-display", &current_buffer->selective_display,
5294 Qnil, 5287 Qnil,
@@ -5296,15 +5289,13 @@ Each buffer has its own value of this variable.");
5296Integer N as value means display only lines\n\ 5289Integer N as value means display only lines\n\
5297 that start with less than n columns of space.\n\ 5290 that start with less than n columns of space.\n\
5298A value of t means, after a ^M, all the rest of the line is invisible.\n\ 5291A value of t means, after a ^M, all the rest of the line is invisible.\n\
5299 Then ^M's in the file are written into files as newlines.\n\n\ 5292 Then ^M's in the file are written into files as newlines.");
5300Automatically becomes buffer-local when set in any fashion.");
5301 5293
5302#ifndef old 5294#ifndef old
5303 DEFVAR_PER_BUFFER ("selective-display-ellipses", 5295 DEFVAR_PER_BUFFER ("selective-display-ellipses",
5304 &current_buffer->selective_display_ellipses, 5296 &current_buffer->selective_display_ellipses,
5305 Qnil, 5297 Qnil,
5306 "t means display ... on previous line when a line is invisible.\n\ 5298 "t means display ... on previous line when a line is invisible.");
5307Automatically becomes buffer-local when set in any fashion.");
5308#endif 5299#endif
5309 5300
5310 DEFVAR_PER_BUFFER ("overwrite-mode", &current_buffer->overwrite_mode, Qnil, 5301 DEFVAR_PER_BUFFER ("overwrite-mode", &current_buffer->overwrite_mode, Qnil,
@@ -5314,15 +5305,13 @@ The value should be one of `overwrite-mode-textual',\n\
5314If it is `overwrite-mode-textual', self-insertion still\n\ 5305If it is `overwrite-mode-textual', self-insertion still\n\
5315inserts at the end of a line, and inserts when point is before a tab,\n\ 5306inserts at the end of a line, and inserts when point is before a tab,\n\
5316until the tab is filled in.\n\ 5307until the tab is filled in.\n\
5317If `overwrite-mode-binary', self-insertion replaces newlines and tabs too.\n\ 5308If `overwrite-mode-binary', self-insertion replaces newlines and tabs too.");
5318Automatically becomes buffer-local when set in any fashion.");
5319 5309
5320#if 0 /* The doc string is too long for some compilers, 5310#if 0 /* The doc string is too long for some compilers,
5321 but make-docfile can find it in this comment. */ 5311 but make-docfile can find it in this comment. */
5322 DEFVAR_PER_BUFFER ("buffer-display-table", &current_buffer->display_table, 5312 DEFVAR_PER_BUFFER ("buffer-display-table", &current_buffer->display_table,
5323 Qnil, 5313 Qnil,
5324 "Display table that controls display of the contents of current buffer.\n\ 5314 "Display table that controls display of the contents of current buffer.\n\
5325Automatically becomes buffer-local when set in any fashion.\n\
5326\n\ 5315\n\
5327If this variable is nil, the value of `standard-display-table' is used.\n\ 5316If this variable is nil, the value of `standard-display-table' is used.\n\
5328Each window can have its own, overriding display table, see\n\ 5317Each window can have its own, overriding display table, see\n\
@@ -5363,37 +5352,32 @@ See also the functions `display-table-slot' and `set-display-table-slot'.");
5363 DEFVAR_PER_BUFFER ("left-margin-width", &current_buffer->left_margin_width, 5352 DEFVAR_PER_BUFFER ("left-margin-width", &current_buffer->left_margin_width,
5364 Qnil, 5353 Qnil,
5365 "*Width of left marginal area for display of a buffer.\n\ 5354 "*Width of left marginal area for display of a buffer.\n\
5366Automatically becomes buffer-local when set in any fashion.\n\
5367A value of nil means no marginal area."); 5355A value of nil means no marginal area.");
5368 5356
5369 DEFVAR_PER_BUFFER ("right-margin-width", &current_buffer->right_margin_width, 5357 DEFVAR_PER_BUFFER ("right-margin-width", &current_buffer->right_margin_width,
5370 Qnil, 5358 Qnil,
5371 "*Width of right marginal area for display of a buffer.\n\ 5359 "*Width of right marginal area for display of a buffer.\n\
5372Automatically becomes buffer-local when set in any fashion.\n\
5373A value of nil means no marginal area."); 5360A value of nil means no marginal area.");
5374 5361
5375 DEFVAR_PER_BUFFER ("indicate-empty-lines", 5362 DEFVAR_PER_BUFFER ("indicate-empty-lines",
5376 &current_buffer->indicate_empty_lines, Qnil, 5363 &current_buffer->indicate_empty_lines, Qnil,
5377 "*Visually indicate empty lines after the buffer end.\n\ 5364 "*Visually indicate empty lines after the buffer end.\n\
5378If non-nil, a bitmap is displayed in the left fringe of a window on\n\ 5365If non-nil, a bitmap is displayed in the left fringe of a window on\n\
5379window-systems.\n\ 5366window-systems.");
5380Automatically becomes buffer-local when set in any fashion.\n");
5381 5367
5382 DEFVAR_PER_BUFFER ("scroll-up-aggressively", 5368 DEFVAR_PER_BUFFER ("scroll-up-aggressively",
5383 &current_buffer->scroll_up_aggressively, Qnil, 5369 &current_buffer->scroll_up_aggressively, Qnil,
5384 "*If a number, scroll display up aggressively.\n\ 5370 "*If a number, scroll display up aggressively.\n\
5385If scrolling a window because point is above the window start, choose\n\ 5371If scrolling a window because point is above the window start, choose\n\
5386a new window start so that point ends up that fraction of the window's\n\ 5372a new window start so that point ends up that fraction of the window's\n\
5387height from the top of the window.\n\ 5373height from the top of the window.");
5388Automatically becomes buffer-local when set in any fashion.");
5389 5374
5390 DEFVAR_PER_BUFFER ("scroll-down-aggressively", 5375 DEFVAR_PER_BUFFER ("scroll-down-aggressively",
5391 &current_buffer->scroll_down_aggressively, Qnil, 5376 &current_buffer->scroll_down_aggressively, Qnil,
5392 "*If a number, scroll display down aggressively.\n\ 5377 "*If a number, scroll display down aggressively.\n\
5393If scrolling a window because point is below the window end, choose\n\ 5378If scrolling a window because point is below the window end, choose\n\
5394a new window start so that point ends up that fraction of the window's\n\ 5379a new window start so that point ends up that fraction of the window's\n\
5395height from the bottom of the window.\n\ 5380height from the bottom of the window.");
5396Automatically becomes buffer-local when set in any fashion.");
5397 5381
5398/*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol, 5382/*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol,
5399 "Don't ask."); 5383 "Don't ask.");
@@ -5448,7 +5432,6 @@ The functions are run using the `run-hooks' function.");
5448 but make-docfile can find it in this comment. */ 5432 but make-docfile can find it in this comment. */
5449 DEFVAR_PER_BUFFER ("buffer-undo-list", &current_buffer->undo_list, Qnil, 5433 DEFVAR_PER_BUFFER ("buffer-undo-list", &current_buffer->undo_list, Qnil,
5450 "List of undo entries in current buffer.\n\ 5434 "List of undo entries in current buffer.\n\
5451This variable is always local in all buffers.\n\
5452Recent changes come first; older changes follow newer.\n\ 5435Recent changes come first; older changes follow newer.\n\
5453\n\ 5436\n\
5454An entry (BEG . END) represents an insertion which begins at\n\ 5437An entry (BEG . END) represents an insertion which begins at\n\
@@ -5484,12 +5467,10 @@ If the value of the variable is t, undo information is not recorded.");
5484 0); 5467 0);
5485 5468
5486 DEFVAR_PER_BUFFER ("mark-active", &current_buffer->mark_active, Qnil, 5469 DEFVAR_PER_BUFFER ("mark-active", &current_buffer->mark_active, Qnil,
5487 "Non-nil means the mark and region are currently active in this buffer.\n\ 5470 "Non-nil means the mark and region are currently active in this buffer.");
5488Automatically local in all buffers.");
5489 5471
5490 DEFVAR_PER_BUFFER ("cache-long-line-scans", &current_buffer->cache_long_line_scans, Qnil, 5472 DEFVAR_PER_BUFFER ("cache-long-line-scans", &current_buffer->cache_long_line_scans, Qnil,
5491 "Non-nil means that Emacs should use caches to handle long lines more quickly.\n\ 5473 "Non-nil means that Emacs should use caches to handle long lines more quickly.\n\
5492This variable is buffer-local, in all buffers.\n\
5493\n\ 5474\n\
5494Normally, the line-motion functions work by scanning the buffer for\n\ 5475Normally, the line-motion functions work by scanning the buffer for\n\
5495newlines. Columnar operations (like move-to-column and\n\ 5476newlines. Columnar operations (like move-to-column and\n\
@@ -5517,19 +5498,16 @@ the cache should not affect the behavior of any of the motion\n\
5517functions; it should only affect their performance."); 5498functions; it should only affect their performance.");
5518 5499
5519 DEFVAR_PER_BUFFER ("point-before-scroll", &current_buffer->point_before_scroll, Qnil, 5500 DEFVAR_PER_BUFFER ("point-before-scroll", &current_buffer->point_before_scroll, Qnil,
5520 "Value of point before the last series of scroll operations, or nil.\n\ 5501 "Value of point before the last series of scroll operations, or nil.");
5521This variable is always local in all buffers.");
5522 5502
5523 DEFVAR_PER_BUFFER ("buffer-file-format", &current_buffer->file_format, Qnil, 5503 DEFVAR_PER_BUFFER ("buffer-file-format", &current_buffer->file_format, Qnil,
5524 "List of formats to use when saving this buffer.\n\ 5504 "List of formats to use when saving this buffer.\n\
5525This variable is always local in all buffers.\n\
5526Formats are defined by `format-alist'. This variable is\n\ 5505Formats are defined by `format-alist'. This variable is\n\
5527set when a file is visited. Automatically local in all buffers."); 5506set when a file is visited. Automatically local in all buffers.");
5528 5507
5529 DEFVAR_PER_BUFFER ("buffer-invisibility-spec", 5508 DEFVAR_PER_BUFFER ("buffer-invisibility-spec",
5530 &current_buffer->invisibility_spec, Qnil, 5509 &current_buffer->invisibility_spec, Qnil,
5531 "Invisibility spec of this buffer.\n\ 5510 "Invisibility spec of this buffer.\n\
5532This variable is always local in all buffers.\n\
5533The default is t, which means that text is invisible\n\ 5511The default is t, which means that text is invisible\n\
5534if it has a non-nil `invisible' property.\n\ 5512if it has a non-nil `invisible' property.\n\
5535If the value is a list, a text character is invisible if its `invisible'\n\ 5513If the value is a list, a text character is invisible if its `invisible'\n\
@@ -5541,13 +5519,11 @@ and they have an ellipsis as well if ELLIPSIS is non-nil.");
5541 DEFVAR_PER_BUFFER ("buffer-display-count", 5519 DEFVAR_PER_BUFFER ("buffer-display-count",
5542 &current_buffer->display_count, Qnil, 5520 &current_buffer->display_count, Qnil,
5543 "A number incremented each time this buffer is displayed in a window.\n\ 5521 "A number incremented each time this buffer is displayed in a window.\n\
5544This variable is always local in all buffers.\n\
5545The function `set-window-buffer increments it."); 5522The function `set-window-buffer increments it.");
5546 5523
5547 DEFVAR_PER_BUFFER ("buffer-display-time", 5524 DEFVAR_PER_BUFFER ("buffer-display-time",
5548 &current_buffer->display_time, Qnil, 5525 &current_buffer->display_time, Qnil,
5549 "Time stamp updated each time this buffer is displayed in a window.\n\ 5526 "Time stamp updated each time this buffer is displayed in a window.\n\
5550This variable is always local in all buffers.\n\
5551The function `set-window-buffer' updates this variable\n\ 5527The function `set-window-buffer' updates this variable\n\
5552to the value obtained by calling `current-time'.\n\ 5528to the value obtained by calling `current-time'.\n\
5553If the buffer has never been shown in a window, the value is nil."); 5529If the buffer has never been shown in a window, the value is nil.");