aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/window.c b/src/window.c
index c4d896532b1..f3f3c6b8bf0 100644
--- a/src/window.c
+++ b/src/window.c
@@ -394,6 +394,17 @@ decode_window (window)
394 return XWINDOW (window); 394 return XWINDOW (window);
395} 395}
396 396
397static struct window *
398decode_any_window (window)
399 register Lisp_Object window;
400{
401 if (NILP (window))
402 return XWINDOW (selected_window);
403
404 CHECK_WINDOW (window);
405 return XWINDOW (window);
406}
407
397DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, 408DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0,
398 doc: /* Return the buffer that WINDOW is displaying. */) 409 doc: /* Return the buffer that WINDOW is displaying. */)
399 (window) 410 (window)
@@ -407,7 +418,7 @@ DEFUN ("window-height", Fwindow_height, Swindow_height, 0, 1, 0,
407 (window) 418 (window)
408 Lisp_Object window; 419 Lisp_Object window;
409{ 420{
410 return decode_window (window)->total_lines; 421 return decode_any_window (window)->total_lines;
411} 422}
412 423
413DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, 424DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0,
@@ -418,7 +429,7 @@ use (let ((edges (window-edges))) (- (nth 2 edges) (nth 0 edges))). */)
418 (window) 429 (window)
419 Lisp_Object window; 430 Lisp_Object window;
420{ 431{
421 return make_number (window_box_text_cols (decode_window (window))); 432 return make_number (window_box_text_cols (decode_any_window (window)));
422} 433}
423 434
424DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0, 435DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0,
@@ -491,7 +502,7 @@ To get the edges of the actual text area, use `window-inside-edges'. */)
491 (window) 502 (window)
492 Lisp_Object window; 503 Lisp_Object window;
493{ 504{
494 register struct window *w = decode_window (window); 505 register struct window *w = decode_any_window (window);
495 506
496 return Fcons (make_number (WINDOW_LEFT_EDGE_COL (w)), 507 return Fcons (make_number (WINDOW_LEFT_EDGE_COL (w)),
497 Fcons (make_number (WINDOW_TOP_EDGE_LINE (w)), 508 Fcons (make_number (WINDOW_TOP_EDGE_LINE (w)),
@@ -511,7 +522,7 @@ To get the edges of the actual text area, use `window-inside-pixel-edges'. */)
511 (window) 522 (window)
512 Lisp_Object window; 523 Lisp_Object window;
513{ 524{
514 register struct window *w = decode_window (window); 525 register struct window *w = decode_any_window (window);
515 526
516 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w)), 527 return Fcons (make_number (WINDOW_LEFT_EDGE_X (w)),
517 Fcons (make_number (WINDOW_TOP_EDGE_Y (w)), 528 Fcons (make_number (WINDOW_TOP_EDGE_Y (w)),
@@ -530,7 +541,7 @@ display margins, fringes, header line, and/or mode line. */)
530 (window) 541 (window)
531 Lisp_Object window; 542 Lisp_Object window;
532{ 543{
533 register struct window *w = decode_window (window); 544 register struct window *w = decode_any_window (window);
534 545
535 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_COL (w) 546 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_COL (w)
536 + WINDOW_LEFT_MARGIN_COLS (w) 547 + WINDOW_LEFT_MARGIN_COLS (w)
@@ -554,7 +565,7 @@ display margins, fringes, header line, and/or mode line. */)
554 (window) 565 (window)
555 Lisp_Object window; 566 Lisp_Object window;
556{ 567{
557 register struct window *w = decode_window (window); 568 register struct window *w = decode_any_window (window);
558 569
559 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_X (w) 570 return list4 (make_number (WINDOW_BOX_LEFT_EDGE_X (w)
560 + WINDOW_LEFT_MARGIN_WIDTH (w) 571 + WINDOW_LEFT_MARGIN_WIDTH (w)
@@ -773,7 +784,7 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\
773 int x, y; 784 int x, y;
774 Lisp_Object lx, ly; 785 Lisp_Object lx, ly;
775 786
776 CHECK_LIVE_WINDOW (window); 787 CHECK_WINDOW (window);
777 w = XWINDOW (window); 788 w = XWINDOW (window);
778 f = XFRAME (w->frame); 789 f = XFRAME (w->frame);
779 CHECK_CONS (coordinates); 790 CHECK_CONS (coordinates);