diff options
| author | Dmitry Antipov | 2012-07-31 16:36:19 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-07-31 16:36:19 +0400 |
| commit | e34f7f79833a23586d32fe522b547a0d9a696c13 (patch) | |
| tree | 4a2d3927202cb91b474bc9648ca9dee2bffaa54a /src/window.c | |
| parent | c09bfb2f140b2885af17185634451e2abfd6e91c (diff) | |
| download | emacs-e34f7f79833a23586d32fe522b547a0d9a696c13.tar.gz emacs-e34f7f79833a23586d32fe522b547a0d9a696c13.zip | |
Generalize INTERNAL_FIELD between buffers, keyboards and frames.
* src/lisp.h (INTERNAL_FIELD): New macro.
* src/buffer.h (BUFFER_INTERNAL_FIELD): Removed.
(BVAR): Change to use INTERNAL_FIELD.
* src/keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
(KVAR): Change to use INTERNAL_FIELD.
* src/frame.h (FVAR): New macro.
(struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
* src/alloc.c, src/buffer.c, src/data.c, src/dispnew.c, src/dosfns.c
* src/eval.c, src/frame.c, src/fringe.c, src/gtkutil.c, src/minibuf.c
* src/nsfns.m, src/nsterm.m, src/print.c, src/term.c, src/w32fns.c
* src/w32menu.c, src/w32term.c, src/window.c, src/window.h, src/xdisp.c
* src/xfaces.c, src/xfns.c, src/xmenu.c, src/xterm.c: Users changed.
* admin/coccinelle/frame.cocci: Semantic patch to replace direct
access to Lisp_Object members of struct frame to FVAR.
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/window.c b/src/window.c index e80462ae945..ae0aad7084f 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -191,13 +191,13 @@ With a window argument, return the root window of that window's frame. */) | |||
| 191 | Lisp_Object window; | 191 | Lisp_Object window; |
| 192 | 192 | ||
| 193 | if (NILP (frame_or_window)) | 193 | if (NILP (frame_or_window)) |
| 194 | window = SELECTED_FRAME ()->root_window; | 194 | window = FVAR (SELECTED_FRAME (), root_window); |
| 195 | else if (WINDOWP (frame_or_window)) | 195 | else if (WINDOWP (frame_or_window)) |
| 196 | window = XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window)))->root_window; | 196 | window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window); |
| 197 | else | 197 | else |
| 198 | { | 198 | { |
| 199 | CHECK_LIVE_FRAME (frame_or_window); | 199 | CHECK_LIVE_FRAME (frame_or_window); |
| 200 | window = XFRAME (frame_or_window)->root_window; | 200 | window = FVAR (XFRAME (frame_or_window), root_window); |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | return window; | 203 | return window; |
| @@ -235,13 +235,13 @@ the first window of that frame. */) | |||
| 235 | Lisp_Object window; | 235 | Lisp_Object window; |
| 236 | 236 | ||
| 237 | if (NILP (frame_or_window)) | 237 | if (NILP (frame_or_window)) |
| 238 | window = SELECTED_FRAME ()->root_window; | 238 | window = FVAR (SELECTED_FRAME (), root_window); |
| 239 | else if (WINDOWP (frame_or_window)) | 239 | else if (WINDOWP (frame_or_window)) |
| 240 | window = XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window)))->root_window; | 240 | window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), root_window); |
| 241 | else | 241 | else |
| 242 | { | 242 | { |
| 243 | CHECK_LIVE_FRAME (frame_or_window); | 243 | CHECK_LIVE_FRAME (frame_or_window); |
| 244 | window = XFRAME (frame_or_window)->root_window; | 244 | window = FVAR (XFRAME (frame_or_window), root_window); |
| 245 | } | 245 | } |
| 246 | 246 | ||
| 247 | while (NILP (XWINDOW (window)->buffer)) | 247 | while (NILP (XWINDOW (window)->buffer)) |
| @@ -269,13 +269,14 @@ the selected window of that frame. */) | |||
| 269 | Lisp_Object window; | 269 | Lisp_Object window; |
| 270 | 270 | ||
| 271 | if (NILP (frame_or_window)) | 271 | if (NILP (frame_or_window)) |
| 272 | window = SELECTED_FRAME ()->selected_window; | 272 | window = FVAR (SELECTED_FRAME (), selected_window); |
| 273 | else if (WINDOWP (frame_or_window)) | 273 | else if (WINDOWP (frame_or_window)) |
| 274 | window = XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window)))->selected_window; | 274 | window = FVAR (XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window))), |
| 275 | selected_window); | ||
| 275 | else | 276 | else |
| 276 | { | 277 | { |
| 277 | CHECK_LIVE_FRAME (frame_or_window); | 278 | CHECK_LIVE_FRAME (frame_or_window); |
| 278 | window = XFRAME (frame_or_window)->selected_window; | 279 | window = FVAR (XFRAME (frame_or_window), selected_window); |
| 279 | } | 280 | } |
| 280 | 281 | ||
| 281 | return window; | 282 | return window; |
| @@ -303,7 +304,7 @@ Return WINDOW. */) | |||
| 303 | if (EQ (frame, selected_frame)) | 304 | if (EQ (frame, selected_frame)) |
| 304 | return Fselect_window (window, norecord); | 305 | return Fselect_window (window, norecord); |
| 305 | else | 306 | else |
| 306 | return XFRAME (frame)->selected_window = window; | 307 | return FVAR (XFRAME (frame), selected_window) = window; |
| 307 | } | 308 | } |
| 308 | 309 | ||
| 309 | DEFUN ("selected-window", Fselected_window, Sselected_window, 0, 0, 0, | 310 | DEFUN ("selected-window", Fselected_window, Sselected_window, 0, 0, 0, |
| @@ -346,7 +347,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap) | |||
| 346 | sf = SELECTED_FRAME (); | 347 | sf = SELECTED_FRAME (); |
| 347 | if (XFRAME (WINDOW_FRAME (w)) != sf) | 348 | if (XFRAME (WINDOW_FRAME (w)) != sf) |
| 348 | { | 349 | { |
| 349 | XFRAME (WINDOW_FRAME (w))->selected_window = window; | 350 | FVAR (XFRAME (WINDOW_FRAME (w)), selected_window) = window; |
| 350 | /* Use this rather than Fhandle_switch_frame | 351 | /* Use this rather than Fhandle_switch_frame |
| 351 | so that FRAME_FOCUS_FRAME is moved appropriately as we | 352 | so that FRAME_FOCUS_FRAME is moved appropriately as we |
| 352 | move around in the state where a minibuffer in a separate | 353 | move around in the state where a minibuffer in a separate |
| @@ -357,7 +358,7 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap) | |||
| 357 | return window; | 358 | return window; |
| 358 | } | 359 | } |
| 359 | else | 360 | else |
| 360 | sf->selected_window = window; | 361 | FVAR (sf, selected_window) = window; |
| 361 | 362 | ||
| 362 | /* Store the current buffer's actual point into the | 363 | /* Store the current buffer's actual point into the |
| 363 | old selected window. It belongs to that window, | 364 | old selected window. It belongs to that window, |
| @@ -1219,13 +1220,13 @@ window_from_coordinates (struct frame *f, int x, int y, | |||
| 1219 | bar exists. */ | 1220 | bar exists. */ |
| 1220 | if (NILP (window) | 1221 | if (NILP (window) |
| 1221 | && tool_bar_p | 1222 | && tool_bar_p |
| 1222 | && WINDOWP (f->tool_bar_window) | 1223 | && WINDOWP (FVAR (f, tool_bar_window)) |
| 1223 | && WINDOW_TOTAL_LINES (XWINDOW (f->tool_bar_window)) > 0 | 1224 | && WINDOW_TOTAL_LINES (XWINDOW (FVAR (f, tool_bar_window))) > 0 |
| 1224 | && (coordinates_in_window (XWINDOW (f->tool_bar_window), x, y) | 1225 | && (coordinates_in_window (XWINDOW (FVAR (f, tool_bar_window)), x, y) |
| 1225 | != ON_NOTHING)) | 1226 | != ON_NOTHING)) |
| 1226 | { | 1227 | { |
| 1227 | *part = ON_TEXT; | 1228 | *part = ON_TEXT; |
| 1228 | window = f->tool_bar_window; | 1229 | window = FVAR (f, tool_bar_window); |
| 1229 | } | 1230 | } |
| 1230 | 1231 | ||
| 1231 | return window; | 1232 | return window; |
| @@ -2319,7 +2320,7 @@ MINIBUF neither nil nor t means never include the minibuffer window. */) | |||
| 2319 | (Lisp_Object frame, Lisp_Object minibuf, Lisp_Object window) | 2320 | (Lisp_Object frame, Lisp_Object minibuf, Lisp_Object window) |
| 2320 | { | 2321 | { |
| 2321 | if (NILP (window)) | 2322 | if (NILP (window)) |
| 2322 | window = FRAMEP (frame) ? XFRAME (frame)->selected_window : selected_window; | 2323 | window = FRAMEP (frame) ? FVAR (XFRAME (frame), selected_window) : selected_window; |
| 2323 | CHECK_WINDOW (window); | 2324 | CHECK_WINDOW (window); |
| 2324 | if (NILP (frame)) | 2325 | if (NILP (frame)) |
| 2325 | frame = selected_frame; | 2326 | frame = selected_frame; |
| @@ -3555,9 +3556,9 @@ be applied on the Elisp level. */) | |||
| 3555 | void | 3556 | void |
| 3556 | resize_frame_windows (struct frame *f, int size, int horflag) | 3557 | resize_frame_windows (struct frame *f, int size, int horflag) |
| 3557 | { | 3558 | { |
| 3558 | Lisp_Object root = f->root_window; | 3559 | Lisp_Object root = FVAR (f, root_window); |
| 3559 | struct window *r = XWINDOW (root); | 3560 | struct window *r = XWINDOW (root); |
| 3560 | Lisp_Object mini = f->minibuffer_window; | 3561 | Lisp_Object mini = FVAR (f, minibuffer_window); |
| 3561 | struct window *m; | 3562 | struct window *m; |
| 3562 | /* new_size is the new size of the frame's root window. */ | 3563 | /* new_size is the new size of the frame's root window. */ |
| 3563 | int new_size = (horflag | 3564 | int new_size = (horflag |
| @@ -3603,7 +3604,7 @@ resize_frame_windows (struct frame *f, int size, int horflag) | |||
| 3603 | { | 3604 | { |
| 3604 | /* We lost. Delete all windows but the frame's | 3605 | /* We lost. Delete all windows but the frame's |
| 3605 | selected one. */ | 3606 | selected one. */ |
| 3606 | root = f->selected_window; | 3607 | root = FVAR (f, selected_window); |
| 3607 | Fdelete_other_windows_internal (root, Qnil); | 3608 | Fdelete_other_windows_internal (root, Qnil); |
| 3608 | if (horflag) | 3609 | if (horflag) |
| 3609 | XSETFASTINT (XWINDOW (root)->total_cols, new_size); | 3610 | XSETFASTINT (XWINDOW (root)->total_cols, new_size); |
| @@ -6464,8 +6465,8 @@ init_window_once (void) | |||
| 6464 | struct frame *f = make_initial_frame (); | 6465 | struct frame *f = make_initial_frame (); |
| 6465 | XSETFRAME (selected_frame, f); | 6466 | XSETFRAME (selected_frame, f); |
| 6466 | Vterminal_frame = selected_frame; | 6467 | Vterminal_frame = selected_frame; |
| 6467 | minibuf_window = f->minibuffer_window; | 6468 | minibuf_window = FVAR (f, minibuffer_window); |
| 6468 | selected_window = f->selected_window; | 6469 | selected_window = FVAR (f, selected_window); |
| 6469 | last_nonminibuf_frame = f; | 6470 | last_nonminibuf_frame = f; |
| 6470 | 6471 | ||
| 6471 | window_initialized = 1; | 6472 | window_initialized = 1; |