annotate src/scrollbar.h @ 5089:99f8ebc082d9

Make #'substring an alias of #'subseq; give the latter the byte code. src/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> * fns.c (Fsubstring): Removed. * search.c (Freplace_match): * minibuf.c (Ftry_completion): * lisp.h: * keymap.c (ensure_meta_prefix_char_keymapp): * dired.c (user_name_completion, file_name_completion): * console-x.c (x_canonicalize_console_connection): * bytecode.c (Bsubseq): * bytecode-ops.h (subseq): Move #'substring to Lisp, as an alias for #'subseq; change all C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode to Bsubseq. Motivation; not accepting vectors in #'substring is incompatible with GNU, and Common Lisp prefers #'subseq, it has no #'substring. lisp/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> Move byte code #o117 to #'subseq, not #'substring. Make #'substring available as an alias for #'subseq in Lisp. * bytecomp.el (79, subseq, substring): * bytecomp.el (byte-compile-subseq): New. * update-elc.el (update-elc-chop-extension): Use #'subseq, not #'substring, the latter is not yet available. * subr.el (substring): New alias, to #'subseq. man/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> * lispref/tips.texi (Comment Tips): * lispref/text.texi (Text Properties): * lispref/strings.texi (Creating Strings): * lispref/processes.texi (Input to Processes): * lispref/functions.texi (Argument List): * lispref/extents.texi (Duplicable Extents): Move examples that used substring to using subseq; in strings.texi, do not change the examples, but document that in this XEmacs, it is an alias for subseq, and that there may be some incompatibilities if you depend on that.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 03 Mar 2010 18:40:12 +0000
parents 1e7cc382eb16
children e0db3c197671
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Define scrollbar instance.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 /* Synched up with: Not in FSF. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
23 #ifndef INCLUDED_scrollbar_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
24 #define INCLUDED_scrollbar_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 #ifdef HAVE_SCROLLBARS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 struct scrollbar_instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 {
3017
1e7cc382eb16 [xemacs-hg @ 2005-10-24 10:07:26 by ben]
ben
parents: 2720
diff changeset
30 struct LCRECORD_HEADER header;
617
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
31
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 /* Used by the frame caches. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 struct scrollbar_instance *next;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 /* Pointer back to the mirror structure attached to. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 struct window_mirror *mirror;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 /* This flag indicates if the scrollbar is currently in use. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 char scrollbar_is_active;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 /* This flag indicates if a data parameter has changed. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 char scrollbar_instance_changed;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 /* A structure of auxiliary data specific to the device type.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 struct x_scrollbar_data is used for X window frames; defined in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 scrollbar-x.h */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 void *scrollbar_data;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 };
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49
617
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
50 DECLARE_LRECORD (scrollbar_instance, struct scrollbar_instance);
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
51 #define XSCROLLBAR_INSTANCE(x) XRECORD (x, scrollbar_instance, struct scrollbar_instance)
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
52 #define wrap_scrollbar_instance(p) wrap_record (p, scrollbar_instance)
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
53 #define SCROLLBAR_INSTANCEP(x) RECORDP (x, scrollbar_instance)
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
54 #define CHECK_SCROLLBAR_INSTANCE(x) CHECK_RECORD (x, scrollbar_instance)
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
55 #define CONCHECK_SCROLLBAR_INSTANCE(x) CONCHECK_RECORD (x, scrollbar_instance)
af57a77cbc92 [xemacs-hg @ 2001-06-18 07:09:50 by ben]
ben
parents: 440
diff changeset
56
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 #define SCROLLBAR_INSTANCE_FRAME(inst) (inst->mirror->frame)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 void init_frame_scrollbars (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 void init_device_scrollbars (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 void init_global_scrollbars (struct device *d);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 void free_frame_scrollbars (struct frame *f);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 void release_window_mirror_scrollbars (struct window_mirror *mir);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 void update_window_scrollbars (struct window *w,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 struct window_mirror *mirror,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 int active, int horiz_only);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 #ifdef MEMORY_USAGE_STATS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 int compute_scrollbar_instance_usage (struct device *d,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 struct scrollbar_instance *inst,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 struct overhead_stats *ovstats);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 extern Lisp_Object Vscrollbar_width, Vscrollbar_height;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 extern Lisp_Object Qscrollbar_line_up;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 extern Lisp_Object Qscrollbar_line_down;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 extern Lisp_Object Qscrollbar_page_up;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 extern Lisp_Object Qscrollbar_page_down;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 extern Lisp_Object Qscrollbar_to_top;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 extern Lisp_Object Qscrollbar_to_bottom;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 extern Lisp_Object Qscrollbar_vertical_drag;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 extern Lisp_Object Qscrollbar_char_left;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 extern Lisp_Object Qscrollbar_char_right;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 extern Lisp_Object Qscrollbar_page_left;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 extern Lisp_Object Qscrollbar_page_right;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 extern Lisp_Object Qscrollbar_to_left;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 extern Lisp_Object Qscrollbar_to_right;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 extern Lisp_Object Qscrollbar_horizontal_drag;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 #endif /* HAVE_SCROLLBARS */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
93 #endif /* INCLUDED_scrollbar_h_ */