(M-40132'): Unify GT-53970.
[chise/xemacs-chise.git-] / info / xemacs-faq.info-5
1 This is ../info/xemacs-faq.info, produced by makeinfo version 4.0b from
2 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.1.9,  Next: Q5.1.10,  Prev: Q5.1.8,  Up: Miscellaneous
11
12 Q5.1.9: How do I put a glyph as annotation in a buffer?
13 -------------------------------------------------------
14
15    Here is a solution that will insert the glyph annotation at the
16 beginning of buffer:
17
18      (make-annotation (make-glyph '([FORMAT :file FILE]
19                                     [string :data "fallback-text"]))
20                       (point-min)
21                       'text
22                       (current-buffer))
23
24    Replace `FORMAT' with an unquoted symbol representing the format of
25 the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.)  Instead of `FILE',
26 use the image file name (e.g.
27 `/usr/local/lib/xemacs-20.2/etc/recycle.xpm').
28
29    You can turn this to a function (that optionally prompts you for a
30 file name), and inserts the glyph at `(point)' instead of `(point-min)'.
31
32 \1f
33 File: xemacs-faq.info,  Node: Q5.1.10,  Next: Q5.1.11,  Prev: Q5.1.9,  Up: Miscellaneous
34
35 Q5.1.10: `map-extents' won't traverse all of my extents!
36 --------------------------------------------------------
37
38    I tried to use `map-extents' to do an operation on all the extents
39 in a region.  However, it seems to quit after processing a random number
40 of extents.  Is it buggy?
41
42    No.  The documentation of `map-extents' states that it will iterate
43 across the extents as long as FUNCTION returns `nil'.  Unexperienced
44 programmers often forget to return `nil' explicitly, which results in
45 buggy code.  For instance, the following code is supposed to delete all
46 the extents in a buffer, and issue as many `fubar!' messages.
47
48      (map-extents (lambda (ext ignore)
49                     (delete-extent ext)
50                     (message "fubar!")))
51
52    Instead, it will delete only the first extent, and stop right there -
53 because `message' will return a non-nil value.  The correct code is:
54
55      (map-extents (lambda (ext ignore)
56                     (delete-extent ext)
57                     (message "fubar!")
58                     nil))
59
60 \1f
61 File: xemacs-faq.info,  Node: Q5.1.11,  Next: Q5.2.1,  Prev: Q5.1.10,  Up: Miscellaneous
62
63 Q5.1.11: My elisp program is horribly slow.  Is there
64 -----------------------------------------------------
65
66    an easy way to find out where it spends time?
67
68    zHrvoje Niksic <hniksic@xemacs.org> writes:
69      Under XEmacs 20.4 and later  you can use `M-x
70      profile-key-sequence', press a key (say <RET> in the Gnus Group
71      buffer), and get the results using `M-x profile-results'.  It
72      should give you an idea of where the time is being spent.
73
74 \1f
75 File: xemacs-faq.info,  Node: Q5.2.1,  Next: Q5.2.2,  Prev: Q5.1.11,  Up: Miscellaneous
76
77 Q5.2.1: How do I turn off the sound?
78 ------------------------------------
79
80    Add the following line to your `.emacs':
81
82      (setq bell-volume 0)
83      (setq sound-alist nil)
84
85    That will make your XEmacs totally silent--even the default ding
86 sound (TTY beep on TTY-s) will be gone.
87
88    Starting with XEmacs-20.2 you can also change these with Customize.
89 Select from the `Options' menu
90 `Customize->Emacs->Environment->Sound->Sound...' or type `M-x customize
91 <RET> sound <RET>'.
92
93 \1f
94 File: xemacs-faq.info,  Node: Q5.2.2,  Next: Q5.2.3,  Prev: Q5.2.1,  Up: Miscellaneous
95
96 Q5.2.2: How do I get funky sounds instead of a boring beep?
97 -----------------------------------------------------------
98
99    Make sure your XEmacs was compiled with sound support, and then put
100 this in your `.emacs':
101
102      (load-default-sounds)
103
104    The sound support in XEmacs 19.14 was greatly improved over previous
105 versions.
106
107 \1f
108 File: xemacs-faq.info,  Node: Q5.2.3,  Next: Q5.2.4,  Prev: Q5.2.2,  Up: Miscellaneous
109
110 Q5.2.3: What's NAS, how do I get it?
111 ------------------------------------
112
113    *Note Q2.0.3::, for an explanation of the "Network Audio System".
114
115 \1f
116 File: xemacs-faq.info,  Node: Q5.2.4,  Next: Q5.3.1,  Prev: Q5.2.3,  Up: Miscellaneous
117
118 Q5.2.4: Sunsite sounds don't play.
119 ----------------------------------
120
121    I'm having some trouble with sounds I've downloaded from sunsite.
122 They play when I run them through `showaudio' or cat them directly to
123 `/dev/audio', but XEmacs refuses to play them.
124
125    Markus Gutschke <gutschk@uni-muenster.de> writes:
126
127      [Many of] These files have an (erroneous) 24byte header that tells
128      about the format that they have been recorded in. If you cat them
129      to `/dev/audio', the header will be ignored and the default
130      behavior for /dev/audio will be used. This happens to be 8kHz
131      uLaw. It is probably possible to fix the header by piping through
132      `sox' and passing explicit parameters for specifying the sampling
133      format; you then need to perform a 'null' conversion from SunAudio
134      to SunAudio.
135
136 \1f
137 File: xemacs-faq.info,  Node: Q5.3.1,  Next: Q5.3.2,  Prev: Q5.2.4,  Up: Miscellaneous
138
139 5.3: Miscellaneous
140 ==================
141
142 Q5.3.1: How do you make XEmacs indent CL if-clauses correctly?
143 --------------------------------------------------------------
144
145    I'd like XEmacs to indent all the clauses of a Common Lisp `if' the
146 same amount instead of indenting the 3rd clause differently from the
147 first two.
148
149    One way is to add, to `.emacs':
150
151      (put 'if 'lisp-indent-function nil)
152
153    However, note that the package `cl-indent' that comes with XEmacs
154 sets up this kind of indentation by default.  `cl-indent' also knows
155 about many other CL-specific forms.  To use `cl-indent', one can do
156 this:
157
158      (load "cl-indent")
159      (setq lisp-indent-function (function common-lisp-indent-function))
160
161    One can also customize `cl-indent.el' so it mimics the default `if'
162 indentation `then' indented more than the `else'.  Here's how:
163
164      (put 'if 'common-lisp-indent-function '(nil nil &body))
165
166    Also, a new version (1.2) of `cl-indent.el' was posted to
167 comp.emacs.xemacs on 12/9/94.  This version includes more documentation
168 than previous versions.  This may prove useful if you need to customize
169 any indent-functions.
170
171 \1f
172 File: xemacs-faq.info,  Node: Q5.3.2,  Next: Q5.3.3,  Prev: Q5.3.1,  Up: Miscellaneous
173
174 Q5.3.2: Fontifying hang when editing a postscript file.
175 -------------------------------------------------------
176
177    When I try to edit a postscript file it gets stuck saying:
178 `fontifying 'filename' (regexps....)' and it just sits there.  If I
179 press `C-c' in the window where XEmacs was started, it suddenly becomes
180 alive again.
181
182    This was caused by a bug in the Postscript font-lock regular
183 expressions.  It was fixed in 19.13.  For earlier versions of XEmacs,
184 have a look at your `.emacs' file.  You will probably have a line like:
185
186      (add-hook 'postscript-mode-hook 'turn-on-font-lock)
187
188    Take it out, restart XEmacs, and it won't try to fontify your
189 postscript files anymore.
190
191 \1f
192 File: xemacs-faq.info,  Node: Q5.3.3,  Next: Q5.3.4,  Prev: Q5.3.2,  Up: Miscellaneous
193
194 Q5.3.3: How can I print WYSIWYG a font-locked buffer?
195 -----------------------------------------------------
196
197    Font-lock looks nice.  How can I print (WYSIWYG) the highlighted
198 document?
199
200    The package `ps-print', which is now included with XEmacs, provides
201 the ability to do this.  The source code contains complete instructions
202 on its use, in `<xemacs_src_root>/lisp/packages/ps-print.el'.
203
204 \1f
205 File: xemacs-faq.info,  Node: Q5.3.4,  Next: Q5.3.5,  Prev: Q5.3.3,  Up: Miscellaneous
206
207 Q5.3.4: Getting `M-x lpr' to work with postscript printer.
208 ----------------------------------------------------------
209
210    My printer is a Postscript printer and `lpr' only works for
211 Postscript files, so how do I get `M-x lpr-region' and `M-x lpr-buffer'
212 to work?
213
214    Put something like this in your `.emacs':
215
216      (setq lpr-command "a2ps")
217      (setq lpr-switches '("-p" "-1"))
218
219    If you don't use a2ps to convert ASCII to postscript (why not, it's
220 free?), replace with the command you do use.  Note also that some
221 versions of a2ps require a `-Pprinter' to ensure spooling.
222
223 \1f
224 File: xemacs-faq.info,  Node: Q5.3.5,  Next: Q5.3.6,  Prev: Q5.3.4,  Up: Miscellaneous
225
226 Q5.3.5: How do I specify the paths that XEmacs uses for finding files?
227 ----------------------------------------------------------------------
228
229    You can specify what paths to use by using a number of different
230 flags when running configure.  See the section MAKE VARIABLES in the
231 top-level file INSTALL in the XEmacs distribution for a listing of
232 those flags.
233
234    Most of the time, however, the simplest fix is: *do not* specify
235 paths as you might for GNU Emacs.  XEmacs can generally determine the
236 necessary paths dynamically at run time.  The only path that generally
237 needs to be specified is the root directory to install into.  That can
238 be specified by passing the `--prefix' flag to configure.  For a
239 description of the XEmacs install tree, please consult the `NEWS' file.
240
241 \1f
242 File: xemacs-faq.info,  Node: Q5.3.6,  Next: Q5.3.7,  Prev: Q5.3.5,  Up: Miscellaneous
243
244 Q5.3.6: [This question intentionally left blank]
245 ------------------------------------------------
246
247    Obsolete question, left blank to avoid renumbering.
248
249 \1f
250 File: xemacs-faq.info,  Node: Q5.3.7,  Next: Q5.3.8,  Prev: Q5.3.6,  Up: Miscellaneous
251
252 Q5.3.7: Can I have the end of the buffer delimited in some way?
253 ---------------------------------------------------------------
254
255    Say, with: `[END]'?
256
257    Try this:
258
259      (let ((ext (make-extent (point-min) (point-max))))
260        (set-extent-property ext 'start-closed t)
261        (set-extent-property ext 'end-closed t)
262        (set-extent-property ext 'detachable nil)
263        (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
264
265    Since this is XEmacs, you can specify an icon to be shown on
266 window-system devices.  To do so, change the `make-glyph' call to
267 something like this:
268
269      (make-glyph '([xpm :file "~/something.xpm"]
270                    [string :data "[END]"]))
271
272    You can inline the XPM definition yourself by specifying `:data'
273 instead of `:file'.  Here is such a full-featured version that works on
274 both X and TTY devices:
275
276      (let ((ext (make-extent (point-min) (point-max))))
277        (set-extent-property ext 'start-closed t)
278        (set-extent-property ext 'end-closed t)
279        (set-extent-property ext 'detachable nil)
280        (set-extent-end-glyph ext (make-glyph '([xpm :data "\
281      /* XPM */
282      static char* eye = {
283      \"20 11 7 2\",
284      \"__ c None\"
285      \"_` c #7f7f7f\",
286      \"_a c #fefefe\",
287      \"_b c #7f0000\",
288      \"_c c #fefe00\",
289      \"_d c #fe0000\",
290      \"_e c #bfbfbf\",
291      \"___________`_`_`___b_b_b_b_________`____\",
292      \"_________`_`_`___b_c_c_c_b_b____________\",
293      \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
294      \"___`_`_e_a___b_b_d___b___b___b___b______\",
295      \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
296      \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
297      \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
298      \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
299      \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
300      \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
301      \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
302      } ;"]
303                                                [string :data "[END]"]))))
304
305    Note that you might want to make this a function, and put it to a
306 hook.  We leave that as an exercise for the reader.
307
308 \1f
309 File: xemacs-faq.info,  Node: Q5.3.8,  Next: Q5.3.9,  Prev: Q5.3.7,  Up: Miscellaneous
310
311 Q5.3.8: How do I insert today's date into a buffer?
312 ---------------------------------------------------
313
314    Like this:
315
316      (insert (current-time-string))
317
318 \1f
319 File: xemacs-faq.info,  Node: Q5.3.9,  Next: Q5.3.10,  Prev: Q5.3.8,  Up: Miscellaneous
320
321 Q5.3.9: Are only certain syntactic character classes available for abbrevs?
322 ---------------------------------------------------------------------------
323
324    Markus Gutschke <gutschk@uni-muenster.de> writes:
325
326      Yes, abbrevs only expands word-syntax strings. While XEmacs does
327      not prevent you from defining (e.g. with `C-x a g' or `C-x a l')
328      abbrevs that contain special characters, it will refuse to expand
329      them. So you need to ensure, that the abbreviation contains
330      letters and digits only. This means that `xd', `d5', and `5d' are
331      valid abbrevs, but `&d', and `x d' are not.
332
333      If this sounds confusing to you, (re-)read the online
334      documentation for abbrevs (`C-h i m XEmacs <RET> m Abbrevs
335      <RET>'), and then come back and read this question/answer again.
336
337    Starting with XEmacs 20.3 this restriction has been lifted.
338
339 \1f
340 File: xemacs-faq.info,  Node: Q5.3.10,  Next: Q5.3.11,  Prev: Q5.3.9,  Up: Miscellaneous
341
342 Q5.3.10: How can I get those oh-so-neat X-Face lines?
343 -----------------------------------------------------
344
345    Firstly there is an ftp site which describes X-faces and has the
346 associated tools mentioned below, at
347 `ftp://ftp.cs.indiana.edu:/pub/faces/'.
348
349    Then the steps are
350
351   1. Create 48x48x1 bitmap with your favorite tool
352
353   2. Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
354      and then compile the face.
355
356   3.      cat file.xbm | xbm2ikon |compface > file.face
357
358   4. Then be sure to quote things that are necessary for emacs strings:
359
360           cat ./file.face | sed 's/\\/\\\\/g'
361           | sed 's/\"/\\\"/g' > ./file.face.quoted
362
363   5. Then set up emacs to include the file as a mail header - there
364      were a couple of suggestions here--either something like:
365
366           (setq  mail-default-headers
367                  "X-Face:  <Ugly looking text string here>")
368
369      Or, alternatively, as:
370
371           (defun mail-insert-x-face ()
372             (save-excursion
373               (goto-char (point-min))
374               (search-forward mail-header-separator)
375               (beginning-of-line)
376               (insert "X-Face:")
377               (insert-file-contents "~/.face")))
378           
379           (add-hook 'mail-setup-hook 'mail-insert-x-face)
380
381    However, 2 things might be wrong:
382
383    Some versions of pbmtoicon produces some header lines that is not
384 expected by the version of compface that I grabbed. So I found I had to
385 include a `tail +3' in the pipeline like this:
386
387      cat file.xbm | xbm2ikon | tail +3 |compface > file.face
388
389    Some people have also found that if one uses the `(insert-file)'
390 method, one should NOT quote the face string using the sed script .
391
392    It might also be helpful to use Stig's <stig@hackvan.com> script
393 (included in the compface distribution at XEmacs.org) to do the
394 conversion.
395
396    Contributors for this item:
397
398    Paul Emsley, Ricardo Marek, Amir J. Katz, Glen McCort, Heinz Uphoff,
399 Peter Arius, Paul Harrison, and Vegard Vesterheim
400
401 \1f
402 File: xemacs-faq.info,  Node: Q5.3.11,  Next: Q5.3.12,  Prev: Q5.3.10,  Up: Miscellaneous
403
404 Q5.3.11: How do I add new Info directories?
405 -------------------------------------------
406
407    You use something like:
408
409      (setq Info-directory-list (cons
410                                 (expand-file-name "~/info")
411                                 Info-default-directory-list))
412
413    David Masterson <davidm@prism.kla.com> writes:
414
415      Emacs Info and XEmacs Info do many things differently.  If you're
416      trying to support a number of versions of Emacs, here are some
417      notes to remember:
418
419        1. Emacs Info scans `Info-directory-list' from right-to-left
420           while XEmacs Info reads it from left-to-right, so append to
421           the _correct_ end of the list.
422
423        2. Use `Info-default-directory-list' to initialize
424           `Info-directory-list' _if_ it is available at startup, but not
425           all Emacsen define it.
426
427        3. Emacs Info looks for a standard `dir' file in each of the
428           directories scanned from #1 and magically concatenates them
429           together.
430
431        4. XEmacs Info looks for a `localdir' file (which consists of
432           just the menu entries from a `dir' file) in each of the
433           directories scanned from #1 (except the first), does a simple
434           concatenation of them, and magically attaches the resulting
435           list to the end of the menu in the `dir' file in the first
436           directory.
437
438      Another alternative is to convert the documentation to HTML with
439      texi2html and read it from a web browser like Lynx or W3.
440
441 \1f
442 File: xemacs-faq.info,  Node: Q5.3.12,  Prev: Q5.3.11,  Up: Miscellaneous
443
444 Q5.3.12: What do I need to change to make printing work?
445 --------------------------------------------------------
446
447    For regular printing there are two variables that can be customized.
448
449 `lpr-command'
450      This should be set to a command that takes standard input and sends
451      it to a printer.  Something like:
452
453           (setq lpr-command "lp")
454
455 `lpr-switches'
456      This should be set to a list that contains whatever the print
457      command requires to do its job.  Something like:
458
459           (setq lpr-switches '("-depson"))
460
461    For postscript printing there are three analogous variables to
462 customize.
463
464 `ps-lpr-command'
465      This should be set to a command that takes postscript on standard
466      input and directs it to a postscript printer.
467
468 `ps-lpr-switches'
469      This should be set to a list of switches required for
470      `ps-lpr-command' to do its job.
471
472 `ps-print-color-p'
473      This boolean variable should be set `t' if printing will be done in
474      color, otherwise it should be set to `nil'.
475
476    NOTE: It is an undocumented limitation in XEmacs that postscript
477 printing (the `Pretty Print Buffer' menu item) *requires* a window
478 system environment.  It cannot be used outside of X11.
479
480 \1f
481 File: xemacs-faq.info,  Node: MS Windows,  Next: Current Events,  Prev: Miscellaneous,  Up: Top
482
483 6 XEmacs on MS Windows
484 **********************
485
486    This is part 6 of the XEmacs Frequently Asked Questions list,
487 written by Hrvoje Niksic and others.  This section is devoted to the MS
488 Windows port of XEmacs.
489
490 * Menu:
491
492
493 General Info
494 * Q6.0.1::      What is the status of the XEmacs port to Windows?
495 * Q6.0.2::      What flavors of MS Windows are supported?
496 * Q6.0.3::      Where are the XEmacs on MS Windows binaries?
497 * Q6.0.4::      Does XEmacs on MS Windows require an X server to run?
498
499 Building XEmacs on MS Windows
500 * Q6.1.1::      I decided to run with X.  Where do I get an X server?
501 * Q6.1.2::      What compiler do I need to compile XEmacs?
502 * Q6.1.3::      How do I compile for the native port?
503 * Q6.1.4::      How do I compile for the X port?
504 * Q6.1.5::      How do I compile for Cygnus' Cygwin?
505 * Q6.1.6::      What do I need for Cygwin?
506
507 Customization and User Interface
508 * Q6.2.1::      How will the port cope with differences in the Windows user interface?
509 * Q6.2.2::      How do I change fonts in XEmacs on MS Windows?
510 * Q6.2.3::      Where do I put my `.emacs' file?
511
512 Miscellaneous
513 * Q6.3.1::      Will XEmacs rename all the win32-* symbols to w32-*?
514 * Q6.3.2::      What are the differences between the various MS Windows emacsen?
515 * Q6.3.3::      What is the porting team doing at the moment?
516
517 Troubleshooting:
518 * Q6.4.1::      XEmacs won't start on Windows. (NEW)
519
520 \1f
521 File: xemacs-faq.info,  Node: Q6.0.1,  Next: Q6.0.2,  Prev: MS Windows,  Up: MS Windows
522
523 6.0: General Info
524 =================
525
526 Q6.0.1: What is the status of the XEmacs port to Windows?
527 ---------------------------------------------------------
528
529    Is XEmacs really getting ported to MS Windows?  What is the status
530 of the port?
531
532    Yes, a group of volunteers actively works on making XEmacs code base
533 cleanly compile and run on MS Windows operating systems.  The mailing
534 list at <xemacs-nt@xemacs.org> is dedicated to that effort (please use
535 the -request address to subscribe).
536
537    At this time, XEmacs on MS Windows is usable, but lacks some of the
538 features of XEmacs on UNIX and UNIX-like systems.  Notably,
539 internationalization does not work.
540
541 \1f
542 File: xemacs-faq.info,  Node: Q6.0.2,  Next: Q6.0.3,  Prev: Q6.0.1,  Up: MS Windows
543
544 Q6.0.2: What flavors of MS Windows are supported?  The list name implies NT only.
545 ---------------------------------------------------------------------------------
546
547    The list name is misleading, as XEmacs will support both Windows 95,
548 Windows 98 and Windows NT.  The MS Windows-specific code is based on
549 Microsoft Win32 API, and will not work on MS Windows 3.x or on MS-DOS.
550
551 \1f
552 File: xemacs-faq.info,  Node: Q6.0.3,  Next: Q6.0.4,  Prev: Q6.0.2,  Up: MS Windows
553
554 Q6.0.3: Are binary kits available?
555 ----------------------------------
556
557    Binary kits are available at
558 `ftp://ftp.xemacs.org/pub/xemacs/binary-kits/win32/' for the "plain" MS
559 Windows version.
560
561 \1f
562 File: xemacs-faq.info,  Node: Q6.0.4,  Next: Q6.1.1,  Prev: Q6.0.3,  Up: MS Windows
563
564 Q6.0.4: Does XEmacs on MS Windows require an X server to run?
565 -------------------------------------------------------------
566
567    Short answer: No.
568
569    Long answer: XEmacs can be built in several ways in the MS Windows
570 environment, some of them requiring an X server and some not.
571
572    One is what we call the "X" port--it requires X libraries to build
573 and an X server to run.  Internally it uses the Xt event loop and makes
574 use of X toolkits.  Its look is quite un-Windowsy, but it works
575 reliably and supports all of the graphical features of Unix XEmacs.
576
577    The other is what we call the "native" port.  It uses the Win32 API
578 and does not require X libraries to build, nor does it require an X to
579 run.  In fact, it has no connection with X whatsoever.  At this time,
580 the native port obsoletes the X port, providing almost all of its
581 features, including support for menus, scrollbars, toolbars, embedded
582 images and background pixmaps, frame pointers, etc.  Most of the future
583 work will be based on the native port.
584
585    There is also a third special case, the Cygwin port.  It takes
586 advantage of Cygnus emulation library under Win32, which enables it to
587 reuse much of the Unix XEmacs code base, such as processes and network
588 support, or internal select() mechanisms.
589
590    Cygwin port supports all display types--TTY, X & MS gui, and can be
591 built with support for all three.  If you build with ms gui support
592 then the Cygwin version uses the majority of the msw code, which is
593 mostly related to display.  If you want to build with X support you
594 need X libraries.  If you want to build with tty support you need
595 ncurses.  MS gui requires no additional libraries.
596
597    Some of the advantages of the Cygwin version are that it:
598
599    * integrates well with Cygwin environment for existing Cygwin users;
600
601    * uses configure so building with different features is very easy;
602
603    * has process support in X & tty.
604
605
606    The disadvantage is that it requires several Unix utilities and the
607 whole Cygwin environment, whereas the native port requires only a
608 suitable MS Windows compiler.  Also, it follows the Unix filesystem and
609 process model very closely (some will undoubtedly view this as an
610 advantage).
611
612 \1f
613 File: xemacs-faq.info,  Node: Q6.1.1,  Next: Q6.1.2,  Prev: Q6.0.4,  Up: MS Windows
614
615 6.1: Building XEmacs on MS Windows
616 ==================================
617
618 Q6.1.1: I decided to run with X.  Where do I get an X server?
619 -------------------------------------------------------------
620
621    Pointers to X servers can be found at
622 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/';
623
624    look for "Where to get an X server".  Also note that, although the
625 above page talks about Cygnus gnu-win32 (Cygwin), the information on X
626 servers is Cygwin-independent.  You don't have to be running/using
627 Cygwin to use these X servers, and you don't have to compile XEmacs
628 under Cygwin to use XEmacs with these X servers.  An "X port" XEmacs
629 compiled under Visual C++ will work with these X servers (as will
630 XEmacs running on a Unix box, redirected to the server running on your
631 PC).
632
633 \1f
634 File: xemacs-faq.info,  Node: Q6.1.2,  Next: Q6.1.3,  Prev: Q6.1.1,  Up: MS Windows
635
636 Q6.1.2: What compiler do I need to compile XEmacs?
637 --------------------------------------------------
638
639    You need Visual C++ 4.2, 5.0, or 6.0, with the exception of the
640 Cygwin port, which uses Gcc.  There is also a MINGW32 port of XEmacs
641 (using Gcc, but using native libraries rather than the Cygwin
642 libraries).  #### More information about this should be provided.
643
644 \1f
645 File: xemacs-faq.info,  Node: Q6.1.3,  Next: Q6.1.4,  Prev: Q6.1.2,  Up: MS Windows
646
647 Q6.1.3: How do I compile for the native port?
648 ---------------------------------------------
649
650    Please read the file `nt/README' in the XEmacs distribution, which
651 contains the full description.
652
653 \1f
654 File: xemacs-faq.info,  Node: Q6.1.4,  Next: Q6.1.5,  Prev: Q6.1.3,  Up: MS Windows
655
656 Q6.1.4: How do I compile for the X port?
657 ----------------------------------------
658
659    Again, it is described in `nt/README' in some detail.  Basically, you
660 need to get X11 libraries from ftp.x.org, and compile them.  If the
661 precompiled versions are available somewhere, I don't know of it.
662
663 \1f
664 File: xemacs-faq.info,  Node: Q6.1.5,  Next: Q6.1.6,  Prev: Q6.1.4,  Up: MS Windows
665
666 Q6.1.5: How do I compile for Cygnus' Cygwin?
667 --------------------------------------------
668
669    Similar as on Unix; use the usual `configure' and `make' process.
670 Some problems to watch out for:
671
672    * make sure HOME is set. This controls where you `.emacs' file comes
673      from;
674
675    * CYGWIN needs to be set to tty for process support work. e.g.
676      CYGWIN=tty; (use CYGWIN32=tty under b19 and older.)
677
678    * picking up some other grep or other unix like tools can kill
679      configure;
680
681    * static heap too small, adjust src/sheap-adjust.h to a more positive
682      number;
683
684    * The Cygwin version doesn't understand `//machine/path' type paths
685      so you will need to manually mount a directory of this form under
686      a unix style directory for a build to work on the directory.
687
688
689 \1f
690 File: xemacs-faq.info,  Node: Q6.1.6,  Next: Q6.2.1,  Prev: Q6.1.5,  Up: MS Windows
691
692 Q6.1.6: What do I need for Cygwin?
693 ----------------------------------
694
695    You can find the Cygwin tools and compiler at:
696
697    `http://sourceware.cygnus.com/cygwin/'
698
699    You will need version b19 or later.  The latest current version is
700 1.1.1.  Other common versions you will see are b20.1.
701
702    Another location, one of the mirror sites of the site just mentioned,
703 is usually a last faster:
704
705    `ftp://ftp.freesoftware.com/pub/sourceware/cygwin/'
706
707    You can obtain the latest version (currently 1.1.1) from the
708 `latest/' subdirectory of either of the above two just-mentioned URL's.
709
710    *WARNING: The version of GCC supplied under `latest/', as of June
711 6th, 2000, does not appear to work.  It generates loads of spurious
712 preprocessor warnings and errors, which makes it impossible to compile
713 XEmacs with it.*
714
715    You will also need the X libraries.  You can get them on the XEmacs
716 FTP site at
717
718    `ftp://ftp.xemacs.org/pub/xemacs/aux/cygwin/'
719
720    You will find b19 and b20 versions of the X libraries, plus b19 and
721 b20 versions of stuff that should go into `/usr/local/', donated by
722 Andy Piper.  This includes pre-built versions of various graphics
723 libraries, such as PNG, JPEG, TIFF, and XPM. (Remember, GIF support is
724 built-in to XEmacs.)
725
726    (X libraries for v1 and beyond of Cygwin can be found on the Cygwin
727 site itself - look in the `xfree/' subdirectory.)
728
729    _NOTE:_ There are two versions of the XPM library provided in Andy's
730 packets.  Once is for building with X support, and the other for
731 building without.  The X version should work if you're building with
732 both X and Windows support.  The two files are called `libXpm-X.a' and
733 `libXpm-noX.a' respectively, and you must symlink the appropriate one
734 to `libXpm.a'. *CAREFUL:* By default, the non-X version is symlinked
735 in.  If you then configure XEmacs with X, you won't run into problems
736 until you start compiling `events.c', at which point you'll get strange
737 and decidedly non-obvious errors.
738
739    Please see `http://www.xemacs.freeserve.co.uk/' (Andy Piper's home
740 page) for more information.
741
742    BTW There are also libraries at
743 `http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.3/', but these are
744 not b19 compatible, and may in fact be native-compiled.
745
746 \1f
747 File: xemacs-faq.info,  Node: Q6.2.1,  Next: Q6.2.2,  Prev: Q6.1.6,  Up: MS Windows
748
749 6.2: Customization and User Interface
750 =====================================
751
752 Q6.2.1: How will the port cope with differences in the Windows user interface?
753 ------------------------------------------------------------------------------
754
755    XEmacs (and Emacs in general) UI is pretty different from what is
756 expected of a typical MS Windows program.  How will the MS Windows port
757 cope with it?
758
759    Fortunately, Emacs is also one of the most configurable editor beasts
760 in the world.  The MS Windows "look and feel" (mark via shift-arrow,
761 self-inserting deletes region, etc.) can be easily configured via
762 various packages distributed with XEmacs.  The `pending-delete' package
763 is an example of such a utility.
764
765    In future versions, some of these packages might be turned on by
766 default in the MS Windows environment.
767
768 \1f
769 File: xemacs-faq.info,  Node: Q6.2.2,  Next: Q6.2.3,  Prev: Q6.2.1,  Up: MS Windows
770
771 Q6.2.2: How do I change fonts in XEmacs on MS Windows?
772 ------------------------------------------------------
773
774    In 21.2.*, use the font menu.  In 21.1.*, you can change font
775 manually. For example:
776
777          (set-face-font 'default "Lucida Console:Regular:10")
778          (set-face-font 'modeline "MS Sans Serif:Regular:10")
779
780 \1f
781 File: xemacs-faq.info,  Node: Q6.2.3,  Next: Q6.3.1,  Prev: Q6.2.2,  Up: MS Windows
782
783 Q6.2.3: Where do I put my `.emacs' file?
784 ----------------------------------------
785
786    If the HOME environment variable is set, `.emacs' will be looked for
787 there.  Else the directory defaults to `c:\'.
788
789 \1f
790 File: xemacs-faq.info,  Node: Q6.3.1,  Next: Q6.3.2,  Prev: Q6.2.3,  Up: MS Windows
791
792 6.3: Miscellaneous
793 ==================
794
795 Q6.3.1: Will XEmacs rename all the win32-* symbols to w32-*?
796 ------------------------------------------------------------
797
798    In his flavor of Emacs 20, Richard Stallman has renamed all the
799 win32-* symbols to w32-*.  Will XEmacs do the same?
800
801    We consider such a move counter-productive, thus we will not use the
802 `w32' prefix.  However, we do recognize that Win32 name is little more
803 than a marketing buzzword (will it be Win64 in the next release?), so
804 we decided not to use it.  Using `windows-' would be wrong because the
805 term is too generic, which is why we settled on a compromise
806 `mswindows' term.
807
808    Thus all the XEmacs variables and functions directly related to Win32
809 are prefixed `mswindows-'.  The user-variables shared with NT Emacs
810 will be provided as compatibility aliases.
811
812    Architectural note: We believe that there should be a very small
813 number of window-systems-specific variables, and will try to provide
814 generic interfaces whenever possible.
815
816 \1f
817 File: xemacs-faq.info,  Node: Q6.3.2,  Next: Q6.3.3,  Prev: Q6.3.1,  Up: MS Windows
818
819 Q6.3.2: What are the differences between the various MS Windows emacsen?
820 ------------------------------------------------------------------------
821
822    XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
823 Could you briefly explain the differences between them?
824
825    Here is a recount of various Emacs versions running on MS Windows:
826
827    * Win-Emacs
828
829         - Win-Emacs is a port of Lucid Emacs 19.6 to MS Windows using X
830           compatibility libraries.  Win-Emacs has been written by Ben
831           Wing.  The MS Windows code has not made it back to Lucid
832           Emacs, which left Win-Emacs pretty much dead for our
833           purposes.  Win-Emacs used to be available at Pearlsoft, but
834           not anymore, since Pearlsoft went out of business.
835
836    * GNU Emacs for DOS
837
838         - GNU Emacs features support for MS-DOS and DJGPP (D.J.
839           Delorie's DOS port of Gcc).  Such an Emacs is heavily
840           underfeatured, because it does not supports long file names,
841           lacks proper subprocesses support, and is far too big
842           compared to typical DOS editors.
843
844    * GNU Emacs compiled with Win32
845
846         - Starting with version 19.30, it has been possible to compile
847           GNU Emacs under MS Windows using the DJGPP compiler and X
848           libraries.  The result is is very similar to GNU Emacs
849           compiled under MS DOS, only it supports longer file names,
850           etc.  This "port" is similar to the "X" flavor of XEmacs on
851           MS Windows.
852
853    * NT Emacs
854
855         - NT Emacs is a version of GNU Emacs modified to compile and
856           run under MS MS Windows 95 and NT using the native Win32 API.
857           As such, it is close in spirit to the XEmacs "native" port.
858
859         - NT Emacs has been written by Geoff Voelker, and more
860           information can be found at
861           `http://www.cs.washington.edu/homes/voelker/ntemacs.html'.
862
863
864    * XEmacs
865
866         - Beginning with XEmacs 19.12, XEmacs' architecture has been
867           redesigned in such a way to allow clean support of multiple
868           window systems.  At this time the TTY support was added,
869           making X and TTY the first two "window systems" XEmacs
870           supported.  The 19.12 design is the basis for the current
871           native MS Windows code.
872
873         - Some time during 1997, David Hobley (soon joined by Marc
874           Paquette) imported some of the NT-specific portions of GNU
875           Emacs, making XEmacs with X support compile under Windows NT,
876           and creating the "X" port.
877
878         - Several months later, Jonathan Harris sent out initial
879           patches to use the Win32 API, thus creating the native port.
880           Since then, various people have contributed, including Kirill
881           M. Katsnelson (contributed support for menubars, subprocesses
882           and network, as well as loads of other code), Andy Piper
883           (ported XEmacs to Cygwin environment, contributed Windows
884           unexec, Windows-specific glyphs and toolbars code, and more),
885           Jeff Sparkes (contributed scrollbars support) and many others.
886
887
888
889 \1f
890 File: xemacs-faq.info,  Node: Q6.3.3,  Next: Q6.4.1,  Prev: Q6.3.2,  Up: MS Windows
891
892 Q6.3.3: What is the porting team doing at the moment?
893 -----------------------------------------------------
894
895    The porting team is continuing work on the MS Windows-specific code.
896
897 \1f
898 File: xemacs-faq.info,  Node: Q6.4.1,  Prev: Q6.3.3,  Up: MS Windows
899
900 6.3: Troubleshooting
901 ====================
902
903 Q6.4.1 XEmacs won't start on Windows. (NEW)
904 -------------------------------------------
905
906    XEmacs relies on a process called "dumping" to generate a working
907 executable. Under MS-Windows this process effectively fixes the memory
908 addresses of information in the executable. When XEmacs starts up it
909 tries to reserve these memory addresses so that the dumping process can
910 be reversed - putting the information back at the correct addresses.
911 Unfortunately some .dlls (For instance the soundblaster driver) occupy
912 memory addresses that can conflict with those needed by the dumped
913 XEmacs executable. In this instance XEmacs will fail to start without
914 any explanation. Note that this is extremely machine specific.
915
916    21.1.10 includes a fix for this that makes more intelligent guesses
917 about which memory addresses will be free, and this should cure the
918 problem for most people.  Unfortunately, no binary is yet available for
919 this version.  Check back periodically at
920
921    `ftp://ftp.xemacs.org/pub/xemacs/binaries/'.
922
923    21.2 implements "portable dumping" which will eliminate the problem
924 altogether.  You might have better luck with the 21.2 beta binary,
925 available at
926
927    `ftp://ftp.xemacs.org/pub/xemacs/beta/binaries/'.
928
929 \1f
930 File: xemacs-faq.info,  Node: Current Events,  Prev: MS Windows,  Up: Top
931
932 7 What the Future Holds
933 ***********************
934
935    This is part 7 of the XEmacs Frequently Asked Questions list.  This
936 section will change monthly, and contains any interesting items that
937 have transpired over the previous month.  If you are reading this from
938 the XEmacs distribution, please see the version on the Web or archived
939 at the various FAQ FTP sites, as this file is surely out of date.
940
941 * Menu:
942
943 * Q7.0.1::      What is new in 20.2?
944 * Q7.0.2::      What is new in 20.3?
945 * Q7.0.3::      What is new in 20.4?
946 * Q7.0.4::      Procedural changes in XEmacs development.
947
948 \1f
949 File: xemacs-faq.info,  Node: Q7.0.1,  Next: Q7.0.2,  Prev: Current Events,  Up: Current Events
950
951 7.0: Changes
952 ============
953
954 Q7.0.1: What is new in 20.2?
955 ----------------------------
956
957    The biggest changes in 20.2 include integration of EFS (the next
958 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
959 major mode for editing Tex and LaTeX, and a lot of other stuff).  Many
960 bugs from 20.0 have been fixed for this release.  20.2 also contains a
961 new system for customizing XEmacs options, invoked via `M-x customize'.
962
963    XEmacs 20.2 is the development release (20.0 was beta), and is no
964 longer considered unstable.
965
966 \1f
967 File: xemacs-faq.info,  Node: Q7.0.2,  Next: Q7.0.3,  Prev: Q7.0.1,  Up: Current Events
968
969 Q7.0.2: What is new in 20.3?
970 ----------------------------
971
972    XEmacs 20.3 was released in November 1997. It contains many bugfixes,
973 and a number of new features, including Autoconf 2 based configuration,
974 additional support for Mule (Multi-language extensions to Emacs), many
975 more customizations, multiple frames on TTY-s, support for multiple info
976 directories, an enhanced gnuclient, improvements to regexp matching,
977 increased MIME support, and many, many synches with GNU Emacs 20.
978
979    The XEmacs/Mule support has been only seriously tested in a Japanese
980 locale, and no doubt many problems still remain.  The support for
981 ISO-Latin-1 and Japanese is fairly strong.  MULE support comes at a
982 price--about a 30% slowdown from 19.16.  We're making progress on
983 improving performance and XEmacs 20.3 compiled without Mule (which is
984 the default) is definitely faster than XEmacs 19.16.
985
986    XEmacs 20.3 is the first non-beta v20 release, and will be the basis
987 for all further development.
988
989 \1f
990 File: xemacs-faq.info,  Node: Q7.0.3,  Next: Q7.0.4,  Prev: Q7.0.2,  Up: Current Events
991
992 Q7.0.3: What's new in XEmacs 20.4?
993 ----------------------------------
994
995    XEmacs 20.4 is a bugfix release with no user-visible changes.
996
997 \1f
998 File: xemacs-faq.info,  Node: Q7.0.4,  Prev: Q7.0.3,  Up: Current Events
999
1000 Q7.0.4: Procedural changes in XEmacs development.
1001 -------------------------------------------------
1002
1003   1. Discussion about the development of XEmacs occurs on the
1004      xemacs-beta mailing list.  Subscriptions to this list will now be
1005      fully automated instead of being handled by hand.  Send a mail
1006      message to <xemacs-beta-request@xemacs.org> with `subscribe' as the
1007      BODY of the message to join the list.  Please note this is a
1008      developers mailing list for people who have an active interest in
1009      the development process.
1010
1011      The discussion of NT XEmacs development is taking place on a
1012      separate mailing list.  Send mail to
1013      <xemacs-nt-request@xemacs.org> to subscribe.
1014
1015   2. Due to the long development cycle in between releases, it has been
1016      decided that intermediate versions will be made available in
1017      source only form for the truly interested.
1018
1019      XEmacs 19.16 was the last 19 release, basically consisting of
1020      19.15 plus the collected bugfixes.
1021
1022   3. As of December 1996, Steve Baur <steve@xemacs.org> has become the
1023      lead maintainer of XEmacs.
1024
1025