aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Rudalics2011-07-02 12:36:48 +0200
committerMartin Rudalics2011-07-02 12:36:48 +0200
commit28545e04974fd13858eaff304cc09b562fd9f71f (patch)
tree65f178ee0e9cbbfd36d4fd0d02cb1785d8b31941 /src
parenta9e2a8db83243a5ef0fd6e80593af3f2a1a9cf0c (diff)
downloademacs-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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/buffer.c23
-rw-r--r--src/window.c29
-rw-r--r--src/window.h4
4 files changed, 18 insertions, 49 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index bb5c579d7fa..fff817118ea 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
12011-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
12011-07-02 Stefan Monnier <monnier@iro.umontreal.ca> 122011-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
147Lisp_Object Qpriority, Qbefore_string, Qafter_string; 147Lisp_Object Qpriority, Qbefore_string, Qafter_string;
148 148
149static Lisp_Object Qclone_number, Qevaporate; 149static Lisp_Object Qevaporate;
150 150
151Lisp_Object Qmodification_hooks; 151Lisp_Object Qmodification_hooks;
152Lisp_Object Qinsert_in_front_hooks; 152Lisp_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,
3035EMACS_INT 3032EMACS_INT
3036overlay_strings (EMACS_INT pos, struct window *w, unsigned char **pstr) 3033overlay_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
411DEFUN ("window-clone-number", Fwindow_clone_number, Swindow_clone_number, 0, 1, 0,
412 doc: /* Return WINDOW's clone number.
413WINDOW 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
419DEFUN ("window-buffer", Fwindow_buffer, Swindow_buffer, 0, 1, 0, 411DEFUN ("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.
421WINDOW can be any window and defaults to the selected one. 413WINDOW 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
3090DEFUN ("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.
3092WINDOW 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
3102DEFUN ("set-window-buffer", Fset_window_buffer, Sset_window_buffer, 2, 3, 0, 3082DEFUN ("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.
3104WINDOW has to be a live window and defaults to the selected one. 3084WINDOW 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;