Mercurial > hg > xemacs-beta
annotate man/xemacs/startup.texi @ 5797:a1808d52a34a
If the position of a window's cached point is deleted, use buffer point instead
src/ChangeLog addition:
2014-06-17 Aidan Kehoe <kehoea@parhasard.net>
* extents.h:
* window.c:
* window.c (unshow_buffer):
* window.c (Fset_window_buffer):
Use extents, rather than markers, for the window buffer point
cache, so that when the text containing that window buffer point
is deleted, the window display code uses the buffer's actual point
instead of the position that the marker had been moved to.
Fixes Michael Heinrich's problem of
http://mid.gmane.org/6zr42uxtf5.fsf@elektra.science-computing.de ,
introduced by Ben's patch of
https://bitbucket.org/xemacs/xemacs/commits/047d37eb70d70f43803 .
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 17 Jun 2014 20:55:45 +0100 |
parents | 9c4bf82eaac2 |
children |
rev | line source |
---|---|
444 | 1 @node Startup Paths, Packages, Command Switches, Top |
428 | 2 @comment node-name, next, previous, up |
3 @section How XEmacs finds Directories and Files | |
4 | |
5 @cindex startup paths | |
6 @cindex directories | |
7 | |
8 XEmacs deals with a multitude of files during operation. These files | |
9 are spread over many directories, and XEmacs determines the location of | |
10 most of these directories at startup and organizes them into various | |
11 paths. (A @dfn{path}, | |
12 @cindex path | |
13 for the purposes of this section, is simply a list of directories which | |
14 XEmacs searches successively in order to locate a file.) | |
15 | |
16 @subsection XEmacs Directory Hierarchies | |
17 @cindex hierarchies | |
18 @cindex directory hierarchies | |
19 | |
20 Many of the files XEmacs looks for are located within the XEmacs | |
21 installation itself. However, there are several views of what actually | |
22 constitutes the "XEmacs installation": XEmacs may be run from the | |
23 compilation directory, it may be installed into arbitrary directories, | |
24 spread over several directories unrelated to each other. Moreover, it | |
25 may subsequently be moved to a different place. (This last case is not | |
26 as uncommon as it sounds. Binary kits work this way.) Consequently, | |
27 XEmacs has quite complex procedures in place to find directories, no | |
28 matter where they may be hidden. | |
29 | |
30 XEmacs will always respect directory options passed to @code{configure}. | |
31 However, if it cannot locate a directory at the configured place, it | |
32 will initiate a search for the directory in any of a number of | |
33 @dfn{hierarchies} rooted under a directory which XEmacs assumes contain | |
34 parts of the XEmacs installation; it may locate several such hierarchies | |
35 and search across them. (Typically, there are just one or two | |
36 hierarchies: the hierarchy where XEmacs was or will be installed, and | |
37 the one where it is being built.) Such a directory containing a | |
38 hierarchy is called a @dfn{root}. | |
39 @cindex root of a hierarchy | |
40 Whenever this section refers to a directory using the shorthand | |
41 @code{<root>}, it means that XEmacs searches for it under all | |
442 | 42 hierarchies XEmacs was able to scrounge up. In a |
428 | 43 running XEmacs, the hierarchy roots are stored in the variable |
44 @code{emacs-roots}. | |
45 @vindex emacs-roots | |
46 | |
47 @subsection Package Hierarchies | |
48 @cindex package hierarchies | |
49 | |
50 Many relevant directories and files XEmacs uses are actually not part of | |
51 the core installation. They are part of any of the many packages | |
52 usually installed on top of an XEmacs installation. (@xref{Packages}.) | |
53 Hence, they play a prominent role in the various paths XEmacs sets up. | |
54 | |
55 XEmacs locates packages in any of a number of package hierarchies. | |
56 Package hierarchies fall into three groups: @dfn{early}, @dfn{late}, | |
57 and @dfn{last}, | |
58 @cindex early package hierarchies | |
59 @cindex late package hierarchies | |
60 @cindex last package hierarchies | |
61 according to the relative location at which they show | |
62 up in the various XEmacs paths. Early package hierarchies are at the | |
63 very front, late ones somewhere in the middle, and last hierarchies are | |
64 (you guessed it) last. | |
65 | |
442 | 66 By default, XEmacs expects an early package hierarchy in the |
67 subdirectory @file{.xemacs/xemacs-packages} of the user's home | |
68 directory. | |
428 | 69 |
70 Moreover, XEmacs expects late hierarchies in the subdirectories | |
71 @file{site-packages}, @file{mule-packages}, and @file{xemacs-packages} | |
5148
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
72 (in that order) of the @file{<root>/share/xemacs} subdirectory of one of |
428 | 73 the installation hierarchies. (If you run in-place, these are direct |
74 subdirectories of the build directory.) Furthermore, XEmacs will also | |
5148
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
75 search these subdirectories in the @file{<root>/share/xemacs-<VERSION>} |
428 | 76 subdirectory and prefer directories found there. |
77 | |
78 By default, XEmacs does not have a pre-configured last package | |
79 hierarchy. Last hierarchies are primarily for using package hierarchies | |
80 of outdated versions of XEmacs as a fallback option. For example, it is | |
442 | 81 possible to run XEmacs 21 with the 20.4 package hierarchy as a last |
428 | 82 hierarchy. |
83 | |
84 It is possible to specify at configure-time the location of the various | |
3179 | 85 package directories with the @code{--with-user-packages} (an alias for |
86 @samp{--with-early-packages}), @code{--with-system-packages} (an alias | |
87 for @samp{--with-late-packages}), and @code{--with-legacy-packages} (an | |
88 alias for @samp{--with-last-packages}) options to configure. | |
428 | 89 @cindex package path |
3179 | 90 At run time, the package directories may also be specified via the |
91 @code{EMACSEARLYPACKAGES}, @code{EMACSLATEPACKAGES}, and | |
92 @code{EMACSLASTPACKAGES} environment variables. | |
428 | 93 |
1183 | 94 An XEmacs package hierarchy is laid out just like a normal installed |
1258 | 95 XEmacs directory. It may have @file{lisp}, @file{etc}, @file{info}, and |
96 @file{lib-src} subdirectories. (The @file{lib-src} subdirectory | |
97 contains architecture-independent general-purpose scripts interpreted by | |
98 the shell or Perl. Java is also being widely used, but Java programs | |
99 are generally found under @file{etc}, because they are specific to | |
100 particular packages such as @file{JDE} and @file{xslt}.) XEmacs adds | |
101 these at appropriate places within the various system-wide paths. | |
428 | 102 |
103 There may be any number of package hierarchy directories. | |
104 | |
105 @subsection Directories and Paths | |
106 @cindex paths | |
107 | |
108 Here is a list of the various directories and paths XEmacs tries to | |
109 locate during startup. XEmacs distinguishes between directories and | |
110 paths specific to @dfn{version}, @dfn{site}, and @dfn{architecture} | |
111 when looking for them. | |
112 | |
113 @table @code | |
114 @item version-specific | |
115 @cindex version-specific directories | |
5148
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
116 directories (such as @file{etc}, the @file{info} of the installed XEmacs |
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
117 and its Lisp files in @file{lisp}) are specific to the version of XEmacs |
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
118 they belong to and typically reside under |
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
119 @file{<root>/share/xemacs-<VERSION>}. |
428 | 120 @item site-specific |
121 @cindex site-specific directories | |
5148
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
122 directories are independent of the version of XEmacs and |
9c4bf82eaac2
Reflect change from `lib' to `share' in docs.
Mike Sperber <sperber@deinprogramm.de>
parents:
3179
diff
changeset
|
123 typically reside under @file{<root>/share/xemacs}. |
428 | 124 @item architecture-specific |
125 @cindex architecture-specific directories | |
126 directories are specific both to the version of XEmacs and the | |
127 architecture it runs on and typically reside under | |
128 @file{<root>/lib/xemacs-<VERSION>/<ARCHITECTURE>}. | |
129 @end table | |
130 | |
131 During installation, all of these directories may also reside directly | |
132 under @file{<root>}, because that is where they are in the XEmacs tarball. | |
133 | |
134 If XEmacs runs with the @code{-debug-paths} option (@pxref{Command | |
135 Switches}), it will print the values of these variables, hopefully | |
136 aiding in debugging any problems which come up. | |
137 | |
138 @table @code | |
139 | |
140 @item lisp-directory | |
141 @vindex lisp-directory | |
142 Contains the version-specific location of the Lisp files that come with | |
143 the core distribution of XEmacs. XEmacs will search it recursively to a | |
144 depth of 1 when setting up @code{load-path}. | |
145 | |
146 @item load-path | |
147 @vindex load-path | |
148 Is where XEmacs searches for XEmacs Lisp files with commands like | |
149 @code{load-library}. | |
150 @findex load-library | |
151 It contains the package lisp directories (see further down) and the | |
152 version-specific core Lisp directories. If the environment variable | |
153 @code{EMACSLOADPATH} is set at startup, its directories are prepended to | |
154 @code{load-path}. | |
155 @vindex EMACSLOADPATH | |
156 | |
157 @item Info-directory-list | |
158 @vindex Info-directory-list | |
159 Contains the location of info files. (See @ref{(info)}.) It contains | |
160 the package info directories and the version-specific core | |
161 documentation. Moreover, XEmacs will add @file{/usr/info}, | |
162 @file{/usr/local/info} as well as the directories of the environment | |
163 variable @code{INFOPATH} | |
164 @vindex INFOPATH | |
165 to @code{Info-directory-list}. | |
166 | |
167 @item exec-directory | |
168 @vindex exec-directory | |
169 Is the directory of architecture-dependent files that come with XEmacs, | |
170 especially executable programs intended for XEmacs to invoke. | |
171 | |
172 @item exec-path | |
173 @vindex exec-path | |
174 Is the path for executables which XEmacs may want to start. It contains | |
175 the package executable paths as well as @code{exec-directory}, and the | |
176 directories of the environment variables @code{PATH} | |
177 @vindex PATH | |
178 and @code{EMACSPATH}. | |
179 @vindex EMACSPATH | |
180 | |
181 @item doc-directory | |
182 @vindex doc-directory | |
183 Is the directory containing the architecture-specific @file{DOC} file | |
184 that contains documentation for XEmacs' commands. | |
185 | |
186 @item data-directory | |
187 @vindex data-directory | |
188 Is the version-specific directory that contains core data files XEmacs uses. | |
189 It may be initialized from the @code{EMACSDATA} | |
190 @vindex EMACSDATA | |
191 environment variable. | |
192 | |
193 @item data-directory-list | |
194 @vindex data-directory-list | |
195 Is the path where XEmacs looks for data files. It contains package data | |
196 directories as well as @code{data-directory}. | |
197 | |
198 @end table | |
199 | |
200 |