diff options
| author | Martin Rudalics | 2011-07-02 12:36:48 +0200 |
|---|---|---|
| committer | Martin Rudalics | 2011-07-02 12:36:48 +0200 |
| commit | 28545e04974fd13858eaff304cc09b562fd9f71f (patch) | |
| tree | 65f178ee0e9cbbfd36d4fd0d02cb1785d8b31941 | |
| parent | a9e2a8db83243a5ef0fd6e80593af3f2a1a9cf0c (diff) | |
| download | emacs-28545e04974fd13858eaff304cc09b562fd9f71f.tar.gz emacs-28545e04974fd13858eaff304cc09b562fd9f71f.zip | |
Remove clone-number support. Provide clone-of parameter in window states.
* window.h (window): Remove clone_number slot.
* window.c (Fwindow_clone_number, Fset_window_clone_number):
Remove.
(make_parent_window, make_window, saved_window)
(Fset_window_configuration, save_window_save): Don't deal with
clone numbers.
* buffer.c (Qclone_number): Remove declaration.
(sort_overlays, overlay_strings): Don't deal with clone numbers.
* window.el (window-state-get-1): Don't assign clone numbers.
Add clone-of item to list of window parameters.
(window-state-put-2): Don't process clone numbers.
(display-buffer-alist): Fix doc-string.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/window.el | 9 | ||||
| -rw-r--r-- | src/ChangeLog | 11 | ||||
| -rw-r--r-- | src/buffer.c | 23 | ||||
| -rw-r--r-- | src/window.c | 29 | ||||
| -rw-r--r-- | src/window.h | 4 |
6 files changed, 29 insertions, 54 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 25c3f48ded7..277131a13db 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2011-07-02 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * window.el (window-state-get-1): Don't assign clone numbers. | ||
| 4 | Add clone-of item to list of window parameters. | ||
| 5 | (window-state-put-2): Don't process clone numbers. | ||
| 6 | (display-buffer-alist): Fix doc-string. | ||
| 7 | |||
| 1 | 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca> | 8 | 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 9 | ||
| 3 | * subr.el (remq): Don't allocate if it's not needed. | 10 | * subr.el (remq): Don't allocate if it's not needed. |
diff --git a/lisp/window.el b/lisp/window.el index 5cd5fca8b3c..64f4119027a 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -3542,7 +3542,6 @@ specific buffers." | |||
| 3542 | (window-list-no-nils | 3542 | (window-list-no-nils |
| 3543 | type | 3543 | type |
| 3544 | (unless (window-next-sibling window) (cons 'last t)) | 3544 | (unless (window-next-sibling window) (cons 'last t)) |
| 3545 | (cons 'clone-number (window-clone-number window)) | ||
| 3546 | (cons 'total-height (window-total-size window)) | 3545 | (cons 'total-height (window-total-size window)) |
| 3547 | (cons 'total-width (window-total-size window t)) | 3546 | (cons 'total-width (window-total-size window t)) |
| 3548 | (cons 'normal-height (window-normal-size window)) | 3547 | (cons 'normal-height (window-normal-size window)) |
| @@ -3554,6 +3553,9 @@ specific buffers." | |||
| 3554 | (unless (memq (car parameter) | 3553 | (unless (memq (car parameter) |
| 3555 | window-state-ignored-parameters) | 3554 | window-state-ignored-parameters) |
| 3556 | (setq list (cons parameter list)))) | 3555 | (setq list (cons parameter list)))) |
| 3556 | (unless (window-parameter window 'clone-of) | ||
| 3557 | ;; Make a clone-of parameter. | ||
| 3558 | (setq list (cons (cons 'clone-of window) list))) | ||
| 3557 | (when list | 3559 | (when list |
| 3558 | (cons 'parameters list))) | 3560 | (cons 'parameters list))) |
| 3559 | (when buffer | 3561 | (when buffer |
| @@ -3694,13 +3696,10 @@ value can be also stored on disk and read back in a new session." | |||
| 3694 | "Helper function for `window-state-put'." | 3696 | "Helper function for `window-state-put'." |
| 3695 | (dolist (item window-state-put-list) | 3697 | (dolist (item window-state-put-list) |
| 3696 | (let ((window (car item)) | 3698 | (let ((window (car item)) |
| 3697 | (clone-number (cdr (assq 'clone-number item))) | ||
| 3698 | (splits (cdr (assq 'splits item))) | 3699 | (splits (cdr (assq 'splits item))) |
| 3699 | (nest (cdr (assq 'nest item))) | 3700 | (nest (cdr (assq 'nest item))) |
| 3700 | (parameters (cdr (assq 'parameters item))) | 3701 | (parameters (cdr (assq 'parameters item))) |
| 3701 | (state (cdr (assq 'buffer item)))) | 3702 | (state (cdr (assq 'buffer item)))) |
| 3702 | ;; Put in clone-number. | ||
| 3703 | (when clone-number (set-window-clone-number window clone-number)) | ||
| 3704 | (when splits (set-window-splits window splits)) | 3703 | (when splits (set-window-splits window splits)) |
| 3705 | (when nest (set-window-nest window nest)) | 3704 | (when nest (set-window-nest window nest)) |
| 3706 | ;; Process parameters. | 3705 | ;; Process parameters. |
| @@ -4100,7 +4099,7 @@ A list whose car is the symbol `function' specifies that the | |||
| 4100 | function specified in the second element of the list is | 4099 | function specified in the second element of the list is |
| 4101 | responsible for displaying the buffer. `display-buffer' calls | 4100 | responsible for displaying the buffer. `display-buffer' calls |
| 4102 | this function with the buffer as first argument and the remaining | 4101 | this function with the buffer as first argument and the remaining |
| 4103 | elements of the list as the other arguments. | 4102 | elements of the list as the second. |
| 4104 | 4103 | ||
| 4105 | The function should choose or create a window, display the buffer | 4104 | The function should choose or create a window, display the buffer |
| 4106 | in it, and return the window. It is also responsible for giving | 4105 | in it, and return the window. It is also responsible for giving |
diff --git a/src/ChangeLog b/src/ChangeLog index bb5c579d7fa..fff817118ea 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2011-07-02 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * window.h (window): Remove clone_number slot. | ||
| 4 | * window.c (Fwindow_clone_number, Fset_window_clone_number): | ||
| 5 | Remove. | ||
| 6 | (make_parent_window, make_window, saved_window) | ||
| 7 | (Fset_window_configuration, save_window_save): Don't deal with | ||
| 8 | clone numbers. | ||
| 9 | * buffer.c (Qclone_number): Remove declaration. | ||
| 10 | (sort_overlays, overlay_strings): Don't deal with clone numbers. | ||
| 11 | |||
| 1 | 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca> | 12 | 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 13 | ||
| 3 | Add multiple inheritance to keymaps. | 14 | Add multiple inheritance to keymaps. |
diff --git a/src/buffer.c b/src/buffer.c index 328963be78c..006153b0424 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -146,7 +146,7 @@ static Lisp_Object Qoverlayp; | |||
| 146 | 146 | ||
| 147 | Lisp_Object Qpriority, Qbefore_string, Qafter_string; | 147 | Lisp_Object Qpriority, Qbefore_string, Qafter_string; |
| 148 | 148 | ||
| 149 | static Lisp_Object Qclone_number, Qevaporate; | 149 | static Lisp_Object Qevaporate; |
| 150 | 150 | ||
| 151 | Lisp_Object Qmodification_hooks; | 151 | Lisp_Object Qmodification_hooks; |
| 152 | Lisp_Object Qinsert_in_front_hooks; | 152 | Lisp_Object Qinsert_in_front_hooks; |
| @@ -2900,13 +2900,10 @@ sort_overlays (Lisp_Object *overlay_vec, ptrdiff_t noverlays, struct window *w) | |||
| 2900 | overlays that are limited to some other window. */ | 2900 | overlays that are limited to some other window. */ |
| 2901 | if (w) | 2901 | if (w) |
| 2902 | { | 2902 | { |
| 2903 | Lisp_Object window, clone_number; | 2903 | Lisp_Object window; |
| 2904 | 2904 | ||
| 2905 | window = Foverlay_get (overlay, Qwindow); | 2905 | window = Foverlay_get (overlay, Qwindow); |
| 2906 | clone_number = Foverlay_get (overlay, Qclone_number); | 2906 | if (WINDOWP (window) && XWINDOW (window) != w) |
| 2907 | if (WINDOWP (window) && XWINDOW (window) != w | ||
| 2908 | && (! NUMBERP (clone_number) | ||
| 2909 | || XFASTINT (clone_number) != XFASTINT (w->clone_number))) | ||
| 2910 | continue; | 2907 | continue; |
| 2911 | } | 2908 | } |
| 2912 | 2909 | ||
| @@ -3035,7 +3032,7 @@ record_overlay_string (struct sortstrlist *ssl, Lisp_Object str, | |||
| 3035 | EMACS_INT | 3032 | EMACS_INT |
| 3036 | overlay_strings (EMACS_INT pos, struct window *w, unsigned char **pstr) | 3033 | overlay_strings (EMACS_INT pos, struct window *w, unsigned char **pstr) |
| 3037 | { | 3034 | { |
| 3038 | Lisp_Object overlay, window, clone_number, str; | 3035 | Lisp_Object overlay, window, str; |
| 3039 | struct Lisp_Overlay *ov; | 3036 | struct Lisp_Overlay *ov; |
| 3040 | EMACS_INT startpos, endpos; | 3037 | EMACS_INT startpos, endpos; |
| 3041 | int multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); | 3038 | int multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); |
| @@ -3054,12 +3051,8 @@ overlay_strings (EMACS_INT pos, struct window *w, unsigned char **pstr) | |||
| 3054 | if (endpos != pos && startpos != pos) | 3051 | if (endpos != pos && startpos != pos) |
| 3055 | continue; | 3052 | continue; |
| 3056 | window = Foverlay_get (overlay, Qwindow); | 3053 | window = Foverlay_get (overlay, Qwindow); |
| 3057 | clone_number = Foverlay_get (overlay, Qclone_number); | 3054 | if (WINDOWP (window) && XWINDOW (window) != w) |
| 3058 | if (WINDOWP (window) && XWINDOW (window) != w | ||
| 3059 | && (! NUMBERP (clone_number) | ||
| 3060 | || XFASTINT (clone_number) != XFASTINT (w->clone_number))) | ||
| 3061 | continue; | 3055 | continue; |
| 3062 | |||
| 3063 | if (startpos == pos | 3056 | if (startpos == pos |
| 3064 | && (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str))) | 3057 | && (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str))) |
| 3065 | record_overlay_string (&overlay_heads, str, | 3058 | record_overlay_string (&overlay_heads, str, |
| @@ -3086,10 +3079,7 @@ overlay_strings (EMACS_INT pos, struct window *w, unsigned char **pstr) | |||
| 3086 | if (endpos != pos && startpos != pos) | 3079 | if (endpos != pos && startpos != pos) |
| 3087 | continue; | 3080 | continue; |
| 3088 | window = Foverlay_get (overlay, Qwindow); | 3081 | window = Foverlay_get (overlay, Qwindow); |
| 3089 | clone_number = Foverlay_get (overlay, Qclone_number); | 3082 | if (WINDOWP (window) && XWINDOW (window) != w) |
| 3090 | if (WINDOWP (window) && XWINDOW (window) != w | ||
| 3091 | && (! NUMBERP (clone_number) | ||
| 3092 | || XFASTINT (clone_number) != XFASTINT (w->clone_number))) | ||
| 3093 | continue; | 3083 | continue; |
| 3094 | if (startpos == pos | 3084 | if (startpos == pos |
| 3095 | && (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str))) | 3085 | && (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str))) |
| @@ -5229,7 +5219,6 @@ syms_of_buffer (void) | |||
| 5229 | DEFSYM (Qinsert_behind_hooks, "insert-behind-hooks"); | 5219 | DEFSYM (Qinsert_behind_hooks, "insert-behind-hooks"); |
| 5230 | DEFSYM (Qget_file_buffer, "get-file-buffer"); | 5220 | DEFSYM (Qget_file_buffer, "get-file-buffer"); |
| 5231 | DEFSYM (Qpriority, "priority"); | 5221 | DEFSYM (Qpriority, "priority"); |
| 5232 | DEFSYM (Qclone_number, "clone-number"); | ||
| 5233 | DEFSYM (Qbefore_string, "before-string"); | 5222 | DEFSYM (Qbefore_string, "before-string"); |
| 5234 | DEFSYM (Qafter_string, "after-string"); | 5223 | DEFSYM (Qafter_string, "after-string"); |
| 5235 | DEFSYM (Qfirst_change_hook, "first-change-hook"); | 5224 | DEFSYM (Qfirst_change_hook, "first-change-hook"); |
diff --git a/src/window.c b/src/window.c index dfd43ba07bf..154efe4a222 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -408,14 +408,6 @@ buffer of the selected window before each command. */) | |||
| 408 | return select_window (window, norecord, 0); | 408 | return select_window (window, norecord, 0); |
| 409 | } | 409 | } |
| 410 | 410 | ||
| 411 | DEFUN ("window-clone-number", Fwindow_clone_number, Swindow_clone_number, 0, 1, 0, | ||
| 412 | doc: /* Return WINDOW's clone number. | ||
| 413 | WINDOW can be any window and defaults to the selected one. */) | ||
| 414 | (Lisp_Object window) | ||
| 415 | { | ||
| 416 | return decode_any_window (window)->clone_number; | ||
| 417 | } | ||
| 418 | |||
| 419 | DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, | 411 | DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, |
| 420 | doc: /* Return the buffer that WINDOW is displaying. | 412 | doc: /* Return the buffer that WINDOW is displaying. |
| 421 | WINDOW can be any window and defaults to the selected one. | 413 | WINDOW can be any window and defaults to the selected one. |
| @@ -3087,18 +3079,6 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, int run_hooks_p, int | |||
| 3087 | unbind_to (count, Qnil); | 3079 | unbind_to (count, Qnil); |
| 3088 | } | 3080 | } |
| 3089 | 3081 | ||
| 3090 | DEFUN ("set-window-clone-number", Fset_window_clone_number, Sset_window_clone_number, 2, 2, 0, | ||
| 3091 | doc: /* Set WINDOW's clone number to CLONE-NUMBER. | ||
| 3092 | WINDOW can be any window and defaults to the selected one. */) | ||
| 3093 | (Lisp_Object window, Lisp_Object clone_number) | ||
| 3094 | { | ||
| 3095 | register struct window *w = decode_any_window (window); | ||
| 3096 | |||
| 3097 | CHECK_NUMBER (clone_number); | ||
| 3098 | w->clone_number = clone_number; | ||
| 3099 | return w->clone_number; | ||
| 3100 | } | ||
| 3101 | |||
| 3102 | DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, | 3082 | DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, |
| 3103 | doc: /* Make WINDOW display BUFFER-OR-NAME as its contents. | 3083 | doc: /* Make WINDOW display BUFFER-OR-NAME as its contents. |
| 3104 | WINDOW has to be a live window and defaults to the selected one. | 3084 | WINDOW has to be a live window and defaults to the selected one. |
| @@ -3289,7 +3269,6 @@ make_parent_window (Lisp_Object window, int horflag) | |||
| 3289 | 3269 | ||
| 3290 | ++sequence_number; | 3270 | ++sequence_number; |
| 3291 | XSETFASTINT (p->sequence_number, sequence_number); | 3271 | XSETFASTINT (p->sequence_number, sequence_number); |
| 3292 | XSETFASTINT (p->clone_number, sequence_number); | ||
| 3293 | 3272 | ||
| 3294 | replace_window (window, parent, 1); | 3273 | replace_window (window, parent, 1); |
| 3295 | 3274 | ||
| @@ -3335,7 +3314,6 @@ make_window (void) | |||
| 3335 | XSETFASTINT (w->use_time, 0); | 3314 | XSETFASTINT (w->use_time, 0); |
| 3336 | ++sequence_number; | 3315 | ++sequence_number; |
| 3337 | XSETFASTINT (w->sequence_number, sequence_number); | 3316 | XSETFASTINT (w->sequence_number, sequence_number); |
| 3338 | XSETFASTINT (w->clone_number, sequence_number); | ||
| 3339 | w->temslot = w->last_modified = w->last_overlay_modified = Qnil; | 3317 | w->temslot = w->last_modified = w->last_overlay_modified = Qnil; |
| 3340 | XSETFASTINT (w->last_point, 0); | 3318 | XSETFASTINT (w->last_point, 0); |
| 3341 | w->last_had_star = w->vertical_scroll_bar = Qnil; | 3319 | w->last_had_star = w->vertical_scroll_bar = Qnil; |
| @@ -5348,8 +5326,7 @@ struct saved_window | |||
| 5348 | { | 5326 | { |
| 5349 | struct vectorlike_header header; | 5327 | struct vectorlike_header header; |
| 5350 | 5328 | ||
| 5351 | Lisp_Object window, clone_number; | 5329 | Lisp_Object window, buffer, start, pointm, mark; |
| 5352 | Lisp_Object buffer, start, pointm, mark; | ||
| 5353 | Lisp_Object left_col, top_line, total_cols, total_lines; | 5330 | Lisp_Object left_col, top_line, total_cols, total_lines; |
| 5354 | Lisp_Object normal_cols, normal_lines; | 5331 | Lisp_Object normal_cols, normal_lines; |
| 5355 | Lisp_Object hscroll, min_hscroll; | 5332 | Lisp_Object hscroll, min_hscroll; |
| @@ -5568,7 +5545,6 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5568 | } | 5545 | } |
| 5569 | } | 5546 | } |
| 5570 | 5547 | ||
| 5571 | w->clone_number = p->clone_number; | ||
| 5572 | /* If we squirreled away the buffer in the window's height, | 5548 | /* If we squirreled away the buffer in the window's height, |
| 5573 | restore it now. */ | 5549 | restore it now. */ |
| 5574 | if (BUFFERP (w->total_lines)) | 5550 | if (BUFFERP (w->total_lines)) |
| @@ -5851,7 +5827,6 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i) | |||
| 5851 | 5827 | ||
| 5852 | XSETFASTINT (w->temslot, i); i++; | 5828 | XSETFASTINT (w->temslot, i); i++; |
| 5853 | p->window = window; | 5829 | p->window = window; |
| 5854 | p->clone_number = w->clone_number; | ||
| 5855 | p->buffer = w->buffer; | 5830 | p->buffer = w->buffer; |
| 5856 | p->left_col = w->left_col; | 5831 | p->left_col = w->left_col; |
| 5857 | p->top_line = w->top_line; | 5832 | p->top_line = w->top_line; |
| @@ -6596,7 +6571,6 @@ function `window-nest' and altered by the function `set-window-nest'. */); | |||
| 6596 | defsubr (&Sset_frame_selected_window); | 6571 | defsubr (&Sset_frame_selected_window); |
| 6597 | defsubr (&Spos_visible_in_window_p); | 6572 | defsubr (&Spos_visible_in_window_p); |
| 6598 | defsubr (&Swindow_line_height); | 6573 | defsubr (&Swindow_line_height); |
| 6599 | defsubr (&Swindow_clone_number); | ||
| 6600 | defsubr (&Swindow_buffer); | 6574 | defsubr (&Swindow_buffer); |
| 6601 | defsubr (&Swindow_parent); | 6575 | defsubr (&Swindow_parent); |
| 6602 | defsubr (&Swindow_top_child); | 6576 | defsubr (&Swindow_top_child); |
| @@ -6646,7 +6620,6 @@ function `window-nest' and altered by the function `set-window-nest'. */); | |||
| 6646 | defsubr (&Sdelete_window_internal); | 6620 | defsubr (&Sdelete_window_internal); |
| 6647 | defsubr (&Sresize_mini_window_internal); | 6621 | defsubr (&Sresize_mini_window_internal); |
| 6648 | defsubr (&Sset_window_buffer); | 6622 | defsubr (&Sset_window_buffer); |
| 6649 | defsubr (&Sset_window_clone_number); | ||
| 6650 | defsubr (&Srun_window_configuration_change_hook); | 6623 | defsubr (&Srun_window_configuration_change_hook); |
| 6651 | defsubr (&Sselect_window); | 6624 | defsubr (&Sselect_window); |
| 6652 | defsubr (&Sforce_window_update); | 6625 | defsubr (&Sforce_window_update); |
diff --git a/src/window.h b/src/window.h index c3f59e4b116..485734e907e 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -165,10 +165,6 @@ struct window | |||
| 165 | /* Unique number of window assigned when it was created. */ | 165 | /* Unique number of window assigned when it was created. */ |
| 166 | Lisp_Object sequence_number; | 166 | Lisp_Object sequence_number; |
| 167 | 167 | ||
| 168 | /* Sequence number of window this window was cloned from. Identic | ||
| 169 | to sequence number if window was not cloned. */ | ||
| 170 | Lisp_Object clone_number; | ||
| 171 | |||
| 172 | /* No permanent meaning; used by save-window-excursion's | 168 | /* No permanent meaning; used by save-window-excursion's |
| 173 | bookkeeping. */ | 169 | bookkeeping. */ |
| 174 | Lisp_Object temslot; | 170 | Lisp_Object temslot; |