Mercurial > hg > xemacs-beta
annotate lisp/README @ 4477:e34711681f30
Don't determine whether to call general device-type code at startup,
rather decide in the device-specific code itself.
lisp/ChangeLog addition:
2008-07-07 Aidan Kehoe <kehoea@parhasard.net>
Patch to make it up to the device-specific code whether
various Lisp functions should be called during device creation,
not relying on the startup code to decide this. Also, rename
initial-window-system to initial-device-type (which makes more
sense in this scheme), always set it.
* startup.el (command-line):
Use initial-device-type, not initial-window-system; just call
#'make-device, leave the special behaviour to be done the first
time a console type is initialised to be decided on by the
respective console code.
* x-init.el (x-app-defaults-directory): Declare that it should be
bound.
(x-define-dead-key): Have the macro take a DEVICE argument.
(x-initialize-compose): Have the function take a DEVICE argument,
and use it when checking if various keysyms are available on the
keyboard.
(x-initialize-keyboard): Have the function take a DEVICE argument,
allowing device-specific keyboard initialisation.
(make-device-early-x-entry-point-called-p): New.
(make-device-late-x-entry-point-called-p): New. Rename
pre-x-win-initted, x-win-initted.
(make-device-early-x-entry-point): Rename init-pre-x-win, take the
call to make-x-device out (it should be called from the
device-creation code, not vice-versa).
(make-device-late-x-entry-point): Rename init-post-x-win, have it
take a DEVICE argument, use that DEVICE argument when working out
what device-specific things need doing. Don't use
create-console-hook in core code.
* x-win-xfree86.el (x-win-init-xfree86): Take a DEVICE argument;
use it.
* x-win-sun.el (x-win-init-sun): Take a DEVICE argument; use it.
* mule/mule-x-init.el: Remove #'init-mule-x-win, an empty
function.
* tty-init.el (make-device-early-tty-entry-point-called-p): New.
Rename pre-tty-win-initted.
(make-device-early-tty-entry-point): New.
Rename init-pre-tty-win.
(make-frame-after-init-entry-point): New.
Rename init-post-tty-win to better reflect when it's called.
* gtk-init.el (gtk-early-lisp-options-file): New.
Move this path to a documented variable.
(gtk-command-switch-alist): Wrap the docstring to fewer than 79
columns.
(make-device-early-gtk-entry-point-called-p): New.
(make-device-late-gtk-entry-point-called-p): New.
Renamed gtk-pre-win-initted, gtk-post-win-initted to these.
(make-device-early-gtk-entry-point): New.
(make-device-late-gtk-entry-point): New.
Renamed init-pre-gtk-win, init-post-gtk-win to these.
Have make-device-late-gtk-entry-point take a device argument, and use
it; have make-device-early-gtk-entry-point load the GTK-specific
startup code, instead of doing that in C.
(init-gtk-win): Deleted, functionality moved to the GTK device
creation code.
(gtk-define-dead-key): Have it take a DEVICE argument; use this
argument.
(gtk-initialize-compose): Ditto.
* coding.el (set-terminal-coding-system):
Correct the docstring; the function isn't broken.
src/ChangeLog addition:
2008-07-07 Aidan Kehoe <kehoea@parhasard.net>
Patch to make it up to the device-specific code whether
various Lisp functions should be called during device creation,
not relying on the startup code to decide this. Also, rename
initial-window-system to initial-device-type (which makes more
sense in this scheme), always set it.
* redisplay.c (Vinitial_device_type): New.
(Vinitial_window_system): Removed.
Rename initial-window-system to initial-device type, making it
a stream if we're noninteractive. Update its docstring.
* device-x.c (Qmake_device_early_x_entry_point,
Qmake_device_late_x_entry_point): New.
Rename Qinit_pre_x_win, Qinit_post_x_win.
(x_init_device): Call #'make-device-early-x-entry-point earlier,
now we rely on it to find the application class and the
app-defaults directory.
(x_finish_init_device): Call #'make-device-late-x-entry-point with
the created device.
(Vx_app_defaults_directory): Always make this available, to
simplify code in x-init.el.
* device-tty.c (Qmake_device_early_tty_entry_point): New.
Rename Qinit_pre_tty_win, rename Qinit_post_tty_win and move to
frame-tty.c as Qmake_frame_after_init_entry_point.
(tty_init_device): Call #'make-device-early-tty-entry-point before
doing anything.
* frame-tty.c (Qmake_frame_after_init_entry_point): New.
* frame-tty.c (tty_after_init_frame): Have it call the
better-named #'make-frame-after-init-entry-point function
instead of #'init-post-tty-win (since it's called after frame, not
device, creation).
* device-msw.c (Qmake_device_early_mswindows_entry_point,
Qmake_device_late_mswindows_entry_point): New.
Rename Qinit_pre_mswindows_win, Qinit_post_mswindows_win.
(mswindows_init_device): Call
#'make-device-early-mswindows-entry-point here, instead of having
its predecessor call us.
(mswindows_finish_init_device): Call
#'make-device-early-mswindows-entry-point, for symmetry with the
other device types (though it's an empty function).
* device-gtk.c (Qmake_device_early_gtk_entry_point,
Qmake_device_late_gtk_entry_point): New.
Rename Qinit_pre_gtk_win, Qinit_post_gtk_win.
(gtk_init_device): Call #'make-device-early-gtk-entry-point; don't
load ~/.xemacs/gtk-options.el ourselves, leave that to lisp.
(gtk_finish_init_device): Call #'make-device-late-gtk-entry-point
with the created device as an argument.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 09 Jul 2008 20:46:22 +0200 |
parents | 2cf5d151eeb9 |
children |
rev | line source |
---|---|
652 | 1 The files in this directory contain source code for the core XEmacs |
2 facilities written in Emacs Lisp. *.el files are Elisp source, and | |
3 *.elc files are byte-compiled versions of the corresponding *.el | |
4 files. Byte-compiled files are architecture-independent. | |
5 | |
6 Functions used only by files in this directory are considered | |
7 "internal" and are subject to change at any time. All commands, and | |
8 most functions with docstrings, are part of the exported API. In | |
9 particular, it is considered good style to use the Common Lisp | |
10 facilities provided in cl*.el. (Yes, that's ambiguous. Sorry, we | |
11 don't have a full specification of the API, as the Lispref is | |
12 chronically incomplete. Anything described in the Lispref is part of | |
13 the API, of course.) | |
14 | |
15 Libraries which implement applications and enhancements are placed in | |
16 the "packages", which are distributed separately from the core | |
17 sources. | |
18 | |
19 #### Someone please update this. | |
20 #### Partially updated 2001-08-25 by sjt. Needs more work. Mike? | |
21 | |
22 When XEmacs starts up, it adds certain directories in various | |
23 hierarchies containing Lisp libraries to `load-path' (the list of | |
24 directories to be searched when loading files). These are: this | |
25 directory, its subdirectory ./mule (in Mule-enabled XEmacs only), the | |
26 site-lisp directory (deprecated), and all the lisp/PACKAGE | |
27 subdirectories of the xemacs-packages, mule-packages, and | |
28 site-packages hierarchies. See setup-paths.el. | |
29 | |
30 #### Is the following true or relevant any more? | |
31 bogus> Directories whose names begin with "-" or "." are not added to | |
32 bogus> the default load-path. | |
33 | |
34 Some files which you might reasonably want to alter when installing or | |
35 customizing XEmacs at your site are: | |
36 | |
37 paths.el You may need to change the default pathnames here, | |
38 but probably not. This is loaded before XEmacs is | |
39 dumped. | |
40 | |
41 site-init.el #### obsolete and removed? | |
42 To pre-load additional libraries into XEmacs and dump | |
43 them in the executable, load them from this file. | |
44 Read the instructions in this file for a description | |
45 of how to do this. | |
46 | |
47 site-load.el #### description is obsolete | |
48 This is like site-init.el, but if you want the | |
49 docstrings of your preloaded libraries to be kept in | |
50 the DOC file instead of in the executable, you should | |
51 load them from this file instead. To do this, you must | |
52 also cause them to be scanned when the DOC file is | |
53 generated by editing ../src/Makefile.in.in and | |
54 rerunning configure. | |
55 #### new semantics | |
56 This file will preload additional libraries listed in | |
57 ../site-packages and dump them into XEmacs. | |
58 | |
59 ../site-packages List of additional libraries read by site-load.el. | |
60 | |
61 site-start.el This is loaded each time XEmacs starts up, before the | |
62 user's .emacs file. (Sysadmin must create.) Can be | |
63 inhibited for a given invocation with `--no-site-file'. | |
64 | |
65 default.el This is loaded each time XEmacs starts up, after the | |
66 user's .emacs file, unless .emacs sets the variable | |
67 inhibit-default-init to t. (Sysadmin must create.) | |
68 Can be inhibited for a given invocation with `-q'. | |
69 | |
70 version.el This contains the version information for XEmacs. | |
71 | |
72 ======================================================================== | |
73 Original text follows: | |
74 | |
428 | 75 The files in this directory contain source code for the XEmacs |
76 facilities written in Emacs Lisp. *.el files are Elisp source, and | |
77 *.elc files are byte-compiled versions of the corresponding *.el | |
78 files. Byte-compiled files are architecture-independent. | |
79 | |
80 #### Someone please update this. | |
81 | |
82 bogus> When XEmacs starts up, it adds all subdirectories of the | |
83 bogus> site-lisp directory. The site-lisp directory normally exists | |
84 bogus> only in installation trees. For more information about the | |
85 bogus> site-lisp directory see the NEWS file. | |
86 | |
87 bogus> After XEmacs adds all subdirectories of the site-lisp | |
88 bogus> directory, it adds all subdirectories of this directory to the | |
89 bogus> load-path (the list of directories to be searched when loading | |
90 bogus> files.) To speed up this process, this directory has been | |
91 bogus> rearranged to have very few files at the top-level, so that | |
92 bogus> emacs doesn't have to stat() several hundred files to find the | |
93 bogus> dozen or so which are actually subdirectories. | |
94 | |
95 bogus> Directories whose names begin with "-" or "." are not added to | |
96 bogus> the default load-path. | |
97 | |
98 The only files which remain at top-level are those which you might | |
99 reasonably want to alter when installing or customizing XEmacs at your | |
100 site. The files which may appear at top level are: | |
101 | |
102 paths.el You may need to change the default pathnames here, | |
103 but probably not. This is loaded before XEmacs is | |
104 dumped. | |
105 | |
106 site-init.el To pre-load additional libraries into XEmacs and dump | |
107 them in the executable, load them from this file. | |
108 Read the instructions in this file for a description | |
109 of how to do this. | |
110 | |
111 site-load.el This is like site-init.el, but if you want the | |
112 docstrings of your preloaded libraries to be kept in | |
113 the DOC file instead of in the executable, you should | |
114 load them from this file instead. To do this, you must | |
115 also cause them to be scanned when the DOC file is | |
116 generated by editing ../src/Makefile.in.in and | |
117 rerunning configure. | |
118 | |
119 site-start.el This is loaded each time XEmacs starts up, before the | |
120 user's .emacs file. | |
121 | |
122 default.el This is loaded each time XEmacs starts up, after the | |
123 user's .emacs file, unless .emacs sets the variable | |
124 inhibit-default-init to t. | |
125 | |
126 version.el This contains the version information for XEmacs. |