Sync with r21-2-26.
[chise/xemacs-chise.git-] / info / xemacs-faq.info-5
1 This is Info file ../info/xemacs-faq.info, produced by Makeinfo version
2 1.68 from the input file xemacs-faq.texi.
3
4 INFO-DIR-SECTION XEmacs Editor
5 START-INFO-DIR-ENTRY
6 * FAQ: (xemacs-faq).            XEmacs FAQ.
7 END-INFO-DIR-ENTRY
8
9 \1f
10 File: xemacs-faq.info,  Node: Q5.0.18,  Next: Q5.0.19,  Prev: Q5.0.17,  Up: Miscellaneous
11
12 Q5.0.18: I upgraded to XEmacs 19.14 and gnuserv stopped working.
13 ----------------------------------------------------------------
14
15    Mark Daku <daku@nortel.ca> writes:
16
17      It turns out I was using an older version of gnuserv.  The
18      installation didn't put the binary into the public bin directory.
19      It put it in `lib/xemacs-19.14/hppa1.1-hp-hpux9.05/gnuserv'.
20      Shouldn't it have been put in `bin/hppa1.1-hp-hpux9.0'?
21
22 \1f
23 File: xemacs-faq.info,  Node: Q5.0.19,  Next: Q5.0.20,  Prev: Q5.0.18,  Up: Miscellaneous
24
25 Q5.0.19: Is there something better than LaTeX mode?
26 ---------------------------------------------------
27
28    David Kastrup <dak@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes:
29
30      The standard TeX modes leave much to be desired, and are somewhat
31      leniently maintained.  Serious TeX users use AUC TeX (*note
32      Q4.7.1::.).
33
34 \1f
35 File: xemacs-faq.info,  Node: Q5.0.20,  Next: Q5.1.1,  Prev: Q5.0.19,  Up: Miscellaneous
36
37 Q5.0.20: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
38 ---------------------------------------------------------------------------------------------------------
39
40    Jan Vroonhof <vroonhof@math.ethz.ch> writes:
41      Here is one of the solutions, we have this in a script called
42      `etc/editclient.sh'.
43            #!/bin/sh
44            if gnuclient -batch -eval t >/dev/null 2>&1
45            then
46              exec gnuclient ${1+"$@"}
47            else
48              xemacs -unmapped -f gnuserv-start &
49              until gnuclient -batch -eval t >/dev/null 2>&1
50              do
51                 sleep 1
52              done
53              exec gnuclient ${1+"$@"}
54            fi
55
56      Note that there is a known problem when running XEmacs and
57      'gnuclient -nw' on the same TTY.
58
59 \1f
60 File: xemacs-faq.info,  Node: Q5.1.1,  Next: Q5.1.2,  Prev: Q5.0.20,  Up: Miscellaneous
61
62 5.1: Emacs Lisp Programming Techniques
63 ======================================
64
65 Q5.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
66 -----------------------------------------------------------------------------
67
68    Erik Naggum <clerik@naggum.no> writes;
69
70      Emacs has a legacy of keyboards that produced characters with
71      modifier bits, and therefore map a variety of input systems into
72      this scheme even today.  XEmacs is instead optimized for X events.
73      This causes an incompatibility in the way key sequences are
74      specified, but both Emacs and XEmacs will accept a key sequence as
75      a vector of lists of modifiers that ends with a key, e.g., to bind
76      `M-C-a', you would say `[(meta control a)]' in both Emacsen.
77      XEmacs has an abbreviated form for a single key, just (meta
78      control a).  Emacs has an abbreviated form for the Control and the
79      Meta modifiers to string-characters (the ASCII characters), as in
80      `\M-\C-a'.  XEmacs users need to be aware that the abbreviated
81      form works only for one-character key sequences, while Emacs users
82      need to be aware that the string-character is rather limited.
83      Specifically, the string-character can accommodate only 256
84      different values, 128 of which have the Meta modifier and 128 of
85      which have not.  In each of these blocks, only 32 characters have
86      the Control modifier.  Whereas `[(meta control A)]' differs from
87      `[(meta control a)]' because the case differs, `\M-\C-a' and
88      `\M-\C-A' do not.  Programmers are advised to use the full common
89      form, both because it is more readable and less error-prone, and
90      because it is supported by both Emacsen.
91
92    Another (even safer) way to be sure of the key-sequences is to use
93 the `read-kbd-macro' function, which takes a string like `C-c <up>',
94 and converts it to the internal key representation of the Emacs you
95 use.  The function is available both on XEmacs and GNU Emacs.
96
97 \1f
98 File: xemacs-faq.info,  Node: Q5.1.2,  Next: Q5.1.3,  Prev: Q5.1.1,  Up: Miscellaneous
99
100 Q5.1.2: Can I generate "fake" keyboard events?
101 ----------------------------------------------
102
103    I wonder if there is an interactive function that can generate
104 "fake" keyboard events.  This way, I could simply map them inside
105 XEmacs.
106
107    This seems to work:
108
109      (defun cg--generate-char-event (ch)
110        "Generate an event, as if ch has been typed"
111        (dispatch-event (character-to-event ch)))
112      
113      ;;  Backspace and Delete stuff
114      (global-set-key [backspace]
115        (lambda () (interactive) (cg--generate-char-event 127)))
116      (global-set-key [unknown_keysym_0x4]
117        (lambda () (interactive) (cg--generate-char-event 4)))
118
119 \1f
120 File: xemacs-faq.info,  Node: Q5.1.3,  Next: Q5.1.4,  Prev: Q5.1.2,  Up: Miscellaneous
121
122 Q5.1.3: Could you explain `read-kbd-macro' in more detail?
123 ----------------------------------------------------------
124
125    The `read-kbd-macro' function returns the internal Emacs
126 representation of a human-readable string (which is its argument).
127 Thus:
128
129      (read-kbd-macro "C-c C-a")
130      => [(control ?c) (control ?a)]
131      
132      (read-kbd-macro "C-c C-. <up>")
133      => [(control ?c) (control ?.) up]
134
135    In GNU Emacs the same forms will be evaluated to what GNU Emacs
136 understands internally--the sequences `"\C-x\C-c"' and `[3 67108910
137 up]', respectively.
138
139    The exact "human-readable" syntax is defined in the docstring of
140 `edmacro-mode'.  I'll repeat it here, for completeness.
141
142      Format of keyboard macros during editing:
143
144      Text is divided into "words" separated by whitespace.  Except for
145      the words described below, the characters of each word go directly
146      as characters of the macro.  The whitespace that separates words is
147      ignored.  Whitespace in the macro must be written explicitly, as in
148      `foo <SPC> bar <RET>'.
149
150         * The special words `RET', `SPC', `TAB', `DEL', `LFD', `ESC',
151           and `NUL' represent special control characters.  The words
152           must be written in uppercase.
153
154         * A word in angle brackets, e.g., `<return>', `<down>', or
155           `<f1>', represents a function key.  (Note that in the standard
156           configuration, the function key `<return>' and the control key
157           <RET> are synonymous.)  You can use angle brackets on the
158           words <RET>, <SPC>, etc., but they are not required there.
159
160         * Keys can be written by their ASCII code, using a backslash
161           followed by up to six octal digits.  This is the only way to
162           represent keys with codes above \377.
163
164         * One or more prefixes `M-' (meta), `C-' (control), `S-'
165           (shift), `A-' (alt), `H-' (hyper), and `s-' (super) may
166           precede a character or key notation.  For function keys, the
167           prefixes may go inside or outside of the brackets: `C-<down>'
168           == `<C-down>'.  The prefixes may be written in any order:
169           `M-C-x' == `C-M-x'.
170
171           Prefixes are not allowed on multi-key words, e.g., `C-abc',
172           except that the Meta prefix is allowed on a sequence of
173           digits and optional minus sign: `M--123' == `M-- M-1 M-2 M-3'.
174
175         * The `^' notation for control characters also works: `^M' ==
176           `C-m'.
177
178         * Double angle brackets enclose command names: `<<next-line>>'
179           is shorthand for `M-x next-line <RET>'.
180
181         * Finally, `REM' or `;;' causes the rest of the line to be
182           ignored as a comment.
183
184      Any word may be prefixed by a multiplier in the form of a decimal
185      number and `*': `3*<right>' == `<right> <right> <right>', and
186      `10*foo' == `foofoofoofoofoofoofoofoofoofoo'.
187
188      Multiple text keys can normally be strung together to form a word,
189      but you may need to add whitespace if the word would look like one
190      of the above notations: `; ; ;' is a keyboard macro with three
191      semicolons, but `;;;' is a comment.  Likewise, `\ 1 2 3' is four
192      keys but `\123' is a single key written in octal, and `< right >'
193      is seven keys but `<right>' is a single function key.  When in
194      doubt, use whitespace.
195
196 \1f
197 File: xemacs-faq.info,  Node: Q5.1.4,  Next: Q5.1.5,  Prev: Q5.1.3,  Up: Miscellaneous
198
199 Q5.1.4: What is the performance hit of `let'?
200 ---------------------------------------------
201
202    In most cases, not noticeable.  Besides, there's no avoiding
203 `let'--you have to bind your local variables, after all.  Some pose a
204 question whether to nest `let's, or use one `let' per function.  I
205 think because of clarity and maintenance (and possible future
206 implementation), `let'-s should be used (nested) in a way to provide
207 the clearest code.
208
209 \1f
210 File: xemacs-faq.info,  Node: Q5.1.5,  Next: Q5.1.6,  Prev: Q5.1.4,  Up: Miscellaneous
211
212 Q5.1.5: What is the recommended use of `setq'?
213 ----------------------------------------------
214
215    * Global variables
216
217      You will typically `defvar' your global variable to a default
218      value, and use `setq' to set it later.
219
220      It is never a good practice to `setq' user variables (like
221      `case-fold-search', etc.), as it ignores the user's choice
222      unconditionally.  Note that `defvar' doesn't change the value of a
223      variable if it was bound previously.  If you wish to change a
224      user-variable temporarily, use `let':
225
226           (let ((case-fold-search nil))
227             ...                                 ; code with searches that must be case-sensitive
228             ...)
229
230      You will notice the user-variables by their docstrings beginning
231      with an asterisk (a convention).
232
233    * Local variables
234
235      Bind them with `let', which will unbind them (or restore their
236      previous value, if they were bound) after exiting from the `let'
237      form.  Change the value of local variables with `setq' or whatever
238      you like (e.g. `incf', `setf' and such).  The `let' form can even
239      return one of its local variables.
240
241      Typical usage:
242
243           ;; iterate through the elements of the list returned by
244           ;; `hairy-function-that-returns-list'
245           (let ((l (hairy-function-that-returns-list)))
246             (while l
247               ... do something with (car l) ...
248               (setq l (cdr l))))
249
250      Another typical usage includes building a value simply to work
251      with it.
252
253           ;; Build the mode keymap out of the key-translation-alist
254           (let ((inbox (file-truename (expand-file-name box)))
255                 (i 0))
256             ... code dealing with inbox ...
257             inbox)
258
259      This piece of code uses the local variable `inbox', which becomes
260      unbound (or regains old value) after exiting the form.  The form
261      also returns the value of `inbox', which can be reused, for
262      instance:
263
264           (setq foo-processed-inbox
265                 (let .....))
266
267 \1f
268 File: xemacs-faq.info,  Node: Q5.1.6,  Next: Q5.1.7,  Prev: Q5.1.5,  Up: Miscellaneous
269
270 Q5.1.6: What is the typical misuse of `setq' ?
271 ----------------------------------------------
272
273    A typical misuse is probably `setq'ing a variable that was meant to
274 be local.  Such a variable will remain bound forever, never to be
275 garbage-collected.  For example, the code doing:
276
277      (defun my-function (whatever)
278        (setq a nil)
279        ... build a large list ...
280        ... and exit ...)
281
282    does a bad thing, as `a' will keep consuming memory, never to be
283 unbound.  The correct thing is to do it like this:
284
285      (defun my-function (whatever)
286        (let (a)                         ; default initialization is to nil
287          ... build a large list ...
288          ... and exit, unbinding `a' in the process  ...)
289
290    Not only is this prettier syntactically, but it makes it possible for
291 Emacs to garbage-collect the objects which `a' used to reference.
292
293    Note that even global variables should not be `setq'ed without
294 `defvar'ing them first, because the byte-compiler issues warnings.  The
295 reason for the warning is the following:
296
297      (defun flurgoze nil)                       ; ok, global internal variable
298      ...
299      
300      (setq flurghoze t)                 ; ops!  a typo, but semantically correct.
301                                         ; however, the byte-compiler warns.
302      
303      While compiling toplevel forms:
304      ** assignment to free variable flurghoze
305
306 \1f
307 File: xemacs-faq.info,  Node: Q5.1.7,  Next: Q5.1.8,  Prev: Q5.1.6,  Up: Miscellaneous
308
309 Q5.1.7: I like the the `do' form of cl, does it slow things down?
310 -----------------------------------------------------------------
311
312    It shouldn't.  Here is what Dave Gillespie has to say about cl.el
313 performance:
314
315      Many of the advanced features of this package, such as `defun*',
316      `loop', and `setf', are implemented as Lisp macros.  In
317      byte-compiled code, these complex notations will be expanded into
318      equivalent Lisp code which is simple and efficient.  For example,
319      the forms
320
321           (incf i n)
322           (push x (car p))
323
324      are expanded at compile-time to the Lisp forms
325
326           (setq i (+ i n))
327           (setcar p (cons x (car p)))
328
329      which are the most efficient ways of doing these respective
330      operations in Lisp.  Thus, there is no performance penalty for
331      using the more readable `incf' and `push' forms in your compiled
332      code.
333
334      *Interpreted* code, on the other hand, must expand these macros
335      every time they are executed.  For this reason it is strongly
336      recommended that code making heavy use of macros be compiled.  (The
337      features labelled "Special Form" instead of "Function" in this
338      manual are macros.)  A loop using `incf' a hundred times will
339      execute considerably faster if compiled, and will also
340      garbage-collect less because the macro expansion will not have to
341      be generated, used, and thrown away a hundred times.
342
343      You can find out how a macro expands by using the `cl-prettyexpand'
344      function.
345
346 \1f
347 File: xemacs-faq.info,  Node: Q5.1.8,  Next: Q5.1.9,  Prev: Q5.1.7,  Up: Miscellaneous
348
349 Q5.1.8: I like recursion, does it slow things down?
350 ---------------------------------------------------
351
352    Yes.  Emacs byte-compiler cannot do much to optimize recursion.  But
353 think well whether this is a real concern in Emacs.  Much of the Emacs
354 slowness comes from internal mechanisms such as redisplay, or from the
355 fact that it is an interpreter.
356
357    Please try not to make your code much uglier to gain a very small
358 speed gain.  It's not usually worth it.
359
360 \1f
361 File: xemacs-faq.info,  Node: Q5.1.9,  Next: Q5.1.10,  Prev: Q5.1.8,  Up: Miscellaneous
362
363 Q5.1.9: How do I put a glyph as annotation in a buffer?
364 -------------------------------------------------------
365
366    Here is a solution that will insert the glyph annotation at the
367 beginning of buffer:
368
369      (make-annotation (make-glyph '([FORMAT :file FILE]
370                                     [string :data "fallback-text"]))
371                       (point-min)
372                       'text
373                       (current-buffer))
374
375    Replace `FORMAT' with an unquoted symbol representing the format of
376 the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.)  Instead of `FILE',
377 use the image file name (e.g.
378 `/usr/local/lib/xemacs-20.2/etc/recycle.xpm').
379
380    You can turn this to a function (that optionally prompts you for a
381 file name), and inserts the glyph at `(point)' instead of `(point-min)'.
382
383 \1f
384 File: xemacs-faq.info,  Node: Q5.1.10,  Next: Q5.1.11,  Prev: Q5.1.9,  Up: Miscellaneous
385
386 Q5.1.10: `map-extents' won't traverse all of my extents!
387 --------------------------------------------------------
388
389    I tried to use `map-extents' to do an operation on all the extents
390 in a region.  However, it seems to quit after processing a random number
391 of extents.  Is it buggy?
392
393    No.  The documentation of `map-extents' states that it will iterate
394 across the extents as long as FUNCTION returns `nil'.  Unexperienced
395 programmers often forget to return `nil' explicitly, which results in
396 buggy code.  For instance, the following code is supposed to delete all
397 the extents in a buffer, and issue as many `fubar!' messages.
398
399      (map-extents (lambda (ext ignore)
400                     (delete-extent ext)
401                     (message "fubar!")))
402
403    Instead, it will delete only the first extent, and stop right there -
404 because `message' will return a non-nil value.  The correct code is:
405
406      (map-extents (lambda (ext ignore)
407                     (delete-extent ext)
408                     (message "fubar!")
409                     nil))
410
411 \1f
412 File: xemacs-faq.info,  Node: Q5.1.11,  Next: Q5.2.1,  Prev: Q5.1.10,  Up: Miscellaneous
413
414 Q5.1.11: My elisp program is horribly slow.  Is there
415 -----------------------------------------------------
416
417    an easy way to find out where it spends time?
418
419    zHrvoje Niksic <hniksic@xemacs.org> writes:
420      Under XEmacs 20.4 and later  you can use `M-x
421      profile-key-sequence', press a key (say <RET> in the Gnus Group
422      buffer), and get the results using `M-x profile-results'.  It
423      should give you an idea of where the time is being spent.
424
425 \1f
426 File: xemacs-faq.info,  Node: Q5.2.1,  Next: Q5.2.2,  Prev: Q5.1.11,  Up: Miscellaneous
427
428 Q5.2.1: How do I turn off the sound?
429 ------------------------------------
430
431    Add the following line to your `.emacs':
432
433      (setq bell-volume 0)
434      (setq sound-alist nil)
435
436    That will make your XEmacs totally silent - even the default ding
437 sound (TTY beep on TTY-s) will be gone.
438
439    Starting with XEmacs-20.2 you can also change these with Customize.
440 Select from the `Options' menu
441 `Customize->Emacs->Environment->Sound->Sound...' or type `M-x customize
442 <RET> sound <RET>'.
443
444 \1f
445 File: xemacs-faq.info,  Node: Q5.2.2,  Next: Q5.2.3,  Prev: Q5.2.1,  Up: Miscellaneous
446
447 Q5.2.2: How do I get funky sounds instead of a boring beep?
448 -----------------------------------------------------------
449
450    Make sure your XEmacs was compiled with sound support, and then put
451 this in your `.emacs':
452
453      (load-default-sounds)
454
455    The sound support in XEmacs 19.14 was greatly improved over previous
456 versions.
457
458 \1f
459 File: xemacs-faq.info,  Node: Q5.2.3,  Next: Q5.2.4,  Prev: Q5.2.2,  Up: Miscellaneous
460
461 Q5.2.3: What's NAS, how do I get it?
462 ------------------------------------
463
464    *Note Q2.0.3::, for an explanation of the "Network Audio System".
465
466 \1f
467 File: xemacs-faq.info,  Node: Q5.2.4,  Next: Q5.3.1,  Prev: Q5.2.3,  Up: Miscellaneous
468
469 Q5.2.4: Sunsite sounds don't play.
470 ----------------------------------
471
472    I'm having some trouble with sounds I've downloaded from sunsite.
473 They play when I run them through `showaudio' or cat them directly to
474 `/dev/audio', but XEmacs refuses to play them.
475
476    Markus Gutschke <gutschk@uni-muenster.de> writes:
477
478      [Many of] These files have an (erroneous) 24byte header that tells
479      about the format that they have been recorded in. If you cat them
480      to `/dev/audio', the header will be ignored and the default
481      behavior for /dev/audio will be used. This happens to be 8kHz
482      uLaw. It is probably possible to fix the header by piping through
483      `sox' and passing explicit parameters for specifying the sampling
484      format; you then need to perform a 'null' conversion from SunAudio
485      to SunAudio.
486
487 \1f
488 File: xemacs-faq.info,  Node: Q5.3.1,  Next: Q5.3.2,  Prev: Q5.2.4,  Up: Miscellaneous
489
490 5.3: Miscellaneous
491 ==================
492
493 Q5.3.1: How do you make XEmacs indent CL if-clauses correctly?
494 --------------------------------------------------------------
495
496    I'd like XEmacs to indent all the clauses of a Common Lisp `if' the
497 same amount instead of indenting the 3rd clause differently from the
498 first two.
499
500    One way is to add, to `.emacs':
501
502      (put 'if 'lisp-indent-function nil)
503
504    However, note that the package `cl-indent' that comes with XEmacs
505 sets up this kind of indentation by default.  `cl-indent' also knows
506 about many other CL-specific forms.  To use `cl-indent', one can do
507 this:
508
509      (load "cl-indent")
510      (setq lisp-indent-function (function common-lisp-indent-function))
511
512    One can also customize `cl-indent.el' so it mimics the default `if'
513 indentation `then' indented more than the `else'.  Here's how:
514
515      (put 'if 'common-lisp-indent-function '(nil nil &body))
516
517    Also, a new version (1.2) of `cl-indent.el' was posted to
518 comp.emacs.xemacs on 12/9/94.  This version includes more documentation
519 than previous versions.  This may prove useful if you need to customize
520 any indent-functions.
521
522 \1f
523 File: xemacs-faq.info,  Node: Q5.3.2,  Next: Q5.3.3,  Prev: Q5.3.1,  Up: Miscellaneous
524
525 Q5.3.2: Fontifying hang when editing a postscript file.
526 -------------------------------------------------------
527
528    When I try to edit a postscript file it gets stuck saying:
529 `fontifying 'filename' (regexps....)' and it just sits there.  If I
530 press `C-c' in the window where XEmacs was started, it suddenly becomes
531 alive again.
532
533    This was caused by a bug in the Postscript font-lock regular
534 expressions.  It was fixed in 19.13.  For earlier versions of XEmacs,
535 have a look at your `.emacs' file.  You will probably have a line like:
536
537      (add-hook 'postscript-mode-hook    'turn-on-font-lock)
538
539    Take it out, restart XEmacs, and it won't try to fontify your
540 postscript files anymore.
541
542 \1f
543 File: xemacs-faq.info,  Node: Q5.3.3,  Next: Q5.3.4,  Prev: Q5.3.2,  Up: Miscellaneous
544
545 Q5.3.3: How can I print WYSIWYG a font-locked buffer?
546 -----------------------------------------------------
547
548    Font-lock looks nice.  How can I print (WYSIWYG) the highlighted
549 document?
550
551    The package `ps-print', which is now included with XEmacs, provides
552 the ability to do this.  The source code contains complete instructions
553 on its use, in `<xemacs_src_root>/lisp/packages/ps-print.el'.
554
555 \1f
556 File: xemacs-faq.info,  Node: Q5.3.4,  Next: Q5.3.5,  Prev: Q5.3.3,  Up: Miscellaneous
557
558 Q5.3.4: Getting `M-x lpr' to work with postscript printer.
559 ----------------------------------------------------------
560
561    My printer is a Postscript printer and `lpr' only works for
562 Postscript files, so how do I get `M-x lpr-region' and `M-x lpr-buffer'
563 to work?
564
565    Put something like this in your `.emacs':
566
567      (setq lpr-command "a2ps")
568      (setq lpr-switches '("-p" "-1"))
569
570    If you don't use a2ps to convert ASCII to postscript (why not, it's
571 free?), replace with the command you do use.  Note also that some
572 versions of a2ps require a `-Pprinter' to ensure spooling.
573
574 \1f
575 File: xemacs-faq.info,  Node: Q5.3.5,  Next: Q5.3.6,  Prev: Q5.3.4,  Up: Miscellaneous
576
577 Q5.3.5: How do I specify the paths that XEmacs uses for finding files?
578 ----------------------------------------------------------------------
579
580    You can specify what paths to use by using a number of different
581 flags when running configure.  See the section MAKE VARIABLES in the
582 top-level file INSTALL in the XEmacs distribution for a listing of
583 those flags.
584
585    Most of the time, however, the simplest fix is: *do not* specify
586 paths as you might for GNU Emacs.  XEmacs can generally determine the
587 necessary paths dynamically at run time.  The only path that generally
588 needs to be specified is the root directory to install into.  That can
589 be specified by passing the `--prefix' flag to configure.  For a
590 description of the XEmacs install tree, please consult the `NEWS' file.
591
592 \1f
593 File: xemacs-faq.info,  Node: Q5.3.6,  Next: Q5.3.7,  Prev: Q5.3.5,  Up: Miscellaneous
594
595 Q5.3.6: [This question intentionally left blank]
596 ------------------------------------------------
597
598    Obsolete question, left blank to avoid renumbering.
599
600 \1f
601 File: xemacs-faq.info,  Node: Q5.3.7,  Next: Q5.3.8,  Prev: Q5.3.6,  Up: Miscellaneous
602
603 Q5.3.7: Can I have the end of the buffer delimited in some way?
604 ---------------------------------------------------------------
605
606    Say, with: `[END]'?
607
608    Try this:
609
610      (let ((ext (make-extent (point-min) (point-max))))
611        (set-extent-property ext 'start-closed t)
612        (set-extent-property ext 'end-closed t)
613        (set-extent-property ext 'detachable nil)
614        (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
615
616    Since this is XEmacs, you can specify an icon to be shown on
617 window-system devices.  To do so, change the `make-glyph' call to
618 something like this:
619
620      (make-glyph '([xpm :file "~/something.xpm"]
621                    [string :data "[END]"]))
622
623    You can inline the XPM definition yourself by specifying `:data'
624 instead of `:file'.  Here is such a full-featured version that works on
625 both X and TTY devices:
626
627      (let ((ext (make-extent (point-min) (point-max))))
628        (set-extent-property ext 'start-closed t)
629        (set-extent-property ext 'end-closed t)
630        (set-extent-property ext 'detachable nil)
631        (set-extent-end-glyph ext (make-glyph '([xpm :data "\
632      /* XPM */
633      static char* eye = {
634      \"20 11 7 2\",
635      \"__ c None\"
636      \"_` c #7f7f7f\",
637      \"_a c #fefefe\",
638      \"_b c #7f0000\",
639      \"_c c #fefe00\",
640      \"_d c #fe0000\",
641      \"_e c #bfbfbf\",
642      \"___________`_`_`___b_b_b_b_________`____\",
643      \"_________`_`_`___b_c_c_c_b_b____________\",
644      \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
645      \"___`_`_e_a___b_b_d___b___b___b___b______\",
646      \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
647      \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
648      \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
649      \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
650      \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
651      \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
652      \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
653      } ;"]
654                                                [string :data "[END]"]))))
655
656    Note that you might want to make this a function, and put it to a
657 hook.  We leave that as an exercise for the reader.
658
659 \1f
660 File: xemacs-faq.info,  Node: Q5.3.8,  Next: Q5.3.9,  Prev: Q5.3.7,  Up: Miscellaneous
661
662 Q5.3.8: How do I insert today's date into a buffer?
663 ---------------------------------------------------
664
665    Like this:
666
667      (insert (current-time-string))
668
669 \1f
670 File: xemacs-faq.info,  Node: Q5.3.9,  Next: Q5.3.10,  Prev: Q5.3.8,  Up: Miscellaneous
671
672 Q5.3.9: Are only certain syntactic character classes available for abbrevs?
673 ---------------------------------------------------------------------------
674
675    Markus Gutschke <gutschk@uni-muenster.de> writes:
676
677      Yes, abbrevs only expands word-syntax strings. While XEmacs does
678      not prevent you from defining (e.g. with `C-x a g' or `C-x a l')
679      abbrevs that contain special characters, it will refuse to expand
680      them. So you need to ensure, that the abbreviation contains
681      letters and digits only. This means that `xd', `d5', and `5d' are
682      valid abbrevs, but `&d', and `x d' are not.
683
684      If this sounds confusing to you, (re-)read the online
685      documentation for abbrevs (`C-h i m XEmacs <RET> m Abbrevs
686      <RET>'), and then come back and read this question/answer again.
687
688    Starting with XEmacs 20.3 this restriction has been lifted.
689
690 \1f
691 File: xemacs-faq.info,  Node: Q5.3.10,  Next: Q5.3.11,  Prev: Q5.3.9,  Up: Miscellaneous
692
693 Q5.3.10: How can I get those oh-so-neat X-Face lines?
694 -----------------------------------------------------
695
696    Firstly there is an ftp site which describes X-faces and has the
697 associated tools mentioned below, at
698 `ftp://ftp.cs.indiana.edu:/pub/faces/'.
699
700    Then the steps are
701
702   1. Create 48x48x1 bitmap with your favorite tool
703
704   2. Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
705      and then compile the face.
706
707   3.      cat file.xbm | xbm2ikon |compface > file.face
708
709   4. Then be sure to quote things that are necessary for emacs strings:
710
711           cat ./file.face | sed 's/\\/\\\\/g'
712           | sed 's/\"/\\\"/g' > ./file.face.quoted
713
714   5. Then set up emacs to include the file as a mail header - there
715      were a couple of suggestions here--either something like:
716
717           (setq  mail-default-headers
718                  "X-Face:  <Ugly looking text string here>")
719
720      Or, alternatively, as:
721
722           (defun mail-insert-x-face ()
723             (save-excursion
724               (goto-char (point-min))
725               (search-forward mail-header-separator)
726               (beginning-of-line)
727               (insert "X-Face:")
728               (insert-file-contents "~/.face")))
729           
730           (add-hook 'mail-setup-hook 'mail-insert-x-face)
731
732    However, 2 things might be wrong:
733
734    Some versions of pbmtoicon produces some header lines that is not
735 expected by the version of compface that I grabbed. So I found I had to
736 include a `tail +3' in the pipeline like this:
737
738      cat file.xbm | xbm2ikon | tail +3 |compface > file.face
739
740    Some people have also found that if one uses the `(insert-file)'
741 method, one should NOT quote the face string using the sed script .
742
743    It might also be helpful to use Stig's <stig@hackvan.com> script
744 (included in the compface distribution at XEmacs.org) to do the
745 conversion.
746
747    Contributors for this item:
748
749    Paul Emsley, Ricardo Marek, Amir J. Katz, Glen McCort, Heinz Uphoff,
750 Peter Arius, Paul Harrison, and Vegard Vesterheim
751
752 \1f
753 File: xemacs-faq.info,  Node: Q5.3.11,  Next: Q5.3.12,  Prev: Q5.3.10,  Up: Miscellaneous
754
755 Q5.3.11: How do I add new Info directories?
756 -------------------------------------------
757
758    You use something like:
759
760      (setq Info-directory-list (cons
761                            (expand-file-name "~/info")
762                            Info-default-directory-list))
763
764    David Masterson <davidm@prism.kla.com> writes:
765
766      Emacs Info and XEmacs Info do many things differently.  If you're
767      trying to support a number of versions of Emacs, here are some
768      notes to remember:
769
770        1. Emacs Info scans `Info-directory-list' from right-to-left
771           while XEmacs Info reads it from left-to-right, so append to
772           the *correct* end of the list.
773
774        2. Use `Info-default-directory-list' to initialize
775           `Info-directory-list' *if* it is available at startup, but not
776           all Emacsen define it.
777
778        3. Emacs Info looks for a standard `dir' file in each of the
779           directories scanned from #1 and magically concatenates them
780           together.
781
782        4. XEmacs Info looks for a `localdir' file (which consists of
783           just the menu entries from a `dir' file) in each of the
784           directories scanned from #1 (except the first), does a simple
785           concatenation of them, and magically attaches the resulting
786           list to the end of the menu in the `dir' file in the first
787           directory.
788
789      Another alternative is to convert the documentation to HTML with
790      texi2html and read it from a web browser like Lynx or W3.
791
792 \1f
793 File: xemacs-faq.info,  Node: Q5.3.12,  Prev: Q5.3.11,  Up: Miscellaneous
794
795 Q5.3.12: What do I need to change to make printing work?
796 --------------------------------------------------------
797
798    For regular printing there are two variables that can be customized.
799
800 `lpr-command'
801      This should be set to a command that takes standard input and sends
802      it to a printer.  Something like:
803
804           (setq lpr-command "lp")
805
806 `lpr-switches'
807      This should be set to a list that contains whatever the print
808      command requires to do its job.  Something like:
809
810           (setq lpr-switches '("-depson"))
811
812    For postscript printing there are three analogous variables to
813 customize.
814
815 `ps-lpr-command'
816      This should be set to a command that takes postscript on standard
817      input and directs it to a postscript printer.
818
819 `ps-lpr-switches'
820      This should be set to a list of switches required for
821      `ps-lpr-command' to do its job.
822
823 `ps-print-color-p'
824      This boolean variable should be set `t' if printing will be done in
825      color, otherwise it should be set to `nil'.
826
827    NOTE: It is an undocumented limitation in XEmacs that postscript
828 printing (the `Pretty Print Buffer' menu item) *requires* a window
829 system environment.  It cannot be used outside of X11.
830
831 \1f
832 File: xemacs-faq.info,  Node: MS Windows,  Next: Current Events,  Prev: Miscellaneous,  Up: Top
833
834 6 XEmacs on MS Windows
835 **********************
836
837    This is part 6 of the XEmacs Frequently Asked Questions list,
838 written by Hrvoje Niksic and others.  This section is devoted to the MS
839 Windows port of XEmacs.
840
841 * Menu:
842
843
844 General Info
845 * Q6.0.1::      What is the status of the XEmacs port to Windows?
846 * Q6.0.2::      What flavors of MS Windows are supported?
847 * Q6.0.3::      Where are the XEmacs on MS Windows binaries?
848 * Q6.0.4::      Does XEmacs on MS Windows require an X server to run?
849
850 Building XEmacs on MS Windows
851 * Q6.1.1::      I decided to run with X.  Where do I get an X server?
852 * Q6.1.2::      What compiler do I need to compile XEmacs?
853 * Q6.1.3::      How do I compile for the native port?
854 * Q6.1.4::      How do I compile for the X port?
855 * Q6.1.5::      How do I compile for Cygnus' Cygwin?
856 * Q6.1.6::      What do I need for Cygwin?
857
858 Customization and User Interface
859 * Q6.2.1::      How will the port cope with differences in the Windows user interface?
860 * Q6.2.2::      How do I change fonts in XEmacs on MS Windows?
861 * Q6.2.3::      Where do I put my `.emacs' file?
862
863 Miscellaneous
864 * Q6.3.1::      Will XEmacs rename all the win32-* symbols to w32-*?
865 * Q6.3.2::      What are the differences between the various MS Windows emacsen?
866 * Q6.3.3::      What is the porting team doing at the moment?
867
868 \1f
869 File: xemacs-faq.info,  Node: Q6.0.1,  Next: Q6.0.2,  Prev: MS Windows,  Up: MS Windows
870
871 6.0: General Info
872 =================
873
874 Q6.0.1: What is the status of the XEmacs port to Windows?
875 ---------------------------------------------------------
876
877    Is XEmacs really getting ported to MS Windows?  What is the status
878 of the port?
879
880    Yes, a group of volunteers actively works on making XEmacs code base
881 cleanly compile and run on MS Windows operating systems.  The mailing
882 list at <xemacs-nt@xemacs.org> is dedicated to that effort (please use
883 the -request address to subscribe).
884
885    At this time, XEmacs on MS Windows is usable, but lacks some of the
886 features of XEmacs on UNIX and UNIX-like systems.  Notably,
887 internationalization does not work.
888
889 \1f
890 File: xemacs-faq.info,  Node: Q6.0.2,  Next: Q6.0.3,  Prev: Q6.0.1,  Up: MS Windows
891
892 Q6.0.2: What flavors of MS Windows are supported?  The list name implies NT only.
893 ---------------------------------------------------------------------------------
894
895    The list name is misleading, as XEmacs will support both Windows 95,
896 Windows 98 and Windows NT.  The MS Windows-specific code is based on
897 Microsoft Win32 API, and will not work on MS Windows 3.x or on MS-DOS.
898
899 \1f
900 File: xemacs-faq.info,  Node: Q6.0.3,  Next: Q6.0.4,  Prev: Q6.0.2,  Up: MS Windows
901
902 Q6.0.3: Are binary kits available?
903 ----------------------------------
904
905    Binary kits are available at
906 `ftp://ftp.xemacs.org/pub/xemacs/binary-kits/win32/' for the "plain" MS
907 Windows version.
908
909 \1f
910 File: xemacs-faq.info,  Node: Q6.0.4,  Next: Q6.1.1,  Prev: Q6.0.3,  Up: MS Windows
911
912 Q6.0.4: Does XEmacs on MS Windows require an X server to run?
913 -------------------------------------------------------------
914
915    Short answer: No.
916
917    Long answer: XEmacs can be built in several ways in the MS Windows
918 environment, some of them requiring an X server and some not.
919
920    One is what we call the "X" port - it requires X libraries to build
921 and an X server to run.  Internally it uses the Xt event loop and makes
922 use of X toolkits.  Its look is quite un-Windowsy, but it works
923 reliably and supports all of the graphical features of Unix XEmacs.
924
925    The other is what we call the "native" port.  It uses the Win32 API
926 and does not require X libraries to build, nor does it require an X to
927 run.  In fact, it has no connection with X whatsoever.  At this time,
928 the native port obsoletes the X port, providing almost all of its
929 features, including support for menus, scrollbars, toolbars, embedded
930 images and background pixmaps, frame pointers, etc.  Most of the future
931 work will be based on the native port.
932
933    There is also a third special case, the Cygwin port.  It takes
934 advantage of Cygnus emulation library under Win32, which enables it to
935 reuse much of the Unix XEmacs code base, such as processes and network
936 support, or internal select() mechanisms.
937
938    Cygwin port supports all display types - TTY, X & MS gui, and can be
939 built with support for all three.  If you build with ms gui support
940 then the Cygwin version uses the majority of the msw code, which is
941 mostly related to display.  If you want to build with X support you
942 need X libraries.  If you want to build with tty support you need
943 ncurses.  MS gui requires no additional libraries.
944
945    Some of the advantages of the Cygwin version are that it:
946
947    * integrates well with Cygwin environment for existing Cygwin users;
948
949    * uses configure so building with different features is very easy;
950
951    * has process support in X & tty.
952
953    The disadvantage is that it requires several Unix utilities and the
954 whole Cygwin environment, whereas the native port requires only a
955 suitable MS Windows compiler.  Also, it follows the Unix filesystem and
956 process model very closely (some will undoubtedly view this as an
957 advantage).
958
959 \1f
960 File: xemacs-faq.info,  Node: Q6.1.1,  Next: Q6.1.2,  Prev: Q6.0.4,  Up: MS Windows
961
962 6.1: Building XEmacs on MS Windows
963 ==================================
964
965 Q6.1.1: I decided to run with X.  Where do I get an X server?
966 -------------------------------------------------------------
967
968    Pointers to X servers can be found at
969 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/';
970
971    look for "Where to get an X server".  Also note that, although the
972 above page talks about Cygnus gnu-win32 (Cygwin), the information on X
973 servers is Cygwin-independent.  You don't have to be running/using
974 Cygwin to use these X servers, and you don't have to compile XEmacs
975 under Cygwin to use XEmacs with these X servers.  An "X port" XEmacs
976 compiled under Visual C++ will work with these X servers (as will
977 XEmacs running on a Unix box, redirected to the server running on your
978 PC).
979
980 \1f
981 File: xemacs-faq.info,  Node: Q6.1.2,  Next: Q6.1.3,  Prev: Q6.1.1,  Up: MS Windows
982
983 Q6.1.2: What compiler do I need to compile XEmacs?
984 --------------------------------------------------
985
986    You need Visual C++ 4.2 or 5.0, with the exception of the Cygwin
987 port, which uses Gcc.
988
989 \1f
990 File: xemacs-faq.info,  Node: Q6.1.3,  Next: Q6.1.4,  Prev: Q6.1.2,  Up: MS Windows
991
992 Q6.1.3: How do I compile for the native port?
993 ---------------------------------------------
994
995    Please read the file `nt/README' in the XEmacs distribution, which
996 contains the full description.
997
998 \1f
999 File: xemacs-faq.info,  Node: Q6.1.4,  Next: Q6.1.5,  Prev: Q6.1.3,  Up: MS Windows
1000
1001 Q6.1.4: How do I compile for the X port?
1002 ----------------------------------------
1003
1004    Again, it is described in `nt/README' in some detail.  Basically, you
1005 need to get X11 libraries from ftp.x.org, and compile them.  If the
1006 precompiled versions are available somewhere, I don't know of it.
1007
1008 \1f
1009 File: xemacs-faq.info,  Node: Q6.1.5,  Next: Q6.1.6,  Prev: Q6.1.4,  Up: MS Windows
1010
1011 Q6.1.5: How do I compile for Cygnus' Cygwin?
1012 --------------------------------------------
1013
1014    Similar as on Unix; use the usual `configure' and `make' process.
1015 Some problems to watch out for:
1016
1017    * make sure HOME is set. This controls where you `.emacs' file comes
1018      from;
1019
1020    * CYGWIN32 needs to be set to tty for process support work. e.g.
1021      CYGWIN32=tty;
1022
1023    * picking up some other grep or other unix like tools can kill
1024      configure;
1025
1026    * static heap too small, adjust src/sheap-adjust.h to a more positive
1027      number;
1028
1029    * The Cygwin version doesn't understand `//machine/path' type paths
1030      so you will need to manually mount a directory of this form under
1031      a unix style directory for a build to work on the directory.
1032
1033 \1f
1034 File: xemacs-faq.info,  Node: Q6.1.6,  Next: Q6.2.1,  Prev: Q6.1.5,  Up: MS Windows
1035
1036 Q6.1.6: What do I need for Cygwin?
1037 ----------------------------------
1038
1039    You can find the Cygwin tools and compiler at:
1040
1041    `http://sourceware.cygnus.com/cygwin/'
1042
1043    You will need version b19 or later.
1044
1045    You will also need the X libraries.  There are libraries at
1046 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/', but these are
1047 not b19 compatible.  You can get b19 X11R6.3 binaries, as well as
1048 pre-built ncurses and graphic libraries, from:
1049
1050    `ftp://ftp.parallax.co.uk/pub/andyp/'.
1051
1052 \1f
1053 File: xemacs-faq.info,  Node: Q6.2.1,  Next: Q6.2.2,  Prev: Q6.1.6,  Up: MS Windows
1054
1055 6.2: Customization and User Interface
1056 =====================================
1057
1058 Q6.2.1: How will the port cope with differences in the Windows user interface?
1059 ------------------------------------------------------------------------------
1060
1061    XEmacs (and Emacs in general) UI is pretty different from what is
1062 expected of a typical MS Windows program.  How will the MS Windows port
1063 cope with it?
1064
1065    Fortunately, Emacs is also one of the most configurable editor beasts
1066 in the world.  The MS Windows "look and feel" (mark via shift-arrow,
1067 self-inserting deletes region, etc.) can be easily configured via
1068 various packages distributed with XEmacs.  The `pending-delete' package
1069 is an example of such a utility.
1070
1071    In future versions, some of these packages might be turned on by
1072 default in the MS Windows environment.
1073
1074 \1f
1075 File: xemacs-faq.info,  Node: Q6.2.2,  Next: Q6.2.3,  Prev: Q6.2.1,  Up: MS Windows
1076
1077 Q6.2.2: How do I change fonts in XEmacs on MS Windows?
1078 ------------------------------------------------------
1079
1080    You can change font manually, but not from the menubar, yet. For
1081 example:
1082
1083          (set-face-font 'default "Lucida Console:Regular:10")
1084          (set-face-font 'modeline "MS Sans Serif:Regular:10")
1085
1086 \1f
1087 File: xemacs-faq.info,  Node: Q6.2.3,  Next: Q6.3.1,  Prev: Q6.2.2,  Up: MS Windows
1088
1089 Q6.2.3: Where do I put my `.emacs' file?
1090 ----------------------------------------
1091
1092    If the HOME environment variable is set, `.emacs' will be looked for
1093 there.  Else the directory defaults to `c:\'.
1094
1095 \1f
1096 File: xemacs-faq.info,  Node: Q6.3.1,  Next: Q6.3.2,  Prev: Q6.2.3,  Up: MS Windows
1097
1098 6.3: Miscellaneous
1099 ==================
1100
1101 Q6.3.1: Will XEmacs rename all the win32-* symbols to w32-*?
1102 ------------------------------------------------------------
1103
1104    In his flavor of Emacs 20, Richard Stallman has renamed all the
1105 win32-* symbols to w32-*.  Will XEmacs do the same?
1106
1107    We consider such a move counter-productive, thus we will not use the
1108 `w32' prefix.  However, we do recognize that Win32 name is little more
1109 than a marketing buzzword (will it be Win64 in the next release?), so
1110 we decided not to use it.  Using `windows-' would be wrong because the
1111 term is too generic, which is why we settled on a compromise
1112 `mswindows' term.
1113
1114    Thus all the XEmacs variables and functions directly related to Win32
1115 are prefixed `mswindows-'.  The user-variables shared with NT Emacs
1116 will be provided as compatibility aliases.
1117
1118    Architectural note: We believe that there should be a very small
1119 number of window-systems-specific variables, and will try to provide
1120 generic interfaces whenever possible.
1121
1122 \1f
1123 File: xemacs-faq.info,  Node: Q6.3.2,  Next: Q6.3.3,  Prev: Q6.3.1,  Up: MS Windows
1124
1125 Q6.3.2: What are the differences between the various MS Windows emacsen?
1126 ------------------------------------------------------------------------
1127
1128    XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
1129 Could you briefly explain the differences between them?
1130
1131    Here is a recount of various Emacs versions running on MS Windows:
1132
1133    * Win-Emacs
1134
1135         - Win-Emacs is a port of Lucid Emacs 19.6 to MS Windows using X
1136           compatibility libraries.  Win-Emacs has been written by Ben
1137           Wing.  The MS Windows code has not made it back to Lucid
1138           Emacs, which left Win-Emacs pretty much dead for our
1139           purposes.  Win-Emacs used to be available at Pearlsoft, but
1140           not anymore, since Pearlsoft went out of business.
1141
1142    * GNU Emacs for DOS
1143
1144         - GNU Emacs features support for MS-DOS and DJGPP (D.J.
1145           Delorie's DOS port of Gcc).  Such an Emacs is heavily
1146           underfeatured, because it does not supports long file names,
1147           lacks proper subprocesses support, and is far too big
1148           compared to typical DOS editors.
1149
1150    * GNU Emacs compiled with Win32
1151
1152         - Starting with version 19.30, it has been possible to compile
1153           GNU Emacs under MS Windows using the DJGPP compiler and X
1154           libraries.  The result is is very similar to GNU Emacs
1155           compiled under MS DOS, only it supports longer file names,
1156           etc.  This "port" is similar to the "X" flavor of XEmacs on
1157           MS Windows.
1158
1159    * NT Emacs
1160
1161         - NT Emacs is a version of GNU Emacs modified to compile and
1162           run under MS MS Windows 95 and NT using the native Win32 API.
1163           As such, it is close in spirit to the XEmacs "native" port.
1164
1165         - NT Emacs has been written by Geoff Voelker, and more
1166           information can be found at
1167           `http://www.cs.washington.edu/homes/voelker/ntemacs.html'.
1168
1169    * XEmacs
1170
1171         - Beginning with XEmacs 19.12, XEmacs' architecture has been
1172           redesigned in such a way to allow clean support of multiple
1173           window systems.  At this time the TTY support was added,
1174           making X and TTY the first two "window systems" XEmacs
1175           supported.  The 19.12 design is the basis for the current
1176           native MS Windows code.
1177
1178         - Some time during 1997, David Hobley (soon joined by Marc
1179           Paquette) imported some of the NT-specific portions of GNU
1180           Emacs, making XEmacs with X support compile under Windows NT,
1181           and creating the "X" port.
1182
1183         - Several months later, Jonathan Harris sent out initial
1184           patches to use the Win32 API, thus creating the native port.
1185           Since then, various people have contributed, including Kirill
1186           M. Katsnelson (contributed support for menubars, subprocesses
1187           and network, as well as loads of other code), Andy Piper
1188           (ported XEmacs to Cygwin environment, contributed Windows
1189           unexec, Windows-specific glyphs and toolbars code, and more),
1190           Jeff Sparkes (contributed scrollbars support) and many others.
1191
1192 \1f
1193 File: xemacs-faq.info,  Node: Q6.3.3,  Prev: Q6.3.2,  Up: MS Windows
1194
1195 Q6.3.3: What is the porting team doing at the moment?
1196 -----------------------------------------------------
1197
1198    The porting team is continuing work on the MS Windows-specific code.
1199
1200 \1f
1201 File: xemacs-faq.info,  Node: Current Events,  Prev: MS Windows,  Up: Top
1202
1203 7 What the Future Holds
1204 ***********************
1205
1206    This is part 7 of the XEmacs Frequently Asked Questions list.  This
1207 section will change monthly, and contains any interesting items that
1208 have transpired over the previous month.  If you are reading this from
1209 the XEmacs distribution, please see the version on the Web or archived
1210 at the various FAQ FTP sites, as this file is surely out of date.
1211
1212 * Menu:
1213
1214 * Q7.0.1::      What is new in 20.2?
1215 * Q7.0.2::      What is new in 20.3?
1216 * Q7.0.3::      What is new in 20.4?
1217 * Q7.0.4::      Procedural changes in XEmacs development.
1218
1219 \1f
1220 File: xemacs-faq.info,  Node: Q7.0.1,  Next: Q7.0.2,  Prev: Current Events,  Up: Current Events
1221
1222 7.0: Changes
1223 ============
1224
1225 Q7.0.1: What is new in 20.2?
1226 ----------------------------
1227
1228    The biggest changes in 20.2 include integration of EFS (the next
1229 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
1230 major mode for editing Tex and LaTeX, and a lot of other stuff).  Many
1231 bugs from 20.0 have been fixed for this release.  20.2 also contains a
1232 new system for customizing XEmacs options, invoked via `M-x customize'.
1233
1234    XEmacs 20.2 is the development release (20.0 was beta), and is no
1235 longer considered unstable.
1236
1237 \1f
1238 File: xemacs-faq.info,  Node: Q7.0.2,  Next: Q7.0.3,  Prev: Q7.0.1,  Up: Current Events
1239
1240 Q7.0.2: What is new in 20.3?
1241 ----------------------------
1242
1243    XEmacs 20.3 was released in November 1997. It contains many bugfixes,
1244 and a number of new features, including Autoconf 2 based configuration,
1245 additional support for Mule (Multi-language extensions to Emacs), many
1246 more customizations, multiple frames on TTY-s, support for multiple info
1247 directories, an enhanced gnuclient, improvements to regexp matching,
1248 increased MIME support, and many, many synches with GNU Emacs 20.
1249
1250    The XEmacs/Mule support has been only seriously tested in a Japanese
1251 locale, and no doubt many problems still remain.  The support for
1252 ISO-Latin-1 and Japanese is fairly strong.  MULE support comes at a
1253 price - about a 30% slowdown from 19.16.  We're making progress on
1254 improving performance and XEmacs 20.3 compiled without Mule (which is
1255 the default) is definitely faster than XEmacs 19.16.
1256
1257    XEmacs 20.3 is the first non-beta v20 release, and will be the basis
1258 for all further development.
1259
1260 \1f
1261 File: xemacs-faq.info,  Node: Q7.0.3,  Next: Q7.0.4,  Prev: Q7.0.2,  Up: Current Events
1262
1263 Q7.0.3: What's new in XEmacs 20.4?
1264 ----------------------------------
1265
1266    XEmacs 20.4 is a bugfix release with no user-visible changes.
1267
1268 \1f
1269 File: xemacs-faq.info,  Node: Q7.0.4,  Prev: Q7.0.3,  Up: Current Events
1270
1271 Q7.0.4: Procedural changes in XEmacs development.
1272 -------------------------------------------------
1273
1274   1. Discussion about the development of XEmacs occurs on the
1275      xemacs-beta mailing list.  Subscriptions to this list will now be
1276      fully automated instead of being handled by hand.  Send a mail
1277      message to <xemacs-beta-request@xemacs.org> with `subscribe' as the
1278      BODY of the message to join the list.  Please note this is a
1279      developers mailing list for people who have an active interest in
1280      the development process.
1281
1282      The discussion of NT XEmacs development is taking place on a
1283      separate mailing list.  Send mail to
1284      <xemacs-nt-request@xemacs.org> to subscribe.
1285
1286   2. Due to the long development cycle in between releases, it has been
1287      decided that intermediate versions will be made available in
1288      source only form for the truly interested.
1289
1290      XEmacs 19.16 was the last 19 release, basically consisting of
1291      19.15 plus the collected bugfixes.
1292
1293   3. As of December 1996, Steve Baur <steve@xemacs.org> has become the
1294      lead maintainer of XEmacs.
1295
1296