diff options
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 25 |
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 | ||
| 397 | static struct window * | ||
| 398 | decode_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 | |||
| 397 | DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, | 408 | DEFUN ("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 | ||
| 413 | DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, | 424 | DEFUN ("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 | ||
| 424 | DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0, | 435 | DEFUN ("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); |