diff options
| author | Stefan Monnier | 2011-02-21 17:34:51 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-02-21 17:34:51 -0500 |
| commit | f619ad4ca2ce943d53589469c010e451afab97dd (patch) | |
| tree | e1b71f79518372ecab4c677ae948504450d8bf5d /src/window.c | |
| parent | a647cb26b695a542e3a546104afdf4c7c47eb061 (diff) | |
| parent | 9f8370e63f65f76887b319ab6a0368d4a332777c (diff) | |
| download | emacs-f619ad4ca2ce943d53589469c010e451afab97dd.tar.gz emacs-f619ad4ca2ce943d53589469c010e451afab97dd.zip | |
Merge from trunk
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/src/window.c b/src/window.c index d21cbb164ea..f0555d5c961 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -1359,8 +1359,8 @@ window_display_table (struct window *w) | |||
| 1359 | { | 1359 | { |
| 1360 | struct buffer *b = XBUFFER (w->buffer); | 1360 | struct buffer *b = XBUFFER (w->buffer); |
| 1361 | 1361 | ||
| 1362 | if (DISP_TABLE_P (b->display_table)) | 1362 | if (DISP_TABLE_P (BVAR (b, display_table))) |
| 1363 | dp = XCHAR_TABLE (b->display_table); | 1363 | dp = XCHAR_TABLE (BVAR (b, display_table)); |
| 1364 | else if (DISP_TABLE_P (Vstandard_display_table)) | 1364 | else if (DISP_TABLE_P (Vstandard_display_table)) |
| 1365 | dp = XCHAR_TABLE (Vstandard_display_table); | 1365 | dp = XCHAR_TABLE (Vstandard_display_table); |
| 1366 | } | 1366 | } |
| @@ -1414,9 +1414,9 @@ unshow_buffer (register struct window *w) | |||
| 1414 | So don't clobber point in that buffer. */ | 1414 | So don't clobber point in that buffer. */ |
| 1415 | if (! EQ (buf, XWINDOW (selected_window)->buffer) | 1415 | if (! EQ (buf, XWINDOW (selected_window)->buffer) |
| 1416 | /* This line helps to fix Horsley's testbug.el bug. */ | 1416 | /* This line helps to fix Horsley's testbug.el bug. */ |
| 1417 | && !(WINDOWP (b->last_selected_window) | 1417 | && !(WINDOWP (BVAR (b, last_selected_window)) |
| 1418 | && w != XWINDOW (b->last_selected_window) | 1418 | && w != XWINDOW (BVAR (b, last_selected_window)) |
| 1419 | && EQ (buf, XWINDOW (b->last_selected_window)->buffer))) | 1419 | && EQ (buf, XWINDOW (BVAR (b, last_selected_window))->buffer))) |
| 1420 | temp_set_point_both (b, | 1420 | temp_set_point_both (b, |
| 1421 | clip_to_bounds (BUF_BEGV (b), | 1421 | clip_to_bounds (BUF_BEGV (b), |
| 1422 | XMARKER (w->pointm)->charpos, | 1422 | XMARKER (w->pointm)->charpos, |
| @@ -1425,9 +1425,9 @@ unshow_buffer (register struct window *w) | |||
| 1425 | marker_byte_position (w->pointm), | 1425 | marker_byte_position (w->pointm), |
| 1426 | BUF_ZV_BYTE (b))); | 1426 | BUF_ZV_BYTE (b))); |
| 1427 | 1427 | ||
| 1428 | if (WINDOWP (b->last_selected_window) | 1428 | if (WINDOWP (BVAR (b, last_selected_window)) |
| 1429 | && w == XWINDOW (b->last_selected_window)) | 1429 | && w == XWINDOW (BVAR (b, last_selected_window))) |
| 1430 | b->last_selected_window = Qnil; | 1430 | BVAR (b, last_selected_window) = Qnil; |
| 1431 | } | 1431 | } |
| 1432 | 1432 | ||
| 1433 | /* Put replacement into the window structure in place of old. */ | 1433 | /* Put replacement into the window structure in place of old. */ |
| @@ -2325,7 +2325,7 @@ window_loop (enum window_loop type, Lisp_Object obj, int mini, Lisp_Object frame | |||
| 2325 | /* Check for a window that has a killed buffer. */ | 2325 | /* Check for a window that has a killed buffer. */ |
| 2326 | case CHECK_ALL_WINDOWS: | 2326 | case CHECK_ALL_WINDOWS: |
| 2327 | if (! NILP (w->buffer) | 2327 | if (! NILP (w->buffer) |
| 2328 | && NILP (XBUFFER (w->buffer)->name)) | 2328 | && NILP (BVAR (XBUFFER (w->buffer), name))) |
| 2329 | abort (); | 2329 | abort (); |
| 2330 | break; | 2330 | break; |
| 2331 | 2331 | ||
| @@ -2729,7 +2729,7 @@ window_min_size_2 (struct window *w, int width_p, int safe_p) | |||
| 2729 | { | 2729 | { |
| 2730 | int safe_size = (MIN_SAFE_WINDOW_HEIGHT | 2730 | int safe_size = (MIN_SAFE_WINDOW_HEIGHT |
| 2731 | + ((BUFFERP (w->buffer) | 2731 | + ((BUFFERP (w->buffer) |
| 2732 | && !NILP (XBUFFER (w->buffer)->mode_line_format)) | 2732 | && !NILP (BVAR (XBUFFER (w->buffer), mode_line_format))) |
| 2733 | ? 1 : 0)); | 2733 | ? 1 : 0)); |
| 2734 | 2734 | ||
| 2735 | return safe_p ? safe_size : max (window_min_height, safe_size); | 2735 | return safe_p ? safe_size : max (window_min_height, safe_size); |
| @@ -3360,15 +3360,15 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, int run_hooks_p, int | |||
| 3360 | w->buffer = buffer; | 3360 | w->buffer = buffer; |
| 3361 | 3361 | ||
| 3362 | if (EQ (window, selected_window)) | 3362 | if (EQ (window, selected_window)) |
| 3363 | b->last_selected_window = window; | 3363 | BVAR (b, last_selected_window) = window; |
| 3364 | 3364 | ||
| 3365 | /* Let redisplay errors through. */ | 3365 | /* Let redisplay errors through. */ |
| 3366 | b->display_error_modiff = 0; | 3366 | b->display_error_modiff = 0; |
| 3367 | 3367 | ||
| 3368 | /* Update time stamps of buffer display. */ | 3368 | /* Update time stamps of buffer display. */ |
| 3369 | if (INTEGERP (b->display_count)) | 3369 | if (INTEGERP (BVAR (b, display_count))) |
| 3370 | XSETINT (b->display_count, XINT (b->display_count) + 1); | 3370 | XSETINT (BVAR (b, display_count), XINT (BVAR (b, display_count)) + 1); |
| 3371 | b->display_time = Fcurrent_time (); | 3371 | BVAR (b, display_time) = Fcurrent_time (); |
| 3372 | 3372 | ||
| 3373 | XSETFASTINT (w->window_end_pos, 0); | 3373 | XSETFASTINT (w->window_end_pos, 0); |
| 3374 | XSETFASTINT (w->window_end_vpos, 0); | 3374 | XSETFASTINT (w->window_end_vpos, 0); |
| @@ -3421,18 +3421,18 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, int run_hooks_p, int | |||
| 3421 | w->left_margin_cols = w->right_margin_cols = Qnil; | 3421 | w->left_margin_cols = w->right_margin_cols = Qnil; |
| 3422 | 3422 | ||
| 3423 | Fset_window_fringes (window, | 3423 | Fset_window_fringes (window, |
| 3424 | b->left_fringe_width, b->right_fringe_width, | 3424 | BVAR (b, left_fringe_width), BVAR (b, right_fringe_width), |
| 3425 | b->fringes_outside_margins); | 3425 | BVAR (b, fringes_outside_margins)); |
| 3426 | 3426 | ||
| 3427 | Fset_window_scroll_bars (window, | 3427 | Fset_window_scroll_bars (window, |
| 3428 | b->scroll_bar_width, | 3428 | BVAR (b, scroll_bar_width), |
| 3429 | b->vertical_scroll_bar_type, Qnil); | 3429 | BVAR (b, vertical_scroll_bar_type), Qnil); |
| 3430 | 3430 | ||
| 3431 | w->left_margin_cols = save_left; | 3431 | w->left_margin_cols = save_left; |
| 3432 | w->right_margin_cols = save_right; | 3432 | w->right_margin_cols = save_right; |
| 3433 | 3433 | ||
| 3434 | Fset_window_margins (window, | 3434 | Fset_window_margins (window, |
| 3435 | b->left_margin_cols, b->right_margin_cols); | 3435 | BVAR (b, left_margin_cols), BVAR (b, right_margin_cols)); |
| 3436 | } | 3436 | } |
| 3437 | 3437 | ||
| 3438 | if (run_hooks_p) | 3438 | if (run_hooks_p) |
| @@ -3469,7 +3469,7 @@ This function runs `window-scroll-functions' before running | |||
| 3469 | XSETWINDOW (window, w); | 3469 | XSETWINDOW (window, w); |
| 3470 | buffer = Fget_buffer (buffer_or_name); | 3470 | buffer = Fget_buffer (buffer_or_name); |
| 3471 | CHECK_BUFFER (buffer); | 3471 | CHECK_BUFFER (buffer); |
| 3472 | if (NILP (XBUFFER (buffer)->name)) | 3472 | if (NILP (BVAR (XBUFFER (buffer), name))) |
| 3473 | error ("Attempt to display deleted buffer"); | 3473 | error ("Attempt to display deleted buffer"); |
| 3474 | 3474 | ||
| 3475 | tem = w->buffer; | 3475 | tem = w->buffer; |
| @@ -3481,7 +3481,7 @@ This function runs `window-scroll-functions' before running | |||
| 3481 | if (EQ (tem, buffer)) | 3481 | if (EQ (tem, buffer)) |
| 3482 | return Qnil; | 3482 | return Qnil; |
| 3483 | else if (EQ (w->dedicated, Qt)) | 3483 | else if (EQ (w->dedicated, Qt)) |
| 3484 | error ("Window is dedicated to `%s'", SDATA (XBUFFER (tem)->name)); | 3484 | error ("Window is dedicated to `%s'", SDATA (BVAR (XBUFFER (tem), name))); |
| 3485 | else | 3485 | else |
| 3486 | w->dedicated = Qnil; | 3486 | w->dedicated = Qnil; |
| 3487 | 3487 | ||
| @@ -3517,7 +3517,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap) | |||
| 3517 | record_buffer (w->buffer); | 3517 | record_buffer (w->buffer); |
| 3518 | } | 3518 | } |
| 3519 | 3519 | ||
| 3520 | if (EQ (window, selected_window)) | 3520 | if (EQ (window, selected_window) && !inhibit_point_swap) |
| 3521 | return window; | 3521 | return window; |
| 3522 | 3522 | ||
| 3523 | sf = SELECTED_FRAME (); | 3523 | sf = SELECTED_FRAME (); |
| @@ -3552,7 +3552,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap) | |||
| 3552 | 3552 | ||
| 3553 | Fset_buffer (w->buffer); | 3553 | Fset_buffer (w->buffer); |
| 3554 | 3554 | ||
| 3555 | XBUFFER (w->buffer)->last_selected_window = window; | 3555 | BVAR (XBUFFER (w->buffer), last_selected_window) = window; |
| 3556 | 3556 | ||
| 3557 | /* Go to the point recorded in the window. | 3557 | /* Go to the point recorded in the window. |
| 3558 | This is important when the buffer is in more | 3558 | This is important when the buffer is in more |
| @@ -3640,7 +3640,7 @@ displaying that buffer. */) | |||
| 3640 | 3640 | ||
| 3641 | if (STRINGP (object)) | 3641 | if (STRINGP (object)) |
| 3642 | object = Fget_buffer (object); | 3642 | object = Fget_buffer (object); |
| 3643 | if (BUFFERP (object) && !NILP (XBUFFER (object)->name)) | 3643 | if (BUFFERP (object) && !NILP (BVAR (XBUFFER (object), name))) |
| 3644 | { | 3644 | { |
| 3645 | /* Walk all windows looking for buffer, and force update | 3645 | /* Walk all windows looking for buffer, and force update |
| 3646 | of each of those windows. */ | 3646 | of each of those windows. */ |
| @@ -3662,7 +3662,7 @@ temp_output_buffer_show (register Lisp_Object buf) | |||
| 3662 | register Lisp_Object window; | 3662 | register Lisp_Object window; |
| 3663 | register struct window *w; | 3663 | register struct window *w; |
| 3664 | 3664 | ||
| 3665 | XBUFFER (buf)->directory = current_buffer->directory; | 3665 | BVAR (XBUFFER (buf), directory) = BVAR (current_buffer, directory); |
| 3666 | 3666 | ||
| 3667 | Fset_buffer (buf); | 3667 | Fset_buffer (buf); |
| 3668 | BUF_SAVE_MODIFF (XBUFFER (buf)) = MODIFF; | 3668 | BUF_SAVE_MODIFF (XBUFFER (buf)) = MODIFF; |
| @@ -4843,8 +4843,8 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror) | |||
| 4843 | possibility of point becoming "stuck" on a tall line when | 4843 | possibility of point becoming "stuck" on a tall line when |
| 4844 | scrolling by one line. */ | 4844 | scrolling by one line. */ |
| 4845 | if (window_scroll_pixel_based_preserve_y < 0 | 4845 | if (window_scroll_pixel_based_preserve_y < 0 |
| 4846 | || !SYMBOLP (current_kboard->Vlast_command) | 4846 | || !SYMBOLP (KVAR (current_kboard, Vlast_command)) |
| 4847 | || NILP (Fget (current_kboard->Vlast_command, Qscroll_command))) | 4847 | || NILP (Fget (KVAR (current_kboard, Vlast_command), Qscroll_command))) |
| 4848 | { | 4848 | { |
| 4849 | start_display (&it, w, start); | 4849 | start_display (&it, w, start); |
| 4850 | move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS); | 4850 | move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS); |
| @@ -5100,8 +5100,8 @@ window_scroll_line_based (Lisp_Object window, int n, int whole, int noerror) | |||
| 5100 | if (!NILP (Vscroll_preserve_screen_position)) | 5100 | if (!NILP (Vscroll_preserve_screen_position)) |
| 5101 | { | 5101 | { |
| 5102 | if (window_scroll_preserve_vpos <= 0 | 5102 | if (window_scroll_preserve_vpos <= 0 |
| 5103 | || !SYMBOLP (current_kboard->Vlast_command) | 5103 | || !SYMBOLP (KVAR (current_kboard, Vlast_command)) |
| 5104 | || NILP (Fget (current_kboard->Vlast_command, Qscroll_command))) | 5104 | || NILP (Fget (KVAR (current_kboard, Vlast_command), Qscroll_command))) |
| 5105 | { | 5105 | { |
| 5106 | struct position posit | 5106 | struct position posit |
| 5107 | = *compute_motion (startpos, 0, 0, 0, | 5107 | = *compute_motion (startpos, 0, 0, 0, |
| @@ -5887,7 +5887,7 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5887 | saved_windows = XVECTOR (data->saved_windows); | 5887 | saved_windows = XVECTOR (data->saved_windows); |
| 5888 | 5888 | ||
| 5889 | new_current_buffer = data->current_buffer; | 5889 | new_current_buffer = data->current_buffer; |
| 5890 | if (NILP (XBUFFER (new_current_buffer)->name)) | 5890 | if (NILP (BVAR (XBUFFER (new_current_buffer), name))) |
| 5891 | new_current_buffer = Qnil; | 5891 | new_current_buffer = Qnil; |
| 5892 | else | 5892 | else |
| 5893 | { | 5893 | { |
| @@ -6072,14 +6072,14 @@ the return value is nil. Otherwise the value is t. */) | |||
| 6072 | w->buffer = p->buffer; | 6072 | w->buffer = p->buffer; |
| 6073 | else | 6073 | else |
| 6074 | { | 6074 | { |
| 6075 | if (!NILP (XBUFFER (p->buffer)->name)) | 6075 | if (!NILP (BVAR (XBUFFER (p->buffer), name))) |
| 6076 | /* If saved buffer is alive, install it. */ | 6076 | /* If saved buffer is alive, install it. */ |
| 6077 | { | 6077 | { |
| 6078 | w->buffer = p->buffer; | 6078 | w->buffer = p->buffer; |
| 6079 | w->start_at_line_beg = p->start_at_line_beg; | 6079 | w->start_at_line_beg = p->start_at_line_beg; |
| 6080 | set_marker_restricted (w->start, p->start, w->buffer); | 6080 | set_marker_restricted (w->start, p->start, w->buffer); |
| 6081 | set_marker_restricted (w->pointm, p->pointm, w->buffer); | 6081 | set_marker_restricted (w->pointm, p->pointm, w->buffer); |
| 6082 | Fset_marker (XBUFFER (w->buffer)->mark, | 6082 | Fset_marker (BVAR (XBUFFER (w->buffer), mark), |
| 6083 | p->mark, w->buffer); | 6083 | p->mark, w->buffer); |
| 6084 | 6084 | ||
| 6085 | /* As documented in Fcurrent_window_configuration, don't | 6085 | /* As documented in Fcurrent_window_configuration, don't |
| @@ -6089,7 +6089,7 @@ the return value is nil. Otherwise the value is t. */) | |||
| 6089 | && XBUFFER (p->buffer) == current_buffer) | 6089 | && XBUFFER (p->buffer) == current_buffer) |
| 6090 | Fgoto_char (w->pointm); | 6090 | Fgoto_char (w->pointm); |
| 6091 | } | 6091 | } |
| 6092 | else if (NILP (w->buffer) || NILP (XBUFFER (w->buffer)->name)) | 6092 | else if (NILP (w->buffer) || NILP (BVAR (XBUFFER (w->buffer), name))) |
| 6093 | /* Else unless window has a live buffer, get one. */ | 6093 | /* Else unless window has a live buffer, get one. */ |
| 6094 | { | 6094 | { |
| 6095 | w->buffer = Fcdr (Fcar (Vbuffer_alist)); | 6095 | w->buffer = Fcdr (Fcar (Vbuffer_alist)); |
| @@ -6130,7 +6130,7 @@ the return value is nil. Otherwise the value is t. */) | |||
| 6130 | has been restored into it. We already swapped out that point | 6130 | has been restored into it. We already swapped out that point |
| 6131 | from that window's old buffer. */ | 6131 | from that window's old buffer. */ |
| 6132 | select_window (data->current_window, Qnil, 1); | 6132 | select_window (data->current_window, Qnil, 1); |
| 6133 | XBUFFER (XWINDOW (selected_window)->buffer)->last_selected_window | 6133 | BVAR (XBUFFER (XWINDOW (selected_window)->buffer), last_selected_window) |
| 6134 | = selected_window; | 6134 | = selected_window; |
| 6135 | 6135 | ||
| 6136 | if (NILP (data->focus_frame) | 6136 | if (NILP (data->focus_frame) |
| @@ -6331,7 +6331,7 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i) | |||
| 6331 | p->start = Fcopy_marker (w->start, Qnil); | 6331 | p->start = Fcopy_marker (w->start, Qnil); |
| 6332 | p->start_at_line_beg = w->start_at_line_beg; | 6332 | p->start_at_line_beg = w->start_at_line_beg; |
| 6333 | 6333 | ||
| 6334 | tem = XBUFFER (w->buffer)->mark; | 6334 | tem = BVAR (XBUFFER (w->buffer), mark); |
| 6335 | p->mark = Fcopy_marker (tem, Qnil); | 6335 | p->mark = Fcopy_marker (tem, Qnil); |
| 6336 | } | 6336 | } |
| 6337 | else | 6337 | else |