aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman2004-01-03 21:17:51 +0000
committerRichard M. Stallman2004-01-03 21:17:51 +0000
commite995d23a399cdc4c21d2ea515f708d6bc19ef4ab (patch)
treedf3487fc2d3b03cf9f2765de93b43e23e69e642a /src
parent972c0c4936630d1cbc26eb14efc851fc689b96e3 (diff)
downloademacs-e995d23a399cdc4c21d2ea515f708d6bc19ef4ab.tar.gz
emacs-e995d23a399cdc4c21d2ea515f708d6bc19ef4ab.zip
(decode_any_window): New function.
(Fwindow_height, Fwindow_width, Fwindow_edges) (Fwindow_pixel_edges, Fwindow_inside_edges) (Fwindow_inside_pixel_edges): Use decode_any_window.
Diffstat (limited to 'src')
-rw-r--r--src/window.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/window.c b/src/window.c
index 3c0f3a17439..8d56b330d93 100644
--- a/src/window.c
+++ b/src/window.c
@@ -392,6 +392,17 @@ decode_window (window)
392 return XWINDOW (window); 392 return XWINDOW (window);
393} 393}
394 394
395static struct window *
396decode_any_window (window)
397 register Lisp_Object window;
398{
399 if (NILP (window))
400 return XWINDOW (selected_window);
401
402 CHECK_WINDOW (window);
403 return XWINDOW (window);
404}
405
395DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, 406DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0,
396 doc: /* Return the buffer that WINDOW is displaying. */) 407 doc: /* Return the buffer that WINDOW is displaying. */)
397 (window) 408 (window)
@@ -405,7 +416,7 @@ DEFUN ("window-height", Fwindow_height, Swindow_height, 0, 1, 0,
405 (window) 416 (window)
406 Lisp_Object window; 417 Lisp_Object window;
407{ 418{
408 return decode_window (window)->total_lines; 419 return decode_any_window (window)->total_lines;
409} 420}
410 421
411DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, 422DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0,
@@ -416,7 +427,7 @@ use (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges))). */)
416 (window) 427 (window)
417 Lisp_Object window; 428 Lisp_Object window;
418{ 429{
419 return make_number (window_box_text_cols (decode_window (window))); 430 return make_number (window_box_text_cols (decode_any_window (window)));
420} 431}
421 432
422DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0, 433DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0,
@@ -489,7 +500,7 @@ To get the edges of the actual text area, use `window-inside-edges'. */)
489 (window) 500 (window)
490 Lisp_Object window; 501 Lisp_Object window;
491{ 502{
492 register struct window *w = decode_window (window); 503 register struct window *w = decode_any_window (window);
493 504
494 return Fcons (make_number (WINDOW_LEFT_EDGE_COL (w)), 505 return Fcons (make_number (WINDOW_LEFT_EDGE_COL (w)),
495 Fcons (make_number (WINDOW_TOP_EDGE_LINE (w)), 506 Fcons (make_number (WINDOW_TOP_EDGE_LINE (w)),
@@ -509,7 +520,7 @@ To get the edges of the actual text area, use `window-inside-pixel-edges'. */)
509 (window) 520 (window)
510 Lisp_Object window; 521 Lisp_Object window;
511{ 522{
512 register struct window *w = decode_window (window); 523 register struct window *w = decode_any_window (window);
513 524
514 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w)), 525 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w)),
515 Fcons (make_number (WINDOW_TOP_EDGE_Y (w)), 526 Fcons (make_number (WINDOW_TOP_EDGE_Y (w)),
@@ -528,7 +539,7 @@ display margins, fringes, header line, and/or mode line. */)
528 (window) 539 (window)
529 Lisp_Object window; 540 Lisp_Object window;
530{ 541{
531 register struct window *w = decode_window (window); 542 register struct window *w = decode_any_window (window);
532 543
533 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_COL (w) 544 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_COL (w)
534 + WINDOW_LEFT_MARGIN_COLS (w) 545 + WINDOW_LEFT_MARGIN_COLS (w)
@@ -552,7 +563,7 @@ display margins, fringes, header line, and/or mode line. */)
552 (window) 563 (window)
553 Lisp_Object window; 564 Lisp_Object window;
554{ 565{
555 register struct window *w = decode_window (window); 566 register struct window *w = decode_any_window (window);
556 567
557 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_X (w) 568 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_X (w)
558 + WINDOW_LEFT_MARGIN_WIDTH (w) 569 + WINDOW_LEFT_MARGIN_WIDTH (w)
@@ -771,7 +782,7 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\
771 int x, y; 782 int x, y;
772 Lisp_Object lx, ly; 783 Lisp_Object lx, ly;
773 784
774 CHECK_LIVE_WINDOW (window); 785 CHECK_WINDOW (window);
775 w = XWINDOW (window); 786 w = XWINDOW (window);
776 f = XFRAME (w->frame); 787 f = XFRAME (w->frame);
777 CHECK_CONS (coordinates); 788 CHECK_CONS (coordinates);