diff options
| author | Martin Rudalics | 2008-10-18 17:08:59 +0000 |
|---|---|---|
| committer | Martin Rudalics | 2008-10-18 17:08:59 +0000 |
| commit | d653c8cc93c2d7f522de4ba548a641cd657569bc (patch) | |
| tree | 3fe51414288053688424b9eb276807e1f5e17e75 /src/window.c | |
| parent | 26c6145fdabba5ebe35ca2146eacbecf04b822a9 (diff) | |
| download | emacs-d653c8cc93c2d7f522de4ba548a641cd657569bc.tar.gz emacs-d653c8cc93c2d7f522de4ba548a641cd657569bc.zip | |
(Fwindow_width, Fset_window_start)
(Fwindow_parameters, Fwindow_parameter, Fset_window_parameter)
(Fdelete_windows_on, Freplace_buffer_in_windows): Make
doc-strings follow code and Elisp manual more closely.
(Fwindow_dedicated_p): Make window argument optional.
(Fset_window_dedicated_p): Rename argument "arg" to "flag".
(Fset_window_buffer): Respect any non-nil dedicated value for
window. Rename "buffer" argument to "buffer_or_name".
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 116 |
1 files changed, 65 insertions, 51 deletions
diff --git a/src/window.c b/src/window.c index 9790d026a70..20b6ef846dc 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -515,9 +515,11 @@ WINDOW defaults to the selected window. */) | |||
| 515 | 515 | ||
| 516 | DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, | 516 | DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, |
| 517 | doc: /* Return the number of display columns in WINDOW. | 517 | doc: /* Return the number of display columns in WINDOW. |
| 518 | This is the width that is usable columns available for text in WINDOW. | 518 | WINDOW defaults to the selected window. |
| 519 | If you want to find out how many columns WINDOW takes up, | 519 | |
| 520 | use (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges))). */) | 520 | Note: The return value is the number of columns available for text in |
| 521 | WINDOW. If you want to find out how many columns WINDOW takes up, use | ||
| 522 | (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges))). */) | ||
| 521 | (window) | 523 | (window) |
| 522 | Lisp_Object window; | 524 | Lisp_Object window; |
| 523 | { | 525 | { |
| @@ -1234,9 +1236,9 @@ Return POS. */) | |||
| 1234 | 1236 | ||
| 1235 | DEFUN ("set-window-start", Fset_window_start, Sset_window_start, 2, 3, 0, | 1237 | DEFUN ("set-window-start", Fset_window_start, Sset_window_start, 2, 3, 0, |
| 1236 | doc: /* Make display in WINDOW start at position POS in WINDOW's buffer. | 1238 | doc: /* Make display in WINDOW start at position POS in WINDOW's buffer. |
| 1237 | Return POS. | 1239 | WINDOW defaults to the selected window. Return POS. |
| 1238 | Optional third arg NOFORCE non-nil inhibits next redisplay | 1240 | Optional third arg NOFORCE non-nil inhibits next redisplay from |
| 1239 | from overriding motion of point in order to display at this exact start. */) | 1241 | overriding motion of point in order to display at this exact start. */) |
| 1240 | (window, pos, noforce) | 1242 | (window, pos, noforce) |
| 1241 | Lisp_Object window, pos, noforce; | 1243 | Lisp_Object window, pos, noforce; |
| 1242 | { | 1244 | { |
| @@ -1257,10 +1259,17 @@ from overriding motion of point in order to display at this exact start. */) | |||
| 1257 | return pos; | 1259 | return pos; |
| 1258 | } | 1260 | } |
| 1259 | 1261 | ||
| 1262 | |||
| 1260 | DEFUN ("window-dedicated-p", Fwindow_dedicated_p, Swindow_dedicated_p, | 1263 | DEFUN ("window-dedicated-p", Fwindow_dedicated_p, Swindow_dedicated_p, |
| 1261 | 1, 1, 0, | 1264 | 0, 1, 0, |
| 1262 | doc: /* Return WINDOW's dedicated object, usually t or nil. | 1265 | doc: /* Return non-nil when WINDOW is dedicated to its buffer. |
| 1263 | See also `set-window-dedicated-p'. */) | 1266 | WINDOW defaults to the selected window. |
| 1267 | |||
| 1268 | When a window is dedicated to its buffer, `display-buffer' and | ||
| 1269 | `set-window-buffer' will refrain from displaying another buffer in it. | ||
| 1270 | `get-lru-window' and `get-largest-window' treat dedicated windows | ||
| 1271 | specially. `delete-windows-on' and `replace-buffer-in-windows' | ||
| 1272 | sometimes delete a dedicated window and the containing frame. */) | ||
| 1264 | (window) | 1273 | (window) |
| 1265 | Lisp_Object window; | 1274 | Lisp_Object window; |
| 1266 | { | 1275 | { |
| @@ -1269,26 +1278,31 @@ See also `set-window-dedicated-p'. */) | |||
| 1269 | 1278 | ||
| 1270 | DEFUN ("set-window-dedicated-p", Fset_window_dedicated_p, | 1279 | DEFUN ("set-window-dedicated-p", Fset_window_dedicated_p, |
| 1271 | Sset_window_dedicated_p, 2, 2, 0, | 1280 | Sset_window_dedicated_p, 2, 2, 0, |
| 1272 | doc: /* Control whether WINDOW is dedicated to the buffer it displays. | 1281 | doc: /* Mark WINDOW as dedicated according to FLAG. |
| 1273 | If it is dedicated, Emacs will not automatically change | 1282 | WINDOW defaults to the selected window. FLAG non-nil means mark WINDOW |
| 1274 | which buffer appears in it. | 1283 | as dedicated to its buffer. FLAG nil means mark WINDOW as nondedicated. |
| 1275 | The second argument is the new value for the dedication flag; | 1284 | Return FLAG. |
| 1276 | non-nil means yes. */) | 1285 | |
| 1277 | (window, arg) | 1286 | When a window is dedicated to its buffer, `display-buffer' and |
| 1278 | Lisp_Object window, arg; | 1287 | `set-window-buffer' will refrain from displaying another buffer in it. |
| 1288 | `get-lru-window' and `get-largest-window' treat dedicated windows | ||
| 1289 | specially. `delete-windows-on' and `replace-buffer-in-windows' | ||
| 1290 | sometimes delete a dedicated window and the containing frame. */) | ||
| 1291 | (window, flag) | ||
| 1292 | Lisp_Object window, flag; | ||
| 1279 | { | 1293 | { |
| 1280 | register struct window *w = decode_window (window); | 1294 | register struct window *w = decode_window (window); |
| 1281 | 1295 | ||
| 1282 | w->dedicated = arg; | 1296 | w->dedicated = flag; |
| 1283 | |||
| 1284 | return w->dedicated; | 1297 | return w->dedicated; |
| 1285 | } | 1298 | } |
| 1286 | 1299 | ||
| 1300 | |||
| 1287 | DEFUN ("window-parameters", Fwindow_parameters, Swindow_parameters, | 1301 | DEFUN ("window-parameters", Fwindow_parameters, Swindow_parameters, |
| 1288 | 0, 1, 0, | 1302 | 0, 1, 0, |
| 1289 | doc: /* Return the parameters-alist of window WINDOW. | 1303 | doc: /* Return the parameters of WINDOW and their values. |
| 1290 | It is a list of elements of the form (PARAMETER . VALUE). | 1304 | WINDOW defaults to the selected window. The return value is a list of |
| 1291 | If WINDOW is omitted, return information on the currently selected window. */) | 1305 | elements of the form (PARAMETER . VALUE). */) |
| 1292 | (window) | 1306 | (window) |
| 1293 | Lisp_Object window; | 1307 | Lisp_Object window; |
| 1294 | { | 1308 | { |
| @@ -1297,8 +1311,8 @@ If WINDOW is omitted, return information on the currently selected window. */) | |||
| 1297 | 1311 | ||
| 1298 | DEFUN ("window-parameter", Fwindow_parameter, Swindow_parameter, | 1312 | DEFUN ("window-parameter", Fwindow_parameter, Swindow_parameter, |
| 1299 | 2, 2, 0, | 1313 | 2, 2, 0, |
| 1300 | doc: /* Return WINDOW's value for parameter PARAMETER. | 1314 | doc: /* Return WINDOW's value for PARAMETER. |
| 1301 | If WINDOW is nil, describe the currently selected window. */) | 1315 | WINDOW defaults to the selected window. */) |
| 1302 | (window, parameter) | 1316 | (window, parameter) |
| 1303 | Lisp_Object window, parameter; | 1317 | Lisp_Object window, parameter; |
| 1304 | { | 1318 | { |
| @@ -1308,12 +1322,10 @@ If WINDOW is nil, describe the currently selected window. */) | |||
| 1308 | return CDR_SAFE (result); | 1322 | return CDR_SAFE (result); |
| 1309 | } | 1323 | } |
| 1310 | 1324 | ||
| 1311 | |||
| 1312 | DEFUN ("set-window-parameter", Fset_window_parameter, | 1325 | DEFUN ("set-window-parameter", Fset_window_parameter, |
| 1313 | Sset_window_parameter, 3, 3, 0, | 1326 | Sset_window_parameter, 3, 3, 0, |
| 1314 | doc: /* Set window parameter PARAMETER to VALUE on WINDOW. | 1327 | doc: /* Set WINDOW's value of PARAMETER to VALUE. |
| 1315 | If WINDOW is nil, use the currently selected window. | 1328 | WINDOW defaults to the selected window. Return VALUE. */) |
| 1316 | Return VALUE. */) | ||
| 1317 | (window, parameter, value) | 1329 | (window, parameter, value) |
| 1318 | Lisp_Object window, parameter, value; | 1330 | Lisp_Object window, parameter, value; |
| 1319 | { | 1331 | { |
| @@ -2488,7 +2500,9 @@ If optional argument FRAME is `visible', search all visible frames. | |||
| 2488 | If FRAME is 0, search all visible and iconified frames. | 2500 | If FRAME is 0, search all visible and iconified frames. |
| 2489 | If FRAME is nil, search all frames. | 2501 | If FRAME is nil, search all frames. |
| 2490 | If FRAME is t, search only the selected frame. | 2502 | If FRAME is t, search only the selected frame. |
| 2491 | If FRAME is a frame, search only that frame. */) | 2503 | If FRAME is a frame, search only that frame. |
| 2504 | When a window showing BUFFER is dedicated and the only window of its | ||
| 2505 | frame, that frame is deleted when there are other frames left. */) | ||
| 2492 | (buffer, frame) | 2506 | (buffer, frame) |
| 2493 | Lisp_Object buffer, frame; | 2507 | Lisp_Object buffer, frame; |
| 2494 | { | 2508 | { |
| @@ -2513,7 +2527,10 @@ DEFUN ("replace-buffer-in-windows", Freplace_buffer_in_windows, | |||
| 2513 | Sreplace_buffer_in_windows, | 2527 | Sreplace_buffer_in_windows, |
| 2514 | 1, 1, "bReplace buffer in windows: ", | 2528 | 1, 1, "bReplace buffer in windows: ", |
| 2515 | doc: /* Replace BUFFER with some other buffer in all windows showing it. | 2529 | doc: /* Replace BUFFER with some other buffer in all windows showing it. |
| 2516 | BUFFER may be a buffer or the name of an existing buffer. */) | 2530 | BUFFER may be a buffer or the name of an existing buffer. |
| 2531 | When a window showing BUFFER is dedicated that window is deleted. When | ||
| 2532 | that window is the only window on its frame, that frame is deleted too | ||
| 2533 | when there are other frames left. */) | ||
| 2517 | (buffer) | 2534 | (buffer) |
| 2518 | Lisp_Object buffer; | 2535 | Lisp_Object buffer; |
| 2519 | { | 2536 | { |
| @@ -3449,38 +3466,35 @@ set_window_buffer (window, buffer, run_hooks_p, keep_margins_p) | |||
| 3449 | 3466 | ||
| 3450 | 3467 | ||
| 3451 | DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, | 3468 | DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, |
| 3452 | doc: /* Make WINDOW display BUFFER as its contents. | 3469 | doc: /* Make WINDOW display BUFFER-OR-NAME as its contents. |
| 3453 | BUFFER can be a buffer or the name of an existing buffer. | 3470 | WINDOW defaults to the selected window. BUFFER-OR-NAME must be a buffer |
| 3454 | Optional third arg KEEP-MARGINS non-nil means that WINDOW's current | 3471 | or the name of an existing buffer. Optional third argument KEEP-MARGINS |
| 3455 | display margins, fringe widths, and scroll bar settings are maintained; | 3472 | non-nil means that WINDOW's current display margins, fringe widths, and |
| 3456 | the default is to reset these from BUFFER's local settings or the frame | 3473 | scroll bar settings are preserved; the default is to reset these from |
| 3457 | defaults. | 3474 | the local settings for BUFFER-OR-NAME or the frame defaults. Return nil |
| 3475 | |||
| 3476 | This function throws an error when WINDOW is dedicated to its buffer and | ||
| 3477 | does not already display BUFFER-OR-NAME. | ||
| 3458 | 3478 | ||
| 3459 | This function runs the hook `window-scroll-functions'. */) | 3479 | This function runs the hook `window-scroll-functions'. */) |
| 3460 | (window, buffer, keep_margins) | 3480 | (window, buffer_or_name, keep_margins) |
| 3461 | register Lisp_Object window, buffer, keep_margins; | 3481 | register Lisp_Object window, buffer_or_name, keep_margins; |
| 3462 | { | 3482 | { |
| 3463 | register Lisp_Object tem; | 3483 | register Lisp_Object tem, buffer; |
| 3464 | register struct window *w = decode_window (window); | 3484 | register struct window *w = decode_window (window); |
| 3465 | 3485 | ||
| 3466 | XSETWINDOW (window, w); | 3486 | XSETWINDOW (window, w); |
| 3467 | buffer = Fget_buffer (buffer); | 3487 | buffer = Fget_buffer (buffer_or_name); |
| 3468 | CHECK_BUFFER (buffer); | 3488 | CHECK_BUFFER (buffer); |
| 3469 | |||
| 3470 | if (NILP (XBUFFER (buffer)->name)) | 3489 | if (NILP (XBUFFER (buffer)->name)) |
| 3471 | error ("Attempt to display deleted buffer"); | 3490 | error ("Attempt to display deleted buffer"); |
| 3472 | 3491 | ||
| 3473 | tem = w->buffer; | 3492 | tem = w->buffer; |
| 3474 | if (NILP (tem)) | 3493 | if (!EQ (tem, Qt)) |
| 3475 | error ("Window is deleted"); | 3494 | /* w->buffer is t when the window is first being set up. */ |
| 3476 | else if (! EQ (tem, Qt)) /* w->buffer is t when the window | ||
| 3477 | is first being set up. */ | ||
| 3478 | { | 3495 | { |
| 3479 | if (!EQ (tem, buffer)) | 3496 | if (!NILP (w->dedicated) && !EQ (tem, buffer)) |
| 3480 | if (EQ (w->dedicated, Qt)) | 3497 | error ("Window is dedicated to `%s'", SDATA (XBUFFER (tem)->name)); |
| 3481 | error ("Window is dedicated to `%s'", SDATA (XBUFFER (tem)->name)); | ||
| 3482 | else | ||
| 3483 | w->dedicated = Qnil; | ||
| 3484 | 3498 | ||
| 3485 | unshow_buffer (w); | 3499 | unshow_buffer (w); |
| 3486 | } | 3500 | } |
| @@ -3489,8 +3503,8 @@ This function runs the hook `window-scroll-functions'. */) | |||
| 3489 | return Qnil; | 3503 | return Qnil; |
| 3490 | } | 3504 | } |
| 3491 | 3505 | ||
| 3492 | /* Note that selected_window can be nil | 3506 | /* Note that selected_window can be nil when this is called from |
| 3493 | when this is called from Fset_window_configuration. */ | 3507 | Fset_window_configuration. */ |
| 3494 | 3508 | ||
| 3495 | DEFUN ("select-window", Fselect_window, Sselect_window, 1, 2, 0, | 3509 | DEFUN ("select-window", Fselect_window, Sselect_window, 1, 2, 0, |
| 3496 | doc: /* Select WINDOW. Most editing will apply to WINDOW's buffer. | 3510 | doc: /* Select WINDOW. Most editing will apply to WINDOW's buffer. |