Mercurial > emacs
annotate build-ins.in @ 1721:6ba3bca4c3de
* frame.h (struct frame): New fields `can_have_scrollbars' and
`has_vertical_scrollbars'.
(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
WINDOW_VERTICAL_SCROLLBAR_COLUMN,
WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
* window.h (struct window): New field `vertical_scrollbar'.
* xterm.h (struct x_display): vertical_scrollbars,
judge_timestamp, vertical_scrollbar_extra: New fields.
(struct scrollbar): New struct.
(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
* frame.c (make_frame): Initialize the `can_have_scrollbars' and
`has_vertical_scrollbars' fields of the frame.
* term.c (term_init): Note that TERMCAP terminals don't support
scrollbars.
(mouse_position_hook): Document new args.
(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
* termhooks.h: Declare and document them.
(enum scrollbar_part): New type.
(struct input_event): Describe the new form of the scrollbar_click
event type. Change `part' from a Lisp_Object to an enum
scrollbar_part. Add a new field `scrollbar'.
* keyboard.c (kbd_buffer_get_event): Pass appropriate new
parameters to *mouse_position_hook, and make_lispy_movement.
* xfns.c (x_set_vertical_scrollbar): New function.
(x_figure_window_size): Use new macros to calculate frame size.
(Fx_create_frame): Note that X Windows frames do support scroll
bars. Default to "yes".
* xterm.c: #include <X11/cursorfont.h> and "window.h".
(x_vertical_scrollbar_cursor): New variable.
(x_term_init): Initialize it.
(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
variables.
(XTmouse_position): Use them to return scrollbar movement events.
Take new arguments, for that purpose.
(x_window_to_scrollbar, x_scrollbar_create,
x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
XTjudge_scrollbars, x_scrollbar_expose,
x_scrollbar_background_expose, x_scrollbar_handle_click,
x_scrollbar_handle_motion): New functions to implement scrollbars.
(x_term_init): Set the termhooks.h hooks to point to them.
(x_set_window_size): Use new macros to calculate frame size. Set
vertical_scrollbar_extra field.
(x_make_frame_visible): Use the frame accessor
FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
frame's subwindows as well.
(XTread_socket): Use new size-calculation macros from xterm.h when
processing ConfigureNotify events.
(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
PIXEL_TO_CHAR_HEIGHT macros.
* ymakefile (xdisp.o): This now depends on termhooks.h.
(xterm.o): This now depends on window.h.
* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
v_thumbdown, v_slider, h_scrollbar, h_thumbup,
h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
fields.
* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
interface.
(head_table): Removed from here as well.
(syms_of_keyboard): And here.
* keyboard.h: And here.
(POSN_SCROLLBAR_BUTTON): Removed.
* xscrollbar.h: File removed - no longer necessary.
* xfns.c: Don't #include it any more.
(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
(syms_of_xfns): Don't initialize or staticpro them.
(gray_bits): Salvaged from xscrollbar.h.
(x_window_to_scrollbar): Deleted.
(x_set_horizontal_scrollbar): Deleted.
(enum x_frame_parm, x_frame_parms): Remove references to
x_set_horizontal_scrollbar.
(x_set_foreground_color, x_set_background_color,
x_set_border_pixel): Remove special code to support scrollbars.
(Fx_create_frame): Remove old scrollbar setup code.
(install_vertical_scrollbar, install_horizontal_scrollbar,
adjust_scrollbars, x_resize_scrollbars): Deleted.
* xterm.c (construct_mouse_click): This doesn't need to take care of
scrollbar clicks anymore.
(XTread_socket): Remove old code to support scrollbars. Call new
functions instead for events which occur in scrollbar windows.
(XTupdate_end): Remove call to adjust_scrollbars; the main
redisplay code takes care of that now.
(enum window_type): Deleted.
* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.
* xterm.h (PIXEL_WIDTH, PIXEL_HEIGHT): Change name of parameter
from `s' to `f'; it's a frame pointer.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Thu, 24 Dec 1992 06:23:08 +0000 |
parents | ce011f7cd03f |
children | b0eeade85c1f |
rev | line source |
---|---|
522 | 1 #!/bin/sh -x |
491 | 2 # |
3 #Shell script for building and installing Emacs. | |
4 | |
617 | 5 # ==================== Where To Install Things ==================== |
6 | |
7 # The default location for installation. Everything is placed in | |
8 # subdirectories of this directory. This directory must exist when | |
9 # you start installation. The default values for many of the | |
10 # variables below are expressed in terms of this one, so you may not | |
11 # need to change them. | |
12 prefix=/usr/local | |
13 | |
14 # Where to install Emacs and other binaries that people will want to | |
15 # run directly (like etags). | |
16 bindir=${prefix}/bin | |
17 | |
18 # A directory under which we will install many of Emacs's files. The | |
19 # default values for many of the variables below are expressed in | |
20 # terms of this one, so you may not need to change them. | |
621 | 21 emacsdir=${prefix}/emacs-19.0 |
617 | 22 |
23 # Where to install and expect the architecture-independent data files | |
621 | 24 # (like the tutorial and the Zippy database). |
617 | 25 datadir=${emacsdir}/etc |
26 | |
621 | 27 # Where to install the elisp files distributed with Emacs. Strictly |
28 # speaking, all the elisp files should go under datadir (above), since | |
29 # both elisp source and compiled elisp are completely portable, but | |
30 # it's traditional to give the lisp files their own subdirectory. | |
617 | 31 lispdir=${emacsdir}/lisp |
32 | |
621 | 33 # Directories Emacs should search for elisp files specific to this |
34 # site (i.e. customizations), before consulting ${lispdir}. This | |
35 # should be a colon-separated list of directories. | |
36 locallisppath=${emacsdir}/local-lisp | |
37 | |
38 # Where Emacs will search to find its elisp files. Before changing | |
39 # this, check to see if your purpose wouldn't better be served by | |
40 # changing locallisppath. This should be a colon-separated list of | |
41 # directories. | |
42 lisppath=${locallisppath}:${lispdir} | |
43 | |
44 # Where Emacs will search for its elisp files before dumping. This is | |
45 # only used during the process of compiling Emacs, to help Emacs find | |
46 # its lisp files before they've been installed in their final | |
47 # location. It's usually identical to lisppath, except that the entry | |
48 # for the directory containing the installed lisp files has been | |
49 # replaced with ../lisp. This should be a colon-separated list of | |
50 # directories. | |
51 dumplisppath=../lisp | |
617 | 52 |
53 # Where to install and expect the files that Emacs modifies as it | |
54 # runs. These files are all architecture-independent. Right now, | |
55 # the only such data is the locking directory. | |
56 statedir=${emacsdir} | |
57 | |
58 # Where to create and expect the locking directory, where the Emacs | |
59 # locking code keeps track of which files are currently being edited. | |
60 lockdir=${statedir}/lock | |
61 | |
62 # Where to install and expect executable files to be run by Emacs | |
63 # rather than directly by users, and other architecture-dependent | |
64 # data. | |
65 libdir=${emacsdir}/arch-lib | |
66 | |
67 # Where to install Emacs's man pages. | |
68 mandir=/usr/man/man1 | |
69 | |
70 # Where to install and expect the info files describing Emacs. In the | |
71 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but | |
72 # since there are now many packages documented with the texinfo | |
73 # system, it is inappropriate to imply that it is part of Emacs. | |
74 infodir=${prefix}/info | |
75 | |
621 | 76 removenullpaths="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'" |
491 | 77 |
621 | 78 lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ |
79 dumplisppath=`echo ${dumplisppath} | ${removenullpaths}` ; \ | |
80 /bin/sed < src/paths.h.in > src/paths.h \ | |
81 -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \ | |
82 -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";' \ | |
83 -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \ | |
84 -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \ | |
625 | 85 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' |
491 | 86 |
87 (cd lib-src; make) || exit 1 | |
88 (cd src; make) || exit 1 | |
89 | |
617 | 90 # Subdirectories to install, and where they'll go. |
91 copydir=arch-lib etc info lisp | |
92 copydests=${libdir} ${datadir} ${infodir} ${lispdir} | |
93 | |
94 # If any of the directories are below ${emacsdir} or ${statedir}, create them. | |
95 for dir in ${copydests}; do | |
96 case "${dir}" in | |
97 ${emacsdir}/* ) | |
98 if [ ! -d ${emacsdir} ]; then | |
99 -mkdir ${emacsdir} | |
100 -chmod 777 ${emacsdir} | |
101 fi | |
102 ;; | |
103 ${statedir}/* ) | |
104 if [ ! -d ${statedir} ]; then | |
105 -mkdir ${statedir} | |
106 -chmod 777 ${statedir} | |
107 fi | |
108 ;; | |
109 esac | |
110 done | |
111 | |
112 set ${copydests} | |
113 for dir in ${copydir} ; do | |
114 dest=$1 ; shift | |
115 mv ${dir} ${dest} | |
116 if [ $? != 0 ]; then | |
117 echo mv ${dir} to ${dest} failed -- using tar to copy. | |
118 if [ `/bin/pwd`/${dir} != `(cd ${dest}; /bin/pwd)` ] ; then | |
119 (cd ${dir}; tar cf - . ) | (cd ${dest}; umask 0; tar xf - ) | |
120 if [ $? != 0 ]; then | |
121 echo "tar-copying ${dir} to ${dest} failed too. I give up." | |
122 exit 1 | |
123 fi | |
124 for subdir in `find ${dest} -type d ! -name RCS -print` ; do | |
125 rm -rf ${subdir}/RCS | |
126 rm -f ${subdir}/\#* | |
127 rm -f ${subdir}/*~ | |
128 done | |
522 | 129 fi |
130 fi | |
617 | 131 done |
491 | 132 |
617 | 133 cp ${libdir}/[ce]tags ${bindir} |
134 mv src/xemacs ${BINDIR}/emacs | |
135 rm src/temacs | |
136 chmod 777 ${bindir}/[ce]tags ${bindir}/emacs |