Merge r21-2-24-utf-2000-0_13-0.
[chise/xemacs-chise.git-] / info / xemacs-faq.info-5
1 This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s
2 from 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
954    The disadvantage is that it requires several Unix utilities and the
955 whole Cygwin environment, whereas the native port requires only a
956 suitable MS Windows compiler.  Also, it follows the Unix filesystem and
957 process model very closely (some will undoubtedly view this as an
958 advantage).
959
960 \1f
961 File: xemacs-faq.info,  Node: Q6.1.1,  Next: Q6.1.2,  Prev: Q6.0.4,  Up: MS Windows
962
963 6.1: Building XEmacs on MS Windows
964 ==================================
965
966 Q6.1.1: I decided to run with X.  Where do I get an X server?
967 -------------------------------------------------------------
968
969    Pointers to X servers can be found at
970 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/';
971
972    look for "Where to get an X server".  Also note that, although the
973 above page talks about Cygnus gnu-win32 (Cygwin), the information on X
974 servers is Cygwin-independent.  You don't have to be running/using
975 Cygwin to use these X servers, and you don't have to compile XEmacs
976 under Cygwin to use XEmacs with these X servers.  An "X port" XEmacs
977 compiled under Visual C++ will work with these X servers (as will
978 XEmacs running on a Unix box, redirected to the server running on your
979 PC).
980
981 \1f
982 File: xemacs-faq.info,  Node: Q6.1.2,  Next: Q6.1.3,  Prev: Q6.1.1,  Up: MS Windows
983
984 Q6.1.2: What compiler do I need to compile XEmacs?
985 --------------------------------------------------
986
987    You need Visual C++ 4.2 or 5.0, with the exception of the Cygwin
988 port, which uses Gcc.
989
990 \1f
991 File: xemacs-faq.info,  Node: Q6.1.3,  Next: Q6.1.4,  Prev: Q6.1.2,  Up: MS Windows
992
993 Q6.1.3: How do I compile for the native port?
994 ---------------------------------------------
995
996    Please read the file `nt/README' in the XEmacs distribution, which
997 contains the full description.
998
999 \1f
1000 File: xemacs-faq.info,  Node: Q6.1.4,  Next: Q6.1.5,  Prev: Q6.1.3,  Up: MS Windows
1001
1002 Q6.1.4: How do I compile for the X port?
1003 ----------------------------------------
1004
1005    Again, it is described in `nt/README' in some detail.  Basically, you
1006 need to get X11 libraries from ftp.x.org, and compile them.  If the
1007 precompiled versions are available somewhere, I don't know of it.
1008
1009 \1f
1010 File: xemacs-faq.info,  Node: Q6.1.5,  Next: Q6.1.6,  Prev: Q6.1.4,  Up: MS Windows
1011
1012 Q6.1.5: How do I compile for Cygnus' Cygwin?
1013 --------------------------------------------
1014
1015    Similar as on Unix; use the usual `configure' and `make' process.
1016 Some problems to watch out for:
1017
1018    * make sure HOME is set. This controls where you `.emacs' file comes
1019      from;
1020
1021    * CYGWIN32 needs to be set to tty for process support work. e.g.
1022      CYGWIN32=tty;
1023
1024    * picking up some other grep or other unix like tools can kill
1025      configure;
1026
1027    * static heap too small, adjust src/sheap-adjust.h to a more positive
1028      number;
1029
1030    * The Cygwin version doesn't understand `//machine/path' type paths
1031      so you will need to manually mount a directory of this form under
1032      a unix style directory for a build to work on the directory.
1033
1034
1035 \1f
1036 File: xemacs-faq.info,  Node: Q6.1.6,  Next: Q6.2.1,  Prev: Q6.1.5,  Up: MS Windows
1037
1038 Q6.1.6: What do I need for Cygwin?
1039 ----------------------------------
1040
1041    You can find the Cygwin tools and compiler at:
1042
1043    `http://sourceware.cygnus.com/cygwin/'
1044
1045    You will need version b19 or later.
1046
1047    You will also need the X libraries.  There are libraries at
1048 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/', but these are
1049 not b19 compatible.  You can get b19 X11R6.3 binaries, as well as
1050 pre-built ncurses and graphic libraries, from:
1051
1052    `ftp://ftp.parallax.co.uk/pub/andyp/'.
1053
1054 \1f
1055 File: xemacs-faq.info,  Node: Q6.2.1,  Next: Q6.2.2,  Prev: Q6.1.6,  Up: MS Windows
1056
1057 6.2: Customization and User Interface
1058 =====================================
1059
1060 Q6.2.1: How will the port cope with differences in the Windows user interface?
1061 ------------------------------------------------------------------------------
1062
1063    XEmacs (and Emacs in general) UI is pretty different from what is
1064 expected of a typical MS Windows program.  How will the MS Windows port
1065 cope with it?
1066
1067    Fortunately, Emacs is also one of the most configurable editor beasts
1068 in the world.  The MS Windows "look and feel" (mark via shift-arrow,
1069 self-inserting deletes region, etc.) can be easily configured via
1070 various packages distributed with XEmacs.  The `pending-delete' package
1071 is an example of such a utility.
1072
1073    In future versions, some of these packages might be turned on by
1074 default in the MS Windows environment.
1075
1076 \1f
1077 File: xemacs-faq.info,  Node: Q6.2.2,  Next: Q6.2.3,  Prev: Q6.2.1,  Up: MS Windows
1078
1079 Q6.2.2: How do I change fonts in XEmacs on MS Windows?
1080 ------------------------------------------------------
1081
1082    You can change font manually, but not from the menubar, yet. For
1083 example:
1084
1085          (set-face-font 'default "Lucida Console:Regular:10")
1086          (set-face-font 'modeline "MS Sans Serif:Regular:10")
1087
1088 \1f
1089 File: xemacs-faq.info,  Node: Q6.2.3,  Next: Q6.3.1,  Prev: Q6.2.2,  Up: MS Windows
1090
1091 Q6.2.3: Where do I put my `.emacs' file?
1092 ----------------------------------------
1093
1094    If the HOME environment variable is set, `.emacs' will be looked for
1095 there.  Else the directory defaults to `c:\'.
1096
1097 \1f
1098 File: xemacs-faq.info,  Node: Q6.3.1,  Next: Q6.3.2,  Prev: Q6.2.3,  Up: MS Windows
1099
1100 6.3: Miscellaneous
1101 ==================
1102
1103 Q6.3.1: Will XEmacs rename all the win32-* symbols to w32-*?
1104 ------------------------------------------------------------
1105
1106    In his flavor of Emacs 20, Richard Stallman has renamed all the
1107 win32-* symbols to w32-*.  Will XEmacs do the same?
1108
1109    We consider such a move counter-productive, thus we will not use the
1110 `w32' prefix.  However, we do recognize that Win32 name is little more
1111 than a marketing buzzword (will it be Win64 in the next release?), so
1112 we decided not to use it.  Using `windows-' would be wrong because the
1113 term is too generic, which is why we settled on a compromise
1114 `mswindows' term.
1115
1116    Thus all the XEmacs variables and functions directly related to Win32
1117 are prefixed `mswindows-'.  The user-variables shared with NT Emacs
1118 will be provided as compatibility aliases.
1119
1120    Architectural note: We believe that there should be a very small
1121 number of window-systems-specific variables, and will try to provide
1122 generic interfaces whenever possible.
1123
1124 \1f
1125 File: xemacs-faq.info,  Node: Q6.3.2,  Next: Q6.3.3,  Prev: Q6.3.1,  Up: MS Windows
1126
1127 Q6.3.2: What are the differences between the various MS Windows emacsen?
1128 ------------------------------------------------------------------------
1129
1130    XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
1131 Could you briefly explain the differences between them?
1132
1133    Here is a recount of various Emacs versions running on MS Windows:
1134
1135    * Win-Emacs
1136
1137         - Win-Emacs is a port of Lucid Emacs 19.6 to MS Windows using X
1138           compatibility libraries.  Win-Emacs has been written by Ben
1139           Wing.  The MS Windows code has not made it back to Lucid
1140           Emacs, which left Win-Emacs pretty much dead for our
1141           purposes.  Win-Emacs used to be available at Pearlsoft, but
1142           not anymore, since Pearlsoft went out of business.
1143
1144    * GNU Emacs for DOS
1145
1146         - GNU Emacs features support for MS-DOS and DJGPP (D.J.
1147           Delorie's DOS port of Gcc).  Such an Emacs is heavily
1148           underfeatured, because it does not supports long file names,
1149           lacks proper subprocesses support, and is far too big
1150           compared to typical DOS editors.
1151
1152    * GNU Emacs compiled with Win32
1153
1154         - Starting with version 19.30, it has been possible to compile
1155           GNU Emacs under MS Windows using the DJGPP compiler and X
1156           libraries.  The result is is very similar to GNU Emacs
1157           compiled under MS DOS, only it supports longer file names,
1158           etc.  This "port" is similar to the "X" flavor of XEmacs on
1159           MS Windows.
1160
1161    * NT Emacs
1162
1163         - NT Emacs is a version of GNU Emacs modified to compile and
1164           run under MS MS Windows 95 and NT using the native Win32 API.
1165           As such, it is close in spirit to the XEmacs "native" port.
1166
1167         - NT Emacs has been written by Geoff Voelker, and more
1168           information can be found at
1169           `http://www.cs.washington.edu/homes/voelker/ntemacs.html'.
1170
1171
1172    * XEmacs
1173
1174         - Beginning with XEmacs 19.12, XEmacs' architecture has been
1175           redesigned in such a way to allow clean support of multiple
1176           window systems.  At this time the TTY support was added,
1177           making X and TTY the first two "window systems" XEmacs
1178           supported.  The 19.12 design is the basis for the current
1179           native MS Windows code.
1180
1181         - Some time during 1997, David Hobley (soon joined by Marc
1182           Paquette) imported some of the NT-specific portions of GNU
1183           Emacs, making XEmacs with X support compile under Windows NT,
1184           and creating the "X" port.
1185
1186         - Several months later, Jonathan Harris sent out initial
1187           patches to use the Win32 API, thus creating the native port.
1188           Since then, various people have contributed, including Kirill
1189           M. Katsnelson (contributed support for menubars, subprocesses
1190           and network, as well as loads of other code), Andy Piper
1191           (ported XEmacs to Cygwin environment, contributed Windows
1192           unexec, Windows-specific glyphs and toolbars code, and more),
1193           Jeff Sparkes (contributed scrollbars support) and many others.
1194
1195
1196
1197 \1f
1198 File: xemacs-faq.info,  Node: Q6.3.3,  Prev: Q6.3.2,  Up: MS Windows
1199
1200 Q6.3.3: What is the porting team doing at the moment?
1201 -----------------------------------------------------
1202
1203    The porting team is continuing work on the MS Windows-specific code.
1204
1205 \1f
1206 File: xemacs-faq.info,  Node: Current Events,  Prev: MS Windows,  Up: Top
1207
1208 7 What the Future Holds
1209 ***********************
1210
1211    This is part 7 of the XEmacs Frequently Asked Questions list.  This
1212 section will change monthly, and contains any interesting items that
1213 have transpired over the previous month.  If you are reading this from
1214 the XEmacs distribution, please see the version on the Web or archived
1215 at the various FAQ FTP sites, as this file is surely out of date.
1216
1217 * Menu:
1218
1219 * Q7.0.1::      What is new in 20.2?
1220 * Q7.0.2::      What is new in 20.3?
1221 * Q7.0.3::      What is new in 20.4?
1222 * Q7.0.4::      Procedural changes in XEmacs development.
1223
1224 \1f
1225 File: xemacs-faq.info,  Node: Q7.0.1,  Next: Q7.0.2,  Prev: Current Events,  Up: Current Events
1226
1227 7.0: Changes
1228 ============
1229
1230 Q7.0.1: What is new in 20.2?
1231 ----------------------------
1232
1233    The biggest changes in 20.2 include integration of EFS (the next
1234 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
1235 major mode for editing Tex and LaTeX, and a lot of other stuff).  Many
1236 bugs from 20.0 have been fixed for this release.  20.2 also contains a
1237 new system for customizing XEmacs options, invoked via `M-x customize'.
1238
1239    XEmacs 20.2 is the development release (20.0 was beta), and is no
1240 longer considered unstable.
1241
1242 \1f
1243 File: xemacs-faq.info,  Node: Q7.0.2,  Next: Q7.0.3,  Prev: Q7.0.1,  Up: Current Events
1244
1245 Q7.0.2: What is new in 20.3?
1246 ----------------------------
1247
1248    XEmacs 20.3 was released in November 1997. It contains many bugfixes,
1249 and a number of new features, including Autoconf 2 based configuration,
1250 additional support for Mule (Multi-language extensions to Emacs), many
1251 more customizations, multiple frames on TTY-s, support for multiple info
1252 directories, an enhanced gnuclient, improvements to regexp matching,
1253 increased MIME support, and many, many synches with GNU Emacs 20.
1254
1255    The XEmacs/Mule support has been only seriously tested in a Japanese
1256 locale, and no doubt many problems still remain.  The support for
1257 ISO-Latin-1 and Japanese is fairly strong.  MULE support comes at a
1258 price - about a 30% slowdown from 19.16.  We're making progress on
1259 improving performance and XEmacs 20.3 compiled without Mule (which is
1260 the default) is definitely faster than XEmacs 19.16.
1261
1262    XEmacs 20.3 is the first non-beta v20 release, and will be the basis
1263 for all further development.
1264
1265 \1f
1266 File: xemacs-faq.info,  Node: Q7.0.3,  Next: Q7.0.4,  Prev: Q7.0.2,  Up: Current Events
1267
1268 Q7.0.3: What's new in XEmacs 20.4?
1269 ----------------------------------
1270
1271    XEmacs 20.4 is a bugfix release with no user-visible changes.
1272
1273 \1f
1274 File: xemacs-faq.info,  Node: Q7.0.4,  Prev: Q7.0.3,  Up: Current Events
1275
1276 Q7.0.4: Procedural changes in XEmacs development.
1277 -------------------------------------------------
1278
1279   1. Discussion about the development of XEmacs occurs on the
1280      xemacs-beta mailing list.  Subscriptions to this list will now be
1281      fully automated instead of being handled by hand.  Send a mail
1282      message to <xemacs-beta-request@xemacs.org> with `subscribe' as the
1283      BODY of the message to join the list.  Please note this is a
1284      developers mailing list for people who have an active interest in
1285      the development process.
1286
1287      The discussion of NT XEmacs development is taking place on a
1288      separate mailing list.  Send mail to
1289      <xemacs-nt-request@xemacs.org> to subscribe.
1290
1291   2. Due to the long development cycle in between releases, it has been
1292      decided that intermediate versions will be made available in
1293      source only form for the truly interested.
1294
1295      XEmacs 19.16 was the last 19 release, basically consisting of
1296      19.15 plus the collected bugfixes.
1297
1298   3. As of December 1996, Steve Baur <steve@xemacs.org> has become the
1299      lead maintainer of XEmacs.
1300
1301