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 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 | ||
| 395 | static struct window * | ||
| 396 | decode_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 | |||
| 395 | DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, | 406 | DEFUN ("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 | ||
| 411 | DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0, | 422 | DEFUN ("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 | ||
| 422 | DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0, | 433 | DEFUN ("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); |