comparison etc/NEWS @ 398:74fd4e045ea6 r21-2-29

Import from CVS: tag r21-2-29
author cvs
date Mon, 13 Aug 2007 11:13:30 +0200
parents 6719134a07c2
children 2f8bb876ab1d
comparison
equal deleted inserted replaced
397:f4aeb21a5bad 398:74fd4e045ea6
31 31
32 32
33 * Changes in XEmacs 21.2 33 * Changes in XEmacs 21.2
34 ======================== 34 ========================
35 35
36 ** Interactive searching and matching case improvements: 36 ** The delete key now deletes forward by default.
37 Case sensitiveness in searching operations is controled by the variable 37
38 `case-fold-search' (if non-nil, case is ignored while searching). This 38 This is regulated by the variable `delete-key-deletes-forward', which
39 mechanism has now been slightly improved in the case of an interactive 39 now defaults to t. `delete-key-deletes-forward' takes effect only on
40 search: if the search string (or regexp) happens to contain uppercase 40 the systems that offer both a backspace and a delete key. If set to
41 characters, the searching is forced to be case-sensitive, regardless of 41 nil, the key labeled "Delete" will always delete backward. If set to
42 the value of `case-fold-search'. This behavior affects all functions 42 non-nil, the "Delete" key will delete forward, except on keyboards
43 performing interactive searches, like `zap-to-char', `tags-search', 43 where a "Backspace" key is not provided (e.g. old DEC keyboards.)
44 `occur' etc. 44
45 Unless our implementation has bugs, the only reason why you would want
46 to set `delete-key-deletes-forward' to nil is if you want to use the
47 Delete key to delete backwards, despite the presence (according to
48 Xlib) of a BackSpace key on the keyboard.
49
50 ** Interactive searching and matching case improvements.
51
52 Case sensitiveness in searching operations is normally controlled by
53 the variable `case-fold-search' (if non-nil, case is ignored while
54 searching). This mechanism has now been slightly improved for
55 interactive searches: if the search string (or regexp) contains
56 uppercase characters, the searching is forced to be case-sensitive,
57 `case-fold-search'.
58
59 The new behavior affects all functions performing interactive
60 searches, like `zap-to-char', `list-matching-lines', `tags-search'
61 etc. The incremental search facility has always behaved that way.
62
63 ** Incremental search will now highlight all visible matches, making
64 it easier to anticipate where consecutive C-s or C-r will place the
65 point. If you want to disable the feature, set
66 `isearch-highlight-all-matches' to nil.
67
68 ** You can now use the buffer tabs to switch between buffers. The
69 tabs are located between the toolbar and the uppermost window, in a
70 location called "gutter". If you dislike the buffer tabs, you can
71 disable them by specifying:
72
73 (set-specifier default-gutter-visible-p nil)
74
75 in your `.emacs'. You can change the location of the gutter with
76 `set-default-gutter-position', however currently only MS-Windows
77 supports tab widgets with orientations other than vertical..
78
79 ** When you press RET at a minibuffer prompt that provides a default
80 value, the value is stored in history instead of an empty line. Also,
81 you can now edit the default value by pressing the down arrow,
82 accessing the logical "future" value. Not all minibuffer prompts have
83 yet been converted to support this feature.
84
85 ** The rectangle functions have been almost completely rewritten in
86 order to avoid inserting undesirable spaces, notably at the end of
87 lines. Two typical examples of the old behavior were
88 `string-rectangle', which filled all lines up to the right side of the
89 rectangle, and `clear-rectangle', which filled even empty lines up to
90 the left side. All functions have been rewritten to avoid inserting
91 unwanted spaces, and an optional prefix now allows them to behave the
92 old way.
93
94 As a side effect, the FORCE argument to `move-to-column' now
95 understands the special value `coerce', which means that the line
96 should not be filled if it is too short to reach the desired column.
97
98 ** Customize now supports adding comments about your face and variable
99 settings using a new menu entry. Comments for variables can also be
100 assigned by calling `customize-set-(value|variable)' with a prefix
101 argument.
102
103 ** XEmacs now locates the early package hierarchies at
104 ~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/. Previously,
105 the early packages were located in ~/.xemacs/.
45 106
46 ** You can now create "indirect buffers", like in GNU Emacs. An 107 ** You can now create "indirect buffers", like in GNU Emacs. An
47 indirect buffer shares its text with another buffer ("base buffer"), 108 indirect buffer shares its text with another buffer ("base buffer"),
48 but has its own major mode, local variables, extents, and narrowing. 109 but has its own major mode, local variables, extents, and narrowing.
49 An indirect buffer has a name of its own, distinct from those of the 110 An indirect buffer has a name of its own, distinct from those of the
50 base buffer and all other buffers. An indirect buffer cannot itself 111 base buffer and all other buffers. An indirect buffer cannot itself
51 be visiting a file (though its base buffer can be). The base buffer 112 be visiting a file (though its base buffer can be). The base buffer
52 cannot itself be indirect. 113 cannot itself be indirect.
53 114
54 Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer 115 Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
55 named NAME whose base is BASE-BUFFER. If BASE-BUFFER is an indirect 116 named NAME whose base is BASE-BUFFER. If BASE-BUFFER is itself an
56 buffer, its base buffer is used as the base for the new buffer. 117 indirect buffer, its base buffer is used as the base for the new
118 buffer.
57 119
58 You can make an indirect buffer current, or switch to it in a window, 120 You can make an indirect buffer current, or switch to it in a window,
59 just as you would a non-indirect buffer. 121 just as you would a non-indirect buffer.
60 122
61 The function `buffer-base-buffer', given an indirect buffer, returns 123 The function `buffer-base-buffer' returns a buffer's base buffer or
62 its base buffer. It returns nil when given an ordinary buffer (not 124 nil, if given an ordinary (non-indirect) buffer. The function
63 indirect). `buffer-indirect-children' returns a list of the indirect 125 `buffer-indirect-children' returns a list of the indirect children of
64 children of a base buffer. 126 a base buffer.
127
128 ** User names following the tilde character can now be completed at
129 file name prompts; e.g. `C-x C-f ~hni<TAB>' will complete to
130 `~hniksic/'. To make this operation faster, a cache of user names is
131 maintained internally.
132
133 The new primitives available for this purpose are functions named
134 `user-name-completion' and `user-name-all-completions'.
135
136 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD).
137 It will try NAS first, then ESD, then playing native sound directly.
138
139 ** X-Face support is now available under MS-Windows.
140 If an X-Face libary built under MS-Windows is available then XEmacs
141 will use this at build time.
142
143 ** The font-menu is now available under MS-Windows.
144
145 ** MS-Windows support for selection is now much more robust.
146
147 Generally selection should now do what you would expect under
148 MS-Windows: the middle mouse button will paste your current selection
149 or the clipboard; conversions from different types of selection to the
150 clipboard can be made; the kill-ring and friends will be updated as
151 per X.
152
153 The only thing selection doesn't do is set the clipboard automatically
154 as this would break the MS-Windows model. If you want this behaviour
155 then set `selection-sets-clipboard' to t
156
157 ** Mail spool locking now works correctly.
158 XEmacs has always come with a little auxiliary program, movemail,
159 which moves mail out of the system's spool area into user storage. To
160 coordinate between XEmacs, the mail delivery agent, and other mail
161 user agents, movemail needs to properly lock the spool file before
162 moving it. Movemail now correctly respects the --mail-locking option
163 to configure. Moreover, movemail's locking behavior can be specified
164 at run-time, via a new command-line option -m to movemail, or through
165 the environment variable EMACSLOCKMETHOD.
166
167 When installing XEmacs, make sure you configure it according to your
168 environment's mail spool locking conventions. When you're using a
169 binary kit, set the `mail-lock-method' variable at startup, or the
170 EMACSLOCKMETHOD environment variable.
171
172 ** New command-line switches -user-init-file and -user-init-directory.
173 These can be used to specify alternate locations for what is normally
174 ~/.emacs and ~/.xemacs.
175
176 Moreover, -user <user> (which used to only work in unpredictable ways)
177 is now equivalent to
178 -user-init-file ~<user>/.emacs -user-init-directory ~<user>/.xemacs.
179
180 ** New variable `mswindows-meta-activates-menu'.
181 If you set this variable to nil then pressing the Alt key under
182 MS-Windows will no longer activate the menubar. The default is t.
183
184 ** Pixel-based scrolling has been implemented.
185 By default this will attempt to scroll in increments equal to the
186 height of the default face. Set `window-pixel-scroll-increment' to
187 modify this behaviour.
188
189 ** Etags changes.
190
191 *** In DOS, etags looks for file.cgz if it cannot find file.c.
192
193 *** New option --ignore-case-regex is an alternative to --regex. It is now
194 possible to bind a regexp to a language, by prepending the regexp with
195 {lang}, where lang is one of the languages that `etags --help' prints
196 out. This feature is useful especially for regex files, where each
197 line contains a regular expression. The manual contains details.
198
199 *** In C and derived languages, etags creates tags for function
200 declarations when given the --declarations option.
201
202 *** In C++, tags are created for "operator". The tags have the form
203 "operator+", without spaces between the keyword and the operator.
204
205 *** New language Ada: tags are functions, procedures, packages, tasks, and
206 types.
207
208 *** In Fortran, procedure is no more tagged.
209
210 *** In Java, tags are created for "interface".
211
212 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
213 are now tagged.
214
215 *** In Perl, the --globals option tags global variables. my and local
216 variables are tagged.
217
218 *** New language Python: def and class at the beginning of a line are tags.
219
220 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
221 for PSWrap.
65 222
66 223
67 * Lisp and internal changes in XEmacs 21.2 224 * Lisp and internal changes in XEmacs 21.2
68 ========================================== 225 ==========================================
69 226
70 ** Functions for decoding base64 encoding are now available; see 227 ** A new portable dumper is available for beta testing.
71 `base64-encode-region', `base64-encode-string', `base64-decode-region' 228
72 and `base64-decode-string'. 229 Olivier Galibert has written a portable dumper for XEmacs, based on
73 230 initial work by Kyle Jones. Normally, XEmacs C sources link into an
74 ** Many basic lisp operations are now faster. 231 executable called `temacs', which loads the Lisp code and "unexecs"
232 into a proper `xemacs' executable. The unexec() process is hard to
233 implement correctly and makes XEmacs very hard to port to new
234 operating systems, or even to new releases of old systems.
235
236 A portable dumper is a different approach to dumping: instead of
237 dumping full-fledged executable, it only dumps out the initialized
238 data structures (both Lisp and C) into an external file. A normally
239 running XEmacs only needs to mmap() that file and relocate a bit to
240 get to the initialized data. In that scheme, there is no difference
241 between `temacs' and `xemacs'.
242
243 This is all very experimental, though. Configure with `--pdump' to
244 try testing it. NOTE: it is expected that `make' will fail after
245 dumping `xemacs.dmp'. This is because Makefiles have not yet been
246 modified to not expect `temacs' producing an `xemacs' executable. You
247 can try it out by simply running `src/temacs'. If it starts without
248 failure, the portable dumping worked.
249
250 #### NOTE: the portable dumper is not really usable yet, because the
251 state of built-in variables is not yet saved. Olivier promised to fix
252 it. Nag, nag.
253
254 ** Much effort has been invested to make XEmacs Lisp faster:
255
256 *** Many basic lisp operations are now faster.
75 This is especially the case when running a Mule-enabled XEmacs. 257 This is especially the case when running a Mule-enabled XEmacs.
76 258
77 A general overhaul of the lisp engine should produce a speedup of 1.4 259 A general overhaul of the lisp engine should produce a speedup of 1.4
78 in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs. These numbers were 260 in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs. These numbers were
79 obtained running (byte-compile "simple.el"), which should be a pretty 261 obtained running `(byte-compile "simple.el")', which should be a
80 typical test of `pure' lisp. 262 pretty typical test of "pure" Lisp.
81 263
82 Lisp hash tables have been re-implemented. The Common Lisp style hash 264 *** Lisp hash tables have been re-implemented. The Common Lisp style
83 table interface has been made standard, and moved from cl.el into fast 265 hash table interface has been made standard, and moved from cl.el into
84 C code (See the section on hash tables in the XEmacs Lisp Reference). 266 fast C code (See the section on hash tables in the XEmacs Lisp
85 A speedup factor of 3 can be expected with code that makes intensive 267 Reference). A speedup factor of 3 can be expected with code that
86 use of hash tables. 268 makes intensive use of hash tables.
87 269
88 The garbage collector has been tuned, leading to a speedup of 1.16. 270 *** The garbage collector has been tuned, leading to a speedup of
89 271 1.16.
90 The family of functions that iterate over lists, like `memq', and 272
273 *** The family of functions that iterate over lists, like `memq', and
91 `rassq', have been made a little faster (typically 1.3). 274 `rassq', have been made a little faster (typically 1.3).
92 275
93 Lisp function calls are faster, by approximately a factor of two. 276 *** Lisp function calls are faster, by approximately a factor of two.
94 However, defining inline functions (via defsubst) still make sense. 277 However, defining inline functions (via defsubst) still makes sense
95 278 for tight loops.
96 And finally, a few functions have had dramatic performance 279
97 improvements. For example, (last long-list) is now 30 times faster. 280 *** Finally, a few functions have had dramatic performance
281 improvements. For example, `(last long-list)' is now 30 times faster.
98 282
99 Of course, your mileage will vary. 283 Of course, your mileage will vary.
100 284
101 Many operations do not see any improvement. Surprisingly, running 285 Many operations do not see any improvement. Surprisingly, running
102 (font-lock-refontify-buffer) does not use the Lisp engine much at all. 286 (font-lock-fontify-buffer) does not use the Lisp engine much at all.
103 Speeding up your favorite slow operation is an excellent project to 287 Speeding up your favorite slow operation is an excellent project to
104 improve XEmacs. Don't forget to profile! 288 improve XEmacs. Don't forget to profile!
289
290 ** Native widgets can be displayed in buffers.
291
292 The glyph system has been extended to allow the display of glyphs that
293 are implemented as native window-system widgets. Thus you can embed
294 buttons, scrollbars, combo boxes, edit fields and progress gauges in a
295 buffer. As a side effect subwindow support now works once again.
296
297 All of this is still fairly experimental and there is no
298 documentation. The current APIs might change in a future version of
299 XEmacs. Some widgets are only available under MS-Windows. See the
300 file glyphs-test.el in the XEmacs src distribution for examples of
301 usage.
302
303 The buffers-tab functionality and progress gauge have been implemented
304 using this feature.
305
306 ** `user-init-file' and `user-init-directory' are now absolute
307 file/directory names. Previously, both variables used to be relative
308 to (concat "~" init-file-user). This turned out to be too complicated
309 for most packages (and some core Lisp files) to use correctly. Also,
310 the `init-file-user' variable has been obsoleted in the process.
311
312 The user-visible options like `-u' have not changed their behaviour.
105 313
106 ** XEmacs finally has an automated test suite! 314 ** XEmacs finally has an automated test suite!
107 Although this is not yet very sophisticated, it is already responsible 315 Although this is not yet very sophisticated, it is already responsible
108 for several important bug fixes in XEmacs. To try it out, simply use 316 for several important bug fixes in XEmacs. To try it out, simply use
109 the makefile target `make check' after building XEmacs. 317 the makefile target `make check' after building XEmacs.
110 318
111 ** New hash table implementation 319 ** Hash tables have been reimplemented.
112 As was pointed out above, the standard interface to hash tables is now 320 As was pointed out above, the standard interface to hash tables is now
113 the Common Lisp interface, as described in Common Lisp, the Language 321 the Common Lisp interface, as described in Common Lisp, the Language
114 (CLtL2, by Steele). The older interface (functions with names 322 (CLtL2, by Steele). The older interface (functions with names
115 containing the phrase `hashtable') will continue to work, but the 323 containing the phrase `hashtable') will continue to work, but the
116 preferred interface now has names containing the phrase `hash-table'. 324 preferred interface now has names containing the phrase `hash-table'.
120 clrhash to manipulate entries in the hash table. See the (updated) 328 clrhash to manipulate entries in the hash table. See the (updated)
121 Lisp Reference Manual for details. 329 Lisp Reference Manual for details.
122 330
123 ** Lisp code handles circular lists much more robustly. 331 ** Lisp code handles circular lists much more robustly.
124 Many basic lisp functions used to loop forever when given a circular 332 Many basic lisp functions used to loop forever when given a circular
125 list. Now this is more likely to trigger a `circular-list' error. 333 list, expecting you to C-g (quit) out of the loop. Now this is more
126 Printing a circular list now results in something like this: 334 likely to trigger a `circular-list' error. Printing a circular list
127 335 now results in something like this:
128 (progn (setq x (cons 'foo 'foo)) (setcdr x x) x) 336
129 ==> (foo ... <circular list>) 337 (let ((x (cons 'foo 'foo)))
338 (setcdr x x)
339 x)
340 => (foo ... <circular list>)
130 341
131 An extra bonus is that checking for circularities is not just 342 An extra bonus is that checking for circularities is not just
132 friendlier, but actually faster than checking for quit. 343 friendlier, but actually faster than checking for C-g.
344
345 ** Functions for decoding base64 encoding are now available; see
346 `base64-encode-region', `base64-encode-string', `base64-decode-region'
347 and `base64-decode-string'.
348
349 ** The functions `read-string', `read-expression', `eval-minibuffer',
350 `read-variable', `read-command', `read-function', `read-number',
351 `read-shell-command', `read-from-minibuffer', and `completing-read'
352 now take an additional argument which specifies the default value. If
353 this argument is non-nil, it should be a string; that string is used
354 in two ways:
355
356 It is returned if the user enters empty input.
357 It is available through the history command M-n.
358
359 ** LDAP changes.
360
361 *** The LDAP interface now consists of two layers, a low-level layer
362 that closely matches the LDAP C API, and a more convenient
363 higher-level set of functions.
364
365 *** The low-level functions that used to be named *-internal are now
366 named more simply: `ldap-open', `ldap-close', `ldap-search-basic',
367 `ldap-add', and `ldap-modify'. They should be used directly for very
368 specific purposes (such as multiple operations on a connection) only.
369
370 *** The higher-level functions provide a more convenient way to access
371 LDAP directories hiding the subtleties of handling the connection,
372 translating arguments and ensuring compliance with LDAP
373 internationalization rules and formats (currently partly implemented
374 only.) This layer provides atomic operations for searches,
375 modification, addition and deletion of multiple entries at once:
376 `ldap-search-entries', `ldap-add-entries', `ldap-delete-entries', and
377 `ldap-modify-entries'.
378
379 *** To maintain compatibility with previous code, the now obsolete
380 function `ldap-search' is now merely a wrapper that calls either
381 `ldap-search-basic' or `ldap-search-entries'. Please don't use the
382 `ldap-search' function in your new programs -- a direct call to one of
383 the two replacements is more efficient and unambiguous.
384
385 ** The arguments to `locate-file' are now more Lisp-like. As before,
386 the usage is:
387
388 (locate-file FILENAME PATH-LIST &optional SUFFIXES MODE)
389
390 Except that SUFFIXES are now a list of strings instead of a single,
391 colon-separated string. MODE is now a symbol or a list of symbols
392 (symbols `exists', `executable', `writable', and `readable' are
393 supported) instead of an integer code. See the documentation for
394 details. Of course, the old form is still accepted for backward
395 compatibility.
396
397 Several bugs in locate-file have been fixed, most notably its failure
398 to call expand-file-name on elements of PATH-LIST. Because of that
399 elements of load-path of the form "~/..." used to not work.
400 locate-file is now guaranteed to expand files during its course of
401 operation.
402
403 ** `translate-region' has been improved in several ways. Its TABLE
404 argument used to be a 256-character string. In addition to this, it
405 can now also be a vector or a char-table, which makes the function
406 useful for Mule, which it wasn't. If TABLE a vector or a generic
407 char-table, you can map characters to strings instead of to other
408 characters. For instance:
409
410 (let ((table (make-char-table 'generic)))
411 (put-char-table ?a "the letter a" table)
412 (put-char-table ?b "" table)
413 (put-char-table ?c ?\n table)
414 (translate-region (point-min) (point-max) table))
415
416 ** The new form `ignore-file-errors', similar to `ignore-errors' may
417 be used as a short-hand for condition-case when you wish to ignore
418 file-related error. For example:
419
420 (ignore-file-errors (delete-file "foo"))
421
422 ** The first argument to `intern-soft' may now also be a symbol, like
423 with `unintern'. If given a symbol, `intern-soft' will look for that
424 exact symbol rather than for any string. This is useful when you want
425 to check whether a specific symbol is interned in an obarray, e.g.:
426
427 (intern "foo")
428 (intern-soft "foo")
429 => foo
430 (intern-soft (make-symbol "foo"))
431 => nil
432
433 ** The `keywordp' function now returns non-nil only on symbols
434 interned in the global obarray. For example:
435
436 (keywordp (intern ":foo" [0]))
437 => nil
438 (keywordp (intern ":foo")) ; The same as (keywordp :foo)
439 => t
440
441 This behaviour is compatible with other code which treats symbols
442 beginning with colon as keywords only if they are interned in the
443 global obarray. `keywordp' used to wrongly return t in both cases
444 above.
133 445
134 446
135 * Changes in XEmacs 21.0 447 * Changes in XEmacs 21.0
136 ======================== 448 ========================
137 449
159 .xemacs-options from your .emacs. 471 .xemacs-options from your .emacs.
160 472
161 ** When the Zmacs region is active, `M-x query-replace' and the other 473 ** When the Zmacs region is active, `M-x query-replace' and the other
162 replace commands now operate on the region contents only. 474 replace commands now operate on the region contents only.
163 475
164 ** Using the new `-private' option, you can make XEmacs use a private 476 ** XEmacs now is able to choose X visuals and use private colormaps.
165 colormap. 477 The '-visual <visualStr>' command line option or the '.EmacsVisual'
478 Xresource controls which visual XEmacs will use, and
479 '-privateColormap' or '.privateColormap' will force XEmacs to create a
480 private colormap for use. The syntax for the visual string is
481 "<visual><bitdepth>" where <visual> is one of 'StaticColor',
482 'TrueColor', 'GrayScale', 'PseudoColor' or 'DirectColor' and
483 <bitdepth> is the appropriate number of bits per pixel. If an invalid
484 or non-supported combination is entered, XEmacs attempts to find a happy
485 medium. The X creation mechanism will then determine if it needs to
486 create a colormap for use, or the presence of the private flags will
487 force it to create it.
166 488
167 ** The `imenu' package has been ported to XEmacs and is available as a 489 ** The `imenu' package has been ported to XEmacs and is available as a
168 package. 490 package.
169 491
170 ** `echo-keystrokes' can now be a floating-point number, so that you 492 ** `echo-keystrokes' can now be a floating-point number, so that you
257 579
258 ** Gnuserv changes 580 ** Gnuserv changes
259 581
260 *** Like the old 'gnudoit' program. Gnuclient -batch now can read from stdin. 582 *** Like the old 'gnudoit' program. Gnuclient -batch now can read from stdin.
261 583
262 *** Again like the old 'gnudoit' program, gnuclient now can return multiple 584 *** Gnuclient -batch no longer breaks off the output at the first LF.
263 lines.
264 585
265 ** C mode changes 586 ** C mode changes
266 587
267 *** Multiline macros are now handled, both as they affect indentation, 588 *** Multiline macros are now handled, both as they affect indentation,
268 and as recognized syntax. New syntactic symbol cpp-macro-cont is 589 and as recognized syntax. New syntactic symbol cpp-macro-cont is
602 ** The code XEmacs uses to assemble its various paths into the 923 ** The code XEmacs uses to assemble its various paths into the
603 directory hierarchy has been rewritten to support the package system. 924 directory hierarchy has been rewritten to support the package system.
604 Look under "Startup Paths" in the Info documentation for more 925 Look under "Startup Paths" in the Info documentation for more
605 information. 926 information.
606 927
607 *** site-lisp is now longer part of the load-path by default. 928 *** site-lisp is no longer part of the load-path by default.
608 Its use is deprecated, but you can specify --with-site-lisp=yes at the 929 Its use is deprecated, but you can specify --with-site-lisp=yes at the
609 configure command line to get it back. 930 configure command line to get it back.
610 931
611 *** `Info-default-directory-list' is now obsolete. If you want to 932 *** `Info-default-directory-list' is now obsolete. If you want to
612 change the path which XEmacs uses to search for info files, set 933 change the path which XEmacs uses to search for info files, set