aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
authorMiles Bader2004-06-28 07:56:49 +0000
committerMiles Bader2004-06-28 07:56:49 +0000
commit327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801 (patch)
tree21de188e13b5e41a79bb50040933072ae0235217 /src/window.c
parent852f73b7fa7b71910282eacb6263b3ecfd4ee783 (diff)
parent376de73927383d6062483db10b8a82448505f52b (diff)
downloademacs-327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801.tar.gz
emacs-327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801.zip
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-15
Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-218 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-220 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-221 Restore deleted tagline in etc/TUTORIAL.ru * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-222 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-228 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-229 Remove TeX output files from the archive * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-230 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248 src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-256 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-258 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-263 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-264 Update from CVS: lispref/display.texi: emacs -> Emacs. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-265 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-274 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-275 Update from CVS: man/makefile.w32-in: Revert last change * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-276 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-295 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-296 Allow restarting an existing debugger session that's exited * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-297 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328 Update from CVS: src/.gdbinit (xsymbol): Fix last change. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-344 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-345 Tweak source regexps so that building in place won't cause problems * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-346 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-351 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-352 Update from CVS: lisp/flymake.el: New file. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-361 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362 Support " [...]" style defaults in minibuffer-electric-default-mode * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-363 (read-number): Use canonical format for default in prompt. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-364 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-367 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368 Improve display-supports-face-attributes-p on non-ttys * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369 Rewrite face-differs-from-default-p * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-370 Move `display-supports-face-attributes-p' entirely into C code * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-371 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372 Simplify face-differs-from-default-p; don't consider :stipple. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-373 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-374 (tty_supports_face_attributes_p): Ensure attributes differ from default * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-375 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-376 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-377 (Fdisplay_supports_face_attributes_p): Work around bootstrapping problem * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-378 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-380 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-381 Face merging cleanups * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-382 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385 src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-395 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396 Tweak arch tagging to make build/install-in-place less annoying * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-397 Work around vc-arch problems when building eshell * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-398 Tweak permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-399 Tweak directory permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-400 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-401 More build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-402 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-403 Yet more build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-404 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-409 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-410 Make sure image types are initialized for lookup too * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-411 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-416 Update from CVS
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c126
1 files changed, 63 insertions, 63 deletions
diff --git a/src/window.c b/src/window.c
index 47bbf0806ee..d3203c99e90 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1,6 +1,6 @@
1/* Window creation, deletion and examination for GNU Emacs. 1/* Window creation, deletion and examination for GNU Emacs.
2 Does not include redisplay. 2 Does not include redisplay.
3 Copyright (C) 1985,86,87,93,94,95,96,97,1998,2000, 2001, 2002, 2003 3 Copyright (C) 1985,86,87, 1993,94,95,96,97,98, 2000,01,02,03,04
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -322,7 +322,11 @@ DEFUN ("pos-visible-in-window-p", Fpos_visible_in_window_p,
322Return nil if that position is scrolled vertically out of view. 322Return nil if that position is scrolled vertically out of view.
323If a character is only partially visible, nil is returned, unless the 323If a character is only partially visible, nil is returned, unless the
324optional argument PARTIALLY is non-nil. 324optional argument PARTIALLY is non-nil.
325POS defaults to point in WINDOW; WINDOW defaults to the selected window. */) 325POS defaults to point in WINDOW; WINDOW defaults to the selected window.
326
327If POS is visible, return t if PARTIALLY is nil; if PARTIALLY is non-nil,
328return value is a list (X Y PARTIAL) where X and Y are the pixel relative
329coordinate */)
326 (pos, window, partially) 330 (pos, window, partially)
327 Lisp_Object pos, window, partially; 331 Lisp_Object pos, window, partially;
328{ 332{
@@ -330,8 +334,9 @@ POS defaults to point in WINDOW; WINDOW defaults to the selected window. */)
330 register int posint; 334 register int posint;
331 register struct buffer *buf; 335 register struct buffer *buf;
332 struct text_pos top; 336 struct text_pos top;
333 Lisp_Object in_window; 337 Lisp_Object in_window = Qnil;
334 int fully_p; 338 int fully_p = 1;
339 int x, y;
335 340
336 w = decode_window (window); 341 w = decode_window (window);
337 buf = XBUFFER (w->buffer); 342 buf = XBUFFER (w->buffer);
@@ -347,38 +352,20 @@ POS defaults to point in WINDOW; WINDOW defaults to the selected window. */)
347 else 352 else
348 posint = XMARKER (w->pointm)->charpos; 353 posint = XMARKER (w->pointm)->charpos;
349 354
350 /* If position is above window start, it's not visible. */ 355 /* If position is above window start or outside buffer boundaries,
351 if (posint < CHARPOS (top)) 356 or if window start is out of range, position is not visible. */
352 in_window = Qnil; 357 if (posint >= CHARPOS (top)
353 else if (XFASTINT (w->last_modified) >= BUF_MODIFF (buf) 358 && posint <= BUF_ZV (buf)
354 && XFASTINT (w->last_overlay_modified) >= BUF_OVERLAY_MODIFF (buf) 359 && CHARPOS (top) >= BUF_BEGV (buf)
355 && posint < BUF_Z (buf) - XFASTINT (w->window_end_pos)) 360 && CHARPOS (top) <= BUF_ZV (buf)
356 { 361 && pos_visible_p (w, posint, &fully_p, &x, &y, NILP (partially))
357 /* If frame is up-to-date, and POSINT is < window end pos, use 362 && (!NILP (partially) || fully_p))
358 that info. This doesn't work for POSINT == end pos, because 363 in_window = Qt;
359 the window end pos is actually the position _after_ the last 364
360 char in the window. */ 365 if (!NILP (in_window) && !NILP (partially))
361 if (NILP (partially)) 366 in_window = Fcons (make_number (x),
362 { 367 Fcons (make_number (y),
363 pos_visible_p (w, posint, &fully_p, NILP (partially)); 368 Fcons (fully_p ? Qt : Qnil, Qnil)));
364 in_window = fully_p ? Qt : Qnil;
365 }
366 else
367 in_window = Qt;
368 }
369 else if (posint > BUF_ZV (buf))
370 in_window = Qnil;
371 else if (CHARPOS (top) < BUF_BEGV (buf) || CHARPOS (top) > BUF_ZV (buf))
372 /* If window start is out of range, do something reasonable. */
373 in_window = Qnil;
374 else
375 {
376 if (pos_visible_p (w, posint, &fully_p, NILP (partially)))
377 in_window = !NILP (partially) || fully_p ? Qt : Qnil;
378 else
379 in_window = Qnil;
380 }
381
382 return in_window; 369 return in_window;
383} 370}
384 371
@@ -3036,7 +3023,7 @@ set_window_buffer (window, buffer, run_hooks_p, keep_margins_p)
3036DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, 3023DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0,
3037 doc: /* Make WINDOW display BUFFER as its contents. 3024 doc: /* Make WINDOW display BUFFER as its contents.
3038BUFFER can be a buffer or buffer name. 3025BUFFER can be a buffer or buffer name.
3039Optional third arg KEEP_MARGINS non-nil means that WINDOW's current 3026Optional third arg KEEP-MARGINS non-nil means that WINDOW's current
3040display margins, fringe widths, and scroll bar settings are maintained; 3027display margins, fringe widths, and scroll bar settings are maintained;
3041the default is to reset these from BUFFER's local settings or the frame 3028the default is to reset these from BUFFER's local settings or the frame
3042defaults. */) 3029defaults. */)
@@ -3075,8 +3062,8 @@ defaults. */)
3075 3062
3076DEFUN ("select-window", Fselect_window, Sselect_window, 1, 2, 0, 3063DEFUN ("select-window", Fselect_window, Sselect_window, 1, 2, 0,
3077 doc: /* Select WINDOW. Most editing will apply to WINDOW's buffer. 3064 doc: /* Select WINDOW. Most editing will apply to WINDOW's buffer.
3078If WINDOW is not already selected, also make WINDOW's buffer current. 3065If WINDOW is not already selected, make WINDOW's buffer current
3079Also make WINDOW the frame's selected window. 3066and make WINDOW the frame's selected window.
3080Optional second arg NORECORD non-nil means 3067Optional second arg NORECORD non-nil means
3081do not put this buffer at the front of the list of recently selected ones. 3068do not put this buffer at the front of the list of recently selected ones.
3082 3069
@@ -3283,6 +3270,10 @@ If FRAME is nil, search only the selected frame
3283 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil, 3270 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil,
3284 which means search visible and iconified frames. 3271 which means search visible and iconified frames.
3285 3272
3273If a full-width window on a splittable frame is available to display
3274the buffer, it may be split, subject to the value of the variable
3275`split-height-threshold'.
3276
3286If `even-window-heights' is non-nil, window heights will be evened out 3277If `even-window-heights' is non-nil, window heights will be evened out
3287if displaying the buffer causes two vertically adjacent windows to be 3278if displaying the buffer causes two vertically adjacent windows to be
3288displayed. */) 3279displayed. */)
@@ -3460,7 +3451,7 @@ DEFUN ("force-window-update", Fforce_window_update, Sforce_window_update,
3460 0, 1, 0, 3451 0, 1, 0,
3461 doc: /* Force redisplay of all windows. 3452 doc: /* Force redisplay of all windows.
3462If optional arg OBJECT is a window, force redisplay of that window only. 3453If optional arg OBJECT is a window, force redisplay of that window only.
3463If OBJECT is a buffer or buffer name, force redisplay of all windows 3454If OBJECT is a buffer or buffer name, force redisplay of all windows
3464displaying that buffer. */) 3455displaying that buffer. */)
3465 (object) 3456 (object)
3466 Lisp_Object object; 3457 Lisp_Object object;
@@ -3482,7 +3473,7 @@ displaying that buffer. */)
3482 ++update_mode_lines; 3473 ++update_mode_lines;
3483 return Qt; 3474 return Qt;
3484 } 3475 }
3485 3476
3486 if (STRINGP (object)) 3477 if (STRINGP (object))
3487 object = Fget_buffer (object); 3478 object = Fget_buffer (object);
3488 if (BUFFERP (object) && !NILP (XBUFFER (object)->name)) 3479 if (BUFFERP (object) && !NILP (XBUFFER (object)->name))
@@ -3547,7 +3538,7 @@ temp_output_buffer_show (buf)
3547 Lisp_Object prev_window, prev_buffer; 3538 Lisp_Object prev_window, prev_buffer;
3548 prev_window = selected_window; 3539 prev_window = selected_window;
3549 XSETBUFFER (prev_buffer, old); 3540 XSETBUFFER (prev_buffer, old);
3550 3541
3551 /* Select the window that was chosen, for running the hook. 3542 /* Select the window that was chosen, for running the hook.
3552 Note: Both Fselect_window and select_window_norecord may 3543 Note: Both Fselect_window and select_window_norecord may
3553 set-buffer to the buffer displayed in the window, 3544 set-buffer to the buffer displayed in the window,
@@ -3598,7 +3589,8 @@ DEFUN ("split-window", Fsplit_window, Ssplit_window, 0, 3, "",
3598WINDOW defaults to selected one and SIZE to half its size. 3589WINDOW defaults to selected one and SIZE to half its size.
3599If optional third arg HORFLAG is non-nil, split side by side 3590If optional third arg HORFLAG is non-nil, split side by side
3600and put SIZE columns in the first of the pair. In that case, 3591and put SIZE columns in the first of the pair. In that case,
3601SIZE includes that window's scroll bar, or the divider column to its right. */) 3592SIZE includes that window's scroll bar, or the divider column to its right.
3593Returns the newly-created window. */)
3602 (window, size, horflag) 3594 (window, size, horflag)
3603 Lisp_Object window, size, horflag; 3595 Lisp_Object window, size, horflag;
3604{ 3596{
@@ -6067,7 +6059,7 @@ If TYPE is t, use the frame's scroll-bar type. */)
6067 vertical_type = Qnil; 6059 vertical_type = Qnil;
6068 6060
6069 if (!(EQ (vertical_type, Qnil) 6061 if (!(EQ (vertical_type, Qnil)
6070 || EQ (vertical_type, Qleft) 6062 || EQ (vertical_type, Qleft)
6071 || EQ (vertical_type, Qright) 6063 || EQ (vertical_type, Qright)
6072 || EQ (vertical_type, Qt))) 6064 || EQ (vertical_type, Qt)))
6073 error ("Invalid type of vertical scroll bar"); 6065 error ("Invalid type of vertical scroll bar");
@@ -6116,12 +6108,13 @@ value. */)
6116 Smooth scrolling 6108 Smooth scrolling
6117 ***********************************************************************/ 6109 ***********************************************************************/
6118 6110
6119DEFUN ("window-vscroll", Fwindow_vscroll, Swindow_vscroll, 0, 1, 0, 6111DEFUN ("window-vscroll", Fwindow_vscroll, Swindow_vscroll, 0, 2, 0,
6120 doc: /* Return the amount by which WINDOW is scrolled vertically. 6112 doc: /* Return the amount by which WINDOW is scrolled vertically.
6121Use the selected window if WINDOW is nil or omitted. 6113Use the selected window if WINDOW is nil or omitted.
6122Value is a multiple of the canonical character height of WINDOW. */) 6114Normally, value is a multiple of the canonical character height of WINDOW;
6123 (window) 6115optional second arg PIXELS_P means value is measured in pixels. */)
6124 Lisp_Object window; 6116 (window, pixels_p)
6117 Lisp_Object window, pixels_p;
6125{ 6118{
6126 Lisp_Object result; 6119 Lisp_Object result;
6127 struct frame *f; 6120 struct frame *f;
@@ -6135,7 +6128,9 @@ Value is a multiple of the canonical character height of WINDOW. */)
6135 f = XFRAME (w->frame); 6128 f = XFRAME (w->frame);
6136 6129
6137 if (FRAME_WINDOW_P (f)) 6130 if (FRAME_WINDOW_P (f))
6138 result = FRAME_CANON_Y_FROM_PIXEL_Y (f, -w->vscroll); 6131 result = (NILP (pixels_p)
6132 ? FRAME_CANON_Y_FROM_PIXEL_Y (f, -w->vscroll)
6133 : make_number (-w->vscroll));
6139 else 6134 else
6140 result = make_number (0); 6135 result = make_number (0);
6141 return result; 6136 return result;
@@ -6143,12 +6138,13 @@ Value is a multiple of the canonical character height of WINDOW. */)
6143 6138
6144 6139
6145DEFUN ("set-window-vscroll", Fset_window_vscroll, Sset_window_vscroll, 6140DEFUN ("set-window-vscroll", Fset_window_vscroll, Sset_window_vscroll,
6146 2, 2, 0, 6141 2, 3, 0,
6147 doc: /* Set amount by which WINDOW should be scrolled vertically to VSCROLL. 6142 doc: /* Set amount by which WINDOW should be scrolled vertically to VSCROLL.
6148WINDOW nil means use the selected window. VSCROLL is a non-negative 6143WINDOW nil means use the selected window. Normally, VSCROLL is a
6149multiple of the canonical character height of WINDOW. */) 6144non-negative multiple of the canonical character height of WINDOW;
6150 (window, vscroll) 6145optional third arg PIXELS_P non-nil means that VSCROLL is in pixels. */)
6151 Lisp_Object window, vscroll; 6146 (window, vscroll, pixels_p)
6147 Lisp_Object window, vscroll, pixels_p;
6152{ 6148{
6153 struct window *w; 6149 struct window *w;
6154 struct frame *f; 6150 struct frame *f;
@@ -6166,7 +6162,9 @@ multiple of the canonical character height of WINDOW. */)
6166 { 6162 {
6167 int old_dy = w->vscroll; 6163 int old_dy = w->vscroll;
6168 6164
6169 w->vscroll = - FRAME_LINE_HEIGHT (f) * XFLOATINT (vscroll); 6165 w->vscroll = - (NILP (pixels_p)
6166 ? FRAME_LINE_HEIGHT (f) * XFLOATINT (vscroll)
6167 : XFLOATINT (vscroll));
6170 w->vscroll = min (w->vscroll, 0); 6168 w->vscroll = min (w->vscroll, 0);
6171 6169
6172 /* Adjust glyph matrix of the frame if the virtual display 6170 /* Adjust glyph matrix of the frame if the virtual display
@@ -6178,7 +6176,7 @@ multiple of the canonical character height of WINDOW. */)
6178 XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1; 6176 XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1;
6179 } 6177 }
6180 6178
6181 return Fwindow_vscroll (window); 6179 return Fwindow_vscroll (window, pixels_p);
6182} 6180}
6183 6181
6184 6182
@@ -6506,9 +6504,10 @@ using `special-display-function'. See also `special-display-regexps'.
6506An element of the list can be a list instead of just a string. 6504An element of the list can be a list instead of just a string.
6507There are two ways to use a list as an element: 6505There are two ways to use a list as an element:
6508 (BUFFER FRAME-PARAMETERS...) (BUFFER FUNCTION OTHER-ARGS...) 6506 (BUFFER FRAME-PARAMETERS...) (BUFFER FUNCTION OTHER-ARGS...)
6509In the first case, FRAME-PARAMETERS are used to create the frame. 6507In the first case, the FRAME-PARAMETERS are pairs of the form
6510In the latter case, FUNCTION is called with BUFFER as the first argument, 6508\(PARAMETER . VALUE); these parameter values are used to create the frame.
6511followed by OTHER-ARGS--it can display BUFFER in any way it likes. 6509In the second case, FUNCTION is called with BUFFER as the first argument,
6510followed by the OTHER-ARGS--it can display BUFFER in any way it likes.
6512All this is done by the function found in `special-display-function'. 6511All this is done by the function found in `special-display-function'.
6513 6512
6514If the specified frame parameters include (same-buffer . t), the 6513If the specified frame parameters include (same-buffer . t), the
@@ -6531,9 +6530,10 @@ using `special-display-function'.
6531An element of the list can be a list instead of just a string. 6530An element of the list can be a list instead of just a string.
6532There are two ways to use a list as an element: 6531There are two ways to use a list as an element:
6533 (REGEXP FRAME-PARAMETERS...) (REGEXP FUNCTION OTHER-ARGS...) 6532 (REGEXP FRAME-PARAMETERS...) (REGEXP FUNCTION OTHER-ARGS...)
6534In the first case, FRAME-PARAMETERS are used to create the frame. 6533In the first case, the FRAME-PARAMETERS are pairs of the form
6535In the latter case, FUNCTION is called with the buffer as first argument, 6534\(PARAMETER . VALUE); these parameter values are used to create the frame.
6536followed by OTHER-ARGS--it can display the buffer in any way it likes. 6535In the second case, FUNCTION is called with BUFFER as the first argument,
6536followed by the OTHER-ARGS--it can display the buffer in any way it likes.
6537All this is done by the function found in `special-display-function'. 6537All this is done by the function found in `special-display-function'.
6538 6538
6539If the specified frame parameters include (same-buffer . t), the 6539If the specified frame parameters include (same-buffer . t), the
@@ -6599,7 +6599,7 @@ See also `same-window-buffer-names'. */);
6599 next_screen_context_lines = 2; 6599 next_screen_context_lines = 2;
6600 6600
6601 DEFVAR_INT ("split-height-threshold", &split_height_threshold, 6601 DEFVAR_INT ("split-height-threshold", &split_height_threshold,
6602 doc: /* *display-buffer would prefer to split the largest window if this large. 6602 doc: /* *A window must be at least this tall to be eligible for splitting by `display-buffer'.
6603If there is only one window, it is split regardless of this value. */); 6603If there is only one window, it is split regardless of this value. */);
6604 split_height_threshold = 500; 6604 split_height_threshold = 500;
6605 6605