annotate man/xemacs-faq.texi @ 3014:dbcb61f7b06a

[xemacs-hg @ 2005-10-23 18:08:35 by stephent] Update for Ville and Adrian.
author stephent
date Sun, 23 Oct 2005 18:08:35 +0000
parents 574c005d1f5c
children 31e656a27dae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1 \input texinfo.tex @c -*- mode: texinfo; coding: iso-2022-8 -*-
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 @c %**start of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @setfilename ../info/xemacs-faq.info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 @settitle Frequently asked questions about XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @setchapternewpage off
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 @c %**end of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 @finalout
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 @titlepage
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 @title XEmacs FAQ
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2005/10/14 02:11:49 $
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 @sp 1
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
12 @author Ben Wing <ben@@xemacs.org>
1869
11812ec0334c [xemacs-hg @ 2004-01-21 09:03:42 by stephent]
stephent
parents: 1738
diff changeset
13 @author Tony Rossini <rossini@@u.washington.edu>
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 @author Chuck Thompson <cthomp@@xemacs.org>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 @author Steve Baur <steve@@xemacs.org>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 @author Andreas Kaempf <andreas@@sccon.com>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 @author Christian Nyb@o{} <chr@@mediascience.no>
434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
18 @author Sandra Wambold <wambold@@xemacs.org>
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 @page
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 @end titlepage
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 @ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 @dircategory XEmacs Editor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 @direntry
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
25 * FAQ: (xemacs-faq). XEmacs FAQ.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 @end direntry
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 @end ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
29 @ignore
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
30 *****************************************
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
31 ***** To update the menus and nodes *****
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
32 *****************************************
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
33
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
34 First, the first argument to @node (the name itself) needs to be correct.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
35 Use a macro if necessary to update the @node names from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
36 @unnumberedsubsec commands. Also note that the command we're about to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
37 run will not correctly fix up the part of the menu to the right of a ::.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
38 It will leave existing text in place but not change anything. If you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
39 make a lot of changes and want to update this semi-automatically, use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
40 M-x occur to pick out all @unnumberedsubsec lines then do some editing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
41 magic to coerce them into the right format and cut and paste as necessary:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
42
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
43 1. M-x occur @unnumberedsubsec
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
44 2. <select a rectangle including all text before the Q#.#.#>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
45 3. C-x r t *<space>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
46 4. go to the top and use the following macro to get the indentation right.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
47
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
48 (setq last-kbd-macro (read-kbd-macro
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
49 "C-s : RET : <right> M-x indent- to- column RET 14 RET <home> <down>"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
50
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
51 5. Cut and paste the menus into the detailmenu at the top and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
52 individual menus at the top of the appropriate chapters. (#### I
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
53 wonder, does texinfo-master-menu generate the detailmenu from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
54 individual menus or vice-versa or neither?)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
55
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
56 Then,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
57
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
58 6. C-u C-c C-u m (C-u M-x texinfo-master-menu) will update the menus
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
59 and nodes. However, it appears that even though it tries to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
60 preserve the existing menu structure as much as possible, it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
61 doesn't do a perfect job. It messes up in at least two ways: The
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
62 indentation in the part of the main menu above the detailmenu will
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
63 be screwed up, and the #.0 titles will be removed from both the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
64 detailmenu and the individual chapter menus. In addition,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
65 sometimes random things get screwed up in individual parts of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
66 menus. Therefore:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
67
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
68 1. Use the Lisp line below to get the spacing correct for the Q#.#.#
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
69 menu entries.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
70
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
71 (set (make-local-variable 'texinfo-column-for-description) 14)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
72
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
73 2. Copy the whole detailmenu beforehand.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
74 3. Run C-u C-c C-u m to fix up the nodes.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
75 4. Run `fix-main-menu' and `fix-omitted-menu-lines'.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
76 5. Check the new detailmenu carefully to see if anything is screwed up
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
77 compared to the old detailmenu you copied.
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
78 6. If so, paste back the appropriate sections and fix up the corresponding
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
79 part of the chapter-specific menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
80
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
81 (defun fix-main-menu ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
82 (interactive)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
83 (save-restriction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
84 (let (p q)
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
85 (goto-char (point-min))
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
86 (re-search-forward "^@menu")
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
87 (setq p (match-beginning 0))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
88 (re-search-forward "^$")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
89 (setq q (match-end 0))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
90 (narrow-to-region p q)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
91 (goto-char p)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
92 (while (search-forward ":: " nil t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
93 (indent-to-column 26)))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
94
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
95 (defun fix-omitted-menu-lines ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
96 (interactive)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
97 (save-excursion
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
98 (loop for x from 1 to 10 do
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
99 (goto-char (point-min))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
100 (re-search-forward (format "@unnumberedsec \\(%d.0: .*\\)" x))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
101 (let ((line (match-string 1)))
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
102 (re-search-backward "^@menu")
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
103 (forward-line 1)
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
104 (unless (looking-at "[0-9]+.0:")
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
105 (insert line)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
106 (insert "\n"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
107 (goto-char (point-min))
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
108 (re-search-forward "^@menu")
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
109 (search-forward (format "Q%d.0.1:" x))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
110 (forward-line -1)
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
111 (unless (looking-at "[0-9]+.0:")
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
112 (insert "\n")
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
113 (insert line))))))
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
114
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
115 *****************************************
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
116 ***** Other work *****
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
117 *****************************************
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
118
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
119 When you've rearranged and renumbered a bunch of nodes, you can get
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
120 the numbers agreeing again. The macro below assumes that the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
121 unnumberedsubsec number is correct, and fixes up the node to agree.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
122 Only the first part of the node is fixed and the other parts may still
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
123 be wrong; but they will be fixed as part of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
124 @code{texinfo-master-menu}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
125
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
126 (setq last-kbd-macro (read-kbd-macro
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
127 "<f1> unnumberedsubsec SPC RET C-s : RET <left> C-x C-x <f3> <home> <up> <C-right> <right> C-s , RET <left> C-x C-x <f4> <home> 2*<down>"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
128 @end ignore
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
129
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
130
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 @node Top, Introduction, (dir), (dir)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132 @top XEmacs FAQ
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 This is the guide to the XEmacs Frequently Asked Questions list---a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 compendium of questions and answers pertaining to one of the finest
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
136 programs ever written. XEmacs is much more than just a Text Editor.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
137
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
138 This FAQ is freely redistributable. This FAQ is distributed in the hope
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
139 that it will be useful, but WITHOUT ANY WARRANTY; without even the
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
140 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 If you have a Web browser, the official hypertext version is at
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 @end iftex
1143
820f727b1801 [xemacs-hg @ 2002-12-04 14:05:57 by stephent]
stephent
parents: 1138
diff changeset
146 @uref{http://www.xemacs.org/FAQ/xemacs-faq.html}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 @ifset CANONICAL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 @html
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 This document is available in several different formats:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 @uref{xemacs-faq.txt, As a single ASCII file}, produced by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 @code{makeinfo --no-headers}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @uref{xemacs-faq.dvi, As a .dvi file}, as used with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 @uref{http://www.tug.org, TeX.}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 As a PostScript file @uref{xemacs-faq-a4.ps, in A4 format},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 as well as in @uref{xemacs-faq-letter.ps, letter format}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 In html format, @uref{xemacs-faq_1.html, split by chapter}, or in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 @uref{xemacs-faq.html, one monolithic} document.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 The canonical version of the FAQ is the texinfo document
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 @uref{xemacs-faq.texi, man/xemacs-faq.texi}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168 If you do not have makeinfo installed, you may @uref{xemacs-faq.info,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 download the faq} in info format, and install it in @file{<XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 library directory>/info/}. For example in
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
171 @file{/usr/local/lib/xemacs-21.4/info/}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 @end html
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177 @end ifset
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 @c end ifset points to CANONICAL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
182 * Introduction:: Introduction, Policy, Credits.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
183 * Installation:: Installation and Troubleshooting.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
184 * Editing:: Editing Functions.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
185 * Display:: Display Functions.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
186 * External Subsystems:: Interfacing with the OS and External Devices.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
187 * Internet:: Connecting to the Internet.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
188 * Advanced:: Advanced Customization Using XEmacs Lisp.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
189 * Other Packages:: Other External Packages.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
190 * Current Events:: What the Future Holds.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
191 * Legacy Versions:: New information about old XEmacsen.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 @detailmenu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 --- The Detailed Node Listing ---
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
196 1 Introduction, Policy, Credits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
197
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
198 1.0: What is XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
199 * Q1.0.1:: What is XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
200 * Q1.0.2:: What is the current version of XEmacs?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
201 * Q1.0.3:: How do you pronounce XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
202 * Q1.0.4:: What does XEmacs look like?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
203 * Q1.0.5:: Who wrote XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
204 * Q1.0.6:: Who wrote the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
205
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
206 1.1: Getting XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
207 * Q1.1.1:: Where can I find XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
208 * Q1.1.2:: Are binaries available?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
209 * Q1.1.3:: How do I get the bleeding-edge sources?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
210 * Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
211
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
212 1.2: Versions for Different Operating Systems
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
213 * Q1.2.1:: Do I need X11 to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
214 * Q1.2.2:: What versions of Unix does XEmacs run on?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
215 * Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
216 * Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
217 * Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
218 * Q1.2.6:: What are the differences between the various MS Windows emacsen?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
219 * Q1.2.7:: How does the port cope with differences in the Windows user interface?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
220 * Q1.2.8:: Is there a port of XEmacs to the Macintosh?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
221 * Q1.2.9:: Is there a port of XEmacs to MS-DOS?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
222 * Q1.2.10:: Is there a port of XEmacs to OS/2?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
223 * Q1.2.11:: Is there a port of XEmacs to NextStep?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
224 * Q1.2.12:: Is there a port of XEmacs to VMS?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
225
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
226 1.3: Getting Started
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
227 * Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
228 * Q1.3.2:: Where do I put my @file{init.el} file?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
229 * Q1.3.3:: Can I use the same @file{init.el} with the other Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
230 * Q1.3.4:: Any good XEmacs tutorials around?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
231 * Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
232 * Q1.3.6:: And how do I bind it to a key?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
233 * Q1.3.7:: What's the difference between a macro and a function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
234 * Q1.3.8:: What is @code{Custom}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
235
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
236 1.4: Getting Help
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
237 * Q1.4.1:: Where can I get help?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
238 * Q1.4.2:: Which mailing lists are there?
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
239 * Q1.4.3:: Where are the mailing lists archived?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
240 * Q1.4.4:: How can I get two instances of info?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
241 * Q1.4.5:: How do I add new Info directories?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
242
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
243 1.5: Contributing to XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
244 * Q1.5.1:: How do I submit changes to the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
245 * Q1.5.2:: How do I become a beta tester?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
246 * Q1.5.3:: How do I contribute to XEmacs itself?
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
247 * Q1.5.4:: How do I get started developing XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
248 * Q1.5.5:: What's the basic layout of the code?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
249
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
250 1.6: Politics (XEmacs vs. GNU Emacs)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
251 * Q1.6.1:: What is GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
252 * Q1.6.2:: How does XEmacs differ from GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
253 * Q1.6.3:: How much does XEmacs differ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
254 * Q1.6.4:: Is XEmacs "GNU"?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
255 * Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
256 * Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
257
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
258 1.7: External Packages
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
259 * Q1.7.1:: What is the package system?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
260 * Q1.7.2:: Which external packages are there?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
261 * Q1.7.3:: Do I need to have the packages to run XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
262 * Q1.7.4:: Is there a way to find which package has particular functionality?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
263
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
264 1.8: Internationalization
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
265 * Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
266 * Q1.8.2:: How can I help with internationalization?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
267 * Q1.8.3:: How do I type non-ASCII characters?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
268 * Q1.8.4:: Can XEmacs messages come out in a different language?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
269 * Q1.8.5:: Please explain the various input methods in MULE/XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
270 * Q1.8.6:: How do I portably code for MULE/XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
271 * Q1.8.7:: How about Cyrillic modes?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
272 * Q1.8.8:: Does XEmacs support Unicode?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
273 * Q1.8.9:: How does XEmacs display Unicode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
274
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
275 2 Installation and Troubleshooting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
276
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
277 2.0: Installation (General)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
278 * Q2.0.1:: How do I build and install XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
279 * Q2.0.2:: Where do I find external libraries?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
280 * Q2.0.3:: How do I specify the paths that XEmacs uses for finding files?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
281 * Q2.0.4:: Running XEmacs without installing
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
282 * Q2.0.5:: XEmacs is too big
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
283
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
284 2.1: Package Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
285 * Q2.1.1:: How do I install the packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
286 * Q2.1.2:: Can I install the packages individually?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
287 * Q2.1.3:: Can I install the packages automatically?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
288 * Q2.1.4:: Can I upgrade or remove packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
289 * Q2.1.5:: Which packages to install?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
290 * Q2.1.6:: Can you describe the package location process in more detail?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
291 * Q2.1.7:: EFS fails with "500 AUTH not understood"
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
292
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
293 2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
294 * Q2.2.1:: Libraries in non-standard locations
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
295 * Q2.2.2:: Why can't I strip XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
296
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
297 2.3: Windows Installation (Windows, Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
298 * Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
299 * Q2.3.2:: What compiler/libraries do I need to compile XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
300 * Q2.3.3:: How do I compile the native port?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
301 * Q2.3.4:: What do I need for Cygwin?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
302 * Q2.3.5:: How do I compile under Cygwin?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
303 * Q2.3.6:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
304 * Q2.3.7:: How do I compile with X support?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
305 * Q2.3.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
306
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
307 2.4: General Troubleshooting
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
308 * Q2.4.1:: How do I deal with bugs or with problems building, installing, or running?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
309 * Q2.4.2:: Help! XEmacs just crashed on me!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
310 * Q2.4.3:: XEmacs crashes and I compiled it myself.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
311 * Q2.4.4:: How to debug an XEmacs problem with a debugger
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
312 * Q2.4.5:: I get a cryptic error message when trying to do something.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
313 * Q2.4.6:: XEmacs hangs when I try to do something.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
314 * Q2.4.7:: I get an error message when XEmacs is running in batch mode.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
315 * Q2.4.8:: The keyboard or mouse is not working properly, or I have some other event-related problem.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
316 * Q2.4.9:: @kbd{C-g} doesn't work for me. Is it broken?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
317 * Q2.4.10:: How do I debug process-related problems?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
318 * Q2.4.11:: XEmacs is outputting lots of X errors.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
319 * Q2.4.12:: After upgrading, XEmacs won't do `foo' any more!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
320
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
321 2.5: Startup-Related Problems
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
322 * Q2.5.1:: XEmacs cannot connect to my X Terminal!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
323 * Q2.5.2:: Startup problems related to paths or package locations.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
324 * Q2.5.3:: XEmacs won't start without network.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
325 * Q2.5.4:: Startup warnings about deducing proper fonts?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
326 * Q2.5.5:: Warnings from incorrect key modifiers.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
327 * Q2.5.6:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
328
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
329 3 Editing Functions
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
330
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
331 3.0: The Keyboard
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
332 * Q3.0.1:: How can I customize the keyboard?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
333 * Q3.0.2:: How can I bind complex functions (or macros) to keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
334 * Q3.0.3:: How do I bind C-. and C-; to scroll one line up and down?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
335 * Q3.0.4:: Globally binding @kbd{Delete}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
336 * Q3.0.5:: How to map @kbd{Help} key alone on Sun type4 keyboard?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
337 * Q3.0.6:: How can you type in special characters in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
338 * Q3.0.7:: Can I turn on @dfn{sticky} modifier keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
339 * Q3.0.8:: How do I map the arrow keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
340 * Q3.0.9:: HP Alt key as Meta.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
341 * Q3.0.10:: Why does edt emulation not work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
342 * Q3.0.11:: How can I emulate VI and use it as my default mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
343
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
344 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
345 * Q3.1.1:: How can I turn off Mouse pasting?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
346 * Q3.1.2:: How do I set control/meta/etc modifiers on mouse buttons?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
347 * Q3.1.3:: Clicking the left button does not do anything in buffer list.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
348 * Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
349 * Q3.1.5:: How can I set XEmacs up so that it pastes where the text cursor is?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
350
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
351 3.2: Buffers, Text Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
352 * Q3.2.1:: Can I have the end of the buffer delimited in some way?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
353 * Q3.2.2:: How do I insert today's date into a buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
354 * Q3.2.3:: How do I get a single minibuffer frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
355 * Q3.2.4:: How can I enable auto-indent and/or Filladapt?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
356 * Q3.2.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
357
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
358 3.3: Text Selections
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
359 * Q3.3.1:: How do I select a rectangular region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
360 * Q3.3.2:: How can I turn off or change highlighted selections?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
361 * Q3.3.3:: How do I cause typing on an active region to remove it?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
362 * Q3.3.4:: Can I turn off the highlight during isearch?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
363 * Q3.3.5:: Why is killing so slow?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
364 * Q3.3.6:: Why does @kbd{M-w} take so long?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
365
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
366 3.4: Editing Source Code
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
367 * Q3.4.1:: I do not like cc-mode. How do I use the old c-mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
368 * Q3.4.2:: How do you make XEmacs indent CL if-clauses correctly?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
369
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
370 4 Display Functions
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
371
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
372 4.0: Textual Fonts and Colors
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
373 * Q4.0.1:: How do I specify a font?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
374 * Q4.0.2:: How do I set the text, menu and modeline fonts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
375 * Q4.0.3:: How can I set color options from @file{init.el}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
376 * Q4.0.4:: How can I set the colors when highlighting a region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
377 * Q4.0.5:: How can I limit color map usage?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
378 * Q4.0.6:: My tty supports color, but XEmacs doesn't use them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
379 * Q4.0.7:: Can I have pixmap backgrounds in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
380 * Q4.0.8:: How do I display non-ASCII characters?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
381 * Q4.0.9:: Font selections in don't get saved after @code{Save Options}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
382
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
383 4.1: Syntax Highlighting (Font Lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
384 * Q4.1.1:: How can I do source code highlighting using font-lock?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
385 * Q4.1.2:: How do I get @samp{More} Syntax Highlighting on by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
386
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
387 4.2: The Modeline
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
388 * Q4.2.1:: How can I make the modeline go away?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
389 * Q4.2.2:: How do you have XEmacs display the line number in the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
390 * Q4.2.3:: How do I get XEmacs to put the time of day on the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
391 * Q4.2.4:: How can I change the modeline color based on the mode used?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
392
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
393 4.3: The Cursor
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
394 * Q4.3.1:: Is there a way to make the bar cursor thicker?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
395 * Q4.3.2:: Is there a way to get back the block cursor?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
396 * Q4.3.3:: Can I make the cursor blink?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
397
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
398 4.4: The Menubar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
399 * Q4.4.1:: How do I get rid of the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
400 * Q4.4.2:: How can I customize the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
401 * Q4.4.3:: How do I enable use of the keyboard (@kbd{Alt}) to access menu items?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
402 * Q4.4.4:: How do I control how many buffers are listed in the menu @code{Buffers List}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
403 * Q4.4.5:: Resources like @code{Emacs*menubar*font} are not working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
404
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
405 4.5: The Toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
406 * Q4.5.1:: How do I get rid of the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
407 * Q4.5.2:: How can I customize the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
408 * Q4.5.3:: How can I bind a key to a function to toggle the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
409 * Q4.5.4:: @samp{Can't instantiate image error...} in toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
410
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
411 4.6: Scrollbars and Scrolling
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
412 * Q4.6.1:: How can I disable the scrollbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
413 * Q4.6.2:: How can I change the scrollbar width?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
414 * Q4.6.3:: How can I use resources to change scrollbar colors?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
415 * Q4.6.4:: Moving the scrollbar can move the point; can I disable this?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
416 * Q4.6.5:: Scrolling one line at a time.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
417 * Q4.6.6:: How can I turn off automatic horizontal scrolling in specific modes?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
418 * Q4.6.7:: I find auto-show-mode disconcerting. How do I turn it off?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
419
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
420 4.7: The Gutter Tabs, The Progress Bar, Widgets
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
421 * Q4.7.1:: How can I disable the gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
422 * Q4.7.2:: How can I disable the progress bar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
423 * Q4.7.3:: There are bugs in the gutter or widgets.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
424 * Q4.7.4:: How can I customize the gutter or gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
425
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
426 5 Interfacing with the Operating System and External Devices
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
427
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
428 5.0: X Window System and Resources
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
429 * Q5.0.1:: Where is a list of X resources?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
430 * Q5.0.2:: How can I detect a color display?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
431 * Q5.0.3:: How can I get the icon to just say @samp{XEmacs}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
432 * Q5.0.4:: How can I have the window title area display the full path?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
433 * Q5.0.5:: @samp{xemacs -name junk} doesn't work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
434 * Q5.0.6:: @samp{-iconic} doesn't work.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
435
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
436 5.1: Microsoft Windows
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
437 * Q5.1.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
438 * Q5.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
439
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
440 5.2: Printing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
441 * Q5.2.1:: What do I need to change to make printing work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
442 * Q5.2.2:: How can I print WYSIWYG a font-locked buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
443 * Q5.2.3:: Getting @kbd{M-x lpr} to work with postscript printer.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
444 * Q5.2.4:: Can you print under MS Windows?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
445
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
446 5.3: Sound
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
447 * Q5.3.1:: How do I turn off the sound?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
448 * Q5.3.2:: How do I get funky sounds instead of a boring beep?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
449 * Q5.3.3:: What are NAS and ESD (EsounD)?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
450 * Q5.3.4:: Sunsite sounds don't play.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
451
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
452 5.4: Running an Interior Shell, Invoking Subprocesses
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
453 * Q5.4.1:: What is an interior shell?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
454 * Q5.4.2:: How do I start up a second shell buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
455 * Q5.4.3:: Telnet from shell filters too much
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
456 * Q5.4.4:: Strange things are happening in Shell Mode.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
457 * Q5.4.5:: XEmacs complains "No such file or directory, diff"
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
458 * Q5.4.6:: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
460 5.5: Multiple Device Support
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
461 * Q5.5.1:: How do I open a frame on another screen of my multi-headed display?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
462 * Q5.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
463 * Q5.5.3:: How do I disable gnuserv from opening a new frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
464 * Q5.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
465 * Q5.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
466
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
467 6 Connecting to the Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
468
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
469 6.0: General Mail and News
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
470 * Q6.0.1:: What are the various packages for reading mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
471 * Q6.0.2:: How can I send mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
472 * Q6.0.3:: How do I get my outgoing mail archived?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
473 * Q6.0.4:: How can I read and/or compose MIME messages?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
474 * Q6.0.5:: How do I customize the From line?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
475 * Q6.0.6:: How do I get my MUA to filter mail for me?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
476 * Q6.0.7:: Remote mail reading with an MUA.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
477 * Q6.0.8:: An MUA gets an error incorporating new mail.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
478 * Q6.0.9:: Why isn't @file{movemail} working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
479 * Q6.0.10:: How do I make my MUA display graphical smilies?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
480 * Q6.0.11:: How can I get those oh-so-neat X-Face lines?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
481
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
482 6.1: Reading Mail with VM
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
483 * Q6.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
484 * Q6.1.2:: How can I get VM to automatically check for new mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
485 * Q6.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
486 * Q6.1.4:: Is there a mailing list or FAQ for VM?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
487 * Q6.1.5:: How do I make VM stay in a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
488 * Q6.1.6:: Customization of VM not covered in the manual, or here.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
489
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
490 6.2: Reading Netnews and Mail with Gnus
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
491 * Q6.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
492 * Q6.2.2:: How do I make Gnus stay within a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
493
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
494 6.3: FTP Access
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
495 * Q6.3.1:: Can I edit files on other hosts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
496 * Q6.3.2:: What is EFS?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
497
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
498 6.4: Web Browsing with W3
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
499 * Q6.4.1:: What is W3?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
500 * Q6.4.2:: How do I run W3 from behind a firewall?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
501 * Q6.4.3:: Is it true that W3 supports style sheets and tables?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
502
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
503 7 Advanced Customization Using XEmacs Lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
504
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
505 7.0: Emacs Lisp and @file{init.el}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
506 * Q7.0.1:: What version of Emacs am I running?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
507 * Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
508 * Q7.0.3:: @code{(setq tab-width 6)} behaves oddly.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
509 * Q7.0.4:: How can I add directories to the @code{load-path}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
510 * Q7.0.5:: How to check if a lisp function is defined?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
511 * Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
512
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
513 7.1: Emacs Lisp Programming Techniques
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
514 * Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
515 * Q7.1.2:: Can I generate "fake" keyboard events?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
516 * Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
517 * Q7.1.4:: What is the performance hit of @code{let}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
518 * Q7.1.5:: What is the recommended use of @code{setq}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
519 * Q7.1.6:: What is the typical misuse of @code{setq}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
520 * Q7.1.7:: I like the @code{do} form of cl, does it slow things down?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
521 * Q7.1.8:: I like recursion, does it slow things down?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
522 * Q7.1.9:: How do I put a glyph as annotation in a buffer?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
523 * Q7.1.10:: @code{map-extents} won't traverse all of my extents!
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
524 * Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
525
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
526 7.2: Mathematics
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
527 * Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
528 * Q7.2.2:: XEmacs segfaults when I use very big numbers!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
529 * Q7.2.3:: Bignums are really slow!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
530 * Q7.2.4:: Equal bignums don't compare as equal! What gives?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
531
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
532 8 Other External Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
533
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
534 8.0: TeX
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
535 * Q8.0.1:: Is there something better than LaTeX mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
536 * Q8.0.2:: What is AUCTeX? Where do you get it?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
537 * Q8.0.3:: Problems installing AUCTeX.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
538 * Q8.0.4:: How do I turn off current chapter from AUCTeX modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
539
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
540 8.1: Other Unbundled Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
541 * Q8.1.1:: Is there a reason for an Emacs package not to be included in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
542 * Q8.1.2:: Are there any Emacs Lisp Spreadsheets?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
543 * Q8.1.3:: Is there a MatLab mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
544
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
545 8.2: Environments Built Around XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
546 * Q8.2.1:: What are SPARCworks, EOS, and WorkShop?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
547 * Q8.2.2:: How do I start the Sun Workshop support in XEmacs 21?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
548 * Q8.2.3:: What is/was Energize?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
549 * Q8.2.4:: What is Infodock?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
550
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
551 9 What the Future Holds
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
552
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
553 9.0: Changes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
554 * Q9.0.1:: What new features will be in XEmacs soon?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
555 * Q9.0.2:: What's new in XEmacs 21.4?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
556 * Q9.0.3:: What's new in XEmacs 21.1?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
557 * Q9.0.4:: What's new in XEmacs 20.4?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
558 * Q9.0.5:: What's new in XEmacs 20.3?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
559 * Q9.0.6:: What's new in XEmacs 20.2?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
560
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
561 10 New information about old XEmacsen
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
562
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
563 10.0: XEmacs 21.1
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
564 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1.
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
565 * Q10.0.2:: XEmacs won't start on Windows in XEmacs 21.1.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
566
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
567 @end detailmenu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
568 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
569
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
570 @node Introduction, Installation, Top, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
571 @unnumbered 1 Introduction, Policy, Credits
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
572
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
573 Learning XEmacs is a lifelong activity. Even people who have used Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
574 for years keep discovering new features. Therefore this document cannot
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
575 be complete. Instead it is aimed at the person who is either
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
576 considering XEmacs for their own use, or has just obtained it and is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
577 wondering what to do next. It is also useful as a reference to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
578 available resources.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
579
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
580 The previous maintainer of the FAQ was
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
581 @email{rossini@@biostat.washington.edu, Anthony Rossini}, who started
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
582 it, after getting tired of hearing JWZ complain about repeatedly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
583 having to answer questions. @email{ben@@xemacs.org, Ben Wing} then
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
584 took over and did a massive update reorganizing the whole thing. At
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
585 this point Anthony took back over, but then had to give it up again.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
586 Some of the other contributors to this FAQ are listed later in this
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
587 document.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
588
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
589 The previous version was converted to hypertext format, and edited by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
590 @email{steve@@xemacs.org, Steven L. Baur}. It was converted back to
434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
591 texinfo by @email{hniksic@@xemacs.org, Hrvoje Niksic}. The FAQ was then
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
592 maintained by @email{andreas@@sccon.com, Andreas Kaempf}, who passed it
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
593 on to ChristianNyb@o{}, and then to @email{wambold@@xemacs.org,Sandra Wambold}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
594
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
595 The current version of the FAQ has been heavily redone by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
596 @email{ben@@xemacs.org, Ben Wing}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
597
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
598 If you notice any errors or items which should be added or amended to
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
599 this FAQ please send email to @email{xemacs-beta@@xemacs.org}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
600 Include @samp{XEmacs FAQ} on the Subject: line.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
601
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
602 @menu
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
603 1.0: What is XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
604 * Q1.0.1:: What is XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
605 * Q1.0.2:: What is the current version of XEmacs?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
606 * Q1.0.3:: How do you pronounce XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
607 * Q1.0.4:: What does XEmacs look like?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
608 * Q1.0.5:: Who wrote XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
609 * Q1.0.6:: Who wrote the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
610
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
611 1.1: Getting XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
612 * Q1.1.1:: Where can I find XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
613 * Q1.1.2:: Are binaries available?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
614 * Q1.1.3:: How do I get the bleeding-edge sources?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
615 * Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
616
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
617 1.2: Versions for Different Operating Systems
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
618 * Q1.2.1:: Do I need X11 to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
619 * Q1.2.2:: What versions of Unix does XEmacs run on?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
620 * Q1.2.3:: Is there a port of XEmacs to Microsoft Windows?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
621 * Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
622 * Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
623 * Q1.2.6:: What are the differences between the various MS Windows emacsen?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
624 * Q1.2.7:: How does the port cope with differences in the Windows user interface?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
625 * Q1.2.8:: Is there a port of XEmacs to the Macintosh?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
626 * Q1.2.9:: Is there a port of XEmacs to MS-DOS?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
627 * Q1.2.10:: Is there a port of XEmacs to OS/2?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
628 * Q1.2.11:: Is there a port of XEmacs to NextStep?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
629 * Q1.2.12:: Is there a port of XEmacs to VMS?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
630
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
631 1.3: Getting Started
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
632 * Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
633 * Q1.3.2:: Where do I put my @file{init.el} file?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
634 * Q1.3.3:: Can I use the same @file{init.el} with the other Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
635 * Q1.3.4:: Any good XEmacs tutorials around?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
636 * Q1.3.5:: May I see an example of a useful XEmacs Lisp function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
637 * Q1.3.6:: And how do I bind it to a key?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
638 * Q1.3.7:: What's the difference between a macro and a function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
639 * Q1.3.8:: What is @code{Custom}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
640
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
641 1.4: Getting Help
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
642 * Q1.4.1:: Where can I get help?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
643 * Q1.4.2:: Which mailing lists are there?
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
644 * Q1.4.3:: Where are the mailing lists archived?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
645 * Q1.4.4:: How can I get two instances of info?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
646 * Q1.4.5:: How do I add new Info directories?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
647
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
648 1.5: Contributing to XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
649 * Q1.5.1:: How do I submit changes to the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
650 * Q1.5.2:: How do I become a beta tester?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
651 * Q1.5.3:: How do I contribute to XEmacs itself?
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
652 * Q1.5.4:: How do I get started developing XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
653 * Q1.5.5:: What's the basic layout of the code?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
654
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
655 1.6: Politics (XEmacs vs. GNU Emacs)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
656 * Q1.6.1:: What is GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
657 * Q1.6.2:: How does XEmacs differ from GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
658 * Q1.6.3:: How much does XEmacs differ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
659 * Q1.6.4:: Is XEmacs "GNU"?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
660 * Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
661 * Q1.6.6:: Why haven't XEmacs and GNU Emacs merged?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
662
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
663 1.7: External Packages
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
664 * Q1.7.1:: What is the package system?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
665 * Q1.7.2:: Which external packages are there?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
666 * Q1.7.3:: Do I need to have the packages to run XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
667 * Q1.7.4:: Is there a way to find which package has particular functionality?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
668
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
669 1.8: Internationalization
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
670 * Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
671 * Q1.8.2:: How can I help with internationalization?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
672 * Q1.8.3:: How do I type non-ASCII characters?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
673 * Q1.8.4:: Can XEmacs messages come out in a different language?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
674 * Q1.8.5:: Please explain the various input methods in MULE/XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
675 * Q1.8.6:: How do I portably code for MULE/XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
676 * Q1.8.7:: How about Cyrillic modes?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
677 * Q1.8.8:: Does XEmacs support Unicode?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
678 * Q1.8.9:: How does XEmacs display Unicode?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
679 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
680
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
681 @unnumberedsec 1.0: What is XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
682
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
683 @node Q1.0.1, Q1.0.2, Introduction, Introduction
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
684 @unnumberedsubsec Q1.0.1: What is XEmacs?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
685
479
52626a2f02ef [xemacs-hg @ 2001-04-20 11:31:53 by ben]
ben
parents: 468
diff changeset
686 XEmacs is a powerful, highly customizable open source text editor and
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
687 application development system, with full GUI support. It is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
688 protected under the GNU Public License and related to other versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
689 of Emacs, in particular GNU Emacs. Its emphasis is on modern
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
690 graphical user interface support and an open software development
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
691 model, similar to Linux. XEmacs has an active development community
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
692 numbering in the hundreds (and thousands of active beta testers on top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
693 of this), and runs on all versions of MS Windows, on Mac OS X, on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
694 Linux, and on nearly every other version of Unix in existence.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
695 Support for XEmacs has been supplied by Sun Microsystems, University
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
696 of Illinois, Lucid, ETL/Electrotechnical Laboratory, Amdahl
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
697 Corporation, BeOpen, and others, as well as the unpaid time of a great
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
698 number of individual developers.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
699
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
700 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
701 @unnumberedsubsec Q1.0.2: What is the current version of XEmacs?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
702
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
703 XEmacs versions 21.4.* are releases made from the current stable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
704 sources. XEmacs versions 21.5.* (which will be released as 22.0) are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
705 releases made from the development sources. Check at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
706 @uref{http://www.xemacs.org} for the current minor version. XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
707 versions 21.1.* were the previous stable releases, now retired.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
708
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
709 XEmacs 20.4, released in February 1998, was the last release of v20.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
710
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
711 XEmacs 19.16, released in November, 1997. was the last release of v19,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
712 and was also the last version without international language support.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
713
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
714 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
715 @unnumberedsubsec Q1.0.3: How do you pronounce XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
716
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
717 The most common pronounciation is @samp{Eks eemax}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
718
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
719 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
720 @unnumberedsubsec Q1.0.4: What does XEmacs look like?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
721
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
722 Screen snapshots are available at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
723 @uref{http://www.xemacs.org/About/Screenshots/index.html}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
724 as part of the XEmacs website.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
725
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
726 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
727 @unnumberedsubsec Q1.0.5: Who wrote XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
728
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
729 XEmacs is the result of the time and effort of many people, and the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
730 active developers have changed over time. There are two major
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
731 components of the XEmacs effort -- writing the code itself and providing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
732 all the support work (testing the code, releasing beta and final
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
733 versions, handling patches, reading bug reports, maintaining the web
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
734 site, managing the mailing lists, etc. etc.). Neither component would
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
735 work without the other.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
736
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
737 @subheading CODING
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
738
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
739 The primary code contributor over the years has been Ben Wing (active
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
740 since late 1992). Between 1991 and 1995, large amounts of coding was
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
741 contributed by Jamie Zawinski and Chuck Thompson. Many other people
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
742 have authored major subsystems or otherwise contributed large amounts of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
743 code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
744 Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
745 Mlynarik, Stig, William Perry and plenty of others.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
746
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
747 Primary XEmacs-specific subsystems and their authors:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
748
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
749 @table @asis
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
750 @item Objects
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
751 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
752 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
753 Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard Mlynarik, 1994
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
754 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
755 Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
756 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
757 Portable dumper, object descriptions: Olivier Galibert
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
758 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
759 KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
760 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
761 Random object work (object equal and hash methods, weak lists, lcrecord lists, bit vectors, dynarr, blocktype, opaque, string resizing): Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
762 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
763 Profiling: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
764 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
765 Some byte-compilation and hash-table improvements: Martin Buchholz
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
766 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
767 Bignum: Jerry James
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
768 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
769
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
770 @item Internationalization/Mule
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
771 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
772 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
773 mostly Ben Wing; many ideas for future work, Stephen Turnbull
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
774 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
775
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
776 @item I/O
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
777 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
778 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
779 Basic event/event-stream implementation: Jamie Zawinski
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
780 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
781 Most event work since 1994: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
782 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
783 Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
784 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
785 Process method abstraction, Windows process work: Kirill Katsnelson
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
786 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
787 Misc-user events, async timeouts, most quit-checking and signal code, most other work since 1994: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
788 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
789 Lstreams: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
790 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
791
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
792 @item Display
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
793 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
794 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
795 Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
796 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
797 Glyphs: mostly Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
798 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
799 Specifiers: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
800 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
801 Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
802 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
803 Widgets: Andy Piper
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
804 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
805 JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see comment in @file{glyphs-eimage.c})
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
806 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
807 Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
808 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
809 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
810 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
811 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
812 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
813 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
814 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
815 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
816 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
817 Toolbars: implementation, chuck, much interface work, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
818 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
819 Gutters, tabs: andy piper
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
820 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
821
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
822 @item Device subsystems
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
823 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
824 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
825 X Windows: Jamie Zawinksi, Ben Wing, others
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
826 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
827 GTK: William Perry, Malcolm Purvis
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
828 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
829 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
830 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
831 TTY: Chuck Thompson, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
832 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
833 Cygwin: Andy Piper
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
834 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
835
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
836 @item Misc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
837 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
838 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
839 Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
840 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
841 Most initialization-related code: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
842 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
843 Internals manual, much of Lisp manual: Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
844 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
845 FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
846 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
847 @end table
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
848
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
849 @subheading SUPPORT
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
850
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
851 Currently, support duties are handled by many different people.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
852
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
853 Release managers have been
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
854
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
855 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
856 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
857 Stephen Turnbull (April 2001 - January 2003, March 2004 - present, 21.2.47 - 21.4.12, 21.5.2 - 21.5.7, 21.5.17 - present)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
858 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
859 Vin Shelton (May 2003 - present, 21.4.13 - present)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
860 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
861 Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
862 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
863 Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 - 21.2.8, 21.2.21 - 21.2.46, 21.5.0 - 21.5.1)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
864 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
865 Steve Baur (early 1997 - December 1998, February 1999 - November 1999, 19.15 - 21.2.5, 21.2.9 - 21.2.20)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
866 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
867 Andy Piper (December 1998, 21.2.6)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
868 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
869 Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
870 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
871 Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
872 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
873
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
874 The recent overlapping dates are intentional, since two or three trees
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
875 are maintained simultaneously at any point.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
876
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
877 Other major support work:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
878
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
879 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
880 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
881 Adrian Aichner wrote and maintains the web site.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
882 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
883 Stephen Turnbull has produced many of the beta and semi-stable releases
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
884 and has attempted to be the "face" of XEmacs on the newsgroups and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
885 mailing lists.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
886 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
887 Steve Youngs currently produces the beta releases (???).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
888 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
889 Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
890 maintaining the packages.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
891 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
892 Vin Shelton maintains the stable releases.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
893 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
894 Testing - #### Norbert, Adrian, ???
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
895 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
896
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
897 Portraits and email of some of the major developers:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
898
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
899 @itemize @bullet
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
900 @item @email{andy@@xemacs.org, Andy Piper}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
901 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
902 <br><img src="piper.png" alt="Portrait of Andy Piper"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
903 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
904
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
905 @item @email{ben@@xemacs.org, Ben Wing}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
906 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
907 <br><img src="ben.png" alt="Portrait of Ben Wing"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
908 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
909
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
910 @item @email{cthomp@@xemacs.org, Chuck Thompson}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
911 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
912 <br><img src="cthomp.png" alt="Portrait of Chuck Thompson"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
913 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
914
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
915 @item @email{hniksic@@xemacs.org, Hrvoje Niksic}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
916
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
917 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
918 <br><img src="hniksic.png" alt="Portrait of Hrvoje Niksic"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
919 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
920
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
921 @item @email{jwz@@jwz.org, Jamie Zawinski}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
922 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
923 <br><img src="jwz.png" alt="Portrait of Jamie Zawinski"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
924 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
925
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
926 @item @email{martin@@xemacs.org, Martin Buchholz}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
927 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
928 <br><img src="martin.png" alt="Portrait of Martin Buchholz"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
929 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
930
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
931 @item @email{mly@@adoc.xerox.com, Richard Mlynarik}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
932 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
933 <br><img src="mly.png" alt="Portrait of Richard Mlynarik"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
934 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
935
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
936 @item @email{stephen@@xemacs.org, Stephen Turnbull}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
937
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
938 @item @email{steve@@xemacs.org, Steve Baur}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
939 @html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
940 <br><img src="slb.png" alt="Portrait of Steve Baur"><br>
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
941 @end html
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
942 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
943
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
944 Many other people have contributed to XEmacs; this is partially
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
945 enumerated in the @samp{About XEmacs} option in the Help menu.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
946
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
947 @node Q1.0.6, Q1.1.1, Q1.0.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
948 @unnumberedsubsec Q1.0.6: Who wrote the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
949
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
950 The current version of this FAQ was created by @email{ben@@xemacs.org,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
951 Ben Wing}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
952
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
953 Previous contributors to the FAQ include
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
954
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
955 @itemize @bullet
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
956 @item @email{steve@@xemacs.org, SL Baur}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
957
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
958 @item @email{hniksic@@xemacs.org, Hrvoje Niksic}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
959
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
960 @item @email{binge@@aloft.att.com, Curtis.N.Bingham}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
961
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
962 @item @email{bruncott@@dormeur.inria.fr, Georges Brun-Cottan}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
963
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
964 @item @email{rjc@@cogsci.ed.ac.uk, Richard Caley}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
965
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
966 @item @email{cognot@@ensg.u-nancy.fr, Richard Cognot}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
967
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
968 @item @email{daku@@nortel.ca, Mark Daku}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
969
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
970 @item @email{wgd@@martigny.ai.mit.edu, William G. Dubuque}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
971
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
972 @item @email{eeide@@cs.utah.edu, Eric Eide}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
973
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
974 @item @email{af@@biomath.jussieu.fr, Alain Fauconnet}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
975
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
976 @item @email{cflatter@@nrao.edu, Chris Flatters}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
977
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
978 @item @email{ginsparg@@adra.com, Evelyn Ginsparg}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
979
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
980 @item @email{hall@@aplcenmp.apl.jhu.edu, Marty Hall}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
981
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
982 @item @email{dkindred@@cmu.edu, Darrell Kindred}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
983
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
984 @item @email{dmoore@@ucsd.edu, David Moore}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
985
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
986 @item @email{arup+@@cmu.edu, Arup Mukherjee}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
987
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
988 @item @email{nickel@@prz.tu-berlin.de, Juergen Nickelsen}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
989
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
990 @item @email{powell@@csl.ncsa.uiuc.edu, Kevin R. Powell}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
991
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
992 @item @email{dworkin@@ccs.neu.edu, Justin Sheehy}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
993
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
994 @item @email{stig@@hackvan.com, Stig}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
995
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
996 @item @email{Aki.Vehtari@@hut.fi, Aki Vehtari}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
997 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
998
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
999 @unnumberedsec 1.1: Getting XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1000
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1001 @node Q1.1.1, Q1.1.2, Q1.0.6, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1002 @unnumberedsubsec Q1.1.1: Where can I find XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1003
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1004 To download XEmacs, visit the XEmacs WWW page at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1005 @uref{http://www.xemacs.org/Download/}. The most up-to-date list of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1006 distribution sites can always be found there. Try to pick a site that
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1007 is networkologically close to you. If you know of other mirrors of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1008 the XEmacs archives, please send e-mail to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1009 @uref{mailto:webmaster@@xemacs.org} and we will list them here as well.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1010
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1011 The canonical distribution point is ftp.xemacs.org, available either
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1012 through HTTP (@uref{http://ftp.xemacs.org/}) or anonymous FTP
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1013 (@uref{ftp://ftp.xemacs.org/pub/xemacs/}).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1014
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1015 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1016 @unnumberedsubsec Q1.1.2: Are binaries available?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1017
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1018 MS Windows binaries are available at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1019 @uref{http://www.xemacs.org/Download/win32/} for the native versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1020 of 21.4 and 21.1. Cygwin binaries are now available as part of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1021 standard Cygwin installation process. XEmacs also comes pre-built as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1022 part of many Linux distributions, such as Red Hat and SuSE.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1023
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1024 Otherwise, you will need to build XEmacs yourself or get your system
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1025 administrator to do it. Generally, this is not a difficult process
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1026 under Unix and Mac OS X, as XEmacs has been tested under all of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1027 common Unix versions and under Mac OS X and comes with an extensive
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1028 configure script that is able to automatically detect most aspects of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1029 the configuration of your particular system.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1030
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1031 @node Q1.1.3, Q1.1.4, Q1.1.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1032 @unnumberedsubsec Q1.1.3: How do I get the bleeding-edge sources?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1033
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1034 If you are interested in developing XEmacs, or getting the absolutely most
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1035 recent, up-to-the-moment, bleeding-edge source code, you can directly
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1036 access the master CVS source tree (read-only, of course, until you ask for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1037 and are granted permission to directly modify portions of the source tree)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1038 at cvs.xemacs.org. Directions on how to access the source tree are located
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1039 at @uref{http://www.xemacs.org/Develop/cvsaccess.html}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1040
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1041 Nightly CVS snapshots are available at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1042 @uref{http://www.dk.xemacs.org/Download/CVS-snapshots/}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1043
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1044 @node Q1.1.4, Q1.2.1, Q1.1.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1045 @unnumberedsubsec Q1.1.4: Where can I obtain a printed copy of the XEmacs User's Manual?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1046
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1047 Pre-printed manuals are not available. If you are familiar with
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1048 TeX, you can generate your own manual from the XEmacs sources.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1049
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1050 HTML and Postscript versions of XEmacs manuals are available from the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1051 XEmacs web site at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1052 @uref{http://www.xemacs.org/Documentation/index.html}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1053
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1054 @unnumberedsec 1.2: Versions for Different Operating Systems
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1055
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1056 @node Q1.2.1, Q1.2.2, Q1.1.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1057 @unnumberedsubsec Q1.2.1: Do I need X11 to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1058
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1059 No. The name @dfn{XEmacs} is unfortunate in the sense that it is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1060 @strong{not} an X Window System-only version of Emacs. XEmacs has
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1061 full color support on a color-capable character terminal.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1062
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1063 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1064 @unnumberedsubsec Q1.2.2: What versions of Unix does XEmacs run on?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1065
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1066 XEmacs is regularly tested on Linux, Solaris, SunOS, HP/UX, FreeBSD,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1067 OpenBSD, BSD/OS aka BSDI, Tru64 aka DEC/OSF, SCO5, and probably
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1068 others. It should work on all versions of Unix created in the last 10
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1069 years or so, perhaps with a bit of work on more obscure platforms to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1070 correct bit-rot. It uses a sophisticated configuration system to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1071 auto-detect zillions of features that are implemented differently in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1072 different versions of Unix, so it will probably work on your vendor's
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1073 version, possibly with a bit of tweaking, even if we've never heard of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1074 it.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1075
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1076 For problems with particular machines and versions of Unix, see the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1077 @file{PROBLEMS} file.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1078
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1079 Much effort has gone into making XEmacs work on as many different
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1080 machines, configurations, and compilers as possible.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1081
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1082 Much effort has gone into making XEmacs 64-bit clean.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1083
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1084 Much effort has gone into removing system-specific code, and replacing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1085 such code with autodetection at configure time.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1086
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1087 The XEmacs core should build "out of the box" on most Unix-like systems.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1088
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1089 XEmacs 21.2 was tested and @samp{make check} succeeded on these Unix
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1090 configurations as of 2001-02-10:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1091
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1092 @example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1093 alphaev56-dec-osf4.0e (both Compaq C and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1094 i386-unknown-freebsd4.2
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1095 i386-unknown-netbsdelf1.5
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1096 i586-sco-sysv5uw7.0.1 (both SCO's cc and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1097 i686-pc-linux-gnu
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1098 hppa2.0-hp-hpux10.20 (both HP's ANSI cc and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1099 mips-sgi-irix6.5 (both MIPSpro cc and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1100 rs6000-ibm-aix4.3.0.0 (both IBM's xlc and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1101 sparc-sun-solaris2.6 (both Sun's Forte C and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1102 sparc-sun-solaris2.7 (both Sun's Forte C and gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1103 sparc-sun-sunos4.1.4 (gcc)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1104 @end example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1105
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1106 Some systems have a dual mode 32-bit/64-bit compiler. On most of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1107 these, XEmacs requires the @samp{--pdump} configure option to build
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1108 correctly with the 64-bit version of the compiler.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1109
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1110 @example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1111 mips-sgi-irix6.5, CC="gcc -mabi=64"
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1112 mips-sgi-irix6.5, CC="cc -64"
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1113 rs6000-ibm-aix4.3.0.0, CC="cc -q64"
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1114 @end example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1115
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1116 On most of these systems, XEmacs also builds with a C++ compiler,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1117 but not "out of the box". This feature is only for use by the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1118 maintainers.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1119
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1120 XEmacs 21.2 is known @emph{not} to work on any machines with m680x0
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1121 processors. Sorry, all you sun3 and Unix PC nostalgia buffs out there.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1122
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1123 VMS has never been supported by XEmacs. In fact, all the old VMS code
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1124 inherited from Emacs has been removed. Sorry, all you VMS fans out there.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1125
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1126 @node Q1.2.3, Q1.2.4, Q1.2.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1127 @unnumberedsubsec Q1.2.3: Is there a port of XEmacs to Microsoft Windows?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1128
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1129 Yes. Beginning with release 21.0, XEmacs has worked under MS Windows
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1130 and is fully-featured and actively developed. A group of dedicated
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1131 developers actively maintains and improves the Windows-specific
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1132 portions of the code. Some of the core developers, in fact, use
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1133 Windows as their only development environment, and some features, such
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1134 as printing, actually work better on Windows than native Unix and Mac
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1135 OS X. The mailing list at @email{xemacs-winnt@@xemacs.org} is dedicated
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1136 to that effort (please use the -request address to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1137 subscribe). (Despite its name, XEmacs actually works on all versions
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1138 of Windows.)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1139
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1140 The list name is misleading, as XEmacs supports and has been compiled on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1141 Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1142 XP, and all newer versions of Windows. The MS Windows-specific code is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1143 based on Microsoft Win32 API, and will not work on MS Windows 3.x or on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1144 MS-DOS.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1145
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1146 XEmacs also supports the Cygwin and MinGW development and runtime
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1147 environments, where it also uses native Windows code for graphical
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1148 features. In addition, under Cygwin it is possible to compile XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1149 to use an X server (and XFree86 is available as part of the standard
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1150 Cygwin installation).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1151
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1152 @node Q1.2.4, Q1.2.5, Q1.2.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1153 @unnumberedsubsec Q1.2.4: Can I build XEmacs on MS Windows with X support? Do I need to?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1154
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1155 Yes, you can, but no you do not need to. In fact, we recommend that you
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1156 use a native-GUI version unless you have a specific need for an X
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1157 version.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1158
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1159 @node Q1.2.5, Q1.2.6, Q1.2.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1160 @unnumberedsubsec Q1.2.5: What are Cygwin and MinGW, and do I need them to run XEmacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1161
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1162 To answer the second part of the question: No, you, you don't need
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1163 Cygwin or MinGW to build or to run XEmacs. But if you have them and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1164 want to use them, XEmacs supports these environments.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1165
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1166 (One important reason to support Cygwin is that it lets the MS Windows
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1167 developers test out their code in a Unix environment without actually
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1168 having to have a Unix machine around. For this reason alone, Cygwin
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1169 support is likely to remain supported for a long time in XEmacs. Same
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1170 goes for the X support under Cygwin, for the same reasons. MinGW
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1171 support, on the other hand, depends on volunteers to keep it up to date;
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1172 but this is generally not hard.)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1173
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1174 Cygwin is a set of tools providing Unix-like API on top of Win32.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1175 It makes it easy to port large Unix programs without significant
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1176 changes to their source code. It is a development environment as well
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1177 as a runtime environment.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1178
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1179 When built with Cygwin, XEmacs supports all display types -- TTY, X &
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1180 Win32 GUI, and can be built with support for all three simultaneously.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1181 If you build with Win32 GUI support then the Cygwin version uses the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1182 majority of the Windows-specific code, which is mostly related to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1183 display. If you want to build with X support you need X libraries (and
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1184 an X server to display XEmacs on); see @ref{Q2.3.7}. TTY and Win32 GUI
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1185 require no additional libraries beyond what comes standard with Cygwin.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1186
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1187 The advantages of the Cygwin version are that it integrates well with
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1188 the Cygwin environment for existing Cygwin users; uses configure so
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1189 building with different features is very easy; and actively supports X &
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1190 TTY. Furthermore, the entire Cygwin environment and compiler are free,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1191 whereas Visual C++ costs money.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1192
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1193 The disadvantage is that it requires the whole Cygwin environment,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1194 whereas the native port requires only a suitable MS Windows compiler.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1195 Also, it follows the Unix filesystem and process model very closely
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1196 (some will undoubtedly view this as an advantage).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1197
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1198 See @uref{http://www.cygwin.com/} for more information on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1199 Cygwin.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1200
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1201 MinGW is a collection of header files and import libraries that allow
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1202 one to use GCC under the Cygwin environment to compile and produce
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1203 exactly the same native Win32 programs that you can using Visual C++.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1204 Programs compiled with MinGW make use of the standard Microsoft runtime
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1205 library @file{MSVCRT.DLL}, present on all Windows systems, and look,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1206 feel, and act like a standard Visual-C-produced application. (The only
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1207 difference is the compiler.) This means that, unlike a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1208 standardly-compiled Cygwin application, no extra runtime support
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1209 (e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1210 fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1211 environment, for those die-hard Unix hackers out there), is the main
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1212 advantage of MinGW. It is also potentially faster than Cygwin because
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1213 it has less overhead when calling Windows, but you lose the POSIX
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1214 emulation layer, which makes Unix programs harder to port. (But this is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1215 irrelevant for XEmacs since it's already ported to Win32.)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1216
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1217 See @uref{http://www.mingw.org/} for more information on MinGW.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1218
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1219 @node Q1.2.6, Q1.2.7, Q1.2.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1220 @unnumberedsubsec Q1.2.6: What are the differences between the various MS Windows emacsen?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1221
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1222 XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1223 Could you briefly explain the differences between them?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1224
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1225 Here is a recount of various Emacs versions running on MS Windows:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1226
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1227 @itemize @bullet
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1228
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1229 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1230 XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1231
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1232 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1233
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1234 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1235 Beginning with XEmacs 19.12, XEmacs' architecture was redesigned
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1236 in such a way to allow clean support of multiple window systems. At
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1237 this time the TTY support was added, making X and TTY the first two
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1238 "window systems" supported by XEmacs. The 19.12 design is the basis for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1239 the current native MS Windows code.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1240
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1241 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1242 Some time during 1997, David Hobley (soon joined by Marc Paquette)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1243 imported some of the NT-specific portions of GNU Emacs, making XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1244 with X support compile under Windows NT, and creating the "X" port.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1245
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1246 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1247 Several months later, Jonathan Harris sent out initial patches to use
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1248 the Win32 API, thus creating the native port. Since then, various
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1249 people have contributed, including Kirill M. Katsnelson (contributed
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1250 support for menubars, subprocesses and network, as well as loads of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1251 other code), Andy Piper (ported XEmacs to Cygwin environment,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1252 contributed Windows unexec, Windows-specific glyphs and toolbars code,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1253 and more), Ben Wing (loads of improvements; primary MS Windows developer
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1254 since 2000), Jeff Sparkes (contributed scrollbars support) and many
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1255 others.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1256 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1257
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1258 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1259 NT Emacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1260
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1261 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1262
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1263 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1264 NT Emacs was an early version of GNU Emacs 19 modified to compile and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1265 run under MS Windows 95 and NT using the native Win32 API. It was
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1266 written by Geoff Voelker, and has long since been incorporated into
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1267 the mainline GNU Emacs distribution.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1268 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1269
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1270 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1271 Win-Emacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1272
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1273 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1274
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1275 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1276 Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1277 compatibility libraries. Win-Emacs was written by Ben Wing. The MS
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1278 Windows code never made it back to Lucid Emacs, and its creator (Pearl
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1279 Software) has long since gone out of business.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1280 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1281
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1282 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1283 GNU Emacs for DOS
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1284
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1285 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1286
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1287 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1288 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1289 port of GCC). Such an Emacs is heavily underfeatured, because it does
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1290 not support long file names, lacks proper subprocesses support, and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1291 is far too big compared with typical DOS editors.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1292 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1293
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1294 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1295 GNU Emacs compiled with Win32
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1296
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1297 @itemize @minus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1298
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1299 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1300 Starting with GNU Emacs 19.30, it has been possible to compile GNU Emacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1301 under MS Windows using the DJGPP compiler and X libraries. The result
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1302 is very similar to GNU Emacs compiled under MS DOS, only it works
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1303 somewhat better because it runs in 32-bit mode, makes use of all the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1304 system memory, supports long file names, etc.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1305 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1306
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1307 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1308
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1309 @node Q1.2.7, Q1.2.8, Q1.2.6, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1310 @unnumberedsubsec Q1.2.7: How does the port cope with differences in the Windows user interface?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1311
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1312 The XEmacs (and Emacs in general) user interface is pretty different
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1313 from what is expected of a typical MS Windows program. How does the MS
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1314 Windows port cope with it?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1315
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1316 As a general rule, we follow native MS Windows conventions as much as
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1317 possible. 21.4 is a fairly complete Windows application, supporting
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1318 native printing, system file dialog boxes, tool tips, etc. In cases
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1319 where there's a clear UI conflict, we currently use normal Unix XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1320 behavior by default, but make sure the MS Windows "look and feel" (mark
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1321 via shift-arrow, self-inserting deletes region, Alt selects menu items,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1322 etc.) is easily configurable (respectively: using the variable
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1323 @code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1324 the default in these versions], or the @file{pc-select} package; using
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1325 the @file{pending-del} package; and setting the variable
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1326 @code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1327 In fact, if you use the sample @file{init.el} file as your init file,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1328 you will get all these behaviors automatically turned on.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1329
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1330 In future versions, some of these features might be turned on by
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1331 default in the MS Windows environment.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1332
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1333 @node Q1.2.8, Q1.2.9, Q1.2.7, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1334 @unnumberedsubsec Q1.2.8: Is there a port of XEmacs to the Macintosh?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1335
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1336 Yes.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1337
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1338 XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1339 will not feel very much like a Mac application as it has no Mac-specific
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1340 code in it.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1341
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1342 There is also a port of XEmacs 19.14 that works on all recent versions
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1343 of MacOS, from 8.1 through MacOS X, by @email{pjarvis@@ispchannel.com,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1344 Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1345 mode only (one single Macintosh window, 25 colors), but has a large
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1346 number of Mac-specific additions. It's available at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1347 @uref{http://homepage.mac.com/pjarvis/xemacs.html}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1348
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1349 @node Q1.2.9, Q1.2.10, Q1.2.8, Introduction
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1350 @unnumberedsubsec Q1.2.9: Is there a port of XEmacs to MS-DOS?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1351
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1352 No. We have never supported running on MS-DOS or Windows 3.1, and in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1353 fact have long since deleted all MS-DOS-related code. We're not
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1354 particularly interested in patches for these platforms, as they would
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1355 introduce huge amounts of code clutter due to the woefully
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1356 underfeatured nature of these systems. (See GNU Emacs for a port to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1357 MS-DOS.)
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1358
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1359 @node Q1.2.10, Q1.2.11, Q1.2.9, Introduction
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1360 @unnumberedsubsec Q1.2.10: Is there a port of XEmacs to OS/2?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1361
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1362 No, but Alexander Nikolaev <avn_1251@@mail.ru> was at one point
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1363 working on it.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1364
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1365 @node Q1.2.11, Q1.2.12, Q1.2.10, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1366 @unnumberedsubsec Q1.2.11: Is there a port of XEmacs to NextStep?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1367
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1368 Carl Edman, apparently no longer at @email{cedman@@princeton.edu}, did
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1369 the port of GNU Emacs to NeXTstep and expressed interest in doing the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1370 XEmacs port, but never went any farther.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1371
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1372 @node Q1.2.12, Q1.3.1, Q1.2.11, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1373 @unnumberedsubsec Q1.2.12: Is there a port of XEmacs to VMS?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1374
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1375 VMS has never been supported by XEmacs. In fact, all the old VMS code
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1376 inherited from GNU Emacs has been removed. Sorry, all you VMS fans
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1377 out there.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1378
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1379 @unnumberedsec 1.3: Getting Started
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1380
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1381 @node Q1.3.1, Q1.3.2, Q1.2.12, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1382 @unnumberedsubsec Q1.3.1: What is an @file{init.el} or @file{.emacs} and is there a sample one?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1383
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1384 The @file{init.el} or @file{.emacs} file is used to customize XEmacs to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1385 your tastes. Starting in 21.4, the preferred location for the init file
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1386 is @file{~/.xemacs/init.el}; in previous versions, it was
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1387 @file{~/.emacs}. 21.4 still accepts the old location, but the first
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1388 time you run it, it will ask to migrate your file to the new location.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1389 If you answer yes, the file will be moved, and a "compatibility"
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1390 @file{.emacs} file will be placed in the old location so that you can
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1391 still run older versions of XEmacs, and versions of GNU Emacs, which
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1392 expect the old location. The @file{.emacs} file present is just a stub
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1393 that loads the real file in @file{~/.xemacs/init.el}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1394
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1395 No two init files are alike, nor are they expected to be alike, but
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1396 that's the point. The XEmacs distribution contains an excellent starter
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1397 example in the @file{etc/} directory called @file{sample.init.el}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1398 (starting in 21.4) or @file{sample.emacs} in older versions. Copy this
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1399 file from there to @file{~/.xemacs/init.el} (starting in 21.4) or
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1400 @file{~/.emacs} in older versions, where @samp{~} means your home
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1401 directory, of course. Then edit it to suit.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1402
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1403 You may bring the @file{sample.init.el} or @file{sample.emacs} file into
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1404 an XEmacs buffer from the menubar. (The menu entry for it is always
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1405 under the @samp{Help} menu, but its location under that has changed in
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1406 various versions. Recently, look under the @samp{Samples} submenu.) To
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1407 determine the location of the @file{etc/} directory type the command
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1408 @kbd{C-h v data-directory @key{RET}}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1409
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1410 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1411 @unnumberedsubsec Q1.3.2: Where do I put my @file{init.el} file?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1412
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1413 @file{init.el} is the name of the init file starting with 21.4, and is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1414 located in the subdirectory @file{.xemacs/} of your home directory. In
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1415 prior versions, the init file is called @file{.emacs} and is located in
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1416 your home directory.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1417
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1418 Your home directory under Windows is determined by the @samp{HOME}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1419 environment variable. If this is not set, it defaults to @samp{C:\}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1420 To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1421 select @samp{Control Panel->System->Advanced->Environment Variables...}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1422 under Windows NT/2000.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1423
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1424 @node Q1.3.3, Q1.3.4, Q1.3.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1425 @unnumberedsubsec Q1.3.3: Can I use the same @file{init.el} with the other Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1426
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1427 Yes. The sample @file{init.el} included in the XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1428 distribution will show you how to handle different versions and flavors
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1429 of Emacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1430
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1431 @node Q1.3.4, Q1.3.5, Q1.3.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1432 @unnumberedsubsec Q1.3.4: Any good XEmacs tutorials around?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1433
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1434 There's the XEmacs tutorial available from the Help Menu under
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1435 @samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1436 it's available in a non-english language, type @kbd{C-u C-h t TAB}, type
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1437 the first letters of your preferred language, then type @key{RET}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1438
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1439 @comment There's an Emacs Lisp tutorial at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1440 @comment
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1441 @comment @example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1442 @comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1443 @comment @end example
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1444 @comment
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1445 @comment @email{erik@@petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1446 @comment page at
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1447 @comment @iftex
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1448 @comment @*
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1449 @comment @end iftex
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1450 @comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1451
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1452 @node Q1.3.5, Q1.3.6, Q1.3.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1453 @unnumberedsubsec Q1.3.5: May I see an example of a useful XEmacs Lisp function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1454
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1455 The following function does a little bit of everything useful. It does
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1456 something with the prefix argument, it examines the text around the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1457 cursor, and it's interactive so it may be bound to a key. It inserts
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1458 copies of the current word the cursor is sitting on at the cursor. If
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1459 you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1460 insert 3 copies.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1461
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1462 @lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1463 (defun double-word (count)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1464 "Insert a copy of the current word underneath the cursor"
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1465 (interactive "*p")
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1466 (let (here there string)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1467 (save-excursion
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1468 (forward-word -1)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1469 (setq here (point))
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1470 (forward-word 1)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1471 (setq there (point))
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1472 (setq string (buffer-substring here there)))
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1473 (while (>= count 1)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1474 (insert string)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1475 (decf count))))
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1476 @end lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1477
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1478 The best way to see what is going on here is to let XEmacs tell you.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1479 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1480 sitting just to the right of the function you want explained. Eg. move
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1481 the cursor to the SPACE between @code{interactive} and @samp{"*p"} and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1482 hit @kbd{C-h f} to see what the function @code{interactive} does. Doing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1483 this will tell you that the @code{*} requires a writable buffer, and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1484 @code{p} converts the prefix argument to a number, and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1485 @code{interactive} allows you to execute the command with @kbd{M-x}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1486
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1487 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1488 @unnumberedsubsec Q1.3.6: And how do I bind it to a key?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1489
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1490 To bind to a key do:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1491
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1492 @lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1493 (global-set-key "\C-cd" 'double-word)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1494 @end lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1495
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1496 Or interactively, @kbd{M-x global-set-key} and follow the prompts.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1497
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1498 @node Q1.3.7, Q1.3.8, Q1.3.6, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1499 @unnumberedsubsec Q1.3.7: What's the difference between a macro and a function?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1500
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1501 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1502
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1503 @dfn{Macros} enable you to define new control constructs and other
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1504 language features. A macro is defined much like a function, but instead
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1505 of telling how to compute a value, it tells how to compute another Lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1506 expression which will in turn compute the value. We call this
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1507 expression the @dfn{expansion} of the macro.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1508
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1509 Macros can do this because they operate on the unevaluated expressions
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1510 for the arguments, not on the argument values as functions do. They can
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1511 therefore construct an expansion containing these argument expressions
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1512 or parts of them.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1513
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1514 Do not confuse the two terms with @dfn{keyboard macros}, which are
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1515 another matter, entirely. A keyboard macro is a key bound to several
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1516 other keys. Refer to manual for details.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1517
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1518 @node Q1.3.8, Q1.4.1, Q1.3.7, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1519 @unnumberedsubsec Q1.3.8: What is @code{Custom}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1520
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1521 @code{Custom} is a system for customizing XEmacs options.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1522
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1523 You can access @code{Advanced (Customize)} from the @code{Options} menu
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1524 or invoking one of customize commands by typing eg.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1525 @kbd{M-x customize}, @kbd{M-x customize-face},
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1526 @kbd{M-x customize-variable} or @kbd{M-x customize-apropos}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1527
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1528 There is also new @samp{browser} mode for Customize.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1529 Try it out with @kbd{M-x customize-browse}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1530
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1531 @unnumberedsec 1.4: Getting Help
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1532
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1533 @node Q1.4.1, Q1.4.2, Q1.3.8, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1534 @unnumberedsubsec Q1.4.1: Where can I get help?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1535
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1536 Probably the easiest way, if everything is installed, is to use Info, by
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1537 pressing @kbd{C-h i}, or looking for an Info item on the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1538 Help Menu. @kbd{M-x apropos} can be used to look for particular commands.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1539
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1540 For items not found in the manual, try reading this FAQ
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1541 and reading the Usenet group comp.emacs.xemacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1542
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1543 If you choose to post to a newsgroup, @strong{please use
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1544 comp.emacs.xemacs}. Please do not post XEmacs related questions to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1545 gnu.emacs.help.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1546
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1547 If you cannot post or read Usenet news, there is a corresponding mailing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1548 list @email{xemacs-news@@xemacs.org} which is available. It can be
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1549 subscribed to via the Mailman Web interface or by sending mail to to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1550 @email{xemacs-news-request@@xemacs.org} with @samp{subscribe} in the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1551 body of the message. See also
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1552 @uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1553 subscription, you may use the @email{xemacs-news-request@@xemacs.org}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1554 address or the Web interface. Send a message with a subject of
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1555 @samp{unsubscribe} to be removed.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1556
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1557 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1558 @unnumberedsubsec Q1.4.2: Which mailing lists are there?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1559
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1560 For complete, up-to-date info on the lists and how to subscribe, see
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1561 @uref{http://www.xemacs.org/Lists/}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1562
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1563 @table @samp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1564
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1565 @item comp.emacs.xemacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1566 is a Usenet newsgroup
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1567 for XEmacs users to discuss problems and issues that arise
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1568 for them. It's not generally an appropriate place to ask
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1569 about apparent bugs (use @samp{xemacs-beta}), or future plans
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1570 (use @samp{xemacs-design}).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1571
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1572 @item xemacs-announce
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1573 is a read-only, low
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1574 volume list for announcements concerning the XEmacs project
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1575 and new releases of the XEmacs software.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1576
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1577 @item xemacs-beta
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1578 is an open list for bug reports about beta versions of XEmacs. This
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1579 includes the bug reports themselves, by both users and developers, as
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1580 well as queries, follow-ups, and discussions further determining their
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1581 nature and status. This is the primary channel for this kind of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1582 discussion; related code changes will usually not be applied until
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1583 they have been discussed here. When such discussions touch on
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1584 significant changes to the code (in particular, structural changes),
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1585 or on changes to API's or external functionality, they should be moved
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1586 to @samp{xemacs-design}. Requests and proposals for non-bug-related
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1587 changes do not belong on @samp{xemacs-beta}, and should be sent to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1588 @samp{xemacs-design} instead.
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1589
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1590 @item xemacs-beta-ja
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1591 is an open list for bug
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1592 reports and design discussion related to Mule features,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1593 including Japanese handling, in beta versions of XEmacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1594 Japanese is the preferred language of discussion. For most
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1595 timely presentation to reviewers, please consider sending
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1596 appropriate discussion to @samp{xemacs-mule} or
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1597 @samp{xemacs-design} in English when convenient for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1598 the participants in discussion. When possible, bug reports
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1599 not related to Mule (including Japanese) should be reported on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1600 @samp{xemacs-beta} in English.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1601
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1602 @item xemacs-buildreports
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1603 is an open list for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1604 submission of build-reports on beta versions of XEmacs. For
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1605 information on what the build-reports should contain, please
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1606 see the `etc/BETA' file which is included in each beta
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1607 distribution.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1608
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1609 @item xemacs-cvs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1610 is a read-only list for notices
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1611 and information on what has been committed to the XEmacs CVS
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1612 trees, by whom, and for what.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1613
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1614 @item xemacs-design
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1615 is an open list for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1616 discussing the design of XEmacs. This includes discussion
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1617 about planned and ongoing changes to functionality and API
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1618 changes and additions as well as requests for them. This is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1619 the primary channel for this kind of discussion; related code
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1620 changes will usually not be applied until they have been
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1621 discussed here. This does not include bug reports, which go
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1622 to @samp{xemacs-beta}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1623
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1624 @item xemacs-mule
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1625 is an open mailing list for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1626 discussion of International extensions to XEmacs including
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1627 Mule, XIM, I18n issues, etc, and is not confined to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1628 developmental issues. This list is not restricted to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1629 English, postings in all languages are welcome.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1630
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1631 @item xemacs-news
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1632 is an open list for discussion
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1633 and bug reporting for XEmacs. This mailing list is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1634 bi-directionally gatewayed with the USENET newsgroup
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1635 comp.emacs.xemacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1636
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1637 @item xemacs-nt
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1638 is a developers-only mailing
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1639 list and is intended for people who wish to work actively on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1640 the porting of XEmacs to Microsoft Windows NT and Microsoft
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1641 Windows '95.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1642
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1643 @item xemacs-patches
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1644 is an open, moderated
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1645 list for submission of patches to the XEmacs distribution
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1646 and its packages. Anyone may subscribe or submit to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1647 xemacs-patches, but all submissions are reviewed by the list
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1648 moderator before they are distributed to the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1649 list. Discussion is not appropriate on xemacs-patches.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1650
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1651 @item xemacs-users-ja
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1652 is an open list for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1653 discussion and bug reporting for XEmacs. Japanese is the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1654 preferred language of discussion. It is not gated to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1655 comp.emacs.xemacs or the @samp{xemacs} list. For
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1656 fastest response, bugs not specifically related to Japanese
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1657 or Mule features should be reported on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1658 @samp{xemacs-beta} (in English).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1659
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1660 @item xemacs-users-ru
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1661 is an open list for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1662 discussion and bug reporting for XEmacs. Russian is the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1663 preferred language of discussion. It is not gated to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1664 comp.emacs.xemacs or the @samp{xemacs} list. For
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1665 fastest response, bugs not specifically related to Russian
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1666 or Mule features should be reported on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1667 @samp{xemacs-beta} (in English).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1668 @end table
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1669
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1670 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1671 @unnumberedsubsec Q1.4.3: Where are the mailing lists archived?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1672
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1673 The archives can be found at @uref{http://list-archive.xemacs.org}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1674
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1675 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1676 @unnumberedsubsec Q1.4.4: How can I get two instances of info?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1677
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1678 Before 21.4, you can't. The @code{info} package does not provide for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1679 multiple info buffers. In 21.4, this should be fixed. #### how?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1680
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1681 @node Q1.4.5, Q1.5.1, Q1.4.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1682 @unnumberedsubsec Q1.4.5: How do I add new Info directories?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1683
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1684 You use something like:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1685
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1686 @lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1687 (setq Info-directory-list (cons
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1688 (expand-file-name "~/info")
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1689 Info-default-directory-list))
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1690 @end lisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1691
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1692 @email{davidm@@prism.kla.com, David Masterson} writes:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1693
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1694 @quotation
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1695 Emacs Info and XEmacs Info do many things differently. If you're trying to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1696 support a number of versions of Emacs, here are some notes to remember:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1697
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1698 @enumerate
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1699 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1700 Emacs Info scans @code{Info-directory-list} from right-to-left while
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1701 XEmacs Info reads it from left-to-right, so append to the @emph{correct}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1702 end of the list.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1703
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1704 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1705 Use @code{Info-default-directory-list} to initialize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1706 @code{Info-directory-list} @emph{if} it is available at startup, but not
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1707 all Emacsen define it.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1708
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1709 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1710 Emacs Info looks for a standard @file{dir} file in each of the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1711 directories scanned from #1 and magically concatenates them together.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1712
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1713 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1714 XEmacs Info looks for a @file{localdir} file (which consists of just the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1715 menu entries from a @file{dir} file) in each of the directories scanned
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1716 from #1 (except the first), does a simple concatenation of them, and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1717 magically attaches the resulting list to the end of the menu in the
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1718 @file{dir} file in the first directory.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1719 @end enumerate
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1720
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1721 Another alternative is to convert the documentation to HTML with
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1722 texi2html and read it from a web browser like Lynx or W3.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1723 @end quotation
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1724
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1725 @unnumberedsec 1.5: Contributing to XEmacs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1726
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1727 @node Q1.5.1, Q1.5.2, Q1.4.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1728 @unnumberedsubsec Q1.5.1: How do I submit changes to the FAQ?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1729
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1730 The FAQ is actively maintained and modified regularly. All links should
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1731 be up to date. Unfortunately, some of the information is out of date --
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1732 a situation which the FAQ maintainer is working on. All submissions are
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1733 welcome, please e-mail submissions to @email{faq@@xemacs.org, XEmacs FAQ
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1734 maintainers}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1735
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1736 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1737 If you think you have a better way of answering a question, or think a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1738 question should be included, we'd like to hear about it. Questions and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1739 answers included into the FAQ will be edited for spelling and grammar
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1740 and will be attributed. Answers appearing without attribution are
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1741 either from versions of the FAQ dated before May 1996 or are from
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1742 previous FAQ maintainers. Answers quoted from Usenet news articles will
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1743 always be attributed, regardless of the author.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1744
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1745 @node Q1.5.2, Q1.5.3, Q1.5.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1746 @unnumberedsubsec Q1.5.2: How do I become a beta tester?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1747
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1748 Send an email message to @email{xemacs-beta-request@@xemacs.org} with
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1749 the line @samp{subscribe} in the body of the message.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1750
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1751 Be prepared to get your hands dirty, as beta testers are expected to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1752 identify problems as best they can.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1753
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1754 @node Q1.5.3, Q1.5.4, Q1.5.2, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1755 @unnumberedsubsec Q1.5.3: How do I contribute to XEmacs itself?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1756
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1757 It depends on the knowledge and time you possess. If you are able, by
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1758 all means become a beta tester (@pxref{Q1.5.2}). If you are a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1759 programmer, try to build XEmacs and see if you can improve it.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1760
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1761 Otherwise, you can still help by using XEmacs as your everyday editor
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1762 (for pre-built binary versions, @pxref{Q1.1.2}) and reporting bugs you
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1763 find to the mailing list.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1764
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1765 Another area where we need help is the documentation: We need good
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1766 documentation for building XEmacs and for using it. This FAQ is a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1767 small step in that direction.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1768
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1769 Ben Wing @email{ben@@xemacs.org} writes:
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1770
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1771 @quotation
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1772 BTW if you have a wish list of things that you want added, you have to
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1773 speak up about it! More specifically, you can do the following if you
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1774 want a feature added (in increasing order of usefulness):
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1775
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1776 @itemize @bullet
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1777 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1778 Make a posting about a feature you want added.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1779
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1780 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1781 Become a beta tester and make more postings about those same features.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1782
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1783 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1784 Convince us that you're going to use the features in some cool and
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1785 useful way.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1786
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1787 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1788 Come up with a clear and well-thought-out API concerning the features.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1789
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1790 @item
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1791 Write the code to implement a feature and send us a patch.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1792 @end itemize
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1793
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1794 (not that we're necessarily requiring you to write the code, but we can
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1795 always hope :)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1796 @end quotation
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1797
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1798 @node Q1.5.4, Q1.5.5, Q1.5.3, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1799 @unnumberedsubsec Q1.5.4: How do I get started developing XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1800
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1801 First, get yourself set up under CVS so that you can access the CVS
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1802 repositories containing the XEmacs sources and the XEmacs packages.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1803
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1804 Next, set up your layout. This is important, as a good layout will
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1805 facilitate getting things done efficiently, while a bad layout will could
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1806 lead to disaster, as you can't figure out which code is the most recent,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1807 which can be thrown away, etc. We suggest the following layout: (feel free
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1808 to make changes)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1809
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1810 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1811 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1812 Everything goes under @file{/src/xemacs} (use a different directory if
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1813 you want). From now, instead of saying @file{/src/xemacs}, we use
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1814 @file{<xsrc-top>}, to make it easier in case someone picked a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1815 different directory.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1816
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1817 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1818 Package source is in @file{<xsrc-top>/package-src}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1819
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1820 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1821 Installed packages go under @file{<xsrc-top>/xemacs-packages}, and
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1822 @file{<xsrc-top>/mule-packages}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1823
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1824 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1825 A "workspace" is a complete copy of the sources, in which you do work of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1826 a particular kind. Workspaces can be differentiated by which branch of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1827 the source tree they extend off of -- usually either the stable or
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1828 experimental, unless other branches have been created (for example, Ben
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1829 created a branch for his Mule work because (1) the project was long-term
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1830 and involved an enormous number of changes, (2) people wanted to be able
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1831 to look at what his work in progress, and (3) he wanted to be able to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1832 check things in and in general use source-code control, since it was a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1833 long-term project). Workspaces are also differentiated in what their
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1834 purpose is -- general working workspace, workspace for particular
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1835 projects, workspace keeping the latest copy of the code in one of the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1836 branches without mods, etc.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1837
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1838 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1839 Various workspaces are subdirectories under @file{<xsrc-top>}, e.g.:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1840
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1841 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1842 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1843 @file{<xsrc-top>/working} (the workspace you're actively working on,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1844 periodically synched up with the latest trunk)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1845
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1846 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1847 @file{<xsrc-top>/stable} (for making changes to the stable version of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1848 XEmacs, which sits on a branch)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1849
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1850 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1851 @file{<xsrc-top>/unsigned-removal} (a workspace for a specific, difficult
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1852 task that's going to affect lots of source and take a long time, and
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1853 so best done in its own workspace without the interference of other
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1854 work you're doing. Also, you can commit just this one large change,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1855 separate from all the other changes).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1856
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1857 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1858 @file{<xsrc-top>/latest} (a copy of the latest sources on the trunk,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1859 i.e. the experimental version of XEmacs, with no patches in it;
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1860 either update it periodically, by hand, or set up a cron job to do it
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1861 automatically). Set it up so it can be built, and build it so you
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1862 have a working XEmacs. (Building it might also go into the cron job.)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1863
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1864 This workspace serves a number of purposes:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1865 @enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1866 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1867 You always have a recent version of XEmacs you can compare
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1868 against when something you're working on breaks. It's true
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1869 that you can do this with cvs diff, but when you need to do
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1870 some serious investigation, this method just fails.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1871 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1872 You (almost) always have a working, up-to-date executable that
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1873 can be used when your executable is crashing and you need to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1874 keep developing it, or when you need an `xemacs' to build
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1875 packages, etc.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1876 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1877 When creating new workspaces, you can just copy the `latest'
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1878 workspace using GNU @code{cp -a}. You have all the .elc's built,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1879 everything else probably configured, any spare files in place
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1880 (e.g. some annoying xpm.dll under Windows, etc.).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1881 @end enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1882
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1883 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1884 @file{<xsrc-top>/latest-stable/} (equivalent to @file{<xsrc-top>/latest/}, but
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1885 for the Stable branch of XEmacs, rather than the Experimental branch
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1886 of XEmacs). This may or may not be necessary depending on how much
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1887 development you do of the stable branch.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1888 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1889
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1890 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1891 @file{<xsrc-top>/xemacsweb} is a workspace for working on the XEmacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1892 web site.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1893
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1894 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1895 @file{<xsrc-top>/in-patches} for patches received from email and saved
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1896 to files.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1897
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1898 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1899 @file{<xsrc-top>/out-patches} for locally-generated patches to be sent
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1900 to @email{xemacs-patches@@xemacs.org}. Less useful now that the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1901 patcher util has been developed.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1902
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1903 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1904 @file{<xsrc-top>/build}, for build trees when compiling and testing XEmacs with
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1905 various configuration options turned off and on. The scripts in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1906 xemacs-builds/ben (see below) can be used to automate building XEmacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1907 workspaces with many different configuration options and automatically
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1908 filtering out the normal output so that you see only the abnormal
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1909 output.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1910
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1911 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1912 @file{<xsrc-top>/xemacs-builds}, for the xemacs-builds module, which you need
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1913 to check out separately in CVS. This contains scripts used for building
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1914 XEmacs, automating and simplifying using CVS, etc. Under various
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1915 people's directories are their own build and other scripts. The
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1916 currently most-maintained scripts are under ben/, where there are easily
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1917 configurable scripts that can be used to easily build any workspace
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1918 (esp. if you've more or less followed the layout presented above)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1919 unattended, with one or more configuration states (there's a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1920 pre-determined list of the most useful, but it's easy to change). The
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1921 output is filtered and split up in various ways so that you can identify
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1922 which output came from where, and you can see the output either full or
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1923 with all "normal" output except occasional status messages filtered so
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1924 that you only see the abnormal ones.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1925 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1926
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1927 @node Q1.5.5, Q1.6.1, Q1.5.4, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1928 @unnumberedsubsec Q1.5.5: What's the basic layout of the code?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1929
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1930 The file @file{configure} is a shell script to acclimate XEmacs to the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1931 oddities of your processor and operating system. It will create a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1932 file named @file{Makefile} (a script for the @file{make} program), which helps
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1933 automate the process of building and installing emacs. See INSTALL
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1934 for more detailed information.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1935
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1936 The file @file{configure.in} is the input used by the autoconf program to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1937 construct the @file{configure} script. Since XEmacs has configuration
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1938 requirements that autoconf can't meet, @file{configure.in} uses an unholy
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1939 marriage of custom-baked configuration code and autoconf macros; it
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1940 may be wise to avoid rebuilding @file{configure} from @file{configure.in} when
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1941 possible.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1942
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1943 The file @file{Makefile.in} is a template used by @file{configure} to create
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1944 @file{Makefile}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1945
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1946 There are several subdirectories:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1947
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1948 @enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1949 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1950 @file{src} holds the C code for XEmacs (the XEmacs Lisp interpreter and its
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1951 primitives, the redisplay code, and some basic editing functions).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1952 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1953 @file{lisp} holds the XEmacs Lisp code for XEmacs (most everything else).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1954 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1955 @file{lib-src} holds the source code for some utility programs for use by
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1956 or with XEmacs, like movemail and etags.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1957 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1958 @file{etc} holds miscellaneous architecture-independent data files
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1959 XEmacs uses, like the tutorial text. The contents of the @file{lisp},
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1960 @file{info} and @file{man} subdirectories are architecture-independent too.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1961 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1962 @file{lwlib} holds the C code for the X toolkit objects used by XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1963 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1964 @file{info} holds the Info documentation tree for XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1965 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1966 @file{man} holds the source code for the XEmacs online documentation.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1967 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1968 @file{nt} holds files used compiling XEmacs under Microsoft Windows.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1969 @end enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1970
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1971 @unnumberedsec 1.6: Politics (XEmacs vs. GNU Emacs)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1972
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
1973 @node Q1.6.1, Q1.6.2, Q1.5.5, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1974 @unnumberedsubsec Q1.6.1: What is GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1975
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1976 GNU Emacs and XEmacs are related open-source text editors. Both
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1977 derive from GNU Emacs version 18; the split between the two happened
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1978 in 1991 (for comparison, the oldest versions of GNU Emacs date from
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1979 1984). For information on GNU Emacs, see
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1980 @uref{http://www.gnu.org/software/emacs/emacs.html}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1981
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1982 @node Q1.6.2, Q1.6.3, Q1.6.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
1983 @unnumberedsubsec Q1.6.2: How does XEmacs differ from GNU Emacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1984
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1985 For a detailed description of the differences between GNU Emacs and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1986 XEmacs and a detailed history of XEmacs, check out the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1987 @example
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1988 @uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1989 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1990
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1991 @table @strong
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1992 @item User-Visible Editing Features
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1993 XEmacs in general tries hard to conform to exist user-interface
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1994 standards, and to work "out-of-the-box" without the need for obscure
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1995 customization changes. GNU Emacs, particularly version 21, has gotten
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1996 better about this (in many cases by copying the XEmacs behavior!), but
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1997 still has some weirdnesses. For example, the standard method of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1998 selecting text using the Shift key works out-of-the-box in XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1999
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2000 XEmacs has a built-in toolbar. Four toolbars can actually be configured
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2001 simultaneously: top, bottom, left, and right toolbars.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2002
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2003 XEmacs has vertical and horizontal scrollbars. Unlike in GNU Emacs 19
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2004 (which provides a primitive form of vertical scrollbar), these are true
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2005 toolkit scrollbars. A look-alike Motif scrollbar is provided for those
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2006 who don't have Motif. (Even for those who do, the look-alike may be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2007 preferable as it is faster.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2008
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2009 XEmacs has buffer tabs along the top of the frame (although the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2010 position can be changed) that make it very easy to switch buffers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2011
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2012 The menubar under XEmacs is better-designed, with more thought put into
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2013 it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2014
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2015 XEmacs can ask questions using popup dialog boxes. Any command executed
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2016 from a menu will ask yes/no questions with dialog boxes, while commands
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2017 executed via the keyboard will use the minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2018
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2019 XEmacs under MS Windows provides uses the standard file-dialog box for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2020 opening and saving files. Standard menu-accelerator behavior can easily
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2021 be enabled using the Options menu, and integrates well into the existing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2022 keymap.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2023
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2024 XEmacs has (still experimental) support for widgets of various sorts --
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2025 buttons, text boxes, sliders, progress bars, etc. A progress bar is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2026 used in font lock to show the progress.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2027
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2028 Experimental support for drag-and-drop protocols is provided from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2029 XEmacs 21.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2030
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2031 @item General Platform Support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2032 If you're running on a machine with audio hardware, you can specify
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2033 sound files for XEmacs to play instead of the default X beep. See the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2034 documentation of the function load-sound-file and the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2035 sound-alist. XEmacs also supports the network sound protocols NAS and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2036 EsounD.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2037
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2038 XEmacs 21 supports database protocols with LISP bindings, currently
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2039 including Berkeley DB, LDAP, and PostgreSQL (21.2 only).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2040
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2041 XEmacs 20 and 21 support the Canna, Wnn, and SJ3 Japanese input method
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2042 servers directly, as well as through the X Input Method (XIM)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2043 protocol. GNU Emacs 20 supports only the XIM protocol. Both Emacsen
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2044 support the Quail family of input methods (implemented in LISP) for many
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2045 languages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2046
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2047 XEmacs provides support for ToolTalk on systems that have
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2048 it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2049
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2050 @item Packaged LISP Libraries
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2051 Many more packages are provided standard with XEmacs than with GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2052 19 or 20.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2053
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2054 XEmacs 21 supports an integrated package management system which uses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2055 EFS to download, then automatically install prebuilt LISP
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2056 libraries. This allows XEmacs users much more straightforward access to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2057 the "latest and greatest" version of any given library.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2058
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2059 We are working on a standard method for enabling, disabling and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2060 otherwise controlling packages, which should make them very easy to use.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2061
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2062 @item LISP Programming
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2063 From XEmacs 20 on, characters are a separate type. Characters can be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2064 converted to integers (and many integers can be converted to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2065 characters), but characters are not integers. GNU Emacs 19, XEmacs 19,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2066 Mule 2.3 (an extensive patch to GNU Emacs 18.55 and 19.x), and GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2067 20 (incorporating Mule 3 and later Mule 4) represent them as integers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2068
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2069 From XEmacs 20 on, the buffer is treated as an array of characters, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2070 the representation of buffer text is not exposed to LISP. The GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2071 20 functions like buffer-as-multibyte are not supported.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2072
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2073 In XEmacs, events are first-class objects. GNU Emacs 19 represents them
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2074 as integers, which obscures the differences between a key gesture and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2075 the ancient ASCII code used to represent a particular overlapping subset
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2076 of them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2077
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2078 In XEmacs, keymaps are first-class opaque objects. GNU Emacs 19
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2079 represents them as complicated combinations of association lists and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2080 vectors. If you use the advertised functional interface to manipulation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2081 of keymaps, the same code will work in XEmacs, GNU Emacs 18, and GNU
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2082 Emacs 19; if your code depends on the underlying implementation of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2083 keymaps, it will not.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2084
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2085 XEmacs uses "extents" to represent all non-textual aspects of buffers;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2086 GNU Emacs 19 uses two distinct objects, "text properties" and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2087 "overlays", which divide up the functionality between them. Extents are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2088 a superset of the union of the functionality of the two GNU Emacs data
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2089 types. The full GNU Emacs 19 interface to text properties and overlays
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2090 is supported in XEmacs (with extents being the underlying
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2091 representation).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2092
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2093 Extents can be made to be copied into strings, and then restored, by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2094 kill and yank. Thus, one can specify this behavior on either "extents"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2095 or "text properties", whereas in GNU Emacs 19 text properties always
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2096 have this behavior and overlays never do.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2097
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2098 @item Window System Programming Interface
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2099 XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls, which makes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2100 it be a more well-behaved X citizen (and also improves portability). A
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2101 result of this is that it is possible to include other Xt "Widgets" in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2102 the XEmacs window. Also, XEmacs understands the standard Xt command-line
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2103 arguments.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2104
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2105 XEmacs supports Motif applications, generic Xt (e.g. Athena)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2106 applications, and raw Xlib applications. An XEmacs variant which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2107 supports GTK+ is available (integration as an option in the XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2108 mainline is planned for XEmacs 22), although code to take advantage of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2109 the support is as yet scarce.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2110
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2111 An XEmacs frame can be placed within an "external client widget" managed
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2112 by another application. This allows an application to use an XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2113 frame as its text pane rather than the standard Text widget that is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2114 provided with Motif or Athena.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2115
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2116 @item Community Participation
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2117 Joining the XEmacs development team is simple. Mail to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2118 @email{xemacs-beta@@xemacs.org, XEmacs Developers}, and you're in! (If
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2119 you want to be, of course. You're also welcome to just post
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2120 development-related questions and bug reports.) The GNU Emacs
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2121 development team and internal mailing lists are still by invitation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2122 only.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2123
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2124 The "bleeding edge" of mainline XEmacs development is available by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2125 anonymous CVS as are some subsidiary branches (check out the xemacs-gtk
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2126 module for the latest in GUI features!)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2127
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2128 Development and maintenance of Lisp libraries is separated from the core
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2129 editor development at a fairly low level. This provides better
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2130 modularization and a better division of responsibility between external
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2131 library maintainers and the XEmacs core development team. Even for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2132 packages the size of Gnus, XEmacs users normally have access to a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2133 pre-built version within a few weeks of a major release, and minor
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2134 updates often within days.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2135
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2136 CVS commit authority is broadly dispersed. Recognized maintainers of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2137 LISP libraries who are willing to maintain XEmacs packaged versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2138 automatically qualify for CVS accounts for their packages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2139 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2140
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2141 @node Q1.6.3, Q1.6.4, Q1.6.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2142 @unnumberedsubsec Q1.6.3: How much does XEmacs differ?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2143
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2144 RMS has asserted at times that XEmacs is merely a "patch" on top of
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2145 GNU Emacs (@pxref{Q1.6.4}). In fact, probably not more than 5% of the
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2146 code, if that, remains unchanged, and nearly 14 years of work has gone
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2147 into XEmacs at this point. (GNU Emacs itself is only than 20 years
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2148 old, and thus XEmacs has existed as a separate product for over 2/3 of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2149 the lifespan of GNU Emacs.) As a point of comparison, XEmacs 21.5 has
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2150 perhaps 65,000 more lines of C code than GNU Emacs 21.2.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2151
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2152 However, the XEmacs developers strive to keep their code compatible with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2153 GNU Emacs, especially on the Lisp level. Much effort goes into
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2154 "synching" the XEmacs Elisp code with recent GNU Emacs releases so as to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2155 benefit from GNU Emacs development work. (In contrast, almost no code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2156 from XEmacs has made it into GNU Emacs, and in fact the GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2157 developers are instructed by RMS not to even look at XEmacs source code!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2158 This stems from self-imposed licensing restrictions on the part of GNU
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2159 Emacs -- and almost certainly out of hostility, as well.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2160
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2161 @node Q1.6.4, Q1.6.5, Q1.6.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2162 @unnumberedsubsec Q1.6.4: Is XEmacs "GNU"?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2163
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2164 RMS insists on the term "GNU XEmacs" and maintains that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2165
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2166 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2167 XEmacs is GNU software because it's a modified version of a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2168 GNU program. And it is GNU software because the FSF is the copyright
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2169 holder for most of it, and therefore the legal responsibility for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2170 protecting its free status falls on us whether we want it or not. This
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2171 is why the term "GNU XEmacs" is legitimate.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2172 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2173
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2174 In fact, FSF is @emph{not} the copyright holder for most of the code,
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2175 as very little unmodified FSF code remains (@pxref{Q1.6.3}).
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2176
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2177 Furthermore, RMS's assertion that XEmacs is "GNU" seems rather bizarre
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2178 to the XEmacs developers given RMS's hostility and general lack of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2179 interest in cooperation. "GNU" software in general is part of the GNU
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2180 Project, is distributed by it on their FTP site, and receives support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2181 (or at least cooperation), as well as implicit endorsement, from it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2182 The GNU Project, however, has never supported XEmacs and never
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2183 distributed XEmacs, and RMS's hostility is the farthest thing possible
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2184 from an endorsement. In fact, the GNU Project distributes a number of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2185 non-GNU software projects on the FSF web site, but again XEmacs is not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2186 one of them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2187
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2188 @node Q1.6.5, Q1.6.6, Q1.6.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2189 @unnumberedsubsec Q1.6.5: What is the correct way to refer to XEmacs and GNU Emacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2190
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2191 Unfortunately even the naming of these two applications has become
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2192 politicized. Much of this stems from RMS, who has a history of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2193 politicizing similar issues. (Compare the controversy over "Lignux"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2194 and "GNU/Linux".) We would prefer that the terms "XEmacs" and "GNU
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2195 Emacs" be used, which are neutral and acceptable to most people. RMS,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2196 however, is not willing to accept these terms. He insists that, if
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2197 his product is called "GNU Emacs", then ours must be called "GNU
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2198 XEmacs". (For our opinion of this term, @xref{Q1.6.4}.) On the other
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2199 hand, if our product is to be called "XEmacs", as we prefer, then his
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2200 product must simply be called "Emacs". The intent of this seems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2201 clear: RMS wants to make sure the names reflect his view that his
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2202 version is the "real" Emacs and ours is merely a derivative,
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2203 second-class product (@pxref{Q1.6.3}).
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2204
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2205 The XEmacs developers hope that you will use the neutral terms
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2206 "XEmacs" and "GNU Emacs" for these two specific products. "Emacs", on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2207 the other hand, is a generic term for a class of programmable text
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2208 editors with a similar look-and-feel, and usually a Lisp-based
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2209 extension language. These trace themselves back to early editors such
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2210 as EINE, ZWEI, ZMACS and Multics Emacs. @xref{A History of Emacs,,,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2211 internals, XEmacs Internals Manual}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2212
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2213 We also call upon RMS, in the spirit of furthering cooperation, to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2214 stop politicizing this issue and use the neutral terms "XEmacs" and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2215 "GNU Emacs". We have already acceded to RMS' wishes in this respect,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2216 and we expect him to do the same. (In the past, the XEmacs developers
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2217 often used the terms "FSF Emacs" or "FSFmacs" or "RMSmacs" in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2218 reference to GNU Emacs; these terms were apparently modeled after RMS'
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2219 own usage of "Gosmacs" and "Gosling Emacs" in reference to Unipress
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2220 Emacs, produced by James Gosling. RMS, however, considers such terms
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2221 to be insulting, so we refrain from using them as much as possible in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2222 preference to GNU Emacs.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2223
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2224 @node Q1.6.6, Q1.7.1, Q1.6.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2225 @unnumberedsubsec Q1.6.6: Why haven't XEmacs and GNU Emacs merged?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2226
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2227 There are currently irreconcilable differences in the views about
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2228 technical, programming, design, organizational and legal matters
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2229 between Richard Stallman (RMS), the author and leader of the GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2230 project, and the XEmacs development team which provide little hope for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2231 a merge to take place in the short-term future. There have been
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2232 repeated attempts at merging by all of the major XEmacs developers,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2233 starting from the early days of Lucid Emacs (in 1991), but they have
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2234 all failed. RMS has very strong views about how GNU Emacs should be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2235 structured and how his project should be run, and during the repeated
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2236 merge efforts has never demonstrated any realistic interest in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2237 sufficiently compromising or ceding control to allow a middle ground
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2238 to be found. The basic problem seems to be the very different goals
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2239 of RMS and the XEmacs project. The primary goals of the XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2240 project are technical and organizational -- we want to create the best
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2241 editor possible, and to make it as easy as possible for people around
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2242 the world to contribute. The primary goals of RMS, on the other hand,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2243 are political, and GNU Emacs, and any potential merge efforts with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2244 XEmacs, are strictly subservient to these goals. In fact, in many
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2245 ways RMS sees GNU Emacs as the "poster child" of his aims, the one
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2246 program in the GNU project that above all others must set an example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2247 to the world. (This has to do with the fact that GNU Emacs was the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2248 first program in the GNU project, and the only one that he is still
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2249 personally involved with on a day-to-day basis.) Given his goals, his
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2250 position is completely reasonable -- but unfortunately, makes any
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2251 merge impossible.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2252
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2253 From the XEmacs perspective, the most intractable issues appear to be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2254 legal and organizational, specifically:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2255
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2256 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2257 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2258 RMS requires "legal papers" to be signed for all contributions of code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2259 to GNU Emacs over 10 lines or so, transferring the copyright and all
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2260 legal rights to the code to the Free Software Foundation. XEmacs does
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2261 not and has never required this, since it has the practical effect of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2262 discouraging individual and in particular corporate contributions --
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2263 corporations will almost never sign away their legal rights to code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2264 since it makes it impossible to reuse the code in any product that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2265 whose license is not compatible with the GNU General Public License.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2266 Since RMS has shown no inclination to compromise on this issue, a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2267 merge would require that most of the existing XEmacs code would need
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2268 to be thrown away and rewritten -- something the XEmacs developers are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2269 understandably reluctant to do.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2270
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2271 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2272 A repeated stumbling block in the merge talks has been the issue of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2273 organizational control over the resulting product. RMS has made it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2274 clear that he intends to have final say over design issues in a merged
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2275 Emacs. Unfortunately, RMS and the XEmacs developers have repeatedly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2276 clashed over design decisions, and RMS' insistence on getting his way
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2277 in such disagreements was the very reason for the split in the first
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2278 place. This same issue has come up again and again in merge talks and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2279 we have never been able to come to a satisfactory resolution. To the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2280 extent that RMS is willing to compromise at all, it appears to be of a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2281 purely political rather than technical nature -- "If we support this
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2282 feature of yours, we also get to support this other feature of mine."
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2283 The XEmacs developers cannot see how such a process would lead to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2284 anything but a mess of incompatible things hodgepodged together.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2285
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2286 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2287 Because of the years of separate development, distinct and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2288 incompatible interfaces have developed and merging would be extremely
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2289 difficult even with the above non-technical issues resolved. The
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2290 problem has been exacerbated by the issue of legal papers -- because
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2291 XEmacs code is not "kosher" from RMS' perspective, he discourages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2292 developers from even looking at it out of legal concerns. Although it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2293 is still possible to read the XEmacs documentation and run the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2294 program, the practical effect of this prohibition has been to strongly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2295 discourage code-sharing and cooperative development -- although a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2296 great deal of GNU Emacs code has been incorporated into XEmacs,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2297 practically none has gone the other direction.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2298 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2299
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2300 If you have a comment to add regarding the merge, it is a good idea to
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2301 avoid posting to the newsgroups, because of the very heated flamewars
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2302 that often result. Mail your questions to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2303 @email{xemacs-beta@@xemacs.org} and @email{emacs-devel@@gnu.org}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2304
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2305 @unnumberedsec 1.7: External Packages
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2306
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2307 @node Q1.7.1, Q1.7.2, Q1.6.6, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2308 @unnumberedsubsec Q1.7.1: What is the package system?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2309
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2310 In order to reduce the size and increase the maintainability of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2311 XEmacs, the majority of the Elisp packages that came with previous
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2312 releases have been unbundled. They have been replaced by the package
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2313 system. Each elisp add-on (or groups of them when they are small) now
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2314 comes in its own tarball that contains a small search hierarchy.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2315
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2316 You select just the ones you need. Install them by untarring them into
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2317 the right place. On startup XEmacs will find them, set up the load
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2318 path correctly, install autoloads, etc, etc.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2319
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2320 @xref{Q2.1.1}, for more info on how to download and install the packages.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2321
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2322 @node Q1.7.2, Q1.7.3, Q1.7.1, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2323 @unnumberedsubsec Q1.7.2: Which external packages are there?
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2324
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2325 @subheading Normal Packages
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2326
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2327 A very broad collection of elisp packages.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2328
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2329 @table @asis
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2330 @item Sun
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2331 Support for Sparcworks.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2332
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2333 @item ada
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2334 Ada language support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2335
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2336 @item apel
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2337 A Portable Emacs Library. Used by XEmacs MIME support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2338
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2339 @item auctex
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2340 Basic TeX/LaTeX support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2341
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2342 @item bbdb
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2343 The Big Brother Data Base: a rolodex-like database program.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2344
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2345 @item build
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2346 Build XEmacs from within (UNIX, Windows).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2347
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2348 @item c-support
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2349 Basic single-file add-ons for editing C code.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2350
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2351 @item calc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2352 Emacs calculator.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2353
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2354 @item calendar
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2355 Calendar and diary support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2356
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2357 @item cc-mode
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2358 C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2359
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2360 @item clearcase
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2361 New Clearcase Version Control for XEmacs (UNIX, Windows).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2362
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2363 @item clearcase
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2364 Support for the Clearcase version control system.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2365
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2366 @item cookie
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2367 "Fortune cookie"-style messages. Includes Spook (suspicious phrases)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2368 and Yow (Zippy quotes).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2369
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2370 @item crisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2371 Crisp/Brief emulation.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2372
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2373 @item debug
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2374 GUD, gdb, dbx debugging support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2375
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2376 @item dictionary
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2377 Interface to RFC2229 dictionary servers.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2378
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2379 @item dired
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2380 The DIRectory EDitor is for manipulating, and running commands on
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2381 files in a directory.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2382
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2383 @item docbookide
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2384 DocBook editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2385
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2386 @item ecb
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2387 Emacs source code browser.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2388
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2389 @item ecrypto
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2390 Crypto functionality in Emacs Lisp.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2391
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2392 @item edebug
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2393 An Emacs Lisp debugger.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2394
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2395 @item ediff
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2396 Interface over GNU patch.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2397
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2398 @item edit-utils
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2399 Miscellaneous editor extensions, you probably need this.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2400
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2401 @item edt
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2402 DEC EDIT/EDT emulation.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2403
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2404 @item efs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2405 Treat files on remote systems the same as local files.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2406
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2407 @item eieio
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2408 Enhanced Implementation of Emacs Interpreted Objects.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2409
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2410 @item elib
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2411 Portable Emacs Lisp utilities library.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2412
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2413 @item emerge
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2414 Another interface over GNU patch.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2415
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2416 @item erc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2417 ERC is an Emacs InternetRelayChat client.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2418
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2419 @item escreen
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2420 Multiple editing sessions withing a single frame (like screen).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2421
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2422 @item eshell
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2423 Command shell implemented entirely in Emacs Lisp.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2424
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2425 @item ess
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2426 ESS: Emacs Speaks Statistics.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2427
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2428 @item eterm
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2429 Terminal emulation.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2430
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2431 @item eudc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2432 Emacs Unified Directory Client (LDAP, PH).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2433
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2434 @item footnote
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2435 Footnoting in mail message editing modes.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2436
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2437 @item forms
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2438 Forms editing support (obsolete, use Widget instead).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2439
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2440 @item fortran-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2441 Fortran support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2442
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2443 @item fortran-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2444 Fortran language support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2445
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2446 @item frame-icon
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2447 Set up mode-specific icons for each frame under XEmacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2448
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2449 @item fsf-compat
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2450 GNU Emacs compatibility files.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2451
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2452 @item games
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2453 Tetris, Sokoban, and Snake.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2454
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2455 @item general-docs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2456 General documentation. Presently, empty.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2457
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2458 @item gnats
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2459 XEmacs bug reports.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2460
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2461 @item gnus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2462 The Gnus Newsreader and Mailreader.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2463
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2464 @item haskell-mode
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2465 Haskell editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2466
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2467 @item hm--html-menus
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2468 HTML editing.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2469
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2470 @item hyperbole
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2471 Hyperbole: The Everyday Info Manager.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2472
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2473 @item ibuffer
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2474 Advanced replacement for buffer-menu.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2475
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2476 @item idlwave
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2477 Editing and Shell mode for the Interactive Data Language.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2478
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2479 @item igrep
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2480 Enhanced front-end for Grep.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2481
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2482 @item ilisp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2483 Front-end for interacting with Inferior Lisp (external lisps).
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2484
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2485 @item ispell
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2486 Spell-checking with GNU ispell.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2487
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2488 @item jde
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2489 Integrated Development Environment for Java.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2490
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2491 @item liece
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2492 IRC (Internet Relay Chat) client for Emacs. Note, this package is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2493 deprecated and will be removed, use riece instead.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2494
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2495 @item mail-lib
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2496 Fundamental lisp files for providing email support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2497
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2498 @item mailcrypt
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2499 Support for messaging encryption with PGP.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2500
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2501 @item mew
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2502 Messaging in an Emacs World; a MIME-based email program.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2503
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2504 @item mh-e
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2505 The XEmacs Interface to the MH Mail System.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2506
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2507 @item mine
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2508 Elisp implementation of the game 'Minehunt'.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2509
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2510 @item misc-games
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2511 Other amusements and diversions.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2512
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2513 @item mmm-mode
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2514 Support for Multiple Major Modes within a single buffer.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2515
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2516 @item net-utils
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2517 Miscellaneous Networking Utilities.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2518
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2519 @item ocaml
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2520 Objective Caml editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2521
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2522 @item oo-browser
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2523 OO-Browser: The Multi-Language Object-Oriented Code Browser.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2524
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2525 @item ocaml
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2526 Objective Caml editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2527
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2528 @item os-utils
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2529 Miscellaneous single-file O/S utilities, for printing, archiving,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2530 compression, remote shells, etc.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2531
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2532 @item pc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2533 PC style interface emulation.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2534
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2535 @item pcl-cvs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2536 CVS frontend.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2538 @item pcomplete
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2539 Provides programmatic completion.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2540
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2541 @item perl-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2542 Perl support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2543
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2544 @item pgg
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2545 Emacs interface to various PGP implementations.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2546
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2547 @item prog-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2548 Support for various programming languages.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2549
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2550 @item ps-print
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2551 Printing functions and utilities.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2552
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2553 @item psgml
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2554 Validated HTML/SGML editing.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2555
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2556 @item psgml-dtds
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2557 A collection of DTDs for psgml. Note that this package is deprecated
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2558 and will be removed in the future, most likely Q2/2003. Instead of using
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2559 this, you should install needed DTDs yourself.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2560
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2561 @item python-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2562 Python language support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2563
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2564 @item reftex
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2565 Emacs support for LaTeX cross-references, citations.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2566
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2567 @item riece
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2568 IRC (Internet Relay Chat) client for Emacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2569
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2570 @item rmail
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2571 An obsolete Emacs mailer. If you do not already use it don't start.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2572
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2573 @item ruby-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2574 Ruby support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2575
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2576 @item sasl
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2577 Simple Authentication and Security Layer (SASL) library.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2578
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2579 @item scheme
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2580 Front-end support for Inferior Scheme.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2581
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2582 @item semantic
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2583 Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2584
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2585 @item sgml
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2586 SGML/Linuxdoc-SGML editing.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2587
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2588 @item sh-script
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2589 Support for editing shell scripts.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2590
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2591 @item sieve
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2592 Manage Sieve email filtering scripts.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2593
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2594 @item slider
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2595 User interface tool.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2596
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2597 @item sml-mode
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2598 SML editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2599
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2600 @item sounds-au
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2601 XEmacs Sun sound files.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2602
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2603 @item sounds-wav
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2604 XEmacs Microsoft sound files.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2605
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2606 @item speedbar
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2607 Provides a separate frame with convenient references.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2608
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2609 @item strokes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2610 Mouse enhancement utility.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2611
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2612 @item supercite
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2613 An Emacs citation tool for News & Mail messages.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2614
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2615 @item texinfo
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2616 XEmacs TeXinfo support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2617
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2618 @item text-modes
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2619 Miscellaneous support for editing text files.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2620
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2621 @item textools
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2622 Miscellaneous TeX support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2623
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2624 @item time
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2625 Display time & date on the modeline.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2626
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2627 @item tm
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2628 Emacs MIME support. Not needed for gnus >= 5.8.0.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2629
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2630 @item tooltalk
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2631 Support for building with Tooltalk.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2632
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2633 @item tpu
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2634 DEC EDIT/TPU support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2635
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2636 @item tramp
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2637 Remote shell-based file editing. This is similar to EFS or Ange-FTP,
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2638 but works with rsh/ssh and rcp/scp.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2639
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2640 @item vc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2641 Version Control for Free systems.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2642
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2643 @item vc-cc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2644 Version Control for ClearCase (UnFree) systems.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2645
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2646 @item vhdl
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2647 Support for VHDL.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2648
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2649 @item view-process
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2650 A Unix process browsing tool.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2651
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2652 @item viper
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2653 VI emulation support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2654
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2655 @item vm
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2656 An Emacs mailer.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2657
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2658 @item w3
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2659 A Web browser.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2660
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2661 @item x-symbol
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2662 Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2663
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2664 @item xemacs-base
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2665 Fundamental XEmacs support, you almost certainly need this.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2666
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2667 @item xemacs-devel
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2668 XEmacs Lisp developer support. This package contains utilities for
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2669 supporting Lisp development. It is a single-file package so it may be
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2670 tailored.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2671
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2672 @item xlib
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2673 Emacs interface to X server.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2674
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2675 @item xslide
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2676 XSL editing support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2677
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2678 @item xslt-process
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2679 A minor mode for (X)Emacs which allows running an XSLT processor on a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2680 buffer.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2681
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2682 @item xwem
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2683 X Emacs Window Manager.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2684
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2685 @item zenirc
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2686 ZENIRC IRC Client.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2687 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2688
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2689 @subheading Mule Support (mule)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2690
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2691 MULti-lingual Enhancement. Support for world scripts such as
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2692 Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2693 To use these packages your XEmacs must be compiled with Mule
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2694 support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2695
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2696 @table @asis
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2697 @item edict
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2698 MULE: Lisp Interface to EDICT, Kanji Dictionary.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2699
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2700 @item egg-its
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2701 MULE: Wnn (4.2 and 6) support. SJ3 support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2702
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2703 @item latin-unity
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2704 MULE: find single ISO 8859 character set to encode a buffer.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2705
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2706 @item latin-unity
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2707 Unify character sets in a buffer. When characters belong to disjoint
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2708 character sets, this attempts to translate the characters so
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2709 that they belong to one character set. If the buffer coding system is
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2710 not sufficient, this suggests different coding systems.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2711
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2712 @item leim
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2713 MULE: Quail. All non-English and non-Japanese language support.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2714
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2715 @item locale
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2716 MULE: Localized menubars and localized splash screens.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2717
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2718 @item lookup
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2719 Dictionary support. (This isn't an English dictionary program)
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2720
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2721 @item mule-base
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2722 MULE: Basic Mule support, required for building with Mule.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2723
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2724 @item mule-ucs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2725 MULE: Extended coding systems (including Unicode) for XEmacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2726
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2727 @item mule-ucs
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2728 Extended coding systems (including Unicode) for XEmacs.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2729
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2730 @item skk
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2731 Another Japanese Language Input Method. Can be used without a
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2732 separate process running as a dictionary server.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2733 @end table
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2734
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2735 @node Q1.7.3, Q1.7.4, Q1.7.2, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2736 @unnumberedsubsec Q1.7.3: Do I need to have the packages to run XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2737
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2738 Strictly speaking, no. XEmacs will build and install just fine without
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2739 any packages installed. However, only the most basic editing functions
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2740 will be available with no packages installed, so installing packages is
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2741 an essential part of making your installed XEmacs _useful_.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2742
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2743 @node Q1.7.4, Q1.8.1, Q1.7.3, Introduction
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2744 @unnumberedsubsec Q1.7.4: Is there a way to find which package has particular functionality?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2745
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2746 If you want to find out which package contains the functionality you
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2747 are looking for, use @kbd{M-x package-get-package-provider}, and give it a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2748 symbol that is likely to be in that package.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2749
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2750 For example, if some code you want to use has a @code{(require 'thingatpt)}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2751 in it:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2752
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2753 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2754 M-x package-get-package-provider RET thingatpt RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2755 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2756
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2757 which will return something like: @samp{(fsf-compat "1.08").}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2758
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2759 @unnumberedsec 1.8: Internationalization
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2760
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
2761 @node Q1.8.1, Q1.8.2, Q1.7.4, Introduction
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2762 @unnumberedsubsec Q1.8.1: What is the status of internationalization support aka MULE (including Asian language support)?
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2763
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2764 Both the stable and development versions of XEmacs include
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2765 internationalization support (aka MULE). MULE currently (21.4) works on
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2766 UNIX and Linux systems. It is possible to build with MULE on Windows
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2767 systems, but if you really need MULE on Windows, it is recommended that
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2768 you build and use the development (21.5) version, and deal with the
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2769 instability of the development tree. Binaries compiled without MULE
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2770 support run faster than MULE capable XEmacsen.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2771
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2772 @node Q1.8.2, Q1.8.3, Q1.8.1, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2773 @unnumberedsubsec Q1.8.2: How can I help with internationalization?
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2774
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2775 If you would like to help, you may want to join the
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2776 @email{xemacs-mule@@xemacs.org} mailing list. Especially needed are
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2777 people who speak/write languages other than English, who are willing to
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2778 use XEmacs/MULE regularly, and have some experience with Elisp.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2779
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2780 Translations of the TUTORIAL and man page are welcome, and XEmacs does
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2781 support multilingual menus, but we have few current translations.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2782
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2783 @xref{Q1.5.2, How do I become a Beta Tester?}.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2784
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2785 @node Q1.8.3, Q1.8.4, Q1.8.2, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2786 @unnumberedsubsec Q1.8.3: How do I type non-ASCII characters?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2787
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2788 @xref{Q3.0.6, How can you type in special characters in XEmacs?}, in
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2789 part 3 of this FAQ, for some simple methods that also work in non-MULE
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2790 builds of XEmacs (but only for one-octet coded character sets, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2791 mostly for ISO 8859/1). Many of the methods available for Cyrillic
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2792 (@pxref{Q1.8.7, How about Cyrillic modes?}) work without MULE. MULE
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2793 has more general capabilities. @xref{Q1.8.5, Please explain the
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2794 various input methods in MULE/XEmacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2795
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
2796 @xref{Q4.0.8, How do I display non-ASCII characters?}, which covers
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2797 display of non-ASCII characters.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2798
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2799 @node Q1.8.4, Q1.8.5, Q1.8.3, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2800 @unnumberedsubsec Q1.8.4: Can XEmacs messages come out in a different language?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2801
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2802 The message-catalog support was written but is badly bit-rotted. XEmacs
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2803 20 and 21 did @emph{not} support it, and early releases of XEmacs 22
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2804 will not either.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2805
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2806 However, menubar localization @emph{does} work. To enable it, add to
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2807 your @file{Emacs} file entries like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2808
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2809 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2810 Emacs*XlwMenu.resourceLabels: True
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2811 Emacs*XlwMenu.file.labelString: Fichier
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2812 Emacs*XlwMenu.openInOtherWindow.labelString: In anderem Fenster oeffnen
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2813 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2814
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2815 The name of the resource is derived from the non-localized entry by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2816 removing punctuation and capitalizing as above.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2817
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2818 @node Q1.8.5, Q1.8.6, Q1.8.4, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2819 @unnumberedsubsec Q1.8.5: Please explain the various input methods in MULE/XEmacs
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2820
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2821 Mule supports a wide variety of input methods. There are three basic
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2822 classes: Lisp implementations, generic platform support, and library
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2823 interfaces.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2824
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2825 @emph{Lisp implementations} include Quail, which provides table-driven input
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2826 methods for almost all the character sets that Mule supports (including
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2827 all of the ISO 8859 family, the Indic languages, Thai, and so on), and
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2828 SKK, for Japanese. (SKK also supports an interface to an external
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2829 "dictionary server" process.) Quail supports both typical "dead-key"
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2830 methods (eg, in the "latin-1-prefix" method, @kbd{" a} produces ä, LATIN
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2831 SMALL LETTER A WITH DIAERESIS), and the complex dictionary-based phonetic
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2832 methods used for Asian ideographic languages like Chinese.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2833
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2834 Lisp implementations can be less powerful (but they are not perceptibly
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2835 inefficient), and of course are not portable to non-Emacs applications.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2836 The incompatibility can be very annoying. On the other hand, they
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2837 require no special platform support or external libraries, so if you can
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2838 display the characters, Mule can input them for you and you can edit,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2839 anywhere.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2840
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2841 @emph{Generic platform support} is currently limited to the X Input
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2842 Method (XIM) framework, although support for MSIME (for MS Windows) is
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2843 planned, and IIIMF (Sun's Internet-Intranet Input Method Framework)
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2844 support is extremely desirable. XIM is enabled at build time by use of
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2845 the @samp{--with-xim} flag to @code{configure}. For use of XIM, see
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2846 your platform documentation. However, normally the input method you use
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2847 is specified via the @samp{LANG} and @samp{XMODIFIERS} environment
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2848 variables.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2849
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2850 Of course, input skills are portable across most applications. However,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2851 especially in modern GUI systems the habit of using bucky bits has
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2852 fallen into sad disuse, and many XIM systems are poorly configured for
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2853 use with Emacs. For example, the kinput2 input manager (a separate
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2854 process providing an interface between Japanese dictionary servers such
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2855 as Canna and Wnn, and the application) tends to gobble up keystrokes
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2856 generating Meta characters. This means that to edit while using an XIM
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2857 input method, you must toggle the input method off every time you want
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2858 to use @kbd{M-f}. Your mileage may vary.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2859
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2860 @emph{Library interfaces} are most common for Japanese, although Wnn
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2861 supports Chinese (traditional and simplified) and Korean. There are
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2862 Chinese and Korean input servers available, but we do not know of any
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2863 patches for XEmacs to use them directly. You can use them via
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2864 IM-enabled terminals, by manipulating the terminal coding systems. We
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2865 describe only the Japanese-oriented systems here. The advantage of
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2866 these systems is that they are very powerful, and on platforms where
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2867 they are available there is typically a wide range of applications that
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2868 support them. Thus your input skills are portable across applications.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2869
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2870 Mule provides built-in interfaces to the following input methods: Wnn4,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2871 Wnn6, Canna, and SJ3. These can be configured at build time. There are
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2872 patches available (no URL, sorry) to support the SKK server, as well.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2873 Wnn and SJ3 use the @code{egg} user interface. The interface for Canna
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2874 is specialized to Canna.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2875
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2876 Wnn supports Japanese, Chinese and Korean. It is made by OMRON and Kyôto
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2877 University. It is a powerful and complex system. Wnn4 is free and Wnn6
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2878 is not. Wnn uses grammatical hints and probability of word association,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2879 so in principle Wnn can be cleverer than other methods.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2880
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2881 Canna, made by NEC, supports only Japanese. It is a simple and powerful
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2882 system. Canna uses only grammar, but its grammar and dictionary are
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2883 quite sophisticated. So for standard modern Japanese, Canna seems
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2884 cleverer than Wnn4. In addition, the UNIX version of Canna is free (now
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2885 there is a Microsoft Windows version).
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2886
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2887 SJ3, by Sony, supports only Japanese.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2888
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2889 Egg consists of following parts:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2890
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2891 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2892 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2893 Input character Translation System (ITS) layer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2894 It translates ASCII inputs to Kana/PinYin/Hangul characters.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2895
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2896 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2897 Kana/PinYin/Hangul to Kanji transfer layer.
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2898 The interface layer to network Kana-Kanji server (Wnn and Sj3).
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2899 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2900
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2901 These input methods are modal. They have a raw (alphabet) mode, a
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2902 phonetic input mode, and Kana-Kanji transfer mode. However there are
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2903 mode-less input methods for Egg and Canna. @samp{boiled-egg} is a
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2904 mode-less input method running on Egg. For Canna, @samp{canna.el} has a
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2905 tiny boiled-egg-like command, @code{(canna-boil)}, and there are some
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2906 boiled-egg-like utilities.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2907
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2908 Much of this information was provided by @email{morioka@@jaist.ac.jp,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2909 MORIOKA Tomohiko}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2910
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2911 @node Q1.8.6, Q1.8.7, Q1.8.5, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2912 @unnumberedsubsec Q1.8.6: How do I portably code for MULE/XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2913
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2914 MULE has evolved rapidly over the last few years, and the original third
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2915 party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2916 different implementations. The APIs also vary although recent versions
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2917 of XEmacs have tended to converge to the GNU Emacs standard.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2918
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2919 MULE implementations are going to continue to evolve. Both GNU Emacs
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2920 and XEmacs are working hard on Unicode support, which will involve new
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2921 APIs and probably variations on old ones. For XEmacs 22, the old ISO
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2922 2022-based system for recognizing encodings will be replaced by a much
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2923 more flexible system, which should improve accuracy of automatic coding
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2924 detections, but will also involve new APIs.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2925
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2926 @email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2927
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2928 @quotation
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2929 The application implementor must write separate code for these mule
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2930 variants. [Please don't hesitate to report these variants to us; they
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2931 are not, strictly speaking, bugs, but they give third-party developers
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2932 the same kind of creepy-crawly feeling. We'll do what we can. -- Ed.]
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2933
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2934 MULE and the next version of Emacs are similar but the symbols are very
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2935 different---requiring separate code as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2936
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2937 Namely we must support 3 kinds of mule variants and 4 or 5 or 6 kinds of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2938 emacs variants... (;_;) I'm shocked, so I wrote a wrapper package called
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2939 @code{emu} to provide a common interface. [There is an XEmacs package
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2940 of APEL which provides much more comprehensive coverage. Be careful,
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2941 however; APEL has problems of its own. -- Ed.]
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2942
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2943 I have the following suggestions about dealing with mule variants:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2944
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2945 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2946 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2947 @code{(featurep 'mule)} @code{t} on all mule variants
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2948
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2949 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2950 @code{(boundp 'MULE)} is @code{t} on only MULE. Maybe the next version
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2951 of Emacs will not have this symbol.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2952
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2953 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2954 MULE has a variable @code{mule-version}. Perhaps the next version of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2955 Emacs will have this variable as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2956 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2957
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2958 Following is a sample to distinguish mule variants:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2959
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2960 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2961 (if (featurep 'mule)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2962 (cond ((boundp 'MULE)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2963 ;; for original Mule
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2964 )
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2965 ((string-match "XEmacs" emacs-version)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2966 ;; for XEmacs with Mule
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2967 )
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2968 (t
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2969 ;; for next version of Emacs
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
2970 ))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2971 ;; for old emacs variants
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2972 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2973 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2974 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2975
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2976 @node Q1.8.7, Q1.8.8, Q1.8.6, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
2977 @unnumberedsubsec Q1.8.7: How about Cyrillic modes?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2978
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2979 @email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2980
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2981 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2982 There is a cyrillic mode in the file @file{mysetup.zip} in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2983 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2984 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2985 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2986 @uref{ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/}. This is a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2987 modification to @email{ava@@math.jhu.ed, Valery Alexeev's} @file{russian.el}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2988 which can be obtained from
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2989 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2990
871
732270854293 [xemacs-hg @ 2002-06-11 19:28:14 by adrian]
adrian
parents: 853
diff changeset
2991 @uref{http://www.math.uga.edu/~valery/russian.el}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2992
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2993 @email{d.barsky@@ee.surrey.ac.uk, Dima Barsky} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2994
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2995 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2996 There is another cyrillic mode for both GNU Emacs and XEmacs by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2997 @email{manin@@camelot.mssm.edu, Dmitrii
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2998 (Mitya) Manin} at
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2999 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3000
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3001 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3002 @uref{http://kulichki-lat.rambler.ru/centrolit/manin/cyr.el}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3003 @c Link above, <URL:http://camelot.mssm.edu/~manin/cyr.el> was dead.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3004 @c Changed to russian host instead
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3005 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3006
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3007 @email{rebecca.ore@@op.net, Rebecca Ore} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3008
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3009 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3010 The fullest resource I found on Russian language use (in and out of
661
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
3011 XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3012 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3013
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3014 @node Q1.8.8, Q1.8.9, Q1.8.7, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3015 @unnumberedsubsec Q1.8.8: Does XEmacs support Unicode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3016
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3017 To get Unicode support, you need a Mule-enabled XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3018
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3019 21.5 has internal support for Unicode and supports it fully, although we
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3020 don't yet use it as the internal encoding.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3021
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3022 21.4 supports Unicode partially -- as an external encoding for files,
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3023 processes, and terminals, but without font support. @xref{Q1.8.9, How
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3024 does XEmacs display Unicode?}. To get Unicode support in 21.4,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3025 install Mule-UCS from packages in the usual way, and put
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3026
1616
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3027 @example
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3028 (require 'un-define)
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3029 (set-coding-priority-list '(utf-8))
1616
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3030 (set-coding-category-system 'utf-8 'utf-8)
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3031 @end example
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3032
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3033 in your init file to enable the UTF-8 coding system. You may wish to
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3034 view the documentation of @code{set-coding-priority-list} if you find
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
3035 that files that are not UTF-8 are being mis-recognized as UTF-8.
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3036
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3037 Install standard national fonts (not Unicode fonts) for all character
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3038 sets you use. @xref{Q1.8.9, How does XEmacs display Unicode??}.
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3039
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3040 Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3041 support 31-bit forms of Unicode (UTF-32 or UCS-4).
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3042
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3043 @node Q1.8.9, , Q1.8.8, Introduction
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3044 @unnumberedsubsec Q1.8.9: How does XEmacs display Unicode?
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3045
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3046 Mule doesn't have a Unicode charset internally, so there's nothing to
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3047 bind a Unicode registry to. It would not be straightforward to create,
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3048 either, because Unicode is not ISO 2022-compatible. You'd have to
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3049 translate it to multiple 96x96 pages.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3050
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3051 This means that Mule-UCS uses ordinary national fonts for display. This
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3052 is not really a problem, except for those languages that use the Unified
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3053 Han characters. The problem here is that Mule-UCS maps from Unicode
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3054 code points to national character sets in a deterministic way. By
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3055 default, this means that Japanese fonts are tried first, then Chinese,
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3056 then Korean. To change the priority ordering, use the command
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3057 `un-define-change-charset-order'.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3058
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3059 It also means you can't use Unicode fonts directly, at least not without
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3060 extreme hackery. You can run -nw with (set-terminal-coding-system
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3061 'utf-8) if you really want a Unicode font for some reason.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3062
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3063 Real Unicode support will be introduced in XEmacs 22.0.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
3064
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3065 @node Installation, Editing, Introduction, Top
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3066 @unnumbered 2 Installation and Troubleshooting
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3067
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3068 This is part 2 of the XEmacs Frequently Asked Questions list. This
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3069 section is devoted to Installation, Maintenance and Troubleshooting.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3070
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3071 @menu
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3072 2.0: Installation (General)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3073 * Q2.0.1:: How do I build and install XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3074 * Q2.0.2:: Where do I find external libraries?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3075 * Q2.0.3:: How do I specify the paths that XEmacs uses for finding files?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3076 * Q2.0.4:: Running XEmacs without installing
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3077 * Q2.0.5:: XEmacs is too big
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3078
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3079 2.1: Package Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3080 * Q2.1.1:: How do I install the packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3081 * Q2.1.2:: Can I install the packages individually?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3082 * Q2.1.3:: Can I install the packages automatically?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3083 * Q2.1.4:: Can I upgrade or remove packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3084 * Q2.1.5:: Which packages to install?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3085 * Q2.1.6:: Can you describe the package location process in more detail?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3086 * Q2.1.7:: EFS fails with "500 AUTH not understood"
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3087
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3088 2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3089 * Q2.2.1:: Libraries in non-standard locations
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3090 * Q2.2.2:: Why can't I strip XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3091
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3092 2.3: Windows Installation (Windows, Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3093 * Q2.3.1:: What exactly are all the different ways to build XEmacs under Windows?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3094 * Q2.3.2:: What compiler/libraries do I need to compile XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3095 * Q2.3.3:: How do I compile the native port?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3096 * Q2.3.4:: What do I need for Cygwin?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3097 * Q2.3.5:: How do I compile under Cygwin?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3098 * Q2.3.6:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3099 * Q2.3.7:: How do I compile with X support?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3100 * Q2.3.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3101
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3102 2.4: General Troubleshooting
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3103 * Q2.4.1:: How do I deal with bugs or with problems building, installing, or running?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3104 * Q2.4.2:: Help! XEmacs just crashed on me!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3105 * Q2.4.3:: XEmacs crashes and I compiled it myself.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3106 * Q2.4.4:: How to debug an XEmacs problem with a debugger
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3107 * Q2.4.5:: I get a cryptic error message when trying to do something.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3108 * Q2.4.6:: XEmacs hangs when I try to do something.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3109 * Q2.4.7:: I get an error message when XEmacs is running in batch mode.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3110 * Q2.4.8:: The keyboard or mouse is not working properly, or I have some other event-related problem.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3111 * Q2.4.9:: @kbd{C-g} doesn't work for me. Is it broken?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3112 * Q2.4.10:: How do I debug process-related problems?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3113 * Q2.4.11:: XEmacs is outputting lots of X errors.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3114 * Q2.4.12:: After upgrading, XEmacs won't do `foo' any more!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3115
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3116 2.5: Startup-Related Problems
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3117 * Q2.5.1:: XEmacs cannot connect to my X Terminal!
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3118 * Q2.5.2:: Startup problems related to paths or package locations.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3119 * Q2.5.3:: XEmacs won't start without network.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3120 * Q2.5.4:: Startup warnings about deducing proper fonts?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3121 * Q2.5.5:: Warnings from incorrect key modifiers.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3122 * Q2.5.6:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3123 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3124
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3125 @unnumberedsec 2.0: Installation (General)
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3126
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3127 @node Q2.0.1, Q2.0.2, Installation, Installation
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3128 @unnumberedsubsec Q2.0.1: How do I build and install XEmacs?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3129
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3130 See the file @file{etc/NEWS} for information on new features and other
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3131 user-visible changes since the last version of XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3132
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3133 The file @file{INSTALL} in the top-level directory says how to bring
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3134 up XEmacs on Unix and Cygwin, once you have loaded the entire subtree
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3135 of this directory.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3136
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3137 See the file @file{nt/README} for instructions on building XEmacs for
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3138 Microsoft Windows.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3139
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3140 @xref{Q2.1.1}, for the installation of (essential) add on packages.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3141
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3142 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3143 @unnumberedsubsec Q2.0.2: Where do I find external libraries?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3144
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3145 All external libraries used by XEmacs can be found on the XEmacs web
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3146 site
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3147 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3148 @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3149 @end iftex
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3150 @uref{http://www.xemacs.org/Download/optLibs.html}.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3151
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3152 The library versions available here are known to work with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3153 (Newer versions will probably work as well but we can't guarantee it.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3154 We try to keep the libraries up-to-date but may not always succeed.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3155 Check the above page for the canonical locations of the external libraries,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3156 allowing you to download the latest, bleeding-edge versions.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3157
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3158 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3159 @unnumberedsubsec Q2.0.3: How do I specify the paths that XEmacs uses for finding files?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3160
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3161 You can specify what paths to use by using a number of different flags
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3162 when running configure. See the section MAKE VARIABLES in the top-level
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3163 file INSTALL in the XEmacs distribution for a listing of those flags.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3164
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3165 Most of the time, however, the simplest fix is: @strong{do not} specify
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3166 paths as you might for GNU Emacs. XEmacs can generally determine the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3167 necessary paths dynamically at run time. The only path that generally
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3168 needs to be specified is the root directory to install into. That can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3169 be specified by passing the @code{--prefix} flag to configure. For a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3170 description of the XEmacs install tree, please consult the @file{NEWS}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3171 file.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3172
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3173 @node Q2.0.4, Q2.0.5, Q2.0.3, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3174 @unnumberedsubsec Q2.0.4: Running XEmacs without installing
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
3175
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
3176 How can I just try XEmacs without installing it?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3177
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3178 XEmacs will run in place without requiring installation and copying of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3179 the Lisp directories, and without having to specify a special build-time
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3180 flag. It's the copying of the Lisp directories that requires so much
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3181 space. XEmacs is largely written in Lisp.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3182
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3183 A good method is to make a shell alias for xemacs:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3185 @example
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3186 alias xemacs=/src/xemacs-21.5/src/xemacs
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3187 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3188
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3189 (You will obviously use whatever directory you downloaded the source
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3190 tree to instead of @file{/src/xemacs-21.5}).
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3191
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3192 This will let you run XEmacs without massive copying.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3193
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3194 @node Q2.0.5, Q2.1.1, Q2.0.4, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3195 @unnumberedsubsec Q2.0.5: XEmacs is too big
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3196
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
3197 The space required by the installation directories can be
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3198 reduced dramatically if desired. Gzip all the .el files. Remove all
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
3199 the packages you'll never want to use. Remove the TexInfo manuals.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3200 Remove the Info (and use just hardcopy versions of the manual). Remove
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3201 most of the stuff in etc. Remove or gzip all the source code. Gzip or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3202 remove the C source code. Configure it so that copies are not made of
1138
05ed51332340 [xemacs-hg @ 2002-12-03 11:01:40 by didierv]
didierv
parents: 1135
diff changeset
3203 the support lisp.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3204
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3205 These are all Emacs Lisp source code and bytecompiled object code. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3206 may safely gzip everything named *.el here. You may remove any package
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3207 you don't use. @emph{Nothing bad will happen if you delete a package
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3208 that you do not use}. You must be sure you do not use it though, so be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3209 conservative at first.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3210
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3211 Any package with the possible exceptions of xemacs-base, and EFS are
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3212 candidates for removal. Ask yourself, @emph{Do I ever want to use this
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3213 package?} If the answer is no, then it is a candidate for removal.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3214
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3215 First, gzip all the .el files. Then go about package by package and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3216 start gzipping the .elc files. Then run XEmacs and do whatever it is
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3217 you normally do. If nothing bad happens, then remove the package. You
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3218 can remove a package via the PUI interface
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3219 (@code{M-x pui-list-packages}, then press @kbd{d} to mark the packages
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3220 you wish to delete, and then @kbd{x} to delete them.
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3221
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
3222 Another method is to do @code{M-x package-get-delete-package}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3223
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3224 @unnumberedsec 2.1: Package Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3225
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3226 @node Q2.1.1, Q2.1.2, Q2.0.5, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3227 @unnumberedsubsec Q2.1.1: How do I install the packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3228
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3229 There are three ways to install the packages.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3230
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3231 @enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3232 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3233 Manually, all at once, using the 'Sumo Tarball'.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3234 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3235 Manually, using individual package tarballs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3236 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3237 Automatically, using the package tools from XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3238 @end enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3239
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3240 If you don't want to mess with the packages, it is easiest to just
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3241 grab them manually, all at once. (For the other two ways,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3242 @xref{Q2.1.2}, and @xref{Q2.1.3}.) Download the file
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3243
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3244 @file{xemacs-sumo.tar.gz}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3245
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3246 For an XEmacs compiled with Mule you also need
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3247
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3248 @file{xemacs-mule-sumo.tar.gz}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3249
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3250 These are in the @file{packages} directory on your XEmacs mirror
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3251 archive: @uref{ftp://ftp.xemacs.org/pub/xemacs/packages} or its
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3252 mirrors. N.B. They are called 'Sumo Tarballs' for good reason. They
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3253 are currently about 19MB and 4.5MB (gzipped) respectively.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3254
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3255 Install them on Unix and Mac OS X using the shell/Terminal command
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3256
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3257 @code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xf -}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3258
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3259 Where @samp{$prefix} is what you gave to the @samp{--prefix} flag to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3260 @file{configure}, and defaults to @file{/usr/local}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3261
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3262 If you have GNU tar you can use:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3263
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3264 @code{cd $prefix/lib/xemacs ; tar zxvf <tarballname>}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3265
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3266 If you have the packages somewhere nonstandard and don't want to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3267 bother with @samp{$prefix} (for example, you're a developer and are
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3268 compiling the packages yourself, and want your own private copy of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3269 everything), you can also directly specify this using @file{configure}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3270 To do this under 21.5 and above use the @samp{--package-prefix} parameter
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3271 to specify the directory under which you untarred the above tarballs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3272 Under 21.4 and previous you need to use @samp{--package-path},
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3273 something like this:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3274
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3275 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3276 configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ...
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3277 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3278
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3279 Under Windows, you need to place the above @samp{tar.gz} files in the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3280 directory specified using the @samp{PACKAGE_PREFIX} value in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3281 @file{nt/config.inc} and by default is @file{\Program Files\XEmacs}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3282 (To untar a @samp{tar.gz} file you will need to use a utility such as
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3283 WinZip, unless you have Cygwin or a similar environment installed, in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3284 which case the above Unix shell command should work fine.) If you want
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3285 the packages somewhere else, just change @samp{PACKAGE_PREFIX}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3286
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3287 Note that XEmacs finds the packages automatically anywhere underneath
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3288 the directory tree where it expects to find the packages. All you
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3289 need to do is put stuff there; you don't need to run any program to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3290 tell XEmacs to find the packges, or do anything of that sort.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3291
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3292 However, XEmacs will only notice newly installed packages when it
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3293 starts up, so you will have to restart if you are already running
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3294 XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3295
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3296 For more details, @xref{Startup Paths,,,xemacs, the XEmacs User's
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3297 Manual}, and @xref{Packages,,,xemacs, the XEmacs User's Manual}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3298
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3299 As the Sumo tarballs are not regenerated as often as the individual
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3300 packages, it is recommended that you use the automatic package tools
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3301 afterwards to pick up any recent updates.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3302
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3303 @emph{NOTE}: For detailed information about how the package
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3304 hierarchies work, @xref{Package Overview,,,lispref, the XEmacs Lisp
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3305 Reference Manual}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3306
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3307 @node Q2.1.2, Q2.1.3, Q2.1.1, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3308 @unnumberedsubsec Q2.1.2: Can I install the packages individually?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3309
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3310 Yes, you can download individual packages from the FTP site (@pxref{Q2.1.1}). Since packages are automatically noticed at startup, you just have to put them in the right place.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3311
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3312 Note: If you are upgrading packages already installed, it's best to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3313 remove the old package first (@pxref{Q2.1.4}).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3314
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3315 For example if we are installing the @samp{xemacs-base}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3316 package (version 1.48):
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3317
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3318 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3319 mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3320 cd $prefix/lib/xemacs/xemacs-packages RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3321 gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3322 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3323
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3324 Or if you have GNU tar, the last step can be:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3325
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3326 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3327 tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3328 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3329
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3330 For MULE related packages, it is best to untar into the @samp{mule-packages}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3331 hierarchy, i.e. for the @samp{mule-base} package, version 1.37:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3332
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3333 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3334 mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3335 cd $prefix/lib/xemacs/mule-packages RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3336 gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3337 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3338
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3339 Or if you have GNU tar, the last step can be:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3340
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3341 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3342 tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3343 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3344
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3345 @node Q2.1.3, Q2.1.4, Q2.1.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3346 @unnumberedsubsec Q2.1.3: Can I install the packages automatically?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3347
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3348 XEmacs comes with some tools to make the periodic updating and
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3349 installing easier. It will notice if new packages or versions are
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3350 available and will fetch them from the FTP site.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3351
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3352 Unfortunately this requires that a few packages are already in place.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3353 You will have to install them by hand as above or use a SUMO tarball.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3354 This requirement will hopefully go away in the future. The packages
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3355 you need are:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3356
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3357 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3358 efs - To fetch the files from the FTP site or mirrors.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3359 xemacs-base - Needed by efs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3360 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3361
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3362 and optionally:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3363
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3364 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3365 mailcrypt - For PGP verification of the package-index file.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3366 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3367
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3368 After installing these by hand, fire up XEmacs and follow these
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3369 steps.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3370
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3371 @enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3372 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3373 Choose a download site.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3374 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3375 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3376 via menu: Tools -> Packages -> Set Download Site
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3377 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3378 via keyb: M-x customize-variable RET package-get-remote RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3379 (put in the details of remote host and directory)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3380 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3381
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3382 If the package tarballs _AND_ the package-index file are in a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3383 local directory, you can: M-x pui-set-local-package-get-directory RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3384
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3385 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3386 Obtain a list of packages and display the list in a buffer named
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3387 "*Packages*".
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3388 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3389 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3390 menu: Tools -> Packages -> List & Install
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3391 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3392 keyb: M-x pui-list-packages RET
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3393 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3394
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3395 XEmacs will now connect to the remote site and download the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3396 latest package-index file.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3397
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3398 The resulting buffer, "*Packages*" has brief instructions at the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3399 end of the buffer.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3400
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3401 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3402 Choose the packages you wish to install.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3403 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3404 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3405 mouse: Click button 2 on the package name.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3406 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3407 keyb: RET on the package name
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3408 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3409
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3410 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3411 Make sure you have everything you need.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3412 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3413 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3414 menu: Packages -> Add Required
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3415 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3416 keyb: r
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3417 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3418
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3419 XEmacs will now search for packages that are required by the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3420 ones that you have chosen to install and offer to select
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3421 those packages also.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3422
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3423 For novices and gurus alike, this step can save your bacon.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3424 It's easy to forget to install a critical package.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3425
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3426 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3427 Download and install the packages.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3428 @itemize @bullet
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3429 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3430 menu: Packages -> Install/Remove Selected
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3431 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3432 keyb: x
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3433 @end itemize
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3434 @end enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3435
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3436 @node Q2.1.4, Q2.1.5, Q2.1.3, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3437 @unnumberedsubsec Q2.1.4: Can I upgrade or remove packages?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3438
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3439 As the exact files and their locations contained in a package may
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3440 change it is recommended to remove a package first before installing a
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3441 new version. In order to facilitate removal each package contains an
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3442 pgkinfo/MANIFEST.pkgname file which list all the files belong to the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3443 package. M-x package-admin-delete-binary-package RET can be used to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3444 remove a package using this file.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3445
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3446 Note that the interactive package tools included with XEmacs already do
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3447 this for you.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3448
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3449 @node Q2.1.5, Q2.1.6, Q2.1.4, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3450 @unnumberedsubsec Q2.1.5: Which packages to install?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3451
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3452 Unless you are an advanced user, just install everything.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3453
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3454 If you really want to install only what's absolutely needed, a good
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3455 minimal set of packages for XEmacs-latin1 would be
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3456
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3457 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3458 xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3459 edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3460 text-modes, time, mailcrypt
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3461 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3462
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3463 If you are using the XEmacs package tools, don't forget to do:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3464
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3465 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3466 Packages -> Add Required
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3467 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3468
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3469 To make sure you have everything that the packages you have chosen to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3470 install need.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3471
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3472 @xref{Q1.7.2}, for a description of the various packages.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3473
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3474 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3475 @unnumberedsubsec Q2.1.6: Can you describe the package location process in more detail?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3476
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3477 On startup XEmacs looks for packages in so-called package hierarchies.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3478 Normally, there are three system wide hierarchies, like this:
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3479
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3480 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3481 $prefix/lib/xemacs/xemacs-packages/
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3482 Normal packages go here.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3483
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3484 $prefix/lib/xemacs/mule-packages/
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3485 Mule packages go here and are only searched by MULE-enabled XEmacsen.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3486
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3487 $prefix/lib/xemacs/site-packages/
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3488 Local and 3rd party packages go here.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3489 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3490
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3491 This is what you get when you untar the SUMO tarballs under
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3492 @file{$prefix/lib/xemacs}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3493
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3494 @file{$prefix} is specified using the @samp{--prefix} parameter to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3495 @file{configure}, and defaults to @file{usr/local}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3496
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3497 If the package path is not explicitly specified, XEmacs looks for the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3498 package directory @file{xemacs-packages} (and @file{mule-packages} and
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3499 @file{site-packages}) first under @samp{~/.xemacs}, then for a sister
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3500 directory @file{lib/xemacs-VERSION} of the directory in which the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3501 XEmacs executable is located, then for a sister directory
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3502 @file{lib/xemacs}. The XEmacs executable (under Unix at least) is
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3503 installed by default in @file{/usr/local/bin}; this explains why
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3504 XEmacs in its default installation will find packages that you put
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3505 under @file{/usr/local/lib/xemacs}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3506
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3507 You can specify where exactly XEmacs looks for packages by using the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3508 @samp{--package-prefix} or @samp{--package-path} parameters to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3509 @file{configure} (or the equivalent settings in @file{config.inc},
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3510 under Windows), or setting the @samp{EMACSPACKAGEPATH} environment
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3511 variable (which has the same format as @samp{--package-path}).
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3512 @xref{Q2.1.1}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3513
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3514 See @file{configure.usage} for more info about the format of these
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3515 @file{configure} parameters.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3516
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3517 In addition to the system wide packages, each user can have his own
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3518 packages installed under @file{~/.xemacs/}. If you want to install
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3519 packages there using the interactive tools, you need to set
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3520 @code{package-get-install-to-user-init-directory} to @code{t}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3521
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3522 The site-packages hierarchy replaces the old @file{site-lisp}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3523 directory. XEmacs no longer looks into a @file{site-lisp} directly by
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3524 default. A good place to put @file{site-start.el} would be in
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3525 @file{$prefix/lib/xemacs/site-packages/lisp/}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3526
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3527 @node Q2.1.7, Q2.2.1, Q2.1.6, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3528 @unnumberedsubsec Q2.1.7: EFS fails with "500 AUTH not understood" (NEW)
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3529
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3530 A typical error: FTP Error: USER request failed; 500 AUTH not understood.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3531
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3532 Thanks to giacomo boffi @email{giacomo.boffi@@polimi.it} who recommends
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3533 on comp.emacs.xemacs:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3534
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3535 tell your ftp client to not attempt AUTH authentication (or do not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3536 use FTP servers that don't understand AUTH)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3537
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3538 and notes that you need to add an element (often "-u") to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3539 `efs-ftp-program-args'. Use M-x customize-variable, and verify the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3540 needed flag with `man ftp' or other local documentation.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3541
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3542 @unnumberedsec 2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3543
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3544 @node Q2.2.1, Q2.2.2, Q2.1.7, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3545 @unnumberedsubsec Q2.2.1: Libraries in non-standard locations
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3546
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3547 If your libraries are in a non-standard location, you can specify the location
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3548 using the following flags to @file{configure}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3549
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3550 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3551 --site-libraries=WHATEVER
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3552 --site-includes=WHATEVER
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3553 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3554
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3555 If you have multiple paths to specify, use the following syntax:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3556
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3557 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3558 --site-libraries='/path/one /path/two /path/etc'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3559 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3560
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3561 @node Q2.2.2, Q2.3.1, Q2.2.1, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3562 @unnumberedsubsec Q2.2.2: Why can't I strip XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3563
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3564 @email{cognot@@fronsac.ensg.u-nancy.fr, Richard Cognot} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3565
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3566 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3567 Because of the way XEmacs (and every other Emacsen, AFAIK) is built. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3568 link gives you a bare-boned emacs (called temacs). temacs is then run,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3569 preloading some of the lisp files. The result is then dumped into a new
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3570 executable, named xemacs, which will contain all of the preloaded lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3571 functions and data.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3572
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3573 Now, during the dump itself, the executable (code+data+symbols) is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3574 written on disk using a special unexec() function. This function is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3575 obviously heavily system dependent. And on some systems, it leads to an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3576 executable which, although valid, cannot be stripped without damage. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3577 memory serves, this is especially the case for AIX binaries. On other
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3578 architectures it might work OK.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3579
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3580 The Right Way to strip the emacs binary is to strip temacs prior to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3581 dumping xemacs. This will always work, although you can do that only if
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3582 you install from sources (as temacs is @file{not} part of the binary
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3583 kits).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3584 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3585
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3586 @email{nat@@nataa.fr.eu.org, Nat Makarevitch} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3587
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3588 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3589 Here is the trick:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3590
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3591 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3592 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3593 [ ./configure; make ]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3594
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3595 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3596 rm src/xemacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3597
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3598 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3599 strip src/temacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3600
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3601 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3602 make
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3603
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3604 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3605 cp src/xemacs /usr/local/bin/xemacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3606
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3607 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3608 cp lib-src/DOC-19.16-XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3609 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3610 \ @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3611 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3612 /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3613 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3614 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3615
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3616 @unnumberedsec 2.3: Windows Installation (Windows, Cygwin, MinGW)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3617
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3618 @node Q2.3.1, Q2.3.2, Q2.2.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3619 @unnumberedsubsec Q2.3.1: What exactly are all the different ways to build XEmacs under Windows?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3620
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3621 XEmacs can be built in several ways in the MS Windows environment.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3622
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3623 The standard way is what we call the "native" port. It uses the Win32
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3624 API and has no connection with X whatsoever -- it does not require X
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3625 libraries to build, nor does it require an X server to run. The native
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3626 port is the most reliable version and provides the best graphical
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3627 support. Almost all development is geared towards this version, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3628 there is little reason not to use it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3629
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3630 The second way to build is the Cygwin port. It takes advantage of
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3631 Cygnus emulation library under Win32. @xref{Q1.2.5, What are Cygwin
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3632 and MinGW, and do I need them to run XEmacs?}, for more information.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3633
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3634 A third way is the MinGW port. It uses the Cygwin environment to
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3635 build but does not require it at runtime. @xref{Q1.2.5, What are
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3636 Cygwin and MinGW, and do I need them to run XEmacs?}, for more
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3637 information.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3638
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3639 Finally, you might also be able to build the non-Cygwin, non-MinGW "X"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3640 port. This was actually the first version of XEmacs that ran under MS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3641 Windows, and although the code is still in XEmacs, it's essentially
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3642 orphaned and it's unlikely it will compile without a lot of work. If
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3643 you want an MS Windows versin of XEmacs that supports X, use the Cygwin
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3644 version. (The X support there is actively maintained, so that Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3645 developers can test the X support in XEmacs.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3646
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3647 @node Q2.3.2, Q2.3.3, Q2.3.1, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3648 @unnumberedsubsec Q2.3.2: What compiler/libraries do I need to compile XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3649
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3650 You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3651 some beta testers currently trying to compile with VC.NET, aka version
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3652 7.0, but we can't yet report complete success.) For the Cygwin and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3653 MinGW versions, you need the Cygwin environment, which comes with GCC,
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
3654 the compiler used for those versions. @xref{Q1.2.5, What are Cygwin
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3655 and MinGW, and do I need them to run XEmacs?}, for more information on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3656 Cygwin and MinGW.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3657
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3658 @node Q2.3.3, Q2.3.4, Q2.3.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3659 @unnumberedsubsec Q2.3.3: How do I compile the native port?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3660
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3661 Please read the file @file{nt/README} in the XEmacs distribution, which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3662 contains the full description.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3663
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3664 @node Q2.3.4, Q2.3.5, Q2.3.3, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3665 @unnumberedsubsec Q2.3.4: What do I need for Cygwin?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3666
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3667 You can find the Cygwin tools and compiler at:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3668
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3669 @uref{http://www.cygwin.com/}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3670
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3671 Click on the @samp{Install or update now!} link, which will download a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3672 file @file{setup.exe}, which you can use to download everything
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3673 else. (You will need to pick a mirror site; @samp{mirrors.rcn.net} is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3674 probably the best.) You should go ahead and install everything --
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3675 you'll get various ancillary libraries that XEmacs needs or likes,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3676 e.g. XPM, PNG, JPEG, TIFF, etc. You can also get X Windows here, if you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3677 want to compile under X.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3678
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3679 If you want to compile without X, you will need the @file{xpm-nox}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3680 library, which must be specifically selected in the Cygwin netinstaller;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3681 it is not selected by default. The package has had various names.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3682 Currently it is called @file{cygXpm-noX4.dll}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3683
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3684 @node Q2.3.5, Q2.3.6, Q2.3.4, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3685 @unnumberedsubsec Q2.3.5: How do I compile under Cygwin?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3686
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3687 Similar as on Unix; use the usual `configure' and `make' process.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3688 Some problems to watch out for:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3689
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3690 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3691 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3692 make sure HOME is set. This controls where you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3693 @file{init.el} file comes from;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3694
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3695 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3696 @samp{CYGWIN} needs to be set to @samp{tty} for process support to work;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3697
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3698 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3699 picking up some other grep or other UNIX-like tools can kill configure;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3700
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3701 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3702 static heap too small, adjust @file{src/sheap-adjust.h} to a more positive
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3703 number;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3704
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3705 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3706 (Unconfirmed) The Cygwin version doesn't understand
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3707 @file{//machine/path} type paths so you will need to manually mount a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3708 directory of this form under a unix style directory for a build to work
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3709 on the directory;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3710
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3711 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3712 If you're building @strong{WITHOUT} X11, don't forget to change symlinks
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3713 @file{/usr/lib/libXpm.a} and @file{/usr/lib/libXpm.dll.a} to point to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3714 the non-X versions of these libraries. By default they point to the X
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3715 versions. So:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3716
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3717 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3718 /usr/lib/libXpm.a -> /usr/lib/libXpm-noX.a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3719 /usr/lib/libXpm.dll.a -> /usr/lib/libXpm-noX.dll.a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3720 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3721
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3722 (This advice may now be obsolete because of the availability of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3723 cygXpm-noX4.dll package from Cygwin. Send confirmation to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3724 @email{faq@@xemacs.org}.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3725
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3726 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3727 Other problems are listed in the @file{PROBLEMS} file, in the top-level
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3728 directory of the XEmacs sources.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3729
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3730 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3731
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3732
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3733 @node Q2.3.6, Q2.3.7, Q2.3.5, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3734 @unnumberedsubsec Q2.3.6: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3735
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3736 Similar to the method for Unix. Things to remember:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3737
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3738 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3739 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3740 Specify the target host on the command line for @file{./configure}, e.g.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3741 @samp{./configure i586-pc-mingw32}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3742
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3743 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3744 Be sure that your build directory is mounted such that it has the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3745 same path either as a cygwin path (@file{/build/xemacs}) or as a Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3746 path (@file{c:\build\xemacs}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3747
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3748 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3749 Build @samp{gcc -mno-cygwin} versions of the extra libs, i.e. @file{libpng},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3750 @file{compface}, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3751
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3752 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3753 Specify the target location of the extra libs on the command line
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3754 to @file{configure}, e.g.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3755 @samp{./configure --site-prefixes=/build/libs i586-pc-mingw32}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3756 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3757
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3758 @node Q2.3.7, Q2.3.8, Q2.3.6, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3759 @unnumberedsubsec Q2.3.7: How do I compile with X support?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3760
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3761 To compile under Cygwin, all you need to do is install XFree86, which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3762 is available as part of the standard Cygwin installation.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3763 @uref{http://www.cygwin.com/}. Once installed, @file{configure}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3764 should automatically find the X libraries and compile with X support.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3765
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3766 As noted above, the non-Cygwin X support is basically orphaned, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3767 probably won't work. But if it want to try, it's described in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3768 @file{nt/README} in some detail. Basically, you need to get X11
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
3769 libraries from @uref{http://ftp.x.org}, and compile them. If the
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3770 precompiled versions are available somewhere, we don't know of it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3771
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3772 @node Q2.3.8, Q2.4.1, Q2.3.7, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3773 @unnumberedsubsec Q2.3.8: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
1058
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3774
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3775 The Cygwin binary distributed with the netinstaller uses an external DLL
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3776 to handle XPM images (such as toolbar buttons). You may get an error like
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3777
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3778 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3779 This application has failed to start because cygXpm-noX4.dll was not found.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3780 Re-installing the application may fix this problem.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3781 @end example
1058
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3782
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3783 Andy Piper <andy@@xemacs.org> sez:
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3784
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3785 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3786 cygXpm-noX4 is part of the cygwin distribution under libraries or
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3787 graphics, but is not installed by default. You need to run the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3788 cygwin setup again and select this package.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3789 @end example
1058
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3790
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3791 Ie, reinstalling XEmacs won't help because it is not part of the XEmacs
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3792 distribution.
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
3793
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3794 @unnumberedsec 2.4: General Troubleshooting
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3795
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3796 @node Q2.4.1, Q2.4.2, Q2.3.8, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3797 @unnumberedsubsec Q2.4.1: How do I deal with bugs or with problems building, installing, or running?
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3798
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3799 The file @file{PROBLEMS} contains information on many common problems that
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3800 occur in building, installing and running XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3801
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3802 Reports of bugs in XEmacs should be sent to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3803 @email{xemacs-beta@@xemacs.org}. You can also post to the newsgroup
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3804 comp.emacs.xemacs (or equivalentlt, send to the mailing list
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3805 @email{xemacs@@xemacs.org}), but it is less likely that the developers
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3806 will see it in a timely fashion. @xref{Bugs,,, xemacs, the XEmacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3807 User's Manual}, for more information on how to report bugs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3808 @xref{Q1.4.2}, for more information on mailing lists relating to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3809 XEmacs.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3810
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3811 There are three ways to read the Bugs section.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3812
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3813 @enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3814 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3815 In a printed copy of the XEmacs manual.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3816
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3817 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3818 With Info. First, start XEmacs. From the menu, select
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3819 @samp{Help->Info (Online Docs)->Info Contents} to enter Info, then
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3820 click on @samp{XEmacs}, then on @samp{Bugs}. Or, use the keyboard: do
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3821 @kbd{C-h i} to enter Info, then @kbd{m XEmacs RET} to get to the Emacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3822 manual, then @kbd{m Bugs RET} to get to the section on bugs. Or use
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3823 standalone Info in a like manner. (Standalone Info is part of the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3824 Texinfo distribution, not part of the XEmacs distribution.)
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3825
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3826 @item
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3827 By hand. Do
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3828 @example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3829 cat info/xemacs* | more "+/^File: xemacs.info, Node: Bugs,"
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3830 @end example
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3831 @end enumerate
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3832
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3833 @node Q2.4.2, Q2.4.3, Q2.4.1, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3834 @unnumberedsubsec Q2.4.2: Help! XEmacs just crashed on me!
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3835
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3836 First of all, don't panic. Whenever XEmacs crashes, it tries extremely
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3837 hard to auto-save all of your files before dying. (The main time that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3838 this will not happen is if the machine physically lost power or if you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3839 killed the XEmacs process using @code{kill -9}). The next time you try
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3840 to edit those files, you will be informed that a more recent auto-save
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3841 file exists. You can use @kbd{M-x recover-file} to retrieve the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3842 auto-saved version of the file.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3843
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3844 You can use the command @kbd{M-x recover-session} after a crash to pick
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3845 up where you left off.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3846
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3847 Now, XEmacs is not perfect, and there may occasionally be times, or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3848 particular sequences of actions, that cause it to crash. If you can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3849 come up with a reproducible way of doing this (or even if you have a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3850 pretty good memory of exactly what you were doing at the time), the
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3851 maintainers would be very interested in knowing about it. The best
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3852 way to report a bug is using @kbd{M-x report-emacs-bug} (or by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3853 selecting @samp{Send Bug Report...} from the Help menu). If that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3854 won't work (e.g. you can't get XEmacs working at all), send ordinary
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3855 mail to @email{xemacs-beta@@xemacs.org}. @emph{MAKE SURE} to include
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3856 the output from the crash, especially including the Lisp backtrace, as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3857 well as the XEmacs configuration from @kbd{M-x describe-installation}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3858 (or equivalently, the file @file{Installation} in the top of the build
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3859 tree). Note that the developers do @emph{not} usually follow
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3860 @samp{comp.emacs.xemacs} on a regular basis; thus, this is better for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3861 general questions about XEmacs than bug reports.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3862
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3863 If at all possible, include a C stack backtrace of the core dump that
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3864 was produced. This shows where exactly things went wrong, and makes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3865 it much easier to diagnose problems. To do this under Unix and Mac OS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3866 X, you need to locate the core file (it's called @file{core}, and is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3867 usually sitting in the directory that you started XEmacs from, or your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3868 home directory if that other directory was not writable). Then, go to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3869 that directory and execute a command like:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3870
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3871 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3872 gdb `which xemacs` core
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3873 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3874
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3875 and then issue the command @samp{where} to get the stack backtrace. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3876 might have to use @code{dbx} or some similar debugger in place of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3877 @code{gdb}. If you don't have any such debugger available, complain to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3878 your system administrator.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3879
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3880 It's possible that a core file didn't get produced or the stack trace
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3881 from gdb is garbage, in which case you're out of luck unless you can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3882 reproduce the bug. A nonexistent core file can happen in some
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3883 circumstances on some operating systems, depending on what exactly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3884 triggered the crash. It's also possible, however, that your limits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3885 are set to turn them off. You may be able to reenable them using a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3886 command like @samp{unlimit coredumpsize} or @samp{ulimit -c}. (To find
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3887 out how your limits are set, use the command @samp{limit}.) However, if
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3888 you didn't explicitly set your limits this way, go complain to your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3889 system administrator and tell him not to disable core files by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3890 default.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3891
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3892 A garbaged stack trace can happen for various reasons. Some versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3893 of gdb are broken on certain operating systems and aren't able to read
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3894 the core file. It's also possible that the stack got overwritten
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3895 during the crash. A very simple reason, however, is that your version
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3896 of XEmacs was compiled without debugging information or had the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3897 debugging information stripped. A compilation with optimization can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3898 also result in partly or completely garbaged stack trace. In such
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3899 cases, you will need to recompile XEmacs with debugging information
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3900 and without optimization; @xref{Q2.4.4, How to debug an XEmacs problem
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3901 with a debugger}. Note also that core files currently don't work at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3902 all under Cygwin, and the only way to get a backtrace is to run XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3903 from gdb.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3904
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3905 If you cannot get a backtrace from the core dump, but can reproduce
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3906 the problem, try running XEmacs under gdb. The goal is to get clean C
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3907 and Lisp backtraces and submit a bug report including full
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3908 configuration information as described above, as this will greatly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3909 assist in the process of tracking down the bug. However, even partial
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3910 information is better than none. The process of getting backtraces
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3911 from gdb is described in detail in @ref{Q2.4.4, How to debug an XEmacs
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3912 problem with a debugger}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3913
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3914 If you're under Microsoft Windows, you're out of luck unless you happen
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3915 to have a debugging aid installed on your system, for example Visual
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3916 C++. In this case, the crash will result in a message giving you the
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3917 option to enter a debugger (for example, by pressing @samp{Cancel}). Do
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3918 this and locate the stack-trace window. (If your XEmacs was built
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3919 without debugging information, the stack trace may not be very useful.)
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3920
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3921 When making a problem report make sure that:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3922
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3923 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3924 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3925 Report @strong{all} of the information output by XEmacs during the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3926 crash.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3927
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3928 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3929 You mention what O/S and Hardware you are running XEmacs on.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3930
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3931 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3932 What version of XEmacs you are running.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3933
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3934 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3935 What build options you are using.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3936
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3937 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3938 If the problem is related to graphics and you are running Unix or Mac
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3939 OS X, we will also need to know what version of the X Window System
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3940 you are running, and what window manager you are using.
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3941
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3942 @item
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3943 If the problem happened on a TTY, please include the terminal type.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3944
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3945 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3946 Try very hard to get both C and Lisp backtraces, as described above.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3947 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3948
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3949 Much of the information above is automatically generated by @kbd{M-x
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3950 report-emacs-bug}. Even more, and often useful, information can be
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3951 generated by redirecting the output of @code{make} and @code{make check}
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3952 to a file (@file{beta.err} is the default used by @code{build-report}),
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3953 and executing @kbd{M-x build-report}.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3954
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3955
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3956 @node Q2.4.3, Q2.4.4, Q2.4.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3957 @unnumberedsubsec Q2.4.3: XEmacs crashes and I compiled it myself.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3958
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3959 There have been a variety of reports of crashes due to compilers with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3960 buggy optimizers. If you are compiling with optimization, consider
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3961 turning it off (@pxref{Q2.4.4, How to debug an XEmacs problem with a
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3962 debugger}) and recompiling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3963
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3964 Please see the @file{PROBLEMS} file that comes with XEmacs (it's in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3965 the top-level source directory) to read what it says about your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3966 platform.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3967
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3968 If you compiled XEmacs using @samp{--use-union-type} (or the option
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3969 @samp{USE_UNION_TYPE} in @file{config.inc} under Windows), try
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3970 recompiling again without it. The union type has been known to trigger
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3971 compiler errors in a number of cases.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3972
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3973 @node Q2.4.4, Q2.4.5, Q2.4.3, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
3974 @unnumberedsubsec Q2.4.4: How to debug an XEmacs problem with a debugger
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3975
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3976 If XEmacs does crash on you, one of the most productive things you can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3977 do to help get the bug fixed is to poke around a bit with the debugger.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3978 Here are some hints:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3979
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3980 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3981 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3982 First of all, if the crash is at all reproducible, consider very
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3983 strongly recompiling your XEmacs with debugging symbols and with no
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3984 optimization (e.g. with GCC use the compiler flags @samp{-g -O0} --
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3985 that's an "oh" followed by a zero), and with the configure options
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3986 @samp{--debug=yes} and @samp{--error-checking=all}. This will make
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3987 your XEmacs run somewhat slower, but you are a lot more likely to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3988 catch the problem earlier (closer to its source). It makes it a lot
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3989 easier to determine what's going on with a debugger. The way to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3990 control the compiler flags is with the configuration option
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3991 @samp{--cflags}. If you have a recent version of 21.5, you should use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3992 @samp{--without-optimization} in preference to directly setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3993 @samp{--cflags}.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3994
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3995 @item
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3996 If it's not a true crash (@emph{i.e.}, XEmacs is hung, or a zombie
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3997 process), or it's inconvenient to run XEmacs again because XEmacs is
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3998 already running or is running in batch mode as part of a bunch of
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3999 scripts, you may be able to attach to the existing process with your
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4000 debugger. Under Unix and Mac OS X, the typical way to do this is to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4001 first use some variant of the @samp{ps} command to figure out the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4002 process ID of XEmacs, for example @samp{ps -auxww | grep xemacs} under
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4003 a BSD variant, @samp{ps -elf | grep xemacs} under Linux or System V,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4004 or @samp{ps -aW | grep xemacs} under Cygwin. Then run
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4005
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4006 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4007 gdb /path/to/xemacs/xemacs ####
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4008 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4009
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4010 Where @code{####} is the process id of your XEmacs. (If you're not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4011 sure, try using @samp{which xemacs}.) When gdb attaches, the xemacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4012 will stop and you can type @samp{where} in gdb to get a stack trace as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4013 usual. To get things moving again, you can just type @samp{quit} in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4014 gdb. It'll tell you the program is running and ask if you want to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4015 quit anyways. Say @samp{y} and it'll quit and have your emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4016 continue from where it was at.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4017
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4018 If you're running another debugger, a similar method may work, or you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4019 may have to run the debugger first and then use the @code{attach}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4020 command or something similar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4021
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4022 Under Microsoft Windows, use the menu item @samp{Build->Start
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4023 Debug->Attach to Process...} and select the XEmacs process from the list
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4024 given.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4025
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4026 @item
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4027 If you're able to run XEmacs under a debugger and reproduce the crash,
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4028 here are some things you can do:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4029
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4030 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4031 If XEmacs is hitting an assertion failure, put a breakpoint on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4032 @code{assert_failed()}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4033
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4034 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4035 If XEmacs is hitting some weird Lisp error that's causing it to crash
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4036 (e.g. during startup), put a breakpoint on @code{signal_1()}---this is
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4037 declared static in @file{eval.c}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4038
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4039 @item
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
4040 If XEmacs is outputting lots of X errors, put a breakpoint on
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4041 @code{x_error_handler()}; that will tell you which call is causing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4042 them. Note that the result may not be very useful by default because
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4043 X Windows normally operates asynchronously: A bunch of commands are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4044 buffered up and then sent to the server all at once. This greatly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4045 improves performance over a network but means that an error may not be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4046 reported until the server receives the commands, which can be long
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4047 after XEmacs made the erroneous calls. For best results, you need to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4048 make the X server synchronous before getting the backtrace. This can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4049 be done by starting XEmacs with the @samp{-sync} option or executing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4050 the Lisp code @code{(x-debug-mode t)}.
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
4051
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
4052 @item
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4053 Internally, you will probably see lots of variables that hold objects of
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4054 type @code{Lisp_Object}. These are references to Lisp objects.
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4055 Printing them out with the debugger probably won't be too
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4056 useful---you'll likely just see a number. To decode them, do this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4057
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4058 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4059 call debug_print (OBJECT)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4060 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4061
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4062 where @var{OBJECT} is whatever you want to decode (it can be a variable,
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4063 a function call, etc.). This uses the Lisp printing routines to out a
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4064 readable representation on the TTY from which the xemacs process was
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4065 invoked.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4066
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4067 Under 21.5 and later, @code{dp} is defined as an easier-to-type equivalent
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4068 of @code{debug_print}. You can also try @code{dpa} if you can't see
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4069 the output from @code{debug_print} (this will return a string containing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4070 the output), or use @code{debug_p3} if @code{debug_print} itself triggers
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4071 a crash (this is a less comprehensive but super-safe way to print out
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4072 a Lisp object).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4073
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4074 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4075 If you want to get a Lisp backtrace showing the Lisp call
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4076 stack, do this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4077
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4078 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4079 call debug_backtrace ()
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4080 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4081
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4082 Under 21.5 and later, @code{db} is defined as an easier-to-type equivalent
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4083 of @code{debug_backtrace}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4084
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4085 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4086 Using @code{debug_print} and @code{debug_backtrace} has two
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4087 disadvantages - they can only be used with a running (including hung
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4088 or zombie) xemacs process, and they do not display the internal C
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4089 structure of a Lisp Object. Even if all you've got is a core dump,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4090 all is not lost.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4091
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4092 If you're using GDB, there are some macros in the file
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4093 @file{src/.gdbinit} in the XEmacs source distribution that should make
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4094 it easier for you to decode Lisp objects. This file is automatically
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4095 read by gdb if gdb is run in the directory where xemacs was built, and
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4096 contains these useful macros to inspect the state of xemacs:
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4097
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4098 @table @code
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4099 @item pobj
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4100 Usage: pobj lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4101 Print the internal C representation of a lisp object.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4102
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4103 @item xtype
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4104 Usage: xtype lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4105 Print the Lisp type of a lisp object.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4106
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4107 @item lbt
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4108 Usage: lbt @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4109 Print the current Lisp stack trace.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4110 Requires a running xemacs process. (It works by calling the db
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4111 routine described above.)
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4112
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4113 @item ldp
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4114 Usage: ldp lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4115 Print a Lisp Object value using the Lisp printer.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4116 Requires a running xemacs process. (It works by calling the dp
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4117 routine described above.)
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4118
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4119 @item run-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4120 Usage: run-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4121 Run temacs interactively, like xemacs.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4122 Use this with debugging tools (like purify) that cannot deal with dumping,
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4123 or when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4124
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4125 @item dump-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4126 Usage: dump-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4127 Run the dumping part of the build procedure.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4128 Use when debugging temacs, not xemacs!
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4129 Use this when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4130
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4131 @item check-xemacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4132 Usage: check-xemacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4133 Run the test suite. Equivalent to 'make check'.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4134
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4135 @item check-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4136 Usage: check-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4137 Run the test suite on temacs. Equivalent to 'make check-temacs'.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4138 Use this with debugging tools (like purify) that cannot deal with dumping,
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4139 or when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4140 @end table
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4141
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4142 If you are using Sun's @file{dbx} debugger, there is an equivalent file
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4143 @file{src/.dbxrc}, which defines the same commands for dbx.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4144
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4145 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4146 If you're using a debugger to get a C stack backtrace and you're seeing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4147 stack traces with some of the innermost frames mangled, it may be due to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4148 dynamic linking. (This happens especially under Linux.) Consider
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4149 reconfiguring with @samp{--dynamic=no}. Also, sometimes (again under
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4150 Linux), stack backtraces of core dumps will have the frame where the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4151 fatal signal occurred mangled; if you can obtain a stack trace while
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4152 running the XEmacs process under a debugger, the stack trace should be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4153 clean.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4154
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4155 @email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4156 version 1.8 if dynamic linking and debugging is a problem on Linux.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4157
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4158 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4159 If you're using a debugger to get a C stack backtrace and you're
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4160 getting a completely mangled and bogus stack trace, it's probably due to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4161 one of the following:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4162
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4163 @enumerate a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4164 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4165 Your executable has been stripped. Bad news. Tell your sysadmin not to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4166 do this---it doesn't accomplish anything except to save a bit of disk
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4167 space, and makes debugging much much harder.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4168
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4169 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4170 Your stack is getting trashed. Debugging this is hard; you have to do a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4171 binary-search type of narrowing down where the crash occurs, until you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4172 figure out exactly which line is causing the problem. Of course, this
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4173 only works if the bug is highly reproducible. Also, in many cases if
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4174 you run XEmacs from the debugger, the debugger can protect the stack
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4175 somewhat. However, if the stack is being smashed, it is typically the
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4176 case that there is a wild pointer somewhere in the program, often quite
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
4177 far from where the crash occurs.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4179 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4180 If your stack trace has exactly one frame in it, with address 0x0, this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4181 could simply mean that XEmacs attempted to execute code at that address,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4182 e.g. through jumping to a null function pointer. Unfortunately, under
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4183 those circumstances, GDB under Linux doesn't know how to get a stack
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4184 trace. (Yes, this is the fourth Linux-related problem I've mentioned. I
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4185 have no idea why GDB under Linux is so bogus. Complain to the GDB
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4186 authors, or to comp.os.linux.development.system.) Again, you'll have to
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4187 use the narrowing-down process described above.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4188
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4189 @item
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4190 You will get a Lisp backtrace output when XEmacs crashes, so you'll have
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4191 something useful.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4192
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4193 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4194
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4195 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4196 If you compile with the newer gcc variants gcc-2.8 or egcs, you will
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4197 also need gdb 4.17 or above. Earlier releases of gdb can't handle the
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4198 debug information generated by the newer compilers.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4199
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4200 @item
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4201 In versions of XEmacs before 21.2.27, @file{src/.gdbinit} was named
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4202 @file{src/gdbinit}. This had the disadvantage of not being sourced
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4203 automatically by gdb, so you had to set that up yourself.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4204
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4205 @item
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4206 If you are running Microsoft Windows, the the file @file{nt/README} for
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4207 further information about debugging XEmacs.
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
4208
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4209 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4210
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4211 @node Q2.4.5, Q2.4.6, Q2.4.4, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4212 @unnumberedsubsec Q2.4.5: I get a cryptic error message when trying to do something.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4213
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4214 When I try to use some particular option of some particular package, I
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4215 get a cryptic error message in the minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4216
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4217 If the message went by too quickly, use @samp{Help->Recent Messages}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4218 from the menubar (or type @kbd{C-h l}) to see recent messages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4219
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4220 If you can't figure out what's going on, select
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4221 @samp{Options->Troubleshooting->Debug on Error} from the menubar (or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4222 type @kbd{M-:} then @kbd{(setq debug-on-error t)}) then try and make
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4223 the error happen again. This will put in the debugger (you can get
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4224 out of this and continue what you were doing before by typing @kbd{c})
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4225 and give you a backtrace that may be enlightening. If not, try
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4226 reading through this FAQ; if that fails, you could try posting to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4227 @samp{comp.emacs.xemacs} (making sure to include the backtrace) and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4228 someone may be able to help. If you can identify which XEmacs Lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4229 source file the error is coming from you can get a more detailed stack
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4230 backtrace by doing the following:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4231
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4232 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4233 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4234 Visit the .el file in an XEmacs buffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4235
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4236 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4237 Issue the command @kbd{M-x eval-current-buffer}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4238
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4239 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4240 Reproduce the error.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4241 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4242
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4243 For more information on debugging Lisp code, @xref{Debugging,,,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4244 lispref, XEmacs Lisp Reference Manual}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4245
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4246 @node Q2.4.6, Q2.4.7, Q2.4.5, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4247 @unnumberedsubsec Q2.4.6: XEmacs hangs when I try to do something.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4248
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4249 XEmacs might just be slow; some operations take a long time. XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4250 may also be waiting on a response from the network, for example when
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4251 you are trying to send mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4252
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4253 You can usually interrupt XEmacs by typing @kbd{C-g}. If not (for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4254 example, Lisp code explicitly disabled this by setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4255 @code{inhibit-quit}), you can use the "critical quit" mechanism by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4256 typing @kbd{Control-Shift-G}. This should also pop you into the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4257 debugger and give you a backtrace, which can tell you where the
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4258 problem is (@pxref{Q2.4.4, How to debug an XEmacs problem with a
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4259 debugger}). (Note that setting @code{debug-on-quit} or selecting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4260 @samp{Options->Troubleshooting->Debug on Quit} will also cause regular
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4261 @kbd{C-g} to enter the debugger and give you a backtrace.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4262
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4263 If you can't interrupt XEmacs this way, or for some reason XEmacs is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4264 not talking to the keyboard, you can try sending the @samp{SIGINT}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4265 signal using the @samp{kill} command.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4266
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4267 If the Lisp backtrace isn't enlightening, or if XEmacs is so hung that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4268 you can't interrupt it at all, you could try attaching to the process
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4269 and getting a C stack backtrace. @xref{Q2.4.4, How to debug an XEmacs
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4270 problem with a debugger}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4271
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4272 @node Q2.4.7, Q2.4.8, Q2.4.6, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4273 @unnumberedsubsec Q2.4.7: I get an error message when XEmacs is running in batch mode.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4274
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4275 Typically this happens when you are trying to compile some Elisp code.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4276 If you are doing this as part of XEmacs or the XEmacs packages, you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4277 should automatically get a backtrace, which can help you determine the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4278 source of the problem. In other cases, you can get equivalent results
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4279 by setting the environment variable @samp{XEMACSDEBUG} to @samp{(setq
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4280 stack-trace-on-error t load-always-display-messages t
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4281 load-ignore-out-of-date-elc-files t load-show-full-path-in-messages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4282 t)} (this needs to be all on one line; to set an environment variable,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4283 use @samp{export XEMACSDEBUG='FOO'} under @samp{bash}, @samp{zsh},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4284 etc. or @samp{setenv XEMACSDEBUG 'FOO'} under @samp{csh} and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4285 @samp{tcsh}). @samp{XEMACSDEBUG} specifies Lisp code that will be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4286 executed at startup time.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4287
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4288 If the backtrace is not sufficiently useful in helping you diagnose
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4289 the problem, you should consider using a debugger such as GDB.
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4290 @xref{Q2.4.4, How to debug an XEmacs problem with a debugger}. You
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4291 probably want to set a breakpoint on @code{signal_1}. Since such
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4292 errors often occur during compiling, which is often triggered by a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4293 complex command run from a make suite, it may be easier to attach to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4294 the process once it's running.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4295
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4296 Under Microsoft Windows (and perhaps other operating systems), there
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4297 is another useful trick you can do if you have configured with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4298 debugging support (configure option @samp{--debug} or setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4299 @samp{DEBUG_XEMACS} in @file{nt/config.inc}). Set the environment
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4300 variable @samp{XEMACSDEBUG} (as described above) to @samp{(setq
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4301 debug-on-error t)}. Then, when an error occurs noninteractively,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4302 instead of trying to invoke the Lisp debugger (which obviously won't
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4303 work), XEmacs will break out to a C debugger using
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4304 @code{(force-debugging-signal t)}. @emph{NOTE}: This runs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4305 @code{abort()}!!! (As well as and after executing INT 3 under MS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4306 Windows, which should invoke a debugger if it's active.) This is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4307 guaranteed to kill XEmacs! (But in this situation, XEmacs is about to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4308 die anyway, and if no debugger is present, this will usefully dump
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4309 core.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4310
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4311 @node Q2.4.8, Q2.4.9, Q2.4.7, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4312 @unnumberedsubsec Q2.4.8: The keyboard or mouse is not working properly, or I have some other event-related problem.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4313
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4314 XEmacs has various facilities for debugging event handling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4315
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4316 First, try setting the variable @code{debug-emacs-events} to non-zero.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4317 This will output various information showing which events are being
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4318 received and how they are being translated. This may show you, for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4319 example, that a key command is getting intercepted using
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4320 @code{key-translation-map}; this problem can otherwise be very tricky
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4321 to debug.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4322
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4323 Under X, you can see exactly which events are being received from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4324 window system by setting @code{x-debug-events} to non-zero. (The value
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4325 @samp{1} gives you regular output, and @samp{2} gives you verbose
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4326 output, including all parameters.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4327
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4328 A similar facility exists under MS Windows: Set
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4329 @code{debug-mswindows-events} to non-zero. (The value @samp{1} gives
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4330 you regular output. The value @samp{2} gives you verbose output,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4331 including all parameters. The value @samp{3} gives you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4332 super-gorily-detailed output.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4333
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4334 @node Q2.4.9, Q2.4.10, Q2.4.8, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4335 @unnumberedsubsec Q2.4.9: @kbd{C-g} doesn't work for me. Is it broken?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4336
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4337 @kbd{C-g} does work for most people in most circumstances. If it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4338 doesn't, there are two possible explanations:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4339
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4340 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4341 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4342 XEmacs is hung in a way that prevents @kbd{C-g} from working. This
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4343 can happen when code is wrapped with a binding of @code{inhibit-quit}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4344 to @code{t}; you should still be able interrupt XEmacs using "critical
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4345 quit". On the other hand, XEmacs may be seriously wedged. (If you're
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4346 lucky, sending @samp{SIGINT} to the XEmacs process will interrupt it.)
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4347 @xref{Q2.4.6, XEmacs hangs when I try to do something.}.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4348
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4349 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4350 @kbd{C-g} is indeed broken on your system. To test, try executing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4351 @code{(while t)} from the @samp{*scratch*} buffer. If @kbd{C-g}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4352 doesn't interrupt, then it's broken. This used to happen with systems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4353 where @samp{SIGIO} was broken, but @samp{BROKEN_SIGIO} wasn't defined.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4354 However, there may not be very many such systems nowadays.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4355 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4356
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4357 @node Q2.4.10, Q2.4.11, Q2.4.9, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4358 @unnumberedsubsec Q2.4.10: How do I debug process-related problems?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4359
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4360 Under MS Windows, you can set the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4361 @code{debug-mswindows-process-command-lines} to non-@samp{nil} to get
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4362 information on exactly what is getting passed to a process. This can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4363 be useful in determining problems with quoting. (Under Unix, a process
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4364 receives each argument separately, but under MS Windows a single
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4365 command line is received, and arguments with spaces or other special
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4366 characters in them must be quoted. Unfortunately this means that each
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4367 process, potentially at least, has its own quoting conventions, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4368 the code to process quoting conventions in @file{cmd.exe}, the Visual
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4369 C++ startup code and the like is baroque and poorly documented.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4370 XEmacs uses the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4371 @code{mswindows-construct-process-command-line-alist} to construct a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4372 command line from a list of arguments based on the command to be run,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4373 but it is (and cannot be) a perfect solution.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4374
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4375 @node Q2.4.11, Q2.4.12, Q2.4.10, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4376 @unnumberedsubsec Q2.4.11: XEmacs is outputting lots of X errors.
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
4377
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
4378 If this is happening, we would very much like to know what's causing
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4379 them. To find this out, see @ref{Q2.4.4, How to debug an XEmacs
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4380 problem with a debugger}. Try to get both a C and Lisp backtrace, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4381 send them along with the full error output to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4382 @email{xemacs-beta@@xemacs.org}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4383
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4384 @node Q2.4.12, Q2.5.1, Q2.4.11, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4385 @unnumberedsubsec Q2.4.12: After upgrading, XEmacs won't do `foo' any more!
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4386
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4387 You have been used to doing `foo', but now when you invoke it (or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4388 click the toolbar button or select the menu item), nothing (or an
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4389 error) happens. The simplest explanation is that you are missing a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4390 package that is essential to you. You can either track it down and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4391 install it (there is a list of packages and brief descriptions of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4392 their contents in @file{etc/PACKAGES}), or install the `Sumo Tarball'
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4393 (@pxref{Q2.1.2, How do I figure out which packages to install?}).
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4394
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4395 @c #### should xref to XEmacs manual here
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4396
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4397 @unnumberedsec 2.5: Startup-Related Problems
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4398
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4399 @node Q2.5.1, Q2.5.2, Q2.4.12, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4400 @unnumberedsubsec Q2.5.1: XEmacs cannot connect to my X Terminal!
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4401
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4402 Help! I can not get XEmacs to display on my Envizex X-terminal!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4403
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4404 Try setting the @code{DISPLAY} variable using the numeric IP address of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4405 the host you are running XEmacs from.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4406
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4407 @node Q2.5.2, Q2.5.3, Q2.5.1, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4408 @unnumberedsubsec Q2.5.2 Startup problems related to paths or package locations.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4409
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4410 First of all, if XEmacs can't find the packages, check to make sure
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4411 that you put the packages in the right place, or that you told XEmacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4412 where to look for the packages when you compiled it. @xref{Q2.1.1}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4413
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4414 If something is still going wrong, or you get a startup warning about
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4415 not being able to deduce some paths, you can get detailed information
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4416 on the path-searching process at startup by setting the environment
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4417 variable @samp{EMACSDEBUGPATHS} to a non-null value. One thing to
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4418 look for if you're having package problems is the value of
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4419 @samp{configure-package-path}. This corresponds to what was compiled
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4420 into XEmacs using the @samp{--package-prefix} or @samp{--package-path}
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4421 parameter (@pxref{Q2.1.1}). If this has the value of @samp{nil},
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4422 this means that no value was compiled into XEmacs using these parameters.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4423
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4424 @node Q2.5.3, Q2.5.4, Q2.5.2, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4425 @unnumberedsubsec Q2.5.3: XEmacs won't start without network.
434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4426
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4427 If XEmacs starts when you're on the network, but fails when you're not
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4428 on the network, you may be missing a "localhost" entry in your
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4429 @file{/etc/hosts} file. The file should contain an entry like:
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4430
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4431 @example
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4432 127.0.0.1 localhost
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4433 @end example
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4435 Add that line, and XEmacs will be happy.
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
4436
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4437 @node Q2.5.4, Q2.5.5, Q2.5.3, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4438 @unnumberedsubsec Q2.5.4: Startup warnings about deducing proper fonts?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4439
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4440 How can I avoid the startup warnings about deducing proper fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4441
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4442 This is highly dependent on your installation, but try with the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4443 following font as your base font for XEmacs and see what it does:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4444
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4445 @format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4446 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4447 @end format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4448
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4449 More precisely, do the following in your resource file:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4450
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4451 @format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4452 Emacs.default.attributeFont: \
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4453 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4454 @end format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4455
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4456 If you just don't want to see the @samp{*Warnings*} buffer at startup
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4457 time, you can set this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4458
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4459 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4460 (setq display-warning-minimum-level 'error)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4461 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4462
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4463 The buffer still exists; it just isn't in your face.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4464
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4465 @node Q2.5.5, Q2.5.6, Q2.5.4, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4466 @unnumberedsubsec Q2.5.5: Warnings from incorrect key modifiers.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4467
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4468 The following information comes from the @file{PROBLEMS} file that comes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4469 with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4470
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4471 If you're having troubles with HP/UX it is because HP/UX defines the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4472 modifiers wrong in X. Here is a shell script to fix the problem; be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4473 sure that it is run after VUE configures the X server.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4474
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4475 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4476 #! /bin/sh
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4477 xmodmap 2> /dev/null - << EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4478 keysym Alt_L = Meta_L
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4479 keysym Alt_R = Meta_R
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4480 EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4481
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4482 xmodmap - << EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4483 clear mod1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4484 keysym Mode_switch = NoSymbol
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4485 add mod1 = Meta_L
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4486 keysym Meta_R = Mode_switch
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4487 add mod2 = Mode_switch
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4488 EOF
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4489 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4490
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4491 @node Q2.5.6, , Q2.5.5, Installation
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
4492 @unnumberedsubsec Q2.5.6: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4493
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4494 Yes.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4495
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4496 The console was there because @file{temacs} (and in turn, @file{xemacs})
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4497 was a console application, and Windows typically creates a new
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4498 console for a console process unless the creating process requests that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4499 one isn't created. This used to be fixed with @file{runemacs}, a small
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4500 Windows application that existed merely to start @file{xemacs}, stating
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4501 that it didn't want a console.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4502
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4503 XEmacs 21.4 fixes this cleanly by the virtue of being a true "GUI"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4504 application. The explanation of what that means is included for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4505 educational value.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4506
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4507 When building an application to be run in a Win32 environment, you must
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4508 state which sub-system it is to run in. Valid subsystems include
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4509 "console" and "gui". The subsystem you use affects the run time
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4510 libraries linked into your application, the start up function that is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4511 run before control is handed over to your application, the entry point
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4512 to your program, and how Windows normally invokes your program. (Console
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4513 programs automatically get a console created for them at startup if
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4514 their stdin/stdout don't point anywhere useful, which is the case when
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4515 run from the GUI. This is a stupid design, of course -- instead, the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4516 console should get created only when the first I/O actually occurs!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4517 GUI programs have an equally stupid design: When called from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4518 @file{CMD.EXE}/@file{COMMAND.COM}, their stdin/stdout will be set to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4519 point nowhere useful, even though the command shell has its own
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4520 stdin/stdout. It's as if someone who had learned a bit about stdio but
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4521 had no actual knowledge of interprocess communication designed the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4522 scheme; unfortunately, the whole process-communication aspect of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4523 Win32 API is equally badly designed.) For example, the entry point for a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4524 console app is "main" (which is what you'd expect for a C/C++ program),
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4525 but the entry point for a "gui" app is "WinMain". This confuses and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4526 annoys a lot of programmers who've grown up on Unix systems, where the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4527 kernel doesn't really care whether your application is a gui program or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4528 not.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4529
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4530 For reasons not altogether clear, and are lost in the mists of time and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4531 tradition, XEmacs on Win32 started out as a console application, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4532 therefore a console was automatically created for it. (It may have been
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4533 made a console application partly because a console is needed in some
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4534 circumstances, especially under Win95, to interrupt, terminate, or send
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4535 signals to a child process, and because of the bogosity mentioned above
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4536 with GUI programs and the standard command shell. Currently, XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4537 just creates and immediately hides a console when necessary, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4538 works around the "no useful stdio" problem by creating its own console
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4539 window as necessary to display messages in.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4540
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4541 @node Editing, Display, Installation, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4542 @unnumbered 3 Editing Functions
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4543
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4544 This is part 3 of the XEmacs Frequently Asked Questions list. This
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4545 section is devoted to the editing-related capabilities of XEmacs (the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4546 keyboard, mouse, buffers, text selections, etc.) and how to customize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4547 them.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4548
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4549 @menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4550 3.0: The Keyboard
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4551 * Q3.0.1:: How can I customize the keyboard?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4552 * Q3.0.2:: How can I bind complex functions (or macros) to keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4553 * Q3.0.3:: How do I bind C-. and C-; to scroll one line up and down?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4554 * Q3.0.4:: Globally binding @kbd{Delete}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4555 * Q3.0.5:: How to map @kbd{Help} key alone on Sun type4 keyboard?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4556 * Q3.0.6:: How can you type in special characters in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4557 * Q3.0.7:: Can I turn on @dfn{sticky} modifier keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4558 * Q3.0.8:: How do I map the arrow keys?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4559 * Q3.0.9:: HP Alt key as Meta.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4560 * Q3.0.10:: Why does edt emulation not work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4561 * Q3.0.11:: How can I emulate VI and use it as my default mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4562
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4563 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4564 * Q3.1.1:: How can I turn off Mouse pasting?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4565 * Q3.1.2:: How do I set control/meta/etc modifiers on mouse buttons?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4566 * Q3.1.3:: Clicking the left button does not do anything in buffer list.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4567 * Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4568 * Q3.1.5:: How can I set XEmacs up so that it pastes where the text cursor is?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4569
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4570 3.2: Buffers, Text Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4571 * Q3.2.1:: Can I have the end of the buffer delimited in some way?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4572 * Q3.2.2:: How do I insert today's date into a buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4573 * Q3.2.3:: How do I get a single minibuffer frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4574 * Q3.2.4:: How can I enable auto-indent and/or Filladapt?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4575 * Q3.2.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4576
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4577 3.3: Text Selections
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4578 * Q3.3.1:: How do I select a rectangular region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4579 * Q3.3.2:: How can I turn off or change highlighted selections?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4580 * Q3.3.3:: How do I cause typing on an active region to remove it?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4581 * Q3.3.4:: Can I turn off the highlight during isearch?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4582 * Q3.3.5:: Why is killing so slow?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4583 * Q3.3.6:: Why does @kbd{M-w} take so long?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4584
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4585 3.4: Editing Source Code
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4586 * Q3.4.1:: I do not like cc-mode. How do I use the old c-mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4587 * Q3.4.2:: How do you make XEmacs indent CL if-clauses correctly?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4588 @end menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4589
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4590 @unnumberedsec 3.0: The Keyboard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4591
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4592 @node Q3.0.1, Q3.0.2, Editing, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4593 @unnumberedsubsec Q3.0.1: How can I customize the keyboard?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4594
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4595 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4596
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4597 @node Q3.0.2, Q3.0.3, Q3.0.1, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4598 @unnumberedsubsec Q3.0.2: How can I bind complex functions (or macros) to keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4599
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4600 As an example, say you want the @kbd{paste} key on a Sun keyboard to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4601 insert the current Primary X selection at point. You can accomplish this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4602 with:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4603
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4604 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4605 (define-key global-map [f18] 'x-insert-selection)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4606 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4607
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4608 However, this only works if there is a current X selection (the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4609 selection will be highlighted). The functionality I like is for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4610 @kbd{paste} key to insert the current X selection if there is one,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4611 otherwise insert the contents of the clipboard. To do this you need to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4612 pass arguments to @code{x-insert-selection}. This is done by wrapping
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4613 the call in a 'lambda form:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4614
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4615 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4616 (global-set-key [f18]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4617 (lambda () (interactive) (x-insert-selection t nil)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4618 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4619
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4620 This binds the f18 key to a @dfn{generic} functional object. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4621 interactive spec is required because only interactive functions can be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4622 bound to keys.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4623
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4624 For the FAQ example you could use:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4625
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4626 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4627 (global-set-key [(control ?.)]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4628 (lambda () (interactive) (scroll-up 1)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4629 (global-set-key [(control ?;)]
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4630 (lambda () (interactive) (scroll-up -1)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4631 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4632
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4633 This is fine if you only need a few functions within the lambda body.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4634 If you're doing more it's cleaner to define a separate function.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4635 @xref{Q3.0.3, How do I bind C-. and C-; to scroll one line up and
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4636 down?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4637
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4638 @node Q3.0.3, Q3.0.4, Q3.0.2, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4639 @unnumberedsubsec Q3.0.3: How do I bind C-. and C-; to scroll one line up and down?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4640
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4641 Add the following (Thanks to @email{mly@@adoc.xerox.com, Richard Mlynarik} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4642 @email{wayne@@zen.cac.stratus.com, Wayne Newberry}) to @file{.emacs}:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4643
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4644 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4645 (defun scroll-up-one-line ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4646 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4647 (scroll-up 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4648
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4649 (defun scroll-down-one-line ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4650 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4651 (scroll-down 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4652
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4653 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4654 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4655 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4656
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4657 The key point is that you can only bind simple functions to keys; you
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4658 can not bind a key to a function that you're also passing arguments
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4659 to. (@pxref{Q3.0.2, How can I bind complex functions (or macros) to
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4660 keys?} for a better answer).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4661
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4662 @node Q3.0.4, Q3.0.5, Q3.0.3, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4663 @unnumberedsubsec Q3.0.4: Globally binding @kbd{Delete}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4664
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4665 I cannot manage to globally bind my @kbd{Delete} key to something other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4666 than the default. How does one do this?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4667
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4668 Answer: The problem is that many modes explicitly bind @kbd{Delete}. To
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4669 get around this, try the following:
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4670
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4671 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4672 (defun foo ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4673 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4674 (message "You hit DELETE"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4675
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4676 (define-key key-translation-map 'delete 'redirected-delete)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4677 (global-set-key 'redirected-delete 'foo)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4678 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4679
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4680 @node Q3.0.5, Q3.0.6, Q3.0.4, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4681 @unnumberedsubsec Q3.0.5: How to map @kbd{Help} key alone on Sun type4 keyboard?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4682
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4683 The following works in GNU Emacs 19:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4684
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4685 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4686 (global-set-key [help] 'help-command);; Help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4687 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4688
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4689 The following works in XEmacs with the addition of shift:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4690
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4691 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4692 (global-set-key [(shift help)] 'help-command);; Help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4693 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4694
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4695 But it doesn't work alone. This is in the file @file{PROBLEMS} which
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4696 should have come with your XEmacs installation: @emph{Emacs ignores the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4697 @kbd{help} key when running OLWM}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4698
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4699 OLWM grabs the @kbd{help} key, and retransmits it to the appropriate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4700 client using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4701 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4702 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4703 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4704 @code{XSendEvent}. Allowing Emacs to react to synthetic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4705 events is a security hole, so this is turned off by default. You can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4706 enable it by setting the variable @code{x-allow-sendevents} to t. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4707 can also cause fix this by telling OLWM to not grab the help key, with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4708 the null binding @code{OpenWindows.KeyboardCommand.Help:}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4709
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4710 @node Q3.0.6, Q3.0.7, Q3.0.5, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4711 @unnumberedsubsec Q3.0.6: How can you type in special characters in XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4712 One way is to use the package @code{x-compose}. Then you can use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4713 sequences like @kbd{Compose " a} to get ä, etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4714
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4715 Another way is to use the @code{iso-insert} package. Then you can use
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4716 sequences like @kbd{C-x 8 " a} to get ä, etc.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4717
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4718 @email{glynn@@sensei.co.uk, Glynn Clements} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4719
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4720 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4721 It depends upon your X server.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4722
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4723 Generally, the simplest way is to define a key as Multi_key with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4724 xmodmap, e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4725 @c hey, show some respect, willya -- there's xkeycaps, isn't there? --
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4726 @c chr ;)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4727 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4728 xmodmap -e 'keycode 0xff20 = Multi_key'
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4729 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4730
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4731 You will need to pick an appropriate keycode. Use xev to find out the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4732 keycodes for each key.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4733
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4734 [NB: On a `Windows' keyboard, recent versions of XFree86 automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4735 define the right `Windows' key as Multi_key'.]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4736
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4737 Once you have Multi_key defined, you can use e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4738 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4739 Multi a ' => á
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4740 Multi e " => ë
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4741 Multi c , => ç
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4742 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4743
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4744 etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4745
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4746 Also, recent versions of XFree86 define various AltGr-<key>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4747 combinations as dead keys, i.e.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4748 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4749 AltGr [ => dead_diaeresis
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4750 AltGr ] => dead_tilde
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4751 AltGr ; => dead_acute
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4752 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4753 etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4754
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4755 Running @samp{xmodmap -pk} will list all of the defined keysyms.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4756 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4757
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
4758 For the related problem of @emph{displaying} non-ASCII characters in a
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4759 non-Mule XEmacs, @xref{Q4.0.8, How do I display non-ASCII characters?}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4760
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4761 @node Q3.0.7, Q3.0.8, Q3.0.6, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4762 @unnumberedsubsec Q3.0.7: Can I turn on @dfn{sticky} modifier keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4763
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4764 Yes, with @code{(setq modifier-keys-are-sticky t)}. This will give the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4765 effect of being able to press and release Shift and have the next
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4766 character typed come out in upper case. This will affect all the other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4767 modifier keys like Control and Meta as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4768
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4769 @email{ben@@xemacs.org, Ben Wing} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4770
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4771 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4772 One thing about the sticky modifiers is that if you move the mouse out
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4773 of the frame and back in, it cancels all currently ``stuck'' modifiers.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4774 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4775
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4776 @node Q3.0.8, Q3.0.9, Q3.0.7, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4777 @unnumberedsubsec Q3.0.8: How do I map the arrow keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4778 @c New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4779 Say you want to map @kbd{C-@key{right}} to forward-word:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4780
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4781 @email{sds@@usa.net, Sam Steingold} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4782
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4783 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4784 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4785 ; both XEmacs and Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4786 (define-key global-map [(control right)] 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4787 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4788 or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4789 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4790 ; Emacs only
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4791 (define-key global-map [C-right] 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4792 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4793 or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4794 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4795 ; ver > 20, both
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4796 (define-key global-map (kbd "C-<right>") 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4797 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4798 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4799
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4800 @node Q3.0.9, Q3.0.10, Q3.0.8, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4801 @unnumberedsubsec Q3.0.9: HP Alt key as Meta.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4802
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4803 How can I make XEmacs recognize the Alt key of my HP workstation as a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4804 Meta key?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4805
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4806 Put the following line into a file and load it with xmodmap(1) before
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4807 starting XEmacs:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4808
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4809 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4810 remove Mod1 = Mode_switch
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4811 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4812
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4813 @node Q3.0.10, Q3.0.11, Q3.0.9, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4814 @unnumberedsubsec Q3.0.10: Why does edt emulation not work?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4815
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4816 We don't know, but you can use tpu-edt emulation instead, which works
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4817 fine and is a little fancier than the standard edt emulation. To do
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4818 this, add the following line to your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4819
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4820 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4821 (tpu-edt)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4822 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4823
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4824 If you don't want it to replace @kbd{C-h} with an edt-style help menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4825 add this as well:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4826
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4827 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4828 (global-set-key [(control h)] 'help-for-help)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4829 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4830
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4831 @node Q3.0.11, Q3.1.1, Q3.0.10, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4832 @unnumberedsubsec Q3.0.11: How can I emulate VI and use it as my default mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4833
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4834 Our recommended VI emulator is viper. To make viper-mode the default,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4835 add this to your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4836
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4837 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4838 (viper-mode)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4839 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4840
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4841 @email{kifer@@CS.SunySB.EDU, Michael Kifer} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4842
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4843 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4844 This should be added as close to the top of @file{init.el} as you can get
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4845 it, otherwise some minor modes may not get viper-ized.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4846 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4847
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4848 @unnumberedsec 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4849
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4850 @node Q3.1.1, Q3.1.2, Q3.0.11, Editing
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4851 @unnumberedsubsec Q3.1.1: How can I turn off Mouse pasting?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4852
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4853 I keep hitting the middle mouse button by accident and getting stuff
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4854 pasted into my buffer so how can I turn this off?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4855
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4856 Here is an alternative binding, whereby the middle mouse button selects
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4857 (but does not cut) the expression under the mouse. Clicking middle on a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4858 left or right paren will select to the matching one. Note that you can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4859 use @code{define-key} or @code{global-set-key}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4860
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4861 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4862 (defun mouse-set-point-and-select (event)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4863 "Sets the point at the mouse location, then marks following form"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4864 (interactive "@@e")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4865 (mouse-set-point event)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4866 (mark-sexp 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4867 (define-key global-map [button2] 'mouse-set-point-and-select)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4868 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4869
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4870 @node Q3.1.2, Q3.1.3, Q3.1.1, Editing
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4871 @unnumberedsubsec Q3.1.2: How do I set control/meta/etc modifiers on mouse buttons?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4872
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4873 Use, for instance, @code{[(meta button1)]}. For example, here is a common
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4874 setting for Common Lisp programmers who use the bundled @code{ilisp}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4875 package, whereby meta-button1 on a function name will find the file where
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4876 the function name was defined, and put you at that location in the source
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4877 file.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4878
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4879 [Inside a function that gets called by the lisp-mode-hook and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4880 ilisp-mode-hook]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4881
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4882 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4883 (local-set-key [(meta button1)] 'edit-definitions-lisp)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4884 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4885
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4886 @node Q3.1.3, Q3.1.4, Q3.1.2, Editing
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4887 @unnumberedsubsec Q3.1.3: Clicking the left button does not do anything in buffer list.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4888
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4889 I do @kbd{C-x C-b} to get a list of buffers and the entries get
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4890 highlighted when I move the mouse over them but clicking the left mouse
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4891 does not do anything.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4892
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4893 Use the middle mouse button.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4894
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4895 @node Q3.1.4, Q3.1.5, Q3.1.3, Editing
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4896 @unnumberedsubsec Q3.1.4: How can I get a list of buffers when I hit mouse button 3?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4897
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4898 The following code will replace the default popup on button3:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4899
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4900 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4901 (global-set-key [button3] 'popup-buffer-menu)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4902 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4903
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4904 @node Q3.1.5, Q3.2.1, Q3.1.4, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4905 @unnumberedsubsec Q3.1.5: How can I set XEmacs up so that it pastes where the text cursor is?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4906
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4907 By default XEmacs pastes X selections where the mouse pointer is. How
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4908 do I disable this?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4909
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4910 Examine the function @code{mouse-yank}, by typing @kbd{C-h f mouse-yank
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4911 @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4912
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4913 To get XEmacs to paste at the text cursor, add this your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4914
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4915 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4916 (setq mouse-yank-at-point t)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4917 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4918
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4919 You can also change this with Customize. Select from the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4920 @code{Options} menu @code{Advanced
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4921 (Customize)->Emacs->Editing->Mouse->Yank At Point...} or type @kbd{M-x
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4922 customize @key{RET} mouse @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4923
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4924 @unnumberedsec 3.2: Buffers, Text Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4925
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4926 @node Q3.2.1, Q3.2.2, Q3.1.5, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4927 @unnumberedsubsec Q3.2.1: Can I have the end of the buffer delimited in some way?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4928
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4929 Say, with: @samp{[END]}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4930
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4931 Try this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4932
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4933 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4934 (let ((ext (make-extent (point-min) (point-max))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4935 (set-extent-property ext 'start-closed t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4936 (set-extent-property ext 'end-closed t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4937 (set-extent-property ext 'detachable nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4938 (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4939 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4940
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4941 Since this is XEmacs, you can specify an icon to be shown on
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4942 window-system devices. To do so, change the @code{make-glyph} call to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4943 something like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4944
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4945 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4946 (make-glyph '([xpm :file "~/something.xpm"]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4947 [string :data "[END]"]))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4948 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4949
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4950 You can inline the @sc{xpm} definition yourself by specifying
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4951 @code{:data} instead of @code{:file}. Here is such a full-featured
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4952 version that works on both X and TTY devices:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4953
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4954 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4955 (let ((ext (make-extent (point-min) (point-max))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4956 (set-extent-property ext 'start-closed t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4957 (set-extent-property ext 'end-closed t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4958 (set-extent-property ext 'detachable nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4959 (set-extent-end-glyph ext (make-glyph '([xpm :data "\
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4960 /* XPM */
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4961 static char* eye = @{
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4962 \"20 11 7 2\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4963 \"__ c None\"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4964 \"_` c #7f7f7f\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4965 \"_a c #fefefe\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4966 \"_b c #7f0000\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4967 \"_c c #fefe00\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4968 \"_d c #fe0000\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4969 \"_e c #bfbfbf\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4970 \"___________`_`_`___b_b_b_b_________`____\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4971 \"_________`_`_`___b_c_c_c_b_b____________\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4972 \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4973 \"___`_`_e_a___b_b_d___b___b___b___b______\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4974 \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4975 \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4976 \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4977 \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4978 \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4979 \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4980 \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4981 @} ;"]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4982 [string :data "[END]"]))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4983 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4984
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4985 Note that you might want to make this a function, and put it to a hook.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4986 We leave that as an exercise for the reader.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4987
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4988 @node Q3.2.2, Q3.2.3, Q3.2.1, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4989 @unnumberedsubsec Q3.2.2: How do I insert today's date into a buffer?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4990
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4991 Like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4992
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4993 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4994 (insert (current-time-string))
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4995 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4996
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4997 @node Q3.2.3, Q3.2.4, Q3.2.2, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4998 @unnumberedsubsec Q3.2.3: How do I get a single minibuffer frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
4999
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5000 @email{acs@@acm.org, Vin Shelton} writes:
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5001
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5002 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5003 (setq initial-frame-plist '(minibuffer nil))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5004 (setq default-frame-plist '(minibuffer nil))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5005 (setq default-minibuffer-frame
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5006 (make-frame
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5007 '(minibuffer only
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5008 width 86
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5009 height 1
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5010 menubar-visible-p nil
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5011 default-toolbar-visible-p nil
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5012 name "minibuffer"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5013 top -2
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5014 left -2
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5015 has-modeline-p nil)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5016 (frame-notice-user-settings)
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5017 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5018
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5019 @strong{Please note:} The single minibuffer frame may not be to everyone's
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5020 taste, and there any number of other XEmacs options settings that may
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5021 make it difficult or inconvenient to use.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5022
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5023 @node Q3.2.4, Q3.2.5, Q3.2.3, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5024 @unnumberedsubsec Q3.2.4: How can I enable auto-indent and/or Filladapt?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5025
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5026 Put the following line in your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5027
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5028 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5029 (setq indent-line-function 'indent-relative-maybe)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5030 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5031
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5032 If you want to get fancy, try the @code{filladapt} package available
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5033 standard with XEmacs. Put this into your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5034
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5035 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5036 (require 'filladapt)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5037 (setq-default filladapt-mode t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5038 (add-hook 'c-mode-hook 'turn-off-filladapt-mode)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5039 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5040
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5041 This will enable Filladapt for all modes except C mode, where it doesn't
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5042 work well. To turn Filladapt on only in particular major modes, remove
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5043 the @code{(setq-default ...)} line and use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5044 @code{turn-on-filladapt-mode}, like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5045
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5046 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5047 (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5048 @end lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5049
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5050 You can customize filling and adaptive filling with Customize.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5051 Select from the @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5052 @code{Advanced (Customize)->Emacs->Editing->Fill->Fill...}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5053 or type @kbd{M-x customize @key{RET} fill @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5054
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5055 Note that well-behaving text-lookalike modes will run
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5056 @code{text-mode-hook} by default (e.g. that's what Message does). For
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5057 the nasty ones, you'll have to provide the @code{add-hook}s yourself.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5058
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5059 Please note that the @code{fa-extras} package is no longer useful.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5060
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5061 @node Q3.2.5, Q3.3.1, Q3.2.4, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5062 @unnumberedsubsec Q3.2.5: How can I get XEmacs to come up in text/auto-fill mode by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5063
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5064 Try the following lisp in your @file{init.el}:
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5065
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5066 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5067 (setq default-major-mode 'text-mode)
2769
640e02d61e7f [xemacs-hg @ 2005-05-10 17:56:14 by aidan]
aidan
parents: 2559
diff changeset
5068 (add-hook 'text-mode-hook 'turn-on-auto-fill)
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5069 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5070
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5071 @strong{WARNING}: note that changing the value of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5072 @code{default-major-mode} from @code{fundamental-mode} can break a large
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5073 amount of built-in code that expects newly created buffers to be in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5074 @code{fundamental-mode}. (Changing from @code{fundamental-mode} to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5075 @code{text-mode} might not wreak too much havoc, but changing to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5076 something more exotic like a lisp-mode would break many Emacs packages).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5077
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5078 Note that Emacs by default starts up in buffer @code{*scratch*} in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5079 @code{initial-major-mode}, which defaults to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5080 @code{lisp-interaction-mode}. Thus adding the following form to your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5081 Emacs init file will cause the initial @code{*scratch*} buffer to be put
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5082 into auto-fill'ed @code{text-mode}:
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5083
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5084 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5085 (setq initial-major-mode
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5086 (lambda ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5087 (text-mode)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5088 (turn-on-auto-fill)))
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5089 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5090
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5091 Note that after your init file is loaded, if
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5092 @code{inhibit-startup-message} is @code{nil} (the default) and the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5093 startup buffer is @code{*scratch*} then the startup message will be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5094 inserted into @code{*scratch*}; it will be removed after a timeout by
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5095 erasing the entire @code{*scratch*} buffer. Keep in mind this default
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5096 usage of @code{*scratch*} if you desire any prior manipulation of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5097 @code{*scratch*} from within your Emacs init file. In particular,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5098 anything you insert into @code{*scratch*} from your init file will be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5099 later erased. Also, if you change the mode of the @code{*scratch*}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5100 buffer, be sure that this will not interfere with possible later
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5101 insertion of the startup message (e.g. if you put @code{*scratch*} into
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5102 a nonstandard mode that has automatic font lock rules, then the startup
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5103 message might get fontified in a strange foreign manner, e.g. as code in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5104 some programming language).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5105
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5106 @unnumberedsec 3.3: Text Selections
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5107
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5108 @node Q3.3.1, Q3.3.2, Q3.2.5, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5109 @unnumberedsubsec Q3.3.1: How do I select a rectangular region?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5110
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5111 Just select the region normally, then use the rectangle commands (e.g.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5112 @code{kill-rectangle} on it. The region does not highlight as a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5113 rectangle, but the commands work just fine.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5114
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5115 To actually sweep out rectangular regions with the mouse you can use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5116 @code{mouse-track-do-rectangle} which is assigned to @kbd{M-button1}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5117 Then use rectangle commands.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5118
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5119 You can also do the following to change default behavior to sweep out
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5120 rectangular regions:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5121
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5122 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5123 (setq mouse-track-rectangle-p t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5124 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5125
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5126 You can also change this with Customize.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5127 Select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5128 @code{Advanced (Customize)->Emacs->Editing->Mouse->Track Rectangle...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5129 @kbd{M-x customize @key{RET} mouse @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5130
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5131
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5132 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5133 mouse-track-do-rectangle: (event)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5134 -- an interactive compiled Lisp function.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5135 Like `mouse-track' but selects rectangles instead of regions.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5136 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5137
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5138 @node Q3.3.2, Q3.3.3, Q3.3.1, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5139 @unnumberedsubsec Q3.3.2: How can I turn off or change highlighted selections?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5141 The @code{zmacs} mode allows for what some might call gratuitous
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5142 highlighting for selected regions (either by setting mark or by using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5143 the mouse). This is the default behavior. To turn off, add the
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5144 following line to your @file{init.el} file:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5145
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5146 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5147 (setq zmacs-regions nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5148 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5149
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5150 You can also change this with Customize. Select from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5151 @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5152 @code{Advanced (Customize)->Emacs->Editing->Basics->Zmacs Regions}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5153 or type @kbd{M-x customize @key{RET} editing-basics @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5154
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5155 To change the face for selection, look at @code{Options->Advanced (Customize)}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5156 on the menubar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5157
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5158 @node Q3.3.3, Q3.3.4, Q3.3.2, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5159 @unnumberedsubsec Q3.3.3: How do I cause typing on an active region to remove it?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5160
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5161 I want to change things so that if I select some text and start typing,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5162 the typed text replaces the selected text, similar to Motif.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5163
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5164 You want to use something called @dfn{pending delete}. Pending delete
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5165 is what happens when you select a region (with the mouse or keyboard)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5166 and you press a key to replace the selected region by the key you typed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5167 Usually backspace kills the selected region.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5168
2164
e0dc83407d58 [xemacs-hg @ 2004-07-05 10:42:30 by stephent]
stephent
parents: 1987
diff changeset
5169 To get this behavior, ensure that you have the @file{pc} package
e0dc83407d58 [xemacs-hg @ 2004-07-05 10:42:30 by stephent]
stephent
parents: 1987
diff changeset
5170 installed, and add the following lines to your
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5171 @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5172
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5173 @lisp
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5174 (cond
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5175 ((fboundp 'turn-on-pending-delete)
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5176 (turn-on-pending-delete))
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5177 ((fboundp 'pending-delete-on)
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5178 (pending-delete-on t)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5179 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5180
1138
05ed51332340 [xemacs-hg @ 2002-12-03 11:01:40 by didierv]
didierv
parents: 1135
diff changeset
5181 Note that this will work with both Backspace and Delete. This code is a
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5182 tad more complicated than it has to be for XEmacs in order to make it
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5183 more portable.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5184
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5185 @node Q3.3.4, Q3.3.5, Q3.3.3, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5186 @unnumberedsubsec Q3.3.4: Can I turn off the highlight during isearch?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5187
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5188 I do not like my text highlighted while I am doing isearch as I am not
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5189 able to see what's underneath. How do I turn it off?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5190
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5191 Put the following in your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5192
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5193 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5194 (setq isearch-highlight nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5195 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5196
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5197 You can also change this with Customize. Type
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5198 @kbd{M-x customize-variable @key{RET} isearch-highlight @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5199
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5200 Note also that isearch-highlight affects query-replace and ispell.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5201 Instead of disabling isearch-highlight you may find that a better
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5202 solution consists of customizing the @code{isearch} face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5203
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5204 @node Q3.3.5, Q3.3.6, Q3.3.4, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5205 @unnumberedsubsec Q3.3.5: Why is killing so slow?
892
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5206
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5207 This actually is an X Windows question, although you'll notice it with
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5208 keyboard operations as well as while using the GUI. Basically, there
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5209 are four ways to communicate interprogram via the X server:
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5210
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5211 @table @strong
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5212 @item Primary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5213 a transient selection that gets replaced every time a new selection is made
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5214
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5215 @item Secondary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5216 for "exchanging" with the primary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5217
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5218 @item Cut buffers
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5219 a clipboard internal to the X server (deprecated)
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5220
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5221 @item Clipboard selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5222 a selection with a notification protocol that allows a separate app to
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5223 manage the clipboard
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5224 @end table
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5225
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5226 The cut buffers are deprecated because managing them is even more
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5227 inefficient than the clipboard notification protocol. The primary
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5228 selection works fine for many users and applications, but is not very
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5229 robust under intensive or sophisticated use.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5230
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5231 In Motif and MS Windows, a clipboard has become the primary means for
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5232 managing cut and paste. These means that "modern" applications tend to
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5233 be oriented toward a true clipboard, rather than the primary selection.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5234 (On Windows, there is nothing equivalent to the primary selection.)
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5235 It's not that XEmacs doesn't support the simple primary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5236 method, it's that more and more other applications don't.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5237
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5238 So the slowdown occurs because XEmacs now engages in the clipboard
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5239 notification protocol on @emph{every} kill. This is especially slow on
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5240 Motif.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5241
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5242 With most people running most clients and server on the same host, and
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5243 many of the rest working over very fast communication, you may expect
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5244 that the situation is not going to improve.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5245
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5246 There are a number of workarounds. The most effective is to use a
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5247 special command to do selection ownership only when you intend to paste
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5248 to another application. Useful commands are @code{kill-primary-selection}
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5249 and @code{copy-primary-selection}. These work only on text selected
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5250 with the mouse (probably; experiment), and are bound by default to the
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5251 @kbd{Cut} and @kbd{Copy}, respectively, buttons on the toolbar.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5252 @code{copy-primary-selection} is also bound to @kbd{C-Insert}. You can
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5253 yank the clipboard contents with @code{yank-primary-selection}, bound to
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5254 the @kbd{Paste} toolbar button and @kbd{Sh-Insert}.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5255
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5256 If you are communicating by cut and paste with applications that use the
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5257 primary selection, then you can customize
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5258 @code{interprogram-cut-function} to @code{nil}, restoring the XEmacs
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5259 version 20 behavior. How can you tell if a program will support this?
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5260 Motifly-correct programs require the clipboard; you lose. For others,
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5261 only by trying it. You also need to customize the complementary
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5262 @code{interprogram-paste-function} to @code{nil}. (Otherwise
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5263 XEmacs-to-XEmacs pastes will not work correctly.)
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5264
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5265 You may get some relief on Motif by setting
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5266 @code{x-selection-strict-motif-ownership} to nil, but this means you will
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5267 only intermittently be able to paste XEmacs kills to Motif applications.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5268
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5269 Thanks to Jeff Mincy and Glynn Clements for corrections.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
5270
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5271 @node Q3.3.6, Q3.4.1, Q3.3.5, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5272 @unnumberedsubsec Q3.3.6: Why does @kbd{M-w} take so long?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5273
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5274 It actually doesn't. It leaves the region visible for a second so that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5275 you can see what area is being yanked. If you start working, though, it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5276 will immediately complete its operation. In other words, it will only
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5277 delay for a second if you let it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5278
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5279 @unnumberedsec 3.4: Editing Source Code
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5280
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5281 @node Q3.4.1, Q3.4.2, Q3.3.6, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5282 @unnumberedsubsec Q3.4.1: I do not like cc-mode. How do I use the old c-mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5283
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5284 Well, first off, consider if you really want to do this. cc-mode is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5285 much more powerful than the old c-mode. If you're having trouble
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5286 getting your old offsets to work, try using @code{c-set-offset} instead.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5287 You might also consider using the package @code{cc-compat}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5288
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5289 But, if you still insist, add the following lines to your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5290
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5291 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5292 (fmakunbound 'c-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5293 (makunbound 'c-mode-map)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5294 (fmakunbound 'c++-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5295 (makunbound 'c++-mode-map)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5296 (makunbound 'c-style-alist)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5297 (load-library "old-c-mode")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5298 (load-library "old-c++-mode")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5299 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5300
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5301 This must be done before any other reference is made to either c-mode or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5302 c++-mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5303
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5304 @node Q3.4.2, , Q3.4.1, Editing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5305 @unnumberedsubsec Q3.4.2: How do you make XEmacs indent CL if-clauses correctly?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5306
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5307 I'd like XEmacs to indent all the clauses of a Common Lisp @code{if} the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5308 same amount instead of indenting the 3rd clause differently from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5309 first two.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5310
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5311 The package @code{cl-indent} that comes with XEmacs sets up this kind
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5312 of indentation by default. @code{cl-indent} also knows about many
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5313 other CL-specific forms. To use @code{cl-indent}, one can do this:
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5314
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5315 @lisp
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5316 (setq lisp-indent-function 'common-lisp-indent-function)
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5317 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5318
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5319 One can also customize @file{cl-indent.el} so it mimics the default
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5320 @code{if} indentation @code{then} indented more than the @code{else}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5321 Here's how:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5322
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5323 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5324 (put 'if 'common-lisp-indent-function '(nil nil &body))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5325 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5326
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5327 @node Display, External Subsystems, Editing, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5328 @unnumbered 4 Display Functions
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5329
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5330 This is part 4 of the XEmacs Frequently Asked Questions list. This
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5331 section is devoted to the display-related capabilities of XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5332 (fonts, colors, modeline, menubar, toolbar, scrollbar, etc.) and how
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5333 to customize them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5334
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5335 @menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5336 4.0: Textual Fonts and Colors
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5337 * Q4.0.1:: How do I specify a font?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5338 * Q4.0.2:: How do I set the text, menu and modeline fonts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5339 * Q4.0.3:: How can I set color options from @file{init.el}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5340 * Q4.0.4:: How can I set the colors when highlighting a region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5341 * Q4.0.5:: How can I limit color map usage?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5342 * Q4.0.6:: My tty supports color, but XEmacs doesn't use them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5343 * Q4.0.7:: Can I have pixmap backgrounds in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5344 * Q4.0.8:: How do I display non-ASCII characters?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5345 * Q4.0.9:: Font selections in don't get saved after @code{Save Options}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5346
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5347 4.1: Syntax Highlighting (Font Lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5348 * Q4.1.1:: How can I do source code highlighting using font-lock?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5349 * Q4.1.2:: How do I get @samp{More} Syntax Highlighting on by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5350
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5351 4.2: The Modeline
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5352 * Q4.2.1:: How can I make the modeline go away?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5353 * Q4.2.2:: How do you have XEmacs display the line number in the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5354 * Q4.2.3:: How do I get XEmacs to put the time of day on the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5355 * Q4.2.4:: How can I change the modeline color based on the mode used?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5356
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5357 4.3: The Cursor
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5358 * Q4.3.1:: Is there a way to make the bar cursor thicker?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5359 * Q4.3.2:: Is there a way to get back the block cursor?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5360 * Q4.3.3:: Can I make the cursor blink?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5361
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5362 4.4: The Menubar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5363 * Q4.4.1:: How do I get rid of the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5364 * Q4.4.2:: How can I customize the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5365 * Q4.4.3:: How do I enable use of the keyboard (@kbd{Alt}) to access menu items?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5366 * Q4.4.4:: How do I control how many buffers are listed in the menu @code{Buffers List}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5367 * Q4.4.5:: Resources like @code{Emacs*menubar*font} are not working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5368
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5369 4.5: The Toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5370 * Q4.5.1:: How do I get rid of the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5371 * Q4.5.2:: How can I customize the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5372 * Q4.5.3:: How can I bind a key to a function to toggle the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5373 * Q4.5.4:: @samp{Can't instantiate image error...} in toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5374
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5375 4.6: Scrollbars and Scrolling
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5376 * Q4.6.1:: How can I disable the scrollbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5377 * Q4.6.2:: How can I change the scrollbar width?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5378 * Q4.6.3:: How can I use resources to change scrollbar colors?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5379 * Q4.6.4:: Moving the scrollbar can move the point; can I disable this?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5380 * Q4.6.5:: Scrolling one line at a time.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5381 * Q4.6.6:: How can I turn off automatic horizontal scrolling in specific modes?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5382 * Q4.6.7:: I find auto-show-mode disconcerting. How do I turn it off?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5383
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5384 4.7: The Gutter Tabs, The Progress Bar, Widgets
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5385 * Q4.7.1:: How can I disable the gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5386 * Q4.7.2:: How can I disable the progress bar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5387 * Q4.7.3:: There are bugs in the gutter or widgets.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5388 * Q4.7.4:: How can I customize the gutter or gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5389 @end menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5390
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5391 @unnumberedsec 4.0: Textual Fonts and Colors
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5392
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5393 @node Q4.0.1, Q4.0.2, Display, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5394 @unnumberedsubsec Q4.0.1: How do I specify a font?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5395
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5396 #### Update me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5397
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5398 In 21.4 and above, you can use the @samp{Options} menu to change the font.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5399 You can also do it in your init file, e.g. like this (for MS Windows):
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5400
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5401 @display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5402 (set-face-font 'default "Lucida Console:Regular:10")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5403 (set-face-font 'modeline "MS Sans Serif:Regular:10")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5404 @end display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5405
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5406 @node Q4.0.2, Q4.0.3, Q4.0.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5407 @unnumberedsubsec Q4.0.2: How do I set the text, menu and modeline fonts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5408
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5409 #### Update me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5410
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5411 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5412 setting face values.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5413
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5414 In @file{.Xresources}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5415
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5416 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5417 Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5418 Emacs*menubar*font: fixed
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5419 Emacs.modeline.attributeFont: fixed
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5420 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5421
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5422 This is confusing because @samp{default} and @samp{modeline} are face
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5423 names, and can be found listed with all faces in the current mode by
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5424 using @kbd{M-x set-face-font (enter) ?}. They use the face-specific
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5425 resource @samp{attributeFont}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5426
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5427 On the other hand, @samp{menubar} is a normal X thing that uses the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5428 resource @samp{font}. With Motif it @emph{may be} necessary to use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5429 @samp{fontList} @emph{instead of} @samp{font}. In @emph{non-Motif}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5430 configurations with Mule it @emph{is} necessary to use @samp{fontSet}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5431 instead of @samp{font}. (Sorry, there just is no simple recipe here.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5432
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5433 @node Q4.0.3, Q4.0.4, Q4.0.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5434 @unnumberedsubsec Q4.0.3: How can I set color options from @file{init.el}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5435
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5436 How can I set the most commonly used color options from my
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5437 @file{init.el} instead of from my @file{.Xresources}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5438
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5439 Like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5440
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5441 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5442 (set-face-background 'default "bisque") ; frame background
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5443 (set-face-foreground 'default "black") ; normal text
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5444 (set-face-background 'zmacs-region "red") ; When selecting w/
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5445 ; mouse
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5446 (set-face-foreground 'zmacs-region "yellow")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5447 (set-face-font 'default "*courier-bold-r*120-100-100*")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5448 (set-face-background 'highlight "blue") ; Ie when selecting
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5449 ; buffers
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5450 (set-face-foreground 'highlight "yellow")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5451 (set-face-background 'modeline "blue") ; Line at bottom
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5452 ; of buffer
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5453 (set-face-foreground 'modeline "white")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5454 (set-face-font 'modeline "*bold-r-normal*140-100-100*")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5455 (set-face-background 'isearch "yellow") ; When highlighting
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5456 ; while searching
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5457 (set-face-foreground 'isearch "red")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5458 (setq x-pointer-foreground-color "black") ; Adds to bg color,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5459 ; so keep black
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5460 (setq x-pointer-background-color "blue") ; This is color
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5461 ; you really
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5462 ; want ptr/crsr
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5463 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5464
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5465 @node Q4.0.4, Q4.0.5, Q4.0.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5466 @unnumberedsubsec Q4.0.4: How can I set the colors when highlighting a region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5467
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5468 How can I set the background/foreground colors when highlighting a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5469 region?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5470
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5471 You can change the face @code{zmacs-region} either in your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5472 @file{.Xresources}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5473
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5474 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5475 Emacs.zmacs-region.attributeForeground: firebrick
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5476 Emacs.zmacs-region.attributeBackground: lightseagreen
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5477 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5478
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5479 or in your @file{init.el}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5480
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5481 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5482 (set-face-background 'zmacs-region "red")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5483 (set-face-foreground 'zmacs-region "yellow")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5484 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5485
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5486 @node Q4.0.5, Q4.0.6, Q4.0.4, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5487 @unnumberedsubsec Q4.0.5: How can I limit color map usage?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5488
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5489 I'm using Netscape (or another color grabber like XEmacs);
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5490 is there any way to limit the number of available colors in the color map?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5491
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5492 Answer: No, but you can start Netscape before XEmacs, and it will use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5493 the closest available color if the colormap is full. You can also limit
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5494 the number of colors Netscape uses, using the flags -mono, -ncols <#> or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5495 -install (for mono, limiting to <#> colors, or for using a private color
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5496 map).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5497
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5498 If you have the money, another solution would be to use a truecolor or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5499 direct color video.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5500
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5501 @node Q4.0.6, Q4.0.7, Q4.0.5, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5502 @unnumberedsubsec Q4.0.6: My tty supports color, but XEmacs doesn't use them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5503
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5504 XEmacs tries to automatically determine whether your tty supports color,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5505 but sometimes guesses wrong. In that case, you can make XEmacs Do The
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5506 Right Thing using this Lisp code:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5507
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5508 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5509 (if (eq 'tty (device-type))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5510 (set-device-class nil 'color))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5511 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5512
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5513 @node Q4.0.7, Q4.0.8, Q4.0.6, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5514 @unnumberedsubsec Q4.0.7: Can I have pixmap backgrounds in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5515 @c New
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5516 @email{jvillaci@@wahnsinnig.extreme.indiana.edu, Juan Villacis} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5517
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5518 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5519 There are several ways to do it. For example, you could specify a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5520 default pixmap image to use in your @file{~/.Xresources}, e.g.,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5521
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5522
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5523 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5524 Emacs*EmacsFrame.default.attributeBackgroundPixmap: /path/to/image.xpm
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5525 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5526
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5527
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5528 and then reload ~/.Xresources and restart XEmacs. Alternatively,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5529 since each face can have its own pixmap background, a better way
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5530 would be to set a face's pixmap within your XEmacs init file, e.g.,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5531
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5532 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5533 (set-face-background-pixmap 'default "/path/to/image.xpm")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5534 (set-face-background-pixmap 'bold "/path/to/another_image.xpm")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5535 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5536
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5537 and so on. You can also do this interactively via @kbd{M-x edit-faces}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5538
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5539 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5540
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5541 @node Q4.0.8, Q4.0.9, Q4.0.7, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5542 @unnumberedsubsec Q4.0.8: How do I display non-ASCII characters?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5543 @c New
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5544
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5545 If you're using a Mule-enabled XEmacs, then display is automatic. If
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5546 you're not seeing the characters you expect, either (1) you don't have
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5547 appropriate fonts available or (2) XEmacs did not correctly detect the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5548 coding system (@pxref{Recognize Coding, , , xemacs}). In case (1),
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5549 install fonts as is customary for your platform. In case (2), you
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5550 need to tell XEmacs explicitly what coding systems you're using.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5551 @ref{Specify Coding, , , xemacs}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5552
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5553 If your XEmacs is not Mule-enabled, and for some reason getting a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5554 Mule-enabled XEmacs seems like the wrong thing to do, all is not lost.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5555 You can arrange it by brute force. In @file{event-Xt.c} (suppress the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5556 urge to look in this file---play Doom instead, because you'll survive
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5557 longer), it is written:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5558
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5559 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5560 In a non-Mule world, a user can still have a multi-lingual editor, by
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5561 doing @code{(set-face-font "-*-iso8859-2" (current-buffer))} for all
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5562 their Latin-2 buffers, etc.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5563 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5564
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5565 For the related problem of @emph{inputting} non-ASCII characters in a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5566 non-Mule XEmacs, @xref{Q3.0.6, How can you type in special characters
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5567 in XEmacs?}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5568
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5569 @node Q4.0.9, Q4.1.1, Q4.0.8, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5570 @unnumberedsubsec Q4.0.9: Font selections in don't get saved after @code{Save Options}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5571
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5572 @email{mannj@@ll.mit.edu, John Mann} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5573
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5574 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5575 You have to go to @samp{Options->Menubars} and unselect
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5576 @samp{Frame-Local Font Menu}. If this option is selected, font changes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5577 are only applied to the @emph{current} frame and do @emph{not} get saved
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5578 when you save options.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5579 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5580
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5581 Also, set the following in your @file{init.el}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5582
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5583 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5584 (setq options-save-faces t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5585 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5586
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5587 @unnumberedsec 4.1: Syntax Highlighting (Font Lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5588
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5589 @node Q4.1.1, Q4.1.2, Q4.0.9, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5590 @unnumberedsubsec Q4.1.1: How can I do source code highlighting using font-lock?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5591
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5592 For most modes, font-lock is already set up and just needs to be turned
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5593 on. This can be done by adding the line:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5594
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5595 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5596 (require 'font-lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5597 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5598
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5599 to your @file{init.el}. (You can turn it on for the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5600 current buffer and session only by @kbd{M-x font-lock-mode}.) See the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5601 file @file{etc/sample.init.el} (@file{etc/sample.emacs} in XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5602 versions prior to 21.4) for more information.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5603
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5604 @c the old way:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5605 @c (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5606 @c (add-hook 'dired-mode-hook 'turn-on-font-lock)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5607
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5608 See also @code{Syntax Highlighting} from the @code{Options} menu.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5609 Remember to save options.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5610
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5611 @node Q4.1.2, Q4.2.1, Q4.1.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5612 @unnumberedsubsec Q4.1.2: How do I get @samp{More} Syntax Highlighting on by default?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5613
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5614 Use the following code in your @file{init.el}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5615
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5616 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5617 (setq-default font-lock-maximum-decoration t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5618 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5619
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5620 See also @code{Syntax Highlighting} from the @code{Options} menu.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5621 Remember to save options.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5622
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5623 @unnumberedsec 4.2: The Modeline
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5624
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5625 @node Q4.2.1, Q4.2.2, Q4.1.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5626 @unnumberedsubsec Q4.2.1: How can I make the modeline go away?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5627
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5628 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5629 (set-specifier has-modeline-p nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5630 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5631
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5632 @node Q4.2.2, Q4.2.3, Q4.2.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5633 @unnumberedsubsec Q4.2.2: How do you have XEmacs display the line number in the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5634
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5635 Add the following line to your @file{init.el} file to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5636 display the line number:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5637
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5638 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5639 (line-number-mode 1)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5640 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5641
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5642 Use the following to display the column number:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5643
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5644 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5645 (column-number-mode 1)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5646 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5647
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5648 Or select from the @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5649 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5650 @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5651 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5652 @code{Advanced (Customize)->Emacs->Editing->Basics->Line Number Mode}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5653 and/or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5654 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5655 @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5656 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5657 @code{Advanced (Customize)->Emacs->Editing->Basics->Column Number Mode}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5658
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5659 Or type @kbd{M-x customize @key{RET} editing-basics @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5660
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5661 @node Q4.2.3, Q4.2.4, Q4.2.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5662 @unnumberedsubsec Q4.2.3: How do I get XEmacs to put the time of day on the modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5663
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5664 Add the following line to your @file{init.el} file to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5665 display the time:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5666
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5667 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5668 (display-time)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5669 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5670
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5671 See @code{Customize} from the @code{Options} menu for customization.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5672
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5673 @node Q4.2.4, Q4.3.1, Q4.2.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5674 @unnumberedsubsec Q4.2.4: How can I change the modeline color based on the mode used?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5675
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5676 You can use something like the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5677
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5678 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5679 (add-hook 'lisp-mode-hook
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5680 (lambda ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5681 (set-face-background 'modeline "red" (current-buffer))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5682 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5683
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5684 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5685 colors change from the default set in your @file{init.el}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5686 The change will only be made in the buffer you just entered (which
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5687 contains the Lisp file you are editing) and will not affect the modeline
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5688 colors anywhere else.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5689
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5690 Notes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5691
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5692 @itemize @bullet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5693
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5694 @item The hook is the mode name plus @code{-hook}. eg. c-mode-hook,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5695 c++-mode-hook, emacs-lisp-mode-hook (used for your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5696 @file{init.el} or a @file{xx.el} file),
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5697 lisp-interaction-mode-hook (the @samp{*scratch*} buffer),
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5698 text-mode-hook, etc.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5699
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5700 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5701 Be sure to use @code{add-hook}, not @code{(setq c-mode-hook xxxx)},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5702 otherwise you will erase anything that anybody has already put on the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5703 hook.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5704
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5705 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5706 You can also do @code{(set-face-font 'modeline @var{font})},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5707 eg. @code{(set-face-font 'modeline "*bold-r-normal*140-100-100*"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5708 (current-buffer))} if you wish the modeline font to vary based on the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5709 current mode.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5710 @end itemize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5711
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5712 There are additional modeline faces, @code{modeline-buffer-id},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5713 @code{modeline-mousable}, and @code{modeline-mousable-minor-mode}, which
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5714 you may want to customize.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5715
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5716 @unnumberedsec 4.3: The Cursor
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5717
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5718 @node Q4.3.1, Q4.3.2, Q4.2.4, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5719 @unnumberedsubsec Q4.3.1: Is there a way to make the bar cursor thicker?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5720
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5721 I'd like to have the bar cursor a little thicker, as I tend to "lose" it
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5722 often.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5723
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5724 For a 1 pixel bar cursor, use:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5725
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5726 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5727 (setq bar-cursor t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5728 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5729
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5730 For a 2 pixel bar cursor, use:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5731
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5732 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5733 (setq bar-cursor 'anything-else)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5734 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5735
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5736 You can also change these with Customize.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5737 Select from the @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5738 @code{Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...} or type
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5739 @kbd{M-x customize @key{RET} display @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5740
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5741 You can use a color to make it stand out better:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5742
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5743 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5744 Emacs*cursorColor: Red
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5745 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5746
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5747 @node Q4.3.2, Q4.3.3, Q4.3.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5748 @unnumberedsubsec Q4.3.2: Is there a way to get back the block cursor?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5749
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5750 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5751 (setq bar-cursor nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5752 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5753
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5754 You can also change this with Customize.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5755 Select from the @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5756 @code{Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...} or type
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5757 @kbd{M-x customize @key{RET} display @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5758
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5759 @node Q4.3.3, Q4.4.1, Q4.3.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5760 @unnumberedsubsec Q4.3.3: Can I make the cursor blink?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5761
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5762 Yes, like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5763
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5764 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5765 (blink-cursor-mode)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5766 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5767
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5768 This function toggles between a steady cursor and a blinking cursor.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5769 You may also set this mode from the menu bar by selecting
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5770 @samp{Options->Display->Blinking Cursor}. Remember to save options.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5771
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5772 @unnumberedsec 4.4: The Menubar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5773
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5774 @node Q4.4.1, Q4.4.2, Q4.3.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5775 @unnumberedsubsec Q4.4.1: How do I get rid of the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5776
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5777 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5778 (set-specifier menubar-visible-p nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5779 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5780
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5781 @node Q4.4.2, Q4.4.3, Q4.4.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5782 @unnumberedsubsec Q4.4.2: How can I customize the menubar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5783
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5784 For an extensive menubar, add this line to your @file{init.el}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5785
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5786 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5787 (load "big-menubar")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5788 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5789
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5790 If you'd like to write your own, this file provides as good a set of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5791 examples as any to start from. The file is located in edit-utils
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5792 package.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5793
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5794 @node Q4.4.3, Q4.4.4, Q4.4.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5795 @unnumberedsubsec Q4.4.3: How do I enable use of the keyboard (@kbd{Alt}) to access menu items?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5796
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5797 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5798
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5799 @node Q4.4.4, Q4.4.5, Q4.4.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5800 @unnumberedsubsec Q4.4.4: How do I control how many buffers are listed in the menu @code{Buffers List}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5801
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5802 Add the following to your @file{init.el} (suit to fit):
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5803
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5804 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5805 (setq buffers-menu-max-size 20)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5806 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5807
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5808 For no limit, use an argument of @samp{nil}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5809
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5810 You can also change this with Customize. Select from the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5811 @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5812 @code{Advanced (Customize)->Emacs->Environment->Menu->Buffers Menu->Max Size...}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5813 or type @kbd{M-x customize @key{RET} buffers-menu @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5814
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5815 @node Q4.4.5, Q4.5.1, Q4.4.4, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5816 @unnumberedsubsec Q4.4.5: Resources like @code{Emacs*menubar*font} are not working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5817
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5818 I am trying to use a resource like @code{Emacs*menubar*font} to set the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5819 font of the menubar but it's not working.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5820
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5821 In Motif, the use of @samp{font} resources is obsoleted in order to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5822 support internationalization. If you are using the real Motif menubar,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5823 this resource is not recognized at all; you have to say:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5824
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5825 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5826 Emacs*menubar*fontList: FONT
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5827 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5828
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5829 If you are using the Lucid menubar, for backward compatibility with
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5830 existing user configurations, the @samp{font} resource is recognized.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5831 Since this is not supported by Motif itself, the code is a kludge and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5832 the @samp{font} resource will be recognized only if the @samp{fontList}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5833 resource resource is unset. This means that the resource
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5834
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5835 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5836 *fontList: FONT
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5837 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5838
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5839 will override
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5840
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5841 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5842 Emacs*menubar*font: FONT
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5843 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5844
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5845 even though the latter is more specific.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5846
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5847 In non-Motif configurations using @samp{--with-mule} and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5848 @samp{--with-xfs} it @emph{is} necessary to use the @code{fontSet}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5849 resource @emph{instead of} the @code{font} resource. The backward
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5850 compatibility kludge was never implemented for non-Motif builds.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5851 Example:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5852
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5853 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5854 *fontSet: FONT
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5855 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5856
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5857 @unnumberedsec 4.5: The Toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5858
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5859 @node Q4.5.1, Q4.5.2, Q4.4.5, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5860 @unnumberedsubsec Q4.5.1: How do I get rid of the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5861
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5862 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5863
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5864 @node Q4.5.2, Q4.5.3, Q4.5.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5865 @unnumberedsubsec Q4.5.2: How can I customize the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5866
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5867 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5868
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5869 @node Q4.5.3, Q4.5.4, Q4.5.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5870 @unnumberedsubsec Q4.5.3: How can I bind a key to a function to toggle the toolbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5871
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5872 Try something like:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5873
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5874 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5875 (defun my-toggle-toolbar ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5876 (interactive)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5877 (set-specifier default-toolbar-visible-p
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5878 (not (specifier-instance default-toolbar-visible-p))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5879 (global-set-key "\C-xT" 'my-toggle-toolbar)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5880 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5881
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5882 @ignore
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5883 @c Probably not relevant any more
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5884 There are redisplay bugs in 19.14 that may make the preceding result in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5885 a messed-up display, especially for frames with multiple windows. You
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5886 may need to resize the frame before XEmacs completely realizes the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5887 toolbar is really gone.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5888 @end ignore
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5889
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5890 Thanks to @email{martin@@xemacs.org, Martin Buchholz} for the correct
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5891 code.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5892
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5893 @node Q4.5.4, Q4.6.1, Q4.5.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5894 @unnumberedsubsec Q4.5.4: @samp{Can't instantiate image error...} in toolbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5895
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5896 @email{expt@@alanine.ram.org, Dr. Ram Samudrala} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5897
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5898 I just installed the XEmacs (20.4-2) RPMS that I downloaded from
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5899 @uref{http://www.xemacs.org/}. Everything works fine, except that when
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5900 I place my mouse over the toolbar, it beeps and gives me this message:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5901
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5902 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5903 Can't instantiate image (probably cached):
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5904 [xbm :mask-file "/usr/include/X11/bitmaps/leftptrmsk :mask-data
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5905 (16 16 <strange control characters> ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5906 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5907
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5908 @email{kyle_jones@@wonderworks.com, Kyle Jones} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5909 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5910 This is problem specific to some Chips and Technologies video
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5911 chips, when running XFree86. Putting
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5912
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5913 @code{Option "sw_cursor"}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5914
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5915 in @file{XF86Config} gets rid of the problem.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5916 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5917
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5918 @unnumberedsec 4.6: Scrollbars and Scrolling
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5919
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5920 @node Q4.6.1, Q4.6.2, Q4.5.4, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5921 @unnumberedsubsec Q4.6.1: How can I disable the scrollbar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5922
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5923 To disable them for all frames, add the following line to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5924 your @file{.Xresources}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5925
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5926 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5927 Emacs.scrollBarWidth: 0
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5928 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5929
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5930 Or select @samp{Options->Display->Scrollbars}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5931 Remember to save options.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5932
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5933 To turn the scrollbar off on a per-frame basis, use the following
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5934 function:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5935
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5936 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5937 (set-specifier scrollbar-width 0 (selected-frame))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5938 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5939
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5940 You can actually turn the scrollbars on at any level you want by
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5941 substituting for (selected-frame) in the above command. For example, to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5942 turn the scrollbars off only in a single buffer:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5943
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5944 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5945 (set-specifier scrollbar-width 0 (current-buffer))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5946 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5947
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5948 @node Q4.6.2, Q4.6.3, Q4.6.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5949 @unnumberedsubsec Q4.6.2: How can I change the scrollbar width?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5950
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5951 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5952
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5953 @node Q4.6.3, Q4.6.4, Q4.6.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5954 @unnumberedsubsec Q4.6.3: How can I use resources to change scrollbar colors?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5955
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5956 Here's a recap of how to use resources to change your scrollbar colors:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5957
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5958 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5959 ! Motif scrollbars
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5960
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5961 Emacs*XmScrollBar.Background: skyblue
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5962 Emacs*XmScrollBar.troughColor: lightgray
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5963
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5964 ! Athena scrollbars
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5965
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5966 Emacs*Scrollbar.Foreground: skyblue
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5967 Emacs*Scrollbar.Background: lightgray
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5968 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5969
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5970 Note the capitalization of @code{Scrollbar} for the Athena widget.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5971
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5972 @node Q4.6.4, Q4.6.5, Q4.6.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5973 @unnumberedsubsec Q4.6.4: Moving the scrollbar can move the point; can I disable this?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5974
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5975 When I move the scrollbar in an XEmacs window, it moves the point as
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5976 well, which should not be the default behavior. Is this a bug or a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5977 feature? Can I disable it?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5978
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5979 The current behavior is a feature, not a bug. Point remains at the same
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5980 buffer position as long as that position does not scroll off the screen.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5981 In that event, point will end up in either the upper-left or lower-left
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5982 hand corner.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5983
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5984 This cannot be changed.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5985
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5986 @node Q4.6.5, Q4.6.6, Q4.6.4, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5987 @unnumberedsubsec Q4.6.5: Scrolling one line at a time.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5988
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5989 Can the cursor keys scroll the screen a line at a time, rather than the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5990 default half page jump? I tend it to find it disorienting.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5991
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5992 Use the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5993
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5994 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5995 (setq scroll-step 1)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5996 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5997
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5998 You can also change this with Customize. Select from the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
5999 @code{Options} menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6000 @code{Advanced (Customize)->Emacs->Environment->Windows->Scroll Step...}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6001 or type @kbd{M-x customize @key{RET} windows @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6002
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6003 @node Q4.6.6, Q4.6.7, Q4.6.5, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6004 @unnumberedsubsec Q4.6.6: How can I turn off automatic horizontal scrolling in specific modes?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6005
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6006 Do @code{(setq truncate-lines t)} in the mode-hooks for any modes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6007 in which you want lines truncated.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6008
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6009 More precisely: If @code{truncate-lines} is nil, horizontal scrollbars
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6010 will never appear. Otherwise, they will appear only if the value of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6011 @code{scrollbar-height} for that buffer/window/etc. is non-zero. If you
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6012 do
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6013
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6014 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6015 (set-specifier scrollbar-height 0)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6016 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6017
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6018 then horizontal scrollbars will not appear in truncated buffers unless
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6019 the package specifically asked for them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6020
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6021 @node Q4.6.7, Q4.7.1, Q4.6.6, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6022 @unnumberedsubsec Q4.6.7: I find auto-show-mode disconcerting. How do I turn it off?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6023
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6024 @code{auto-show-mode} controls whether or not a horizontal scrollbar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6025 magically appears when a line is too long to be displayed. This is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6026 enabled by default. To turn it off, put the following in your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6027 @file{init.el}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6028
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6029 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6030 (setq auto-show-mode nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6031 (setq-default auto-show-mode nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6032 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6033
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6034 @unnumberedsec 4.7: The Gutter Tabs, The Progress Bar, Widgets
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6035
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6036 @node Q4.7.1, Q4.7.2, Q4.6.7, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6037 @unnumberedsubsec Q4.7.1: How can I disable the gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6038
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6039 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6040
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6041 @node Q4.7.2, Q4.7.3, Q4.7.1, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6042 @unnumberedsubsec Q4.7.2: How can I disable the progress bar?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6043
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6044 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6045
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6046 @node Q4.7.3, Q4.7.4, Q4.7.2, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6047 @unnumberedsubsec Q4.7.3: There are bugs in the gutter or widgets.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6048
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6049 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6050
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6051 @node Q4.7.4, , Q4.7.3, Display
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6052 @unnumberedsubsec Q4.7.4: How can I customize the gutter or gutter tabs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6053
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6054 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6055
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6056 @node External Subsystems, Internet, Display, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6057 @unnumbered 5 Interfacing with the Operating System and External Devices
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6058
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6059 This is part 5 of the XEmacs Frequently Asked Questions list. This
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6060 section is devoted to the various ways that XEmacs interfaces with the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6061 operating system, with other processes and with external devices such
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6062 as speakers and the printer.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6063
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6064 @menu
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6065 5.0: X Window System and Resources
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6066 * Q5.0.1:: Where is a list of X resources?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6067 * Q5.0.2:: How can I detect a color display?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6068 * Q5.0.3:: How can I get the icon to just say @samp{XEmacs}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6069 * Q5.0.4:: How can I have the window title area display the full path?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6070 * Q5.0.5:: @samp{xemacs -name junk} doesn't work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6071 * Q5.0.6:: @samp{-iconic} doesn't work.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6072
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6073 5.1: Microsoft Windows
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6074 * Q5.1.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6075 * Q5.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6076
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6077 5.2: Printing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6078 * Q5.2.1:: What do I need to change to make printing work?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6079 * Q5.2.2:: How can I print WYSIWYG a font-locked buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6080 * Q5.2.3:: Getting @kbd{M-x lpr} to work with postscript printer.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6081 * Q5.2.4:: Can you print under MS Windows?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6082
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6083 5.3: Sound
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6084 * Q5.3.1:: How do I turn off the sound?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6085 * Q5.3.2:: How do I get funky sounds instead of a boring beep?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6086 * Q5.3.3:: What are NAS and ESD (EsounD)?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6087 * Q5.3.4:: Sunsite sounds don't play.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6088
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6089 5.4: Running an Interior Shell, Invoking Subprocesses
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6090 * Q5.4.1:: What is an interior shell?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6091 * Q5.4.2:: How do I start up a second shell buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6092 * Q5.4.3:: Telnet from shell filters too much
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6093 * Q5.4.4:: Strange things are happening in Shell Mode.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6094 * Q5.4.5:: XEmacs complains "No such file or directory, diff"
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6095 * Q5.4.6:: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6096
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6097 5.5: Multiple Device Support
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6098 * Q5.5.1:: How do I open a frame on another screen of my multi-headed display?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6099 * Q5.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6100 * Q5.5.3:: How do I disable gnuserv from opening a new frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6101 * Q5.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6102 * Q5.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6103 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6104
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6105 @unnumberedsec 5.0: X Window System and Resources
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6106
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6107 @node Q5.0.1, Q5.0.2, External Subsystems, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6108 @unnumberedsubsec Q5.0.1: Where is a list of X resources?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6109
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6110 Search through the @file{NEWS} file for @samp{X Resources}. A fairly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6111 comprehensive list is given after it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6112
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6113 In addition, an @file{app-defaults} file @file{etc/Emacs.ad} is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6114 supplied, listing the defaults. The file @file{etc/sample.Xresources}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6115 gives a different set of defaults that you might consider for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6116 installation in your @file{~/.Xresources} file. It is nearly the same
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6117 as @file{etc/Emacs.ad}, but a few entries are altered. Be careful about
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6118 installing the contents of this file into your @file{.Xresources} (or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6119 legacy @file{.Xdefaults}) file if you use GNU Emacs under X11 as well.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6120
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6121 @node Q5.0.2, Q5.0.3, Q5.0.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6122 @unnumberedsubsec Q5.0.2: How can I detect a color display?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6123
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6124 You can test the return value of the function @code{(device-class)}, as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6125 in:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6126
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6127 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6128 (when (eq (device-class) 'color)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6129 (set-face-foreground 'font-lock-comment-face "Grey")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6130 (set-face-foreground 'font-lock-string-face "Red")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6131 ....
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6132 )
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6133 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6134
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6135 @node Q5.0.3, Q5.0.4, Q5.0.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6136 @unnumberedsubsec Q5.0.3: How can I get the icon to just say @samp{XEmacs}?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6137
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6138 I'd like the icon to just say @samp{XEmacs}, and not include the name of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6139 the current file in it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6140
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6141 Add the following line to your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6142
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6143 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6144 (setq frame-icon-title-format "XEmacs")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6145 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6146
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6147 @node Q5.0.4, Q5.0.5, Q5.0.3, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6148 @unnumberedsubsec Q5.0.4: How can I have the window title area display the full path?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6149
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6150 I'd like to have the window title area display the full directory/name
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6151 of the current buffer file and not just the name.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6152
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6153 Add the following line to your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6154
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6155 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6156 (setq frame-title-format "%S: %f")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6157 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6158
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6159 A more sophisticated title might be:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6160
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6161 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6162 (setq frame-title-format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6163 '("%S: " (buffer-file-name "%f"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6164 (dired-directory dired-directory "%b"))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6165 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6166
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6167 That is, use the file name, or the dired-directory, or the buffer name.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6168
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6169 @node Q5.0.5, Q5.0.6, Q5.0.4, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6170 @unnumberedsubsec Q5.0.5: @samp{xemacs -name junk} doesn't work?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6171
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6172 When I run @samp{xterm -name junk}, I get an xterm whose class name
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6173 according to xprop, is @samp{junk}. This is the way it's supposed to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6174 work, I think. When I run @samp{xemacs -name junk} the class name is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6175 not set to @samp{junk}. It's still @samp{emacs}. What does
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6176 @samp{xemacs -name} really do? The reason I ask is that my window
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6177 manager (fvwm) will make a window sticky and I use XEmacs to read my
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6178 mail. I want that XEmacs window to be sticky, without having to use the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6179 window manager's function to set the window sticky. What gives?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6180
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6181 @samp{xemacs -name} sets the application name for the program (that is,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6182 the thing which normally comes from @samp{argv[0]}). Using @samp{-name}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6183 is the same as making a copy of the executable with that new name. The
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6184 @code{WM_CLASS} property on each frame is set to the frame-name, and the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6185 application-class. So, if you did @samp{xemacs -name FOO} and then
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6186 created a frame named @var{BAR}, you'd get an X window with WM_CLASS =
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6187 @code{( "BAR", "Emacs")}. However, the resource hierarchy for this
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6188 widget would be:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6189
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6190 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6191 Name: FOO .shell .container .BAR
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6192 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6193 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6194
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6195 instead of the default
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6196
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6197 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6198 Name: xemacs.shell .container .emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6199 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6200 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6201
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6202
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6203 It is arguable that the first element of WM_CLASS should be set to the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6204 application-name instead of the frame-name, but I think that's less
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6205 flexible, since it does not give you the ability to have multiple frames
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6206 with different WM_CLASS properties. Another possibility would be for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6207 the default frame name to come from the application name instead of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6208 simply being @samp{emacs}. However, at this point, making that change
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6209 would be troublesome: it would mean that many users would have to make
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6210 yet another change to their resource files (since the default frame name
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6211 would suddenly change from @samp{emacs} to @samp{xemacs}, or whatever
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6212 the executable happened to be named), so we'd rather avoid it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6213
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6214 To make a frame with a particular name use:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6215
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6216 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6217 (make-frame '((name . "the-name")))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6218 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6219
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6220 @node Q5.0.6, Q5.1.1, Q5.0.5, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6221 @unnumberedsubsec Q5.0.6: @samp{-iconic} doesn't work.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6222
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6223 When I start up XEmacs using @samp{-iconic} it doesn't work right.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6224 Using @samp{-unmapped} on the command line, and setting the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6225 @code{initiallyUnmapped} X Resource don't seem to help much either...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6226
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6227 @email{ben@@xemacs.org, Ben Wing} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6228
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6229 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6230 Ugh, this stuff is such an incredible mess that I've about given up
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6231 getting it to work. The principal problem is numerous window-manager
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6232 bugs...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6233 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6234
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6235 @unnumberedsec 5.1: Microsoft Windows
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6236
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6237 @node Q5.1.1, Q5.1.2, Q5.0.6, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6238 @unnumberedsubsec Q5.1.1: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6239
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6240 In his flavor of Emacs 20, Richard Stallman has renamed all the @samp{win32-*}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6241 symbols to @samp{w32-*}. Does XEmacs do the same?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6242
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6243 We consider such a move counter-productive, thus we do not use the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6244 @samp{w32} prefix. (His rather questionable justification was that he
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6245 did not consider Windows to be a "winning" platform.) However, the name
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6246 @samp{Win32} is not particularly descriptive outside the Windows world,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6247 and using just @samp{windows-} would be too generic. So we chose a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6248 compromise, the prefix @samp{mswindows-} for Windows-related variables
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6249 and functions.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6250
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6251 Thus all the XEmacs variables and functions directly related to either
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6252 the Windows GUI or OS are prefixed @samp{mswindows-} (except for a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6253 couple of debugging variables, prefixed @samp{debug-mswindows-}). From
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6254 an architectural perspective, however, we believe that this is mostly a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6255 non-issue because there should be a very small number of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6256 window-systems-specific variables anyway. Whenever possible, we try to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6257 provide generic interfaces that apply to all window systems.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6258
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6259 @c not true:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6260 @c The user variables
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6261 @c that share functionality with existing NT Emacs variables are be named
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6262 @c with our convention, but we provide the GNU Emacs names as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6263 @c compatibility aliases.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6264
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6265 @node Q5.1.2, Q5.2.1, Q5.1.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6266 @unnumberedsubsec Q5.1.2: How do I get Windows Explorer to associate a file type with XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6267
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6268 @unnumberedsubsubsec Associating a new file type with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6269
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6270 In Explorer select @samp{View->Options->File Types}, press @samp{[New
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6271 Type...]} and fill in the dialog box, e.g.:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6272
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6273 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6274 Description of type: Emacs Lisp source
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6275 Associated extension: el
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6276 Content Type (MIME): text/plain
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6277 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6278
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6279 then press @samp{[New...]} and fill in the @samp{Action} dialog box as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6280 follows:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6281
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6282 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6283 Action:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6284 Open
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6285
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6286 Application used to perform action:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6287 D:\Full\path\for\xemacs.exe "%1"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6288
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6289 [x] Use DDE
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6290
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6291 DDE Message:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6292 open("%1")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6293
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6294 Application:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6295 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6296
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6297 DDE Application Not Running:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6298 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6299
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6300 Topic:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6301 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6302 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6303
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6304 @unnumberedsubsubsec Associating an existing file type with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6305
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6306 In Explorer select @samp{View->Options->File Types}. Click on the file
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6307 type in the list and press @samp{[Edit...]}. If the file type already
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6308 has an @samp{Open} action, double click on it and fill in the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6309 @samp{Action} dialog box as described above; otherwise create a new
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6310 action.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6311
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6312 If the file type has more than one action listed, you probably want to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6313 make the @samp{Open} action that you just edited the default by clicking on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6314 it and pressing @samp{Set Default}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6315
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6316 Note for Windows 2000 users: Under Windows 2000, get to @samp{File Types}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6317 using @samp{Control Panel->Folder Options->File Types}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6318
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6319 @unnumberedsec 5.2: Printing
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6320
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6321 @node Q5.2.1, Q5.2.2, Q5.1.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6322 @unnumberedsubsec Q5.2.1: What do I need to change to make printing work?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6323
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6324 For regular printing there are two variables that can be customized.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6325
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6326 @table @code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6327 @item lpr-command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6328 This should be set to a command that takes standard input and sends
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6329 it to a printer. Something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6330
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6331 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6332 (setq lpr-command "lp")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6333 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6334
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6335 @item lpr-switches
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6336 This should be set to a list that contains whatever the print command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6337 requires to do its job. Something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6338
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6339 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6340 (setq lpr-switches '("-depson"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6341 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6342 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6343
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6344 For postscript printing there are three analogous variables to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6345 customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6346
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6347 @table @code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6348 @item ps-lpr-command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6349 This should be set to a command that takes postscript on standard input
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6350 and directs it to a postscript printer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6351
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6352 @item ps-lpr-switches
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6353 This should be set to a list of switches required for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6354 @code{ps-lpr-command} to do its job.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6355
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6356 @item ps-print-color-p
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6357 This boolean variable should be set @code{t} if printing will be done in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6358 color, otherwise it should be set to @code{nil}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6359 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6360
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6361 NOTE: It is an undocumented limitation in XEmacs that postscript
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6362 printing (the @code{Pretty Print Buffer} menu item) @strong{requires} a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6363 window system environment. It cannot be used outside of X11.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6364
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6365 @node Q5.2.2, Q5.2.3, Q5.2.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6366 @unnumberedsubsec Q5.2.2: How can I print WYSIWYG a font-locked buffer?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6367
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6368 Font-lock looks nice. How can I print (WYSIWYG) the highlighted
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6369 document?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6370
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6371 The package @code{ps-print}, which is now included with XEmacs, provides
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6372 the ability to do this. The source code contains complete instructions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6373 on its use, in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6374 @file{$prefix/lib/xemacs/xemacs-packages/lisp/ps-print/ps-print.el},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6375 being the default location of an installed ps-print package.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6376
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6377 @node Q5.2.3, Q5.2.4, Q5.2.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6378 @unnumberedsubsec Q5.2.3: Getting @kbd{M-x lpr} to work with postscript printer.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6379
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6380 My printer is a Postscript printer and @code{lpr} only works for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6381 Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6382 lpr-buffer} to work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6383
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6384 Put something like this in your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6385
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6386 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6387 (setq lpr-command "a2ps")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6388 (setq lpr-switches '("-p" "-1"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6389 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6390
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6391 If you don't use a2ps to convert ASCII to postscript (why not, it's
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6392 free?), replace with the command you do use. Note also that some
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6393 versions of a2ps require a @samp{-Pprinter} to ensure spooling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6394
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6395 @node Q5.2.4, Q5.3.1, Q5.2.3, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6396 @unnumberedsubsec Q5.2.4: Can you print under MS Windows?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6397
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6398 As of 21.4, printing works on Windows, using simply
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6399 @samp{File->Print BUFFER...}, and can be configured with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6400 @samp{File->Page Setup...}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6401
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6402 Prior to 21.4, there is no built-in support, but there are some clever
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6403 hacks out there. If you know how, please let us know and we'll put it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6404 here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6405
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6406 @unnumberedsec 5.3: Sound
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6407
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6408 @node Q5.3.1, Q5.3.2, Q5.2.4, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6409 @unnumberedsubsec Q5.3.1: How do I turn off the sound?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6410
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6411 Add the following line to your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6412
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6413 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6414 (setq bell-volume 0)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6415 (setq sound-alist nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6416 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6418 That will make your XEmacs totally silent---even the default ding sound
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6419 (TTY beep on TTY-s) will be gone.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6420
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6421 You can also change these with Customize. Select from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6422 @code{Options} menu @code{Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6423 (Customize)->Emacs->Environment->Sound->Sound...} or type @kbd{M-x
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6424 customize @key{RET} sound @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6425
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6426
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6427 @node Q5.3.2, Q5.3.3, Q5.3.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6428 @unnumberedsubsec Q5.3.2: How do I get funky sounds instead of a boring beep?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6429
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6430 Make sure your XEmacs was compiled with sound support, and then put this
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6431 in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6432
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6433 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6434 (load-default-sounds)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6435 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6436
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6437 @node Q5.3.3, Q5.3.4, Q5.3.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6438 @unnumberedsubsec Q5.3.3: What are NAS and ESD (EsounD)?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6439
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6440 @dfn{Network Audio System} (NAS) is a client-server sound library for X.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6441
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6442 @uref{http://radscan.com/nas.html}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6443
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6444 To build XEmacs with it, use the @file{configure} flag @samp{--with-sound=nas}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6445
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6446 @dfn{Enlightened Sound Daemon} (ESD or EsounD) is yet another sound system.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6447
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6448 @uref{http://www.tux.org/~ricdude/EsounD.html}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6449
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6450 To build XEmacs with it, use the @file{configure} flag @samp{--with-sound=esd}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6451
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6452 You can specify support for both with a flag like @samp{--with-sound=nas,esd}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6453
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6454 @node Q5.3.4, Q5.4.1, Q5.3.3, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6455 @unnumberedsubsec Q5.3.4: Sunsite sounds don't play.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6456
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6457 I'm having some trouble with sounds I've downloaded from sunsite. They
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6458 play when I run them through @code{showaudio} or cat them directly to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6459 @file{/dev/audio}, but XEmacs refuses to play them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6460
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6461 @email{gutschk@@uni-muenster.de, Markus Gutschke} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6462
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6463 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6464 [Many of] These files have an (erroneous) 24byte header that tells about
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6465 the format that they have been recorded in. If you cat them to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6466 @file{/dev/audio}, the header will be ignored and the default behavior
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6467 for /dev/audio will be used. This happens to be 8kHz uLaw. It is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6468 probably possible to fix the header by piping through @code{sox} and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6469 passing explicit parameters for specifying the sampling format; you then
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6470 need to perform a 'null' conversion from SunAudio to SunAudio.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6471 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6472
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6473 @unnumberedsec 5.4: Running an Interior Shell, Invoking Subprocesses
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6474
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6475 @node Q5.4.1, Q5.4.2, Q5.3.4, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6476 @unnumberedsubsec Q5.4.1: What is an interior shell?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6477
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6478 #### Write me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6479
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6480 @node Q5.4.2, Q5.4.3, Q5.4.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6481 @unnumberedsubsec Q5.4.2: How do I start up a second shell buffer?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6482
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6483 In the @code{*shell*} buffer:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6484
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6485 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6486 M-x rename-buffer @key{RET} *shell-1* @key{RET}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6487 M-x shell RET
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6488 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6489
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6490 This will then start a second shell. The key is that no buffer named
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6491 @samp{*shell*} can exist. It might be preferable to use @kbd{M-x
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6492 rename-uniquely} to rename the @code{*shell*} buffer instead of @kbd{M-x
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6493 rename-buffer}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6494
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6495 Alternately, you can set the variable @code{shell-multiple-shells}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6496 If the value of this variable is non-nil, each time shell mode is invoked,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6497 a new shell is made
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6498
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6499 @node Q5.4.3, Q5.4.4, Q5.4.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6500 @unnumberedsubsec Q5.4.3: Telnet from shell filters too much
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6501
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6502 I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6503 and use a telnet session within it. Everything works fine except that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6504 now all @samp{^M}'s are filtered out by Emacs. Fixes?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6505
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6506 Use @kbd{M-x rsh} or @kbd{M-x telnet} to open remote sessions rather
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6507 than doing rsh or telnet within the local shell buffer. You can also
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6508 use @kbd{M-x ssh} to open secure remote session if you have @code{ssh}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6509 installed.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6510
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6511 @node Q5.4.4, Q5.4.5, Q5.4.3, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6512 @unnumberedsubsec Q5.4.4: Strange things are happening in Shell Mode.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6513
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6514 Sometimes (i.e. it's not repeatable, and I can't work out why it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6515 happens) when I'm typing into shell mode, I hit return and only a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6516 portion of the command is given to the shell, and a blank prompt is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6517 returned. If I hit return again, the rest of the previous command is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6518 given to the shell.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6519
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6520 @email{martin@@xemacs.org, Martin Buchholz} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6521
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6522 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6523 There is a known problem with interaction between @code{csh} and the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6524 @code{filec} option and XEmacs. You should add the following to your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6525 @file{.cshrc}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6526
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6527 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6528 if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6529 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6530 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6531
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6532 @node Q5.4.5, Q5.4.6, Q5.4.4, External Subsystems
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6533 @unnumberedsubsec Q5.4.5: XEmacs complains "No such file or directory, diff"
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6534
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6535 or "ispell" or other commands that seem related to whatever you just
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6536 tried to do (M-x ediff or M-$, for example).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6537
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6538 There are a large number of common (in the sense that "everyone has
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6539 these, they really do") Unix utilities that are not provided with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6540 XEmacs. The GNU Project's implementations are available for Windows in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6541 the the Cygwin distribution (@uref{http://www.cygwin.com/}), which also
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6542 provides a complete Unix emulation environment (and thus makes ports of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6543 Unix utilities nearly trivial). Another implementation is that from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6544 MinGW (@uref{http://www.mingw.org/msys.shtml}). If you know of others,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6545 please let us know!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6546
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6547 @node Q5.4.6, Q5.5.1, Q5.4.5, External Subsystems
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6548 @unnumberedsubsec Q5.4.6: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6549
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6550 If you are getting an error like
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6551
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6552 @example
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6553 17797832 [main] bash 3468 fork_copy: linked dll/bss pass 0 failed,
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6554 0x675000..0x6756A0, done 0, windows pid 2708, Win 32 error 487
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6555 bash: fork: resource temporarily unavailable
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6556 @end example
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6557
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6558 when trying to run bash using @kbd{M-x shell}, then you need to rebase
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6559 your Cygwin DLL's. This is a known problem with Cygwin. To fix:
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6560
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6561 @enumerate
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6562 @item
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6563 Download the @file{rebase} utility from Cygwin setup (it's under
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6564 @samp{System}).
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6565 @item
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6566 Kill @strong{all} of your Cygwin processes, including all of your
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6567 shells and all background processes. Use @code{ps -a} to list all the
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6568 processes you need to kill.
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6569 @item
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6570 From a DOS prompt, run @file{ash} (@strong{not} @file{bash},
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6571 @file{tcsh} or @file{zsh}). Do not try to be clever and @code{exec
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6572 /bin/ash} from your last shell; it won't work.
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6573 @item
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6574 Type @code{/bin/rebaseall -v}.
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6575 @end enumerate
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6576
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6577 The problem should now be fixed -- at least, until you install another
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6578 Cygwin package with DLL's, in which case you may have to repeat the
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6579 procedure.
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6580
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6581 @unnumberedsec 5.5: Multiple Device Support
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6582
2995
574c005d1f5c [xemacs-hg @ 2005-10-14 02:11:49 by ben]
ben
parents: 2769
diff changeset
6583 @node Q5.5.1, Q5.5.2, Q5.4.6, External Subsystems
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6584 @unnumberedsubsec Q5.5.1: How do I open a frame on another screen of my multi-headed display?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6585
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6586 Use the command @kbd{M-x make-frame-on-display}. This command is also
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6587 on the File menu in the menubar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6588
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6589 The command @code{make-frame-on-tty} also exists, which will establish a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6590 connection to any tty-like device. Opening the TTY devices should be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6591 left to @code{gnuclient}, though.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6592
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6593 @node Q5.5.2, Q5.5.3, Q5.5.1, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6594 @unnumberedsubsec Q5.5.2: Can I really connect to a running XEmacs after calling up over a modem? How?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6595
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6596 Yes. Use @code{gnuclient -nw}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6597
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6598 Also see @ref{Q5.5.3, How do I disable gnuserv from opening a new frame?}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6599
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6600 @node Q5.5.3, Q5.5.4, Q5.5.2, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6601 @unnumberedsubsec Q5.5.3: How do I disable gnuserv from opening a new frame?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6602
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6603 If you set the @code{gnuserv-frame} variable to the frame that should be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6604 used to display buffers that are pulled up, a new frame will not be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6605 created. For example, you could put
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6606
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6607 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6608 (setq gnuserv-frame (selected-frame))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6609 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6610
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6611 early on in your @file{init.el}, to ensure that the first frame created
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6612 is the one used for your gnuserv buffers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6613
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6614 There is an option to set the gnuserv target to the current frame. See
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6615 @code{Options->Display->"Other Window" Location->Make Current Frame Gnuserv Target}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6616
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6617 You can also change this with Customize. Select from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6618 @code{Options} menu @code{Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6619 (Customize)->Emacs->Environment->Gnuserv->Gnuserv Frame...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6620 @kbd{M-x customize @key{RET} gnuserv @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6621
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6622
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6623 @node Q5.5.4, Q5.5.5, Q5.5.3, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6624 @unnumberedsubsec Q5.5.4: How do I start gnuserv so that each subsequent XEmacs is a client?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6625
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6626 Put the following in your @file{init.el} file to start the server:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6627
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6628 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6629 (gnuserv-start)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6630 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6631
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6632 Start your first XEmacs as usual. After that, you can do:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6633
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6634 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6635 gnuclient randomfilename
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6636 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6637
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6638 from the command line to get your existing XEmacs process to open a new
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6639 frame and visit randomfilename in that window. When you're done editing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6640 randomfilename, hit @kbd{C-x #} to kill the buffer and get rid of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6641 frame.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6642
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6643 See also man page of gnuclient.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6644
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6645 @node Q5.5.5, , Q5.5.4, External Subsystems
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6646 @unnumberedsubsec Q5.5.5: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6647
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6648 @email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6649 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6650 Here is one of the solutions, we have this in a script called
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6651 @file{etc/editclient.sh}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6652 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6653 #!/bin/sh
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6654 if gnuclient -batch -eval t >/dev/null 2>&1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6655 then
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6656 exec gnuclient $@{1+"$@@"@}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6657 else
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6658 xemacs -unmapped -f gnuserv-start &
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6659 until gnuclient -batch -eval t >/dev/null 2>&1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6660 do
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6661 sleep 1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6662 done
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6663 exec gnuclient $@{1+"$@@"@}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6664 fi
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6665 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6666
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6667 Note that there is a known problem when running XEmacs and 'gnuclient
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6668 -nw' on the same TTY.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6669 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6670
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6671 @node Internet, Advanced, External Subsystems, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6672 @unnumbered 6 Connecting to the Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6673
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6674 This is part 6 of the XEmacs Frequently Asked Questions list. This
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6675 section is devoted connecting to the Internet.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6676
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6677 @menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6678 6.0: General Mail and News
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6679 * Q6.0.1:: What are the various packages for reading mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6680 * Q6.0.2:: How can I send mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6681 * Q6.0.3:: How do I get my outgoing mail archived?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6682 * Q6.0.4:: How can I read and/or compose MIME messages?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6683 * Q6.0.5:: How do I customize the From line?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6684 * Q6.0.6:: How do I get my MUA to filter mail for me?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6685 * Q6.0.7:: Remote mail reading with an MUA.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6686 * Q6.0.8:: An MUA gets an error incorporating new mail.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6687 * Q6.0.9:: Why isn't @file{movemail} working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6688 * Q6.0.10:: How do I make my MUA display graphical smilies?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6689 * Q6.0.11:: How can I get those oh-so-neat X-Face lines?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6690
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6691 6.1: Reading Mail with VM
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6692 * Q6.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6693 * Q6.1.2:: How can I get VM to automatically check for new mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6694 * Q6.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6695 * Q6.1.4:: Is there a mailing list or FAQ for VM?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6696 * Q6.1.5:: How do I make VM stay in a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6697 * Q6.1.6:: Customization of VM not covered in the manual, or here.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6698
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6699 6.2: Reading Netnews and Mail with Gnus
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6700 * Q6.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6701 * Q6.2.2:: How do I make Gnus stay within a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6702
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6703 6.3: FTP Access
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6704 * Q6.3.1:: Can I edit files on other hosts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6705 * Q6.3.2:: What is EFS?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6706
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6707 6.4: Web Browsing with W3
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6708 * Q6.4.1:: What is W3?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6709 * Q6.4.2:: How do I run W3 from behind a firewall?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6710 * Q6.4.3:: Is it true that W3 supports style sheets and tables?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6711 @end menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6712
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6713 @unnumberedsec 6.0: General Mail and News
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6714
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6715 @node Q6.0.1, Q6.0.2, Internet, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6716 @unnumberedsubsec Q6.0.1: What are the various packages for reading mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6717
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6718 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6719
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6720 @node Q6.0.2, Q6.0.3, Q6.0.1, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6721 @unnumberedsubsec Q6.0.2: How can I send mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6722
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6723 Under Unix and Mac OS X, the @samp{sendmail} package is normally used
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6724 for this.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6725 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6726
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6727 Under Windows, you need to use @samp{smtpmail}, which communicates
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6728 directly with the mail server, as there is no @file{sendmail} program
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6729 running. To get it working, use code like the following in your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6730 @file{init.el} file:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6731
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6732 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6733 ;; Get mail working under Windows.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6734 (setq message-send-mail-function 'smtpmail-send-it) ; for message/Gnus
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6735 (setq send-mail-function 'smtpmail-send-it) ; for C-x m, etc.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6736 ;; the following ensures that mail problems can be debugged: it logs a trace
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6737 ;; of the SMTP conversation to *trace of SMTP session to <somewhere>*.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6738 (setq smtpmail-debug-info t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6739 ;; Substitute your info here.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6740 ;(setq user-mail-address "ben@@xemacs.org")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6741 ;(setq user-full-name "Ben Wing")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6742 ;(setq smtpmail-default-smtp-server "smtp.myserver.myisp.com")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6743 ;; The following two aren't completely necessary but may help.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6744 ;(setq smtpmail-local-domain "666.com")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6745 ;(setq smtpmail-sendto-domain "666.com")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6746 ;; If your SMTP server requires a username/password to authenticate, as
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6747 ;; many do nowadays, set them like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6748 ;(setq smtpmail-auth-credentials ; or use ~/.authinfo
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6749 ; '(("smtp.myserver.myisp.com" 25 "USER@@SOMEWHERE" "PASSWORD")))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6750
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6751 ;; Other possibilities for getting smtpmail to work:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6752 ;;
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6753 ;; If for some reason you need to authenticate using the STARTTLS protocol
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6754 ;; (don't look into this unless you know what it is), use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6755 ;; (setq smtpmail-starttls-credentials
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6756 ;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6757 ;; Requires external program
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6758 ;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6759 ;; See http://www.ietf.org/rfc/rfc2246.txt,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6760 ;; http://www.ietf.org/rfc/rfc2487.txt
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6761 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6762
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6763 The lines you need to care about are those that set
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6764 @code{user-mail-address}, @code{user-full-name},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6765 @code{smtpmail-default-smtp-server}, and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6766 @code{smtpmail-auth-credentials}. You need to set these with,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6767 respectively, your email address, your full name, the SMTP server you
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6768 use for outgoing mail, and the username and password you need to log
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6769 in to your SMTP server. (If for some reason your SMTP server doesn't
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6770 require logging in to send mail, don't uncomment this last line.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6771
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6772 The other settings may be useful in specific cases, but you should know what
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6773 you're doing before enabling them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6774
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6775 @node Q6.0.3, Q6.0.4, Q6.0.2, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6776 @unnumberedsubsec Q6.0.3: How do I get my outgoing mail archived?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6777
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6778 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6779 (setq mail-archive-file-name "~/outbox")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6780 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6781
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6782 @node Q6.0.4, Q6.0.5, Q6.0.3, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6783 @unnumberedsubsec Q6.0.4: How can I read and/or compose MIME messages?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6784
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6785 VM, MH-E and GNUS support MIME natively. Other MUAs may or may not
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6786 have MIME support; refer to their documentation and other resources,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6787 such as web pages and mailing lists. Packages like SEMI/WEMI may be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6788 useful in connection with MUAs like mew and Wanderlust.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6789
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6790 @node Q6.0.5, Q6.0.6, Q6.0.4, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6791 @unnumberedsubsec Q6.0.5: How do I customize the From line?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6792
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6793 How do I change the @samp{From:} line? I have set gnus-user-from-line
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6794 to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6795 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6796 Gail Gurman <gail.gurman@@sybase.com>
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6797 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6798 @noindent , but XEmacs Gnus doesn't use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6799 it. [This should apply to all MUA's. --ed] Instead it uses
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6800 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6801 Gail Mara Gurman @email{gailg@@deall}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6802 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6803 @noindent and then complains
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6804 that it's incorrect. Also, as you perhaps can see, my Message-ID is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6805 screwy. How can I change that?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6806
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6807 @email{larsi@@ifi.uio.no, Lars Magne Ingebrigtsen} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6808
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6809 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6810 Set @code{user-mail-address} to @samp{gail.gurman@@sybase.com} or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6811 @code{mail-host-address} to @samp{sybase.com}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6812 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6813
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6814 @node Q6.0.6, Q6.0.7, Q6.0.5, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6815 @unnumberedsubsec Q6.0.6: How do I get my MUA to filter mail for me?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6816
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6817 One possibility is to use procmail to split your mail before it gets to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6818 the MUA. I prefer this personally, since there are many strange and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6819 wonderful things one can do with procmail. Procmail may be found at
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6820 @uref{http://www.procmail.org/}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6821
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6822 Also see the Mail Filtering FAQ at:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6823 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6824 @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6825 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6826 @uref{http://www.faqs.org/faqs/mail/filtering-faq/}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6827
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6828 @node Q6.0.7, Q6.0.8, Q6.0.6, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6829 @unnumberedsubsec Q6.0.7: Remote mail reading with an MUA.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6830
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6831 My mailbox lives at the office on a big honkin server. My regular INBOX
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6832 lives on my honkin desktop machine. I now can PPP to the office from
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6833 home which is far from honking... I'd like to be able to read mail at
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6834 home without storing it here and I'd like to use xemacs and the MUA at
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6835 home... Is there a recommended setup?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6836
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6837 @email{nuspl@@nvwls.cc.purdue.edu, Joseph J. Nuspl Jr.} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6838
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6839 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6840 There are several ways to do this.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6841
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6842 @enumerate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6843 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6844 Set your display to your home machine and run dxpc or one of the other X
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6845 compressors.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6846
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6847 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6848 NFS mount your desktop machine on your home machine and modify your pop
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6849 command on your home machine to rsh to your desktop machine and actually
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6850 do the pop get's.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6851
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6852 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6853 Run a POP server on your desktop machine as well and do a sort of two
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6854 tiered POP get.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6855 @end enumerate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6856 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6857
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6858 @email{wmperry@@monolith.spry.com, William Perry} adds:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6859
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6860 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6861 Or you could run a pop script periodically on your desktop machine, and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6862 just use ange-ftp or NFS to get to your mailbox. I used to do this all
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6863 the time back at IU.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6864 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6865
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6866 @node Q6.0.8, Q6.0.9, Q6.0.7, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6867 @unnumberedsubsec Q6.0.8: An MUA gets an error incorporating new mail.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6868
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6869 rmail and VM, and probably other MUA's as well, get new mail from
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6870 your mailbox (called @file{/var/mail/$USER} or @file{/var/spool/mail/$USER}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6871 or something similar) using a program called @code{movemail}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6872 This program interlocks with @code{/bin/mail} using the protocol
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6873 defined by @code{/bin/mail}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6874
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6875 There are various different protocols in general use, which you need to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6876 specify using the @samp{--mail-locking} option to @file{configure}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6877
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6878 @table @samp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6879 @item lockf
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6880 POSIX file locking with @code{lockf()}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6881 @item flock
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6882 BSD file locking with @code{flock()}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6883 @item dot
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6884 To manipulate mail file @file{foo}, first create file @file{foo.lock}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6885 @item locking
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6886 Use @code{locking()}, Microsoft's renamed @code{flock()}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6887 @item mmdf
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6888 Use @code{lk_open()} and @code{lk_close()} as defined by the Multi-channel
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6889 Memo Distribution Facility
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6890 @item pop
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6891 Retrieve mail using POP (the Post Office Protocol). This is the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6892 default for Cygwin/MinGW.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6893 @end table
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6894
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6895 @strong{IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6896 SYSTEM, YOU CAN LOSE MAIL!}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6897
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6898 Usually the value is correctly determined automatically:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6899 @file{configure} tries to detect the method in use, and defaults exist
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6900 on systems for which this doesn't work.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6901
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6902 However, if you run into problems incorporating new mail, it may be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6903 because an incorrect method is being used.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6904
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6905 If your system uses the lock file protocol, and permissions are set
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6906 so that ordinary users cannot write lock files in the mail spool
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6907 directory, you may need to make @file{movemail} setgid to a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6908 suitable group such as @samp{mail}. You can use these commands (as
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6909 root):
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6910
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6911 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6912 chgrp mail movemail
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6913 chmod 2755 movemail
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6914 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6915
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6916 If you are using the @samp{pop} locking method, @file{movemail} must
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6917 be setuid root.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6918
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6919 Installation normally copies movemail from the build directory to an
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6920 installation directory which is usually under @file{/usr/local/lib}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6921 The installed copy of @file{movemail} is usually in the directory
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6922 @file{/usr/local/lib/xemacs-VERSION/TARGET} (for example,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6923 @file{/usr/local/lib/xemacs-21.4.15/i686-pc-cygwin}). You must change
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6924 the group and mode of the installed copy; changing the group and mode
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6925 of the build directory copy is ineffective.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6926
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6927 @node Q6.0.9, Q6.0.10, Q6.0.8, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6928 @unnumberedsubsec Q6.0.9: Why isn't @file{movemail} working?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6929
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6930 @xref{Q6.0.8}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6931
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6932 Note also that older versions of Mozilla came with a @file{movemail}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6933 program that is @strong{not} compatible with XEmacs. Do not use it.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6934 Always use the @file{movemail} installed with your XEmacs. Failure to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6935 do so can result in lost mail.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6936
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6937 @node Q6.0.10, Q6.0.11, Q6.0.9, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6938 @unnumberedsubsec Q6.0.10: How do I make my MUA display graphical smilies?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6939 For mh-e use the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6940
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6941 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6942 (add-hook 'mh-show-mode-hook '(lambda ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6943 (smiley-region (point-min)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6944 (point-max))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6945 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6946
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6947 @email{bill@@carpenter.ORG, WJCarpenter} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6948 For VM use the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6949 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6950 (autoload 'smiley-region "smiley" nil t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6951 (add-hook 'vm-select-message-hook
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6952 '(lambda ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6953 (smiley-region (point-min)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6954 (point-max))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6955 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6956
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6957 For tm use the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6958 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6959 (autoload 'smiley-buffer "smiley" nil t)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6960 (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6961 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6962
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6963 @node Q6.0.11, Q6.1.1, Q6.0.10, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6964 @unnumberedsubsec Q6.0.11: How can I get those oh-so-neat X-Face lines?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6965
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6966 Firstly there is an ftp site which describes X-faces and has the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6967 associated tools mentioned below, at
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6968 @uref{http://ftp.cs.indiana.edu/pub/faces/}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6969
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6970 Then the steps are
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6971
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6972 @enumerate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6973 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6974 Create 48x48x1 bitmap with your favorite tool
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6975
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6976 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6977 Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6978 and then compile the face.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6979
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6980 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6981 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6982 cat file.xbm | xbm2ikon |compface > file.face
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6983 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6984
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6985 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6986 Then be sure to quote things that are necessary for emacs strings:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6987
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6988 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6989 cat ./file.face | sed 's/\\/\\\\/g'
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6990 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6991 \ @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6992 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6993 | sed 's/\"/\\\"/g' > ./file.face.quoted
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6994 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6995
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6996 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6997 Then set up emacs to include the file as a mail header - there were a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6998 couple of suggestions here---either something like:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
6999
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7000 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7001 (setq mail-default-headers
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7002 "X-Face: @email{Ugly looking text string here}")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7003 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7004
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7005 Or, alternatively, as:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7006
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7007 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7008 (defun mail-insert-x-face ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7009 (save-excursion
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7010 (goto-char (point-min))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7011 (search-forward mail-header-separator)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7012 (beginning-of-line)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7013 (insert "X-Face:")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7014 (insert-file-contents "~/.face")))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7015
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7016 (add-hook 'mail-setup-hook 'mail-insert-x-face)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7017 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7018 @end enumerate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7019
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7020 However, 2 things might be wrong:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7021
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7022 Some versions of pbmtoicon produces some header lines that is not
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7023 expected by the version of compface that I grabbed. So I found I had to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7024 include a @code{tail +3} in the pipeline like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7025
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7026 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7027 cat file.xbm | xbm2ikon | tail +3 |compface > file.face
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7028 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7029
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7030 Some people have also found that if one uses the @code{(insert-file)}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7031 method, one should NOT quote the face string using the sed script .
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7032
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7033 It might also be helpful to use @email{stig@@hackvan.com, Stig's} script
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7034 xbm2face (included in the compface distribution at XEmacs.org) to do the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7035 conversion.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7036
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7037 Contributors for this item:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7038
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7039 Paul Emsley,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7040 Ricardo Marek,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7041 Amir J. Katz,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7042 Glen McCort,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7043 Heinz Uphoff,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7044 Peter Arius,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7045 Paul Harrison, and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7046 Vegard Vesterheim
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7047
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7048 @unnumberedsec 6.1: Reading Mail with VM
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7049
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7050 @node Q6.1.1, Q6.1.2, Q6.0.11, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7051 @unnumberedsubsec Q6.1.1: How do I set up VM to retrieve mail from a remote site using POP?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7052
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7053 Use @code{vm-spool-files}, like this for example:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7054
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7055 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7056 (setq vm-spool-files '("/var/spool/mail/wing"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7057 "netcom23.netcom.com:110:pass:wing:MYPASS"))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7058 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7059
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7060 Of course substitute your actual password for MYPASS.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7061
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7062 @node Q6.1.2, Q6.1.3, Q6.1.1, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7063 @unnumberedsubsec Q6.1.2: How can I get VM to automatically check for new mail?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7064
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7065 @email{turner@@lanl.gov, John Turner} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7066
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7067 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7068 Use the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7069
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7070 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7071 (setq vm-auto-get-new-mail 60)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7072 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7073 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7074
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7075 @node Q6.1.3, Q6.1.4, Q6.1.2, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7076 @unnumberedsubsec Q6.1.3: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7077
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7078 Set @code{vm-reply-ignored-addresses} to a list, like
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7079
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7080 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7081 (setq vm-reply-ignored-addresses
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7082 '("wing@@nuspl@@nvwls.cc.purdue.edu,netcom[0-9]*.netcom.com"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7083 "wing@@netcom.com" "wing@@xemacs.org"))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7084 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7085
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7086 Note that each string is a regular expression.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7087
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7088 @node Q6.1.4, Q6.1.5, Q6.1.3, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7089 @unnumberedsubsec Q6.1.4: Is there a mailing list or FAQ for VM?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7090
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7091 A FAQ for VM exists at @uref{http://www.wonderworks.com/vm/FAQ.html}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7092
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7093 VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7094
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7095 @node Q6.1.5, Q6.1.6, Q6.1.4, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7096 @unnumberedsubsec Q6.1.5: How do I make VM stay in a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7097
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7098 John.@email{Cooper@@Eng.Sun.COM, John S Cooper} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7099
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7100 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7101 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7102 ; Don't use multiple frames
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7103 (setq vm-frame-per-composition nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7104 (setq vm-frame-per-folder nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7105 (setq vm-frame-per-edit nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7106 (setq vm-frame-per-summary nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7107 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7108 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7109
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7110 @node Q6.1.6, Q6.2.1, Q6.1.5, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7111 @unnumberedsubsec Q6.1.6: Customization of VM not covered in the manual, or here.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7112
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7113 @email{boffi@@hp735.stru.polimi.it, giacomo boffi} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7114
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7115 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7116 The meta-answer is to look into the file @file{vm-vars.el}, in the vm
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7117 directory of the lisp library.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7118
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7119 @file{vm-vars.el} contains, initializes and carefully describes, with
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7120 examples of usage, the plethora of user options that @emph{fully}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7121 control VM's behavior.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7122
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7123 Enter vm-vars, @code{forward-search} for toolbar, find the variables
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7124 that control the toolbar placement, appearance, existence, copy to your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7125 @file{init.el} or @file{.vm} and modify according to the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7126 detailed instructions.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7127
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7128 The above also applies to all the various features of VM: search for
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7129 some keywords, maybe the first you conjure isn't appropriate, find the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7130 appropriate variables, copy and experiment.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7131 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7132
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7133 @unnumberedsec 6.2: Reading Netnews and Mail with Gnus
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7134
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7135 @node Q6.2.1, Q6.2.2, Q6.1.6, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7136 @unnumberedsubsec Q6.2.1: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7137
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7138 The Gnus numbering issues are not meant for mere mortals to know them.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7139 If you feel you @emph{must} enter the muddy waters of Gnus, visit the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7140 excellent FAQ, maintained by Justin Sheehy, at:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7141
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7142 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7143 @uref{http://my.gnus.org/FAQ/}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7144 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7145
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7146 See also Gnus home page
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7147 @example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7148 @uref{http://www.gnus.org/}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7149 @end example
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7150
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7151 @node Q6.2.2, Q6.3.1, Q6.2.1, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7152 @unnumberedsubsec Q6.2.2: How do I make Gnus stay within a single frame?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7153
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7154 The toolbar code to start Gnus opens the new frame---and it's a feature
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7155 rather than a bug. If you don't like it, but would still like to click
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7156 on the seemly icon, use the following code:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7157
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7158 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7159 (defun toolbar-news ()
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7160 (gnus))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7161 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7162
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7163 It will redefine the callback function of the icon to just call
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7164 @code{gnus}, without all the fancy frame stuff.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7165
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7166 @unnumberedsec 6.3: FTP Access
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7167
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7168 @node Q6.3.1, Q6.3.2, Q6.2.2, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7169 @unnumberedsubsec Q6.3.1: Can I edit files on other hosts?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7170
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7171 Yes. Of course XEmacs can use any network file system (such as NFS or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7172 Windows file sharing) you have available, and includes some
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7173 optimizations and safety features appropriate to those environments.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7174
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7175 It is also possible to transparently edit files via FTP, ssh, or rsh. That
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7176 is, XEmacs makes a local copy using the transport in the background, and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7177 automatically refreshes the remote original from that copy when you save
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7178 it. XEmacs also is capable of doing file system manipulations like
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7179 creating and removing directories and files. The FTP interface is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7180 provided by the standard @samp{efs} package @ref{Top, EFS, , efs}. The
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7181 ssh/rsh interface is provided by the optional @samp{tramp} package
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7182 @ref{Top, TRAMP, , tramp}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7183
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7184 @node Q6.3.2, Q6.4.1, Q6.3.1, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7185 @unnumberedsubsec Q6.3.2: What is EFS?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7186
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7187 #### Write me.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7188
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7189 @unnumberedsec 6.4: Web Browsing with W3
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7190
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7191 @node Q6.4.1, Q6.4.2, Q6.3.2, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7192 @unnumberedsubsec Q6.4.1: What is W3?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7193
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7194 W3 is an advanced graphical browser written in Emacs lisp that runs on
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7195 XEmacs. It has full support for cascaded style sheets, and more...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7196
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7197 It has a home web page at
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7198 @uref{http://www.cs.indiana.edu/elisp/w3/docs.html}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7199
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7200 @node Q6.4.2, Q6.4.3, Q6.4.1, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7201 @unnumberedsubsec Q6.4.2: How do I run W3 from behind a firewall?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7202
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7203 There is a long, well-written, detailed section in the W3 manual that
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7204 describes how to do this. Look in the section entitled "Firewalls".
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7205
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7206 @node Q6.4.3, , Q6.4.2, Internet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7207 @unnumberedsubsec Q6.4.3: Is it true that W3 supports style sheets and tables?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7208
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7209 Yes, and much more. W3, as distributed with the latest XEmacs is a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7210 full-featured web browser.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7211
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7212 @node Advanced, Other Packages, Internet, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7213 @unnumbered 7 Advanced Customization Using XEmacs Lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7214
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7215 This is part 7 of the XEmacs Frequently Asked Questions list. This
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7216 section is devoted to advanced customization using XEmacs Lisp.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7217
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7218 @menu
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7219 7.0: Emacs Lisp and @file{init.el}
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7220 * Q7.0.1:: What version of Emacs am I running?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7221 * Q7.0.2:: How can I evaluate Emacs-Lisp expressions?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7222 * Q7.0.3:: @code{(setq tab-width 6)} behaves oddly.
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7223 * Q7.0.4:: How can I add directories to the @code{load-path}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7224 * Q7.0.5:: How to check if a lisp function is defined?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7225 * Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7226
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7227 7.1: Emacs Lisp Programming Techniques
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7228 * Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7229 * Q7.1.2:: Can I generate "fake" keyboard events?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7230 * Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7231 * Q7.1.4:: What is the performance hit of @code{let}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7232 * Q7.1.5:: What is the recommended use of @code{setq}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7233 * Q7.1.6:: What is the typical misuse of @code{setq}?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7234 * Q7.1.7:: I like the @code{do} form of cl, does it slow things down?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7235 * Q7.1.8:: I like recursion, does it slow things down?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7236 * Q7.1.9:: How do I put a glyph as annotation in a buffer?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7237 * Q7.1.10:: @code{map-extents} won't traverse all of my extents!
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7238 * Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7239
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7240 7.2: Mathematics
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7241 * Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp?
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7242 * Q7.2.2:: XEmacs segfaults when I use very big numbers!
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7243 * Q7.2.3:: Bignums are really slow!
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7244 * Q7.2.4:: Equal bignums don't compare as equal! What gives?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7245 @end menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7246
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7247 @unnumberedsec 7.0: Emacs Lisp and @file{init.el}
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7248
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7249 @node Q7.0.1, Q7.0.2, Advanced, Advanced
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7250 @unnumberedsubsec Q7.0.1: What version of Emacs am I running?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7251
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7252 How can @file{init.el} determine which of the family of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7253 Emacsen I am using?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7254
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7255 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7256 XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7257 example given in @file{etc/sample.init.el} (@file{etc/sample.emacs} in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7258 XEmacs versions prior to 21.4). There are other nifty things in there
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7259 as well!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7260
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7261 For all new code, all you really need to do is:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7262
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7263 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7264 (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7265 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7266
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7267 @node Q7.0.2, Q7.0.3, Q7.0.1, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7268 @unnumberedsubsec Q7.0.2: How can I evaluate Emacs-Lisp expressions?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7269
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7270 I know I can evaluate Elisp expressions from @code{*scratch*} buffer
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7271 with @kbd{C-j} after the expression. How do I do it from another
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7272 buffer?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7273
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7274 Press @kbd{M-:} (the default binding of @code{eval-expression}), and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7275 enter the expression to the minibuffer.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7276
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7277 @node Q7.0.3, Q7.0.4, Q7.0.2, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7278 @unnumberedsubsec Q7.0.3: @code{(setq tab-width 6)} behaves oddly.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7279
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7280 If you put @code{(setq tab-width 6)} in your
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7281 @file{init.el} file it does not work! Is there a reason
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7282 for this? If you do it at the EVAL prompt it works fine!! How strange.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7283
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7284 Use @code{setq-default} instead, since @code{tab-width} is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7285 all-buffer-local.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7286
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7287 @node Q7.0.4, Q7.0.5, Q7.0.3, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7288 @unnumberedsubsec Q7.0.4: How can I add directories to the @code{load-path}?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7289
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7290 Here are two ways to do that, one that puts your directories at the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7291 front of the load-path, the other at the end:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7292
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7293 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7294 ;;; Add things at the beginning of the load-path, do not add
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7295 ;;; duplicate directories:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7296 (pushnew "bar" load-path :test 'equal)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7297
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7298 (pushnew "foo" load-path :test 'equal)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7299
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7300 ;;; Add things at the end, unconditionally
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7301 (setq load-path (nconc load-path '("foo" "bar")))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7302 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7303
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7304 @email{keithh@@nortel.ca, keith (k.p.) hanlan} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7305
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7306 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7307 To add directories using Unix shell metacharacters use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7308 @file{expand-file-name} like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7309
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7310 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7311 (push (expand-file-name "~keithh/.emacsdir") load-path)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7312 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7313 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7314
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7315 @node Q7.0.5, Q7.0.6, Q7.0.4, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7316 @unnumberedsubsec Q7.0.5: How to check if a lisp function is defined?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7317
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7318 Use the following elisp:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7319
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7320 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7321 (fboundp 'foo)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7322 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7323
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7324 It's almost always a mistake to test @code{emacs-version} or any similar
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7325 variables.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7326
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7327 Instead, use feature-tests, such as @code{featurep}, @code{boundp},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7328 @code{fboundp}, or even simple behavioral tests, eg.:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7329
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7330 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7331 (defvar foo-old-losing-code-p
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7332 (condition-case nil (progn (losing-code t) nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7333 (wrong-number-of-arguments t)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7334 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7335
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7336 There is an incredible amount of broken code out there which could work
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7337 much better more often in more places if it did the above instead of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7338 trying to divine its environment from the value of one variable.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7339
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7340 @node Q7.0.6, Q7.1.1, Q7.0.5, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7341 @unnumberedsubsec Q7.0.6: Can I force the output of @code{(face-list)} to a buffer?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7342
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7343 It would be good having it in a buffer, as the output of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7344 @code{(face-list)} is too wide to fit to a minibuffer.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7345
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7346 Evaluate the expression in the @samp{*scratch*} buffer with point after
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7347 the rightmost paren and typing @kbd{C-j}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7348
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7349 If the minibuffer smallness is the only problem you encounter, you can
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7350 simply press @kbd{C-h l} to get the former minibuffer contents in a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7351 buffer.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7352
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7353 @unnumberedsec 7.1: Emacs Lisp Programming Techniques
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7354
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7355 @node Q7.1.1, Q7.1.2, Q7.0.6, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7356 @unnumberedsubsec Q7.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7357
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7358 @email{clerik@@naggum.no, Erik Naggum} writes;
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7359
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7360 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7361 Emacs has a legacy of keyboards that produced characters with modifier
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7362 bits, and therefore map a variety of input systems into this scheme even
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7363 today. XEmacs is instead optimized for X events. This causes an
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7364 incompatibility in the way key sequences are specified, but both Emacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7365 and XEmacs will accept a key sequence as a vector of lists of modifiers
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7366 that ends with a key, e.g., to bind @kbd{M-C-a}, you would say
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7367 @code{[(meta control a)]} in both Emacsen. XEmacs has an abbreviated
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7368 form for a single key, just (meta control a). Emacs has an abbreviated
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7369 form for the Control and the Meta modifiers to string-characters (the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7370 ASCII characters), as in @samp{\M-\C-a}. XEmacs users need to be aware
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7371 that the abbreviated form works only for one-character key sequences,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7372 while Emacs users need to be aware that the string-character is rather
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7373 limited. Specifically, the string-character can accommodate only 256
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7374 different values, 128 of which have the Meta modifier and 128 of which
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7375 have not. In each of these blocks, only 32 characters have the Control
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7376 modifier. Whereas @code{[(meta control A)]} differs from @code{[(meta
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7377 control a)]} because the case differs, @samp{\M-\C-a} and @samp{\M-\C-A}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7378 do not. Programmers are advised to use the full common form, both
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7379 because it is more readable and less error-prone, and because it is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7380 supported by both Emacsen.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7381 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7382
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7383 Another (even safer) way to be sure of the key-sequences is to use the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7384 @code{read-kbd-macro} function, which takes a string like @samp{C-c
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7385 <up>}, and converts it to the internal key representation of the Emacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7386 you use. The function is available both on XEmacs and GNU Emacs.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7387
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7388 @node Q7.1.2, Q7.1.3, Q7.1.1, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7389 @unnumberedsubsec Q7.1.2: Can I generate "fake" keyboard events?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7390
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7391 I wonder if there is an interactive function that can generate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7392 @dfn{fake} keyboard events. This way, I could simply map them inside
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7393 XEmacs.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7394
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7395 This seems to work:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7396
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7397 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7398 (defun cg--generate-char-event (ch)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7399 "Generate an event, as if ch has been typed"
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7400 (dispatch-event (character-to-event ch)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7401
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7402 ;; Backspace and Delete stuff
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7403 (global-set-key [backspace]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7404 (lambda () (interactive) (cg--generate-char-event 127)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7405 (global-set-key [unknown_keysym_0x4]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7406 (lambda () (interactive) (cg--generate-char-event 4)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7407 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7408
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7409 @node Q7.1.3, Q7.1.4, Q7.1.2, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7410 @unnumberedsubsec Q7.1.3: Could you explain @code{read-kbd-macro} in more detail?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7411
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7412 The @code{read-kbd-macro} function returns the internal Emacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7413 representation of a human-readable string (which is its argument).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7414 Thus:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7415
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7416 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7417 (read-kbd-macro "C-c C-a")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7418 @result{} [(control ?c) (control ?a)]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7419
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7420 (read-kbd-macro "C-c C-. <up>")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7421 @result{} [(control ?c) (control ?.) up]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7422 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7423
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7424 In GNU Emacs the same forms will be evaluated to what GNU Emacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7425 understands internally---the sequences @code{"\C-x\C-c"} and @code{[3
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7426 67108910 up]}, respectively.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7427
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7428 The exact @dfn{human-readable} syntax is defined in the docstring of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7429 @code{edmacro-mode}. I'll repeat it here, for completeness.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7430
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7431 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7432 Format of keyboard macros during editing:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7433
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7434 Text is divided into @dfn{words} separated by whitespace. Except for
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7435 the words described below, the characters of each word go directly as
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7436 characters of the macro. The whitespace that separates words is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7437 ignored. Whitespace in the macro must be written explicitly, as in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7438 @kbd{foo @key{SPC} bar @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7439
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7440 @itemize @bullet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7441 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7442 The special words @kbd{RET}, @kbd{SPC}, @kbd{TAB}, @kbd{DEL}, @kbd{LFD},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7443 @kbd{ESC}, and @kbd{NUL} represent special control characters. The
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7444 words must be written in uppercase.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7445
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7446 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7447 A word in angle brackets, e.g., @code{<return>}, @code{<down>}, or
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7448 @code{<f1>}, represents a function key. (Note that in the standard
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7449 configuration, the function key @code{<return>} and the control key
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7450 @key{RET} are synonymous.) You can use angle brackets on the words
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7451 @key{RET}, @key{SPC}, etc., but they are not required there.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7452
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7453 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7454 Keys can be written by their @sc{ascii} code, using a backslash followed
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7455 by up to six octal digits. This is the only way to represent keys with
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7456 codes above \377.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7457
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7458 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7459 One or more prefixes @kbd{M-} (meta), @kbd{C-} (control), @kbd{S-}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7460 (shift), @kbd{A-} (alt), @kbd{H-} (hyper), and @kbd{s-} (super) may
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7461 precede a character or key notation. For function keys, the prefixes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7462 may go inside or outside of the brackets: @code{C-<down>} @equiv{}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7463 @code{<C-down>}. The prefixes may be written in any order: @kbd{M-C-x}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7464 @equiv{} @kbd{C-M-x}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7465
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7466 Prefixes are not allowed on multi-key words, e.g., @kbd{C-abc}, except
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7467 that the Meta prefix is allowed on a sequence of digits and optional
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7468 minus sign: @kbd{M--123} @equiv{} @kbd{M-- M-1 M-2 M-3}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7469
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7470 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7471 The @code{^} notation for control characters also works: @kbd{^M}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7472 @equiv{} @kbd{C-m}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7473
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7474 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7475 Double angle brackets enclose command names: @code{<<next-line>>} is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7476 shorthand for @kbd{M-x next-line @key{RET}}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7477
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7478 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7479 Finally, @code{REM} or @code{;;} causes the rest of the line to be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7480 ignored as a comment.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7481 @end itemize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7482
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7483 Any word may be prefixed by a multiplier in the form of a decimal number
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7484 and @code{*}: @code{3*<right>} @equiv{} @code{<right> <right> <right>},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7485 and @code{10*foo} @equiv{}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7486 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7487 @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7488 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7489 @code{foofoofoofoofoofoofoofoofoofoo}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7490
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7491 Multiple text keys can normally be strung together to form a word, but
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7492 you may need to add whitespace if the word would look like one of the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7493 above notations: @code{; ; ;} is a keyboard macro with three semicolons,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7494 but @code{;;;} is a comment. Likewise, @code{\ 1 2 3} is four keys but
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7495 @code{\123} is a single key written in octal, and @code{< right >} is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7496 seven keys but @code{<right>} is a single function key. When in doubt,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7497 use whitespace.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7498 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7499
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7500 @node Q7.1.4, Q7.1.5, Q7.1.3, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7501 @unnumberedsubsec Q7.1.4: What is the performance hit of @code{let}?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7502
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7503 In most cases, not noticeable. Besides, there's no avoiding
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7504 @code{let}---you have to bind your local variables, after all. Some
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7505 pose a question whether to nest @code{let}s, or use one @code{let} per
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7506 function. I think because of clarity and maintenance (and possible
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7507 future implementation), @code{let}-s should be used (nested) in a way to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7508 provide the clearest code.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7509
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7510 @node Q7.1.5, Q7.1.6, Q7.1.4, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7511 @unnumberedsubsec Q7.1.5: What is the recommended use of @code{setq}?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7512
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7513 @itemize @bullet
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7514 @item Global variables
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7515
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7516 You will typically @code{defvar} your global variable to a default
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7517 value, and use @code{setq} to set it later.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7518
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7519 It is never a good practice to @code{setq} user variables (like
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7520 @code{case-fold-search}, etc.), as it ignores the user's choice
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7521 unconditionally. Note that @code{defvar} doesn't change the value of a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7522 variable if it was bound previously. If you wish to change a
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7523 user-variable temporarily, use @code{let}:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7524
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7525 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7526 (let ((case-fold-search nil))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7527 ... ; code with searches that must be case-sensitive
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7528 ...)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7529 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7530
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7531 You will notice the user-variables by their docstrings beginning with an
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7532 asterisk (a convention).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7533
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7534 @item Local variables
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7535
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7536 Bind them with @code{let}, which will unbind them (or restore their
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7537 previous value, if they were bound) after exiting from the @code{let}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7538 form. Change the value of local variables with @code{setq} or whatever
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7539 you like (e.g. @code{incf}, @code{setf} and such). The @code{let} form
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7540 can even return one of its local variables.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7541
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7542 Typical usage:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7543
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7544 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7545 ;; iterate through the elements of the list returned by
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7546 ;; `hairy-function-that-returns-list'
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7547 (let ((l (hairy-function-that-returns-list)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7548 (while l
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7549 ... do something with (car l) ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7550 (setq l (cdr l))))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7551 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7552
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7553 Another typical usage includes building a value simply to work with it.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7554
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7555 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7556 ;; Build the mode keymap out of the key-translation-alist
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7557 (let ((inbox (file-truename (expand-file-name box)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7558 (i 0))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7559 ... code dealing with inbox ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7560 inbox)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7561 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7562
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7563 This piece of code uses the local variable @code{inbox}, which becomes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7564 unbound (or regains old value) after exiting the form. The form also
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7565 returns the value of @code{inbox}, which can be reused, for instance:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7566
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7567 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7568 (setq foo-processed-inbox
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7569 (let .....))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7570 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7571 @end itemize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7572
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7573 @node Q7.1.6, Q7.1.7, Q7.1.5, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7574 @unnumberedsubsec Q7.1.6: What is the typical misuse of @code{setq}?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7575
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7576 A typical misuse is probably @code{setq}ing a variable that was meant to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7577 be local. Such a variable will remain bound forever, never to be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7578 garbage-collected. For example, the code doing:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7579
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7580 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7581 (defun my-function (whatever)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7582 (setq a nil)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7583 ... build a large list ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7584 ... and exit ...)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7585 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7586
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7587 does a bad thing, as @code{a} will keep consuming memory, never to be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7588 unbound. The correct thing is to do it like this:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7589
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7590 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7591 (defun my-function (whatever)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7592 (let (a) ; default initialization is to nil
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7593 ... build a large list ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7594 ... and exit, unbinding `a' in the process ...)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7595 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7596
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7597 Not only is this prettier syntactically, but it makes it possible for
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7598 Emacs to garbage-collect the objects which @code{a} used to reference.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7599
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7600 Note that even global variables should not be @code{setq}ed without
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7601 @code{defvar}ing them first, because the byte-compiler issues warnings.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7602 The reason for the warning is the following:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7603
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7604 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7605 (defun flurgoze nil) ; ok, global internal variable
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7606 ...
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7607
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7608 (setq flurghoze t) ; ops! a typo, but semantically correct.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7609 ; however, the byte-compiler warns.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7610
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7611 While compiling toplevel forms:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7612 ** assignment to free variable flurghoze
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7613 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7614
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7615 @node Q7.1.7, Q7.1.8, Q7.1.6, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7616 @unnumberedsubsec Q7.1.7: I like the @code{do} form of cl, does it slow things down?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7617
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7618 It shouldn't. Here is what Dave Gillespie has to say about cl.el
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7619 performance:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7620
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7621 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7622 Many of the advanced features of this package, such as @code{defun*},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7623 @code{loop}, and @code{setf}, are implemented as Lisp macros. In
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7624 byte-compiled code, these complex notations will be expanded into
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7625 equivalent Lisp code which is simple and efficient. For example, the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7626 forms
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7627
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7628 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7629 (incf i n)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7630 (push x (car p))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7631 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7632
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7633 are expanded at compile-time to the Lisp forms
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7634
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7635 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7636 (setq i (+ i n))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7637 (setcar p (cons x (car p)))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7638 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7639
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7640 which are the most efficient ways of doing these respective operations
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7641 in Lisp. Thus, there is no performance penalty for using the more
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7642 readable @code{incf} and @code{push} forms in your compiled code.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7643
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7644 @emph{Interpreted} code, on the other hand, must expand these macros
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7645 every time they are executed. For this reason it is strongly
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7646 recommended that code making heavy use of macros be compiled. (The
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7647 features labelled @dfn{Special Form} instead of @dfn{Function} in this
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7648 manual are macros.) A loop using @code{incf} a hundred times will
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7649 execute considerably faster if compiled, and will also garbage-collect
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7650 less because the macro expansion will not have to be generated, used,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7651 and thrown away a hundred times.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7652
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7653 You can find out how a macro expands by using the @code{cl-prettyexpand}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7654 function.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7655 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7656
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7657 @node Q7.1.8, Q7.1.9, Q7.1.7, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7658 @unnumberedsubsec Q7.1.8: I like recursion, does it slow things down?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7659
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7660 Yes. The Emacs byte-compiler cannot do much to optimize recursion. But
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7661 think well whether this is a real concern in Emacs. Much of the Emacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7662 slowness comes from internal mechanisms such as redisplay, or from the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7663 fact that it is an interpreter.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7664
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7665 Please try not to make your code much uglier to gain a very small speed
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7666 gain. It's not usually worth it.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7667
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7668 @node Q7.1.9, Q7.1.10, Q7.1.8, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7669 @unnumberedsubsec Q7.1.9: How do I put a glyph as annotation in a buffer?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7670
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7671 Here is a solution that will insert the glyph annotation at the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7672 beginning of buffer:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7673
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7674 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7675 (make-annotation (make-glyph '([FORMAT :file FILE]
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7676 [string :data "fallback-text"]))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7677 (point-min)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7678 'text
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7679 (current-buffer))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7680 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7681
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7682 Replace @samp{FORMAT} with an unquoted symbol representing the format of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7683 the image (e.g. @code{xpm}, @code{xbm}, @code{gif}, @code{jpeg}, etc.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7684 Instead of @samp{FILE}, use the image file name
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7685 (e.g.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7686 @iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7687 @*
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7688 @end iftex
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7689 @file{/usr/local/lib/xemacs-21.4/etc/recycle.xpm}).
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7690
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7691 You can turn this to a function (that optionally prompts you for a file
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7692 name), and inserts the glyph at @code{(point)} instead of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7693 @code{(point-min)}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7694
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7695 @node Q7.1.10, Q7.1.11, Q7.1.9, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7696 @unnumberedsubsec Q7.1.10: @code{map-extents} won't traverse all of my extents!
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7697
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7698 I tried to use @code{map-extents} to do an operation on all the extents
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7699 in a region. However, it seems to quit after processing a random number
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7700 of extents. Is it buggy?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7701
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7702 No. The documentation of @code{map-extents} states that it will iterate
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7703 across the extents as long as @var{function} returns @code{nil}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7704 Unexperienced programmers often forget to return @code{nil} explicitly,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7705 which results in buggy code. For instance, the following code is
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7706 supposed to delete all the extents in a buffer, and issue as many
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7707 @samp{fubar!} messages.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7708
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7709 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7710 (map-extents (lambda (ext ignore)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7711 (delete-extent ext)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7712 (message "fubar!")))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7713 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7714
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7715 Instead, it will delete only the first extent, and stop right there --
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7716 because @code{message} will return a non-nil value. The correct code
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7717 is:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7718
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7719 @lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7720 (map-extents (lambda (ext ignore)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7721 (delete-extent ext)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7722 (message "fubar!")
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7723 nil))
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7724 @end lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7725
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7726 @node Q7.1.11, Q7.2.1, Q7.1.10, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7727 @unnumberedsubsec Q7.1.11: My elisp program is horribly slow. Is there an easy way to find out where it spends time?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7728 @c New
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7729
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7730 @email{hniksic@@xemacs.org, Hrvoje Niksic} writes:
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7731 @quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7732 Under XEmacs 20.4 and later you can use @kbd{M-x profile-key-sequence},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7733 press a key (say @key{RET} in the Gnus Group buffer), and get the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7734 results using @kbd{M-x profile-results}. It should give you an idea of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7735 where the time is being spent.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7736 @end quotation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7737
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7738 @unnumberedsec 7.2: Mathematics
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7739
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7740 @node Q7.2.1, Q7.2.2, Q7.1.11, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7741 @unnumberedsubsec Q7.2.1: What are bignums, ratios, and bigfloats in Lisp?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7742
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7743 Thanks to @email{james@@xemacs.org, Jerry James}, XEmacs 21.5.18 and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7744 later can use the capabilities of multiple-precision libraries that may
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7745 be available for your platform. The GNU Multiple Precision (GMP) and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7746 BSD Multiple Precision (MP) libraries are partially supported. GMP
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7747 gives you @dfn{bignums} (arbitrary precision integers), @dfn{ratios}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7748 (arbitrary precision fractions), and @dfn{bigfloats} (arbitrary
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7749 precision floating point numbers). GNU MP is better-supported by XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7750 at the time of writing (2004-04-06). BSD MP support does not include
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7751 ratios or bigfloats, and it throws errors that aren't understood.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7752
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7753 In most cases, bignum support should be transparent to users and Lisp
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7754 programmers. A bignum-enabled XEmacs will automatically convert from
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7755 fixnums to bignums and back in pure integer arithmetic, and for GNU MP,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7756 from floats to bigfloats. (Bigfloats must be explicitly coerced to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7757 other types, even if they are exactly representable by less precise
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7758 types.) The Lisp reader and printer have been enhanced to handle
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7759 bignums, as have the mathematical functions. Rationals (fixnums,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7760 bignums, and ratios) are printed using the @samp{%d}, @samp{%o},
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7761 @samp{%x}, and @samp{%u} format conversions. The read syntax for ratios
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7762 is @samp{3/5}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7763
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7764 User-visible changes in behavior include (in probable order of annoyance)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7765
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7766 @itemize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7767 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7768 Arithmetic can cause a segfault, depending on your MP library
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7769 @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7770
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7771 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7772 Terminology is not Common-Lisp-conforming. For example, ``integer'' for
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7773 Emacs Lisp means what Common Lisp calls ``fixnum''. This issue is being
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7774 investigated, but the use of ``integer'' for fixnum is pervasive and may
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7775 cause backward-compatibility and GNU-Emacs-compatibility problems.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7776
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7777 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7778 Many operations that used to cause a range error now succeed, with
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7779 intermediate results and return values coerced to bignums as needed.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7780
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7781 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7782 An atom with ratio read syntax now returns a number, not a symbol.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7783
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7784 @item
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7785 The @samp{%u} format conversion will now give an error if its argument
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7786 is negative. (Without MP, it prints a number which Lisp can't read.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7787 @end itemize
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7788
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7789 @emph{Surgeon General's Warning}: The automatic conversions cannot be
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7790 disabled at runtime. New functions have been added which produce
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7791 ratios, so there should be few surprises with type conflicts, but they
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7792 can't be ruled out. ``Arbitrary'' precision means precisely what it
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7793 says. If you work with extremely large numbers, your machine may
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7794 arbitrarily decide to hand you an unpleasant surprise rather than a
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7795 bignum @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7796
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7797 To configure with GNU MP, add
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7798 @samp{--use-number-lib=gmp}
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7799 to your invocation of @file{configure}. For BSD MP, use
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7800 @samp{--use-number-lib=mp}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7801
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7802 If you would like to help with bignum support, especially on BSD MP,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7803 please subscribe to the @uref{http://www.xemacs.org/Lists/#xemacs-beta,
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7804 XEmacs Beta mailing list}, and book up on @file{number-gmp.h} and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7805 @file{number-mp.h}. Jerry has promised to write internals documentation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7806 eventually, but if your skills run more to analysis and documentation
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7807 than to writing new code, feel free to fill in the gap!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7808
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7809
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7810 @node Q7.2.2, Q7.2.3, Q7.2.1, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7811 @unnumberedsubsec Q7.2.2: XEmacs segfaults when I use very big numbers!
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7812
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7813 GMP by default allocates temporaries on the stack. If you run out of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7814 stack space, you're dead; there is no way that we know of to reliably
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7815 detect this condition, because @samp{alloca} is typically implemented to
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7816 be @emph{fast} rather than robust. If you just need a little more
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7817 oomph, use a bigger stack (@emph{e.g.}, the @file{ulimit -s} command in
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7818 bash(1)). If you want robustness at the cost of speed, configure GMP
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7819 with @samp{--disable-alloca} and rebuild the GMP library.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7820
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7821 We do not know whether BSD MP uses @samp{alloca} or not. Please send
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7822 any information you have as a bug report (@kbd{M-x report-xemacs-bug
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7823 @key{RET}}), which will give us platform information. (We do know that
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7824 BSD MP implementations vary across vendors, but how much, we do not know
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7825 yet.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7826
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7827
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7828 @node Q7.2.3, Q7.2.4, Q7.2.2, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7829 @unnumberedsubsec Q7.2.3: Bignums are really slow!
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7830
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7831 Many Linux distributions compile all their packages for the i386, and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7832 this is costly. An optimized version can give you two or three orders
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7833 of magnitude better performance for a Pentium III or IV. (Yes, really.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7834 See @uref{http://www.swox.com/gmp/gmp-speed.html}.)
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7835
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7836
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7837 @node Q7.2.4, , Q7.2.3, Advanced
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7838 @unnumberedsubsec Q7.2.4: Equal bignums don't compare as equal! What gives?
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7839
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7840 Ah, Grasshopper, I see you are using @code{(eq x y)}. The Bodhisattva
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7841 CLTL2 warned of the illusion that equal numbers would be @samp{eq}!
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7842 Meditate on the deeper truths of @samp{eql}, in which numbers of the same
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7843 type which have equal values compare equal, and @samp{=}, which does any
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7844 necessary type coercions before comparing for equality.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7845
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7846 Yeah, yeah, it has always worked for integer types, because fixnums and
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7847 characters have an immediate representation. Sorry about that;
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7848 arbitrary precision obviously requires consing new objects because the
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7849 objects are ``large'' and of variable size, and the definition of
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7850 @samp{eq} does not permit different objects to compare as equal.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7851
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7852 @node Other Packages, Current Events, Advanced, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7853 @unnumbered 8 Other External Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7854
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7855 This is part 8 of the XEmacs Frequently Asked Questions list. This
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7856 section is devoted to miscellaneous external packages not covered
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7857 elsewhere in XEmacs.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7858
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7859 @menu
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
7860 8.0: TeX
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7861 * Q8.0.1:: Is there something better than LaTeX mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7862 * Q8.0.2:: What is AUCTeX? Where do you get it?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7863 * Q8.0.3:: Problems installing AUCTeX.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7864 * Q8.0.4:: How do I turn off current chapter from AUCTeX modeline?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7865
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7866 8.1: Other Unbundled Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7867 * Q8.1.1:: Is there a reason for an Emacs package not to be included in XEmacs?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7868 * Q8.1.2:: Are there any Emacs Lisp Spreadsheets?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7869 * Q8.1.3:: Is there a MatLab mode?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7870
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7871 8.2: Environments Built Around XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7872 * Q8.2.1:: What are SPARCworks, EOS, and WorkShop?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7873 * Q8.2.2:: How do I start the Sun Workshop support in XEmacs 21?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7874 * Q8.2.3:: What is/was Energize?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7875 * Q8.2.4:: What is Infodock?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7876 @end menu
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7877
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7878 @unnumberedsec 8.0: TeX
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7879
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7880 @node Q8.0.1, Q8.0.2, Other Packages, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7881 @unnumberedsubsec Q8.0.1: Is there something better than LaTeX mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7882
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7883 @email{dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de, David Kastrup} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7884
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7885 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7886 The standard TeX modes leave much to be desired, and are somewhat
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7887 leniently maintained. Serious TeX users use AUCTeX (@pxref{Q8.0.2,
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7888 What is AUCTeX? Where do you get it?}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7889 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7890
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7891 @node Q8.0.2, Q8.0.3, Q8.0.1, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7892 @unnumberedsubsec Q8.0.2: What is AUCTeX? Where do you get it?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7893
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7894 AUCTeX is a complex and sophisticated editing package dedicated to TeX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7895 and related text formatting languages, including LaTeX and Texinfo.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7896 It provides support for running TeX on a file or part of a file,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7897 include files, and of course shortcuts for entering common TeX macros,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7898 LaTeX environments, etc, and for fontlock.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7899
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7900 AUCTeX is a standard package provided by XEmacs. You can get it as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7901 usual through the @kbd{M-x list-packages} interface. It is also
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7902 included in the (non-Mule) SUMO package. The AUCTeX XEmacs package is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7903 maintained by Uwe Brauer <GET MAIL ADDRESS>.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7904
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7905 AUCTeX is extremely complicated, and its developers primarily
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7906 use GNU Emacs. Not all features of the bleeding edge version
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7907 of AUCTeX are immediately ported to XEmacs; if you need
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7908 these, you may be better off getting the most recent versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7909 from the GNU AUCTeX project on @uref{http://savannah.gnu.org}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7910
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7911 @node Q8.0.3, Q8.0.4, Q8.0.2, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7912 @unnumberedsubsec Q8.0.3: Problems installing AUCTeX.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7913
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7914 @email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7915
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7916 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7917 AUCTeX works fine on both stock Emacs and XEmacs has been doing so for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7918 a very very long time. This is mostly due to the work of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7919 @email{abraham@@dina.kvl.dk, Per Abrahamsen} (clap clap) in particular his @file{easymenu}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7920 package. Which leads to what is probably the problem...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7921 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7922
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7923 Most problems with AUCTeX are one of two things:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7924
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7925 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7926 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7927 The TeX-lisp-directory in @file{tex-site.el} and the makefile don't
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7928 match.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7929
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7930 Fix: make sure you configure AUCTeX properly @strong{before} installing.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7931
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7932 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7933 You have an old version of easymenu.el in your path.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7934
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7935 Fix: use @code{locate-library} and remove old versions to make sure it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7936 @strong{only} finds the one that came with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7937 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7938
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7939 @node Q8.0.4, Q8.1.1, Q8.0.3, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7940 @unnumberedsubsec Q8.0.4: How do I turn off current chapter from AUCTeX modeline?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7941
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7942 With AUCTeX, fast typing is hard because the current chapter, section
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7943 etc. are given in the modeline. How can I turn this off?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7944
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7945 It's not AUCTeX, it comes from @code{func-menu} in @file{func-menu.el}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7946
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7947 @c Add this code to your @file{init.el} to turn it off:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7948 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7949 @c @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7950 @c (setq fume-display-in-modeline-p nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7951 @c @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7952 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7953 @c Or just add a hook to @code{TeX-mode-hook} to turn it off only for TeX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7954 @c mode:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7955 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7956 @c @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7957 @c (add-hook 'TeX-mode-hook
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7958 @c '(lambda () (setq fume-display-in-modeline-p nil)))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7959 @c @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7960 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7961 @email{dhughes@@origin-at.co.uk, David Hughes} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7962
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7963 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7964 Try this; you'll still get the function name displayed in the modeline,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7965 but it won't attempt to keep track when you modify the file. To refresh
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7966 when it gets out of synch, you simply need click on the @samp{Rescan
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7967 Buffer} option in the function-menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7968
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7969 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7970 (setq-default fume-auto-rescan-buffer-p nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7971 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7972 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7973
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7974 @unnumberedsec 8.1: Other Unbundled Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7975
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7976 @node Q8.1.1, Q8.1.2, Q8.0.4, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
7977 @unnumberedsubsec Q8.1.1: Is there a reason for an Emacs package not to be included in XEmacs?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7978
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7979 The reason for an Emacs package not to be included in XEmacs is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7980 usually one or more of the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7981
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7982 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7983 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7984 The package has not been ported to XEmacs. This will typically happen
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7985 when it uses GNU-Emacs-specific features, which make it fail under
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7986 XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7987
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7988 Porting a package to XEmacs can range from a trivial amount of change to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7989 a partial or full rewrite. Fortunately, the authors of modern packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7990 usually choose to support both Emacsen themselves.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7991
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7992 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7993 The package has been decided not to be appropriate for XEmacs. It may
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7994 have an equivalent or better replacement within XEmacs, in which case
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7995 the developers may choose not to burden themselves with supporting an
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7996 additional package.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7997
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7998 Each package bundled with XEmacs means more work for the maintainers,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7999 whether they want it or not. If you are ready to take over the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8000 maintenance responsibilities for the package you port, be sure to say
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8001 so---we will more likely include it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8002
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8003 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8004 The package simply hasn't been noted by the XEmacs development. If
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8005 that's the case, the messages like yours are very useful for attracting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8006 our attention.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8007
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8008 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8009 The package was noted by the developers, but they simply haven't yet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8010 gotten around to including/porting it. Wait for the next release or,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8011 even better, offer your help. It will be gladly accepted and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8012 appreciated.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8013 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8014
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8015 @node Q8.1.2, Q8.1.3, Q8.1.1, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8016 @unnumberedsubsec Q8.1.2: Are there any Emacs Lisp Spreadsheets?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8017
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8018 Yes. Check out @dfn{dismal} (which stands for Dis' Mode Ain't Lotus) at
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8019 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8020 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8021 @end iftex
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8022 @uref{http://acs.ist.psu.edu/dismal/dismal.html}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8023
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8024 @node Q8.1.3, Q8.2.1, Q8.1.2, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8025 @unnumberedsubsec Q8.1.3: Is there a MatLab mode?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8026
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8027 Yes, a matlab mode and other items are available at the
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8028 @uref{http://www.mathworks.com/matlabcentral/files/104/matlab.el}.
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8029
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8030 @unnumberedsec 8.2: Environments Built Around XEmacs
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8031
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8032 @node Q8.2.1, Q8.2.2, Q8.1.3, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8033 @unnumberedsubsec Q8.2.1: What are SPARCworks, EOS, and WorkShop?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8034
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8035 SPARCworks was a development environment from Sun (circa 1993-1996)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8036 and consisted of compilers (C, C++, FORTRAN 77, Fortran 90, Ada, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8037 Pascal), a debugger, and other tools such as TeamWare (for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8038 configuration management), MakeTool, etc.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8039
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8040 EOS is the integration of XEmacs with the SPARCworks debugger. It
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8041 allows one to use an XEmacs frame to view code (complete with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8042 fontification, etc.), set breakpoints, print variables, etc., while
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8043 using the SPARCworks debugger.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8044
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8045 EOS stands for "Era on SPARCworks"; Era stood for "Emacs Rewritten
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8046 Again" and was the name used by Sun for its modified version of Lucid
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8047 Emacs (later XEmacs) in the early-mid 90's. This is documented in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8048 more detail in the history section of the XEmacs About page.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8049
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8050 EOS was replaced around 1996 with a newer graphical development
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8051 environment called Sun WorkShop. The current status of this is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8052 unknown.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8053
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8054 @node Q8.2.2, Q8.2.3, Q8.2.1, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8055 @unnumberedsubsec Q8.2.2: How do I start the Sun Workshop support in XEmacs 21?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8056
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8057 Add the switch ---with-workshop to the configure command when building
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8058 XEmacs and put the following in one of your startup files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8059 (e.g. site-start.el or .emacs):
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8060
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8061 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8062 (when (featurep 'tooltalk)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8063 (load "tooltalk-macros")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8064 (load "tooltalk-util")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8065 (load "tooltalk-init"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8066 (when (featurep 'sparcworks)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8067 (load "sunpro-init")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8068 (load "ring")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8069 (load "comint")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8070 (load "annotations")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8071 (sunpro-startup))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8072 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8073
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8074 If you are not using the latest Workshop (5.0) you have to apply the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8075 following patch:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8076
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8077 @format
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8078 --- /opt/SUNWspro/lib/eserve.el.ORIG Fri May 14 15:23:26 1999
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8079 +++ /opt/SUNWspro/lib/eserve.el Fri May 14 15:24:54 1999
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8080 @@@@ -42,7 +42,7 @@@@
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8081 (defvar running-xemacs nil "t if we're running XEmacs")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8082 (defvar running-emacs nil "t if we're running GNU Emacs 19")
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
8083
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8084 -(if (string-match "^\\(19\\|20\\)\..*\\(XEmacs\\|Lucid\\)" emacs-version)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8085 +(if (string-match "\\(XEmacs\\|Lucid\\)" emacs-version)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8086 (setq running-xemacs t)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8087 (setq running-emacs t))
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
8088 @end format
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8089
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8090 @node Q8.2.3, Q8.2.4, Q8.2.2, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8091 @unnumberedsubsec Q8.2.3: What is/was Energize?
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8092
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8093 The "Energize Programming System" was a C and C++ development environment
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8094 sold by Lucid, Inc. It was the reason why Lucid Emacs, now XEmacs, was
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8095 created in the first place. Unfortunately, Lucid went out of business in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8096 1994. The rights to sell it in Japan were purchased by INS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8097 Engineering (which briefly employed Stig Hackvan aka Jonathan
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8098 Stigelman to work on Japanese support for XEmacs, in late 1994 and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8099 early 1995) and Tartan bought the rights to sell it in the rest of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8100 world. However, INS is not selling Energize at this point and may or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8101 may not have ever done so; Tartan certainly never did.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8102
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8103 @node Q8.2.4, , Q8.2.3, Other Packages
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8104 @unnumberedsubsec Q8.2.4: What is Infodock?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8105
660
cd653494e774 [xemacs-hg @ 2001-09-15 14:26:30 by adrian]
adrian
parents: 658
diff changeset
8106 @uref{http://sourceforge.net/projects/infodock/, InfoDock} is an
cd653494e774 [xemacs-hg @ 2001-09-15 14:26:30 by adrian]
adrian
parents: 658
diff changeset
8107 integrated productivity toolset, mainly aimed at technical people,
cd653494e774 [xemacs-hg @ 2001-09-15 14:26:30 by adrian]
adrian
parents: 658
diff changeset
8108 hosted at SourceForge.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8109
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8110 InfoDock is built atop the XEmacs variant of GNU Emacs and so has all of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8111 the power of Emacs, but with an easier to use and more comprehensive
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8112 menu-based user interface. The bottom portion of this text describes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8113 how it differs from XEmacs and GNU Emacs from the Free Software
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8114 Foundation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8116 InfoDock is aimed at people who want a free, turn-key productivity
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8117 environment. Although InfoDock is customizable, it is not intended for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8118 people who like basic versions of Emacs which need to be customized
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8119 extensively for local use; standard Emacs distributions are better for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8120 such uses. InfoDock is for those people who want a complete,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8121 pre-customized environment in one package, which they need not touch
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8122 more than once or twice a year to update to new revisions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8123
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8124 InfoDock is pre-built for SPARC SunOS/Solaris systems, PA-RISC HP-UX,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8125 and Intel Linux systems. It is intended for use on a color display,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8126 although most features will work on monochrome monitors. Simply unpack
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8127 InfoDock according to the instructions in the ID-INSTALL file and you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8128 are ready to run.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8129
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8130 The InfoDock Manual is concise, yet sufficient as a user guide for users
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8131 who have never used an Emacs-type editor before. For users who are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8132 already familiar with Emacs, it supplements the information in the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8133 Emacs Manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8134
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8135 InfoDock menus are much more extensive and more mature than standard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8136 Emacs menus. Each menu offers a @samp{Manual} item which displays
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8137 documentation associated with the menu's functions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8138
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8139 @noindent
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8140 Four types of menubars are provided:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8141 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8142 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8143 An extensive menubar providing access to global InfoDock commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8144 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8145 Mode-specific menubars tailored to the current major mode.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8146 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8147 A simple menubar for basic editing to help novices get started with InfoDock.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8148 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8149 The standard XEmacs menubar.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8150 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8151
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8152 Most modes also include mode-specific popup menus. Additionally, region and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8153 rectangle popup menus are included.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8154
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8155 @samp{Hyperbole}, the everyday information manager, is a core part of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8156 InfoDock. This provides context-sensitive mouse keys, a rolodex-type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8157 contact manager, programmable hypertext buttons, and an autonumbered
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8158 outliner with embedded hyperlink anchors.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8159
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8160 The @samp{OO-Browser}, a multi-language object-oriented code browser, is a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8161 standard part of InfoDock.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8162
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8163 InfoDock saves a more extensive set of user options than other Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8164 versions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8165
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8166 InfoDock inserts a useful file header in many file types, showing the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8167 author, summary, and last modification time of each file. A summary
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8168 program can then be used to summarize all of the files in a directory,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8169 for easy MANIFEST file creation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8170
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8171 Your working set of buffers is automatically saved and restored (if you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8172 answer yes to a prompt) between InfoDock sessions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8173
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8174 Refined color choices for code highlighting are provided for both dark and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8175 light background display frames.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8176
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8177 The @kbd{C-z} key prefix performs frame-based commands which parallel the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8178 @kbd{C-x} key prefix for window-based commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8179
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8180 The Smart Menu system is included for producing command menus on dumb
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8181 terminals.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8182
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8183 Lisp libraries are better categorized according to function.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8185 Extensions and improvements to many areas of Emacs are included, such as:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8186 paragraph filling, mail reading with Rmail, shell handling, outlining, code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8187 highlighting and browsing, and man page browsing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8188
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8189 InfoDock questions, answers and discussion should go to the mail list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8190 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8191 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8192 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8193 @email{infodock@@infodock.com}. Use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8194 @email{infodock-request@@infodock.com} to be added or removed from the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8195 list. Always include your InfoDock version number when sending help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8196 requests.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8197
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8198 @node Current Events, Legacy Versions, Other Packages, Top
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8199 @unnumbered 9 What the Future Holds
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8200
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8201 This is part 9 of the XEmacs Frequently Asked Questions list. This
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8202 section will change frequently, and (in theory) should contain any
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8203 interesting items that have transpired recently. (But in practice it's
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8204 not getting updated like this.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8205
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8206 This section also contains descriptions of the new features in all the
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8207 recent releases of XEmacs. For the most part, the information below is
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8208 a synopsis of the more complete information that can be found in the
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8209 file @file{NEWS} in the @file{etc} directory of the XEmacs distribution.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8210 You can view this file in XEmacs using @kbd{C-h n} or the @samp{Help}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8211 menu.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8212
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8213 Information on older versions of XEmacs can be find in @file{ONEWS} in
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8214 the same directory, or @file{OONEWS} for really old versions.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8215
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8216 @menu
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
8217 9.0: Changes
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8218 * Q9.0.1:: What new features will be in XEmacs soon?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8219 * Q9.0.2:: What's new in XEmacs 21.4?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8220 * Q9.0.3:: What's new in XEmacs 21.1?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8221 * Q9.0.4:: What's new in XEmacs 20.4?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8222 * Q9.0.5:: What's new in XEmacs 20.3?
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8223 * Q9.0.6:: What's new in XEmacs 20.2?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8224 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8225
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8226 @unnumberedsec 9.0: Changes
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8227
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8228 @node Q9.0.1, Q9.0.2, Current Events, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8229 @unnumberedsubsec Q9.0.1: What new features will be in XEmacs soon?
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8230
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8231 #### Write me.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8232
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8233 @node Q9.0.2, Q9.0.3, Q9.0.1, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8234 @unnumberedsubsec Q9.0.2: What's new in XEmacs 21.4?
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8235
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8236 21.4 was the "stable" version of the 21.2 series, which was considered
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8237 "experimental" throughout its life; thus there were no "official"
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8238 releases at all. In essence, XEmacs is now following the "alternating"
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8239 scheme of Linux, where at any point there are at least two different
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8240 development branches, one "stable" and one "experimental". Periodic
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8241 releases happen in both branches, but those in the experimental branch
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8242 are not tested as well, and there's no guarantee they will work at all.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8243 The experiemental branch is open to any and all code that's acceptable
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8244 to the developers; the stable branch, however, is in general limited
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8245 only to bug fixes, and all contributions are carefully reviewed to make
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8246 sure they will increase and not decrease stability.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8247
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8248 21.3 never existed at all; it was decided to follow the Linux scheme
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8249 exactly, where odd-numbered series are experimental and even-numbered
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8250 ones stable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8251
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8252 The following lists summarizes the essential changes made in this
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8253 version. For a fuller list, see the @file{NEWS} in the @file{etc}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8254 directory of the XEmacs distribution, or use @kbd{C-h n} or the
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8255 @samp{Help} menu to view this file inside of XEmacs.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8256
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
8257 @unnumberedsubsubsec User-visible changes in XEmacs 21.4
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8258
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8259 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8260
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8261 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8262 The delete key now deletes forward by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8263 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8264 Shifted motion keys now select text by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8265 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8266 You can now build XEmacs with support for GTK+ widget set.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8267 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8268 ~/.xemacs/init.el is now the preferred location for the init
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8269 file. (XEmacs now supports a `~/.xemacs/init.el' startup file. Custom
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8270 file will move to ~/.xemacs/custom.el.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8271 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8272 Much-improved sample init.el, showing how to use many useful features.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8273 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8274 XEmacs support for menu accelerators has been much improved.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8275 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8276 Default menubar improvements. (Default menubar has many new commands and
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8277 better organization. The font-menu is now available under MS Windows.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8278 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8279 Dialog box improvements, including a real file dialog box. (XEmacs now
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8280 has a proper file dialog box under MS Windows (and GTK)! The old
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8281 clunky file dialog box is improved. Keyboard traversal now works
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8282 correctly in MS Windows dialog boxes. There is a Search dialog box
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8283 available from @samp{Edit->Find...})
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8284 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8285 New buffer tabs.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8286 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8287 There is a new MS Windows installer, netinstall, ported from Cygwin.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8288 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8289 The subprocess quote-handling mechanism under Windows is much improved.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8290 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8291 Printing support now available under MS Windows.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8292 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8293 Selection improvements. (Kill and yank now interact with the clipboard under Windows. MS Windows support for selection is now much more robust. Motif selection support is now more correct (but slower).)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8294 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8295 Mail spool locking now works correctly.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8296 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8297 International support changes. (The default coding-priority-list is now
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8298 safer. International keysyms are now supported under X. MS Windows
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8299 1251 code page now supported. Czech, Thai, Cyrillic-KOI8, Vietnamese,
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8300 Ethiopic now supported. Proper support for words in Latin 3 and Latin
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8301 4.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8302 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8303 Help buffers contain hyperlinks, and other changes.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8304 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8305 The modeline's text is now scrollable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8306 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8307 The mouse wheel under MS Windows now functions correctly.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8308 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8309 Interactive searching and matching case improvements. (Incremental search will now highlight all visible matches. Interactive searches always respect uppercase characters.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8310 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8311 Rectangle functions rewritten to avoid inserting extra spaces.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8312 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8313 New command `kill-entire-line' that always kills the entire line.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8314 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8315 Default values correctly stored in minibuffer histories.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8316 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8317 You can now create "indirect buffers", like in GNU Emacs.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8318 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8319 Pixel-based scrolling has been implemented.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8320 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8321 Operation progress can be displayed using graphical widgets.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8322 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8323 User names following a tilde can now be completed at file name prompts.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8324 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8325 XEmacs can now play sound using Enlightenment Sound Daemon (ESD).
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8326 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8327 X-Face support is now available under MS Windows.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8328 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8329 The PostgreSQL Relational Database Management System is now supported.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8330 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8331 Indentation no longer indents comments that begin at column zero.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8332 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8333 Face and variable settings can have comments in Customize.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8334 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8335 New locations for early package hierarchies.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8336 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8337 The `auto-save' library has been greatly improved.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8338 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8339 New variable `mswindows-alt-by-itself-activates-menu'.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8340 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8341 Other init-file-related changes. (Init file in your home directory may be called `.emacs.el'. New command-line switches -user-init-file and -user-init-directory.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8342 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8343 Etags changes. See @file{NEWS} for full details.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8344 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8345
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
8346 @unnumberedsubsubsec Lisp and internal changes in XEmacs 21.4
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8347
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8348 Not yet written.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8349
661
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
8350 @c APA: Texi2html produces invalid HTML from an empty list of bullets!
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
8351 @c Please uncomment following list when it does contain bullets.
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
8352 @c @itemize @bullet
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
8353 @c @end itemize
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8354
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8355 @node Q9.0.3, Q9.0.4, Q9.0.2, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8356 @unnumberedsubsec Q9.0.3: What's new in XEmacs 21.1?
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8357
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8358 21.1 was the "stable" version of "experimental" 21.0 series.
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8359 @xref{Q9.0.2, What's new in XEmacs 21.4?}.
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8360
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8361 The following lists summarizes the essential changes made in this
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8362 version. For a fuller list, see the @file{NEWS} in the @file{etc}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8363 directory of the XEmacs distribution, or use @kbd{C-h n} or the
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8364 @samp{Help} menu to view this file inside of XEmacs.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8365
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
8366 @unnumberedsubsubsec User-visible changes in XEmacs 21.1
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8367
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8368 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8369
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8370 @item
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8371 XEmacs is now supported under Microsoft Windows 95/98 and Windows
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8372 NT/2000/XP operating systems. To discuss Windows-specific issues,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8373 subscribe to the mailing list at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8374 @email{xemacs-winnt-request@@xemacs.org}.
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8375
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8376 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8377 XEmacs has been unbundled into constituent installable packages.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8378
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8379 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8380 @strong{Other notable changes}: The @samp{Options} menu has been ported to
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8381 Custom; XEmacs now is able to choose X visuals and use private
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8382 colormaps; You can drag the vertical divider of "horizontally"
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8383 (side-by-side) split windows.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8384
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8385 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8386 @strong{Building changes}: XEmacs can be built with support for 31-bit Lisp
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8387 integers and 32-bit pointers (previously, it was 28-bit integers and
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8388 pointers); XEmacs can be built with LDAP support; @file{dir} files can be
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8389 removed in the Info subsystem, and will be regenerated on-the-fly.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8390
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8391 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8392 @strong{New packages}: @file{imenu}, @file{popper}, @file{gdb-highlight}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8393
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8394 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8395 @strong{Package changes}: Many changes to @file{cc-mode}, @file{gnus},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8396 @file{gnuclient}. See @file{NEWS} for full details.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8397
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8398 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8399 @strong{New commands, variables and functions}:
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8400 @code{center-to-window-line} (like @code{recenter} but doesn't force a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8401 redisplay); variable @code{user-full-name} (customize what your full
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8402 name looks like in mail); @kbd{M-x customize-changed-options} (customize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8403 options whose default values changes because you upgraded your XEmacs);
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8404 @kbd{M-x add-log-convert} (converts an old-style ChangeLog buffer to
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8405 new-style); @kbd{M-x zap-up-to-char} (like @code{zap-to-char} but
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8406 doesn't delete the char searched for); commands to store, retrieve and
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8407 increment numbers in registers, useful for macros.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8408
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8409 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8410 @strong{Changes to commands, variables, and functions}: @kbd{M-x
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8411 query-replace} and friends operate only on the region when it's active;
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8412 @code{echo-keystrokes} can now be a floating-point number; @kbd{M-.}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8413 searches exact tag matches before inexact ones; function
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8414 @code{user-full-name} with no arguments returns the var
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8415 @code{user-full-name}; a prefix arg to @kbd{M-:} and @kbd{C-h c} inserts
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8416 the result in the current buffer.
1138
05ed51332340 [xemacs-hg @ 2002-12-03 11:01:40 by didierv]
didierv
parents: 1135
diff changeset
8417
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8418 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8419 @strong{Other changes}: Under X, new application class @samp{XEmacs};
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8420 byte-compilation of user-specs now works.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8421
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8422 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8423 @strong{XEmacs/Mule (internationalization) changes}: Mule support now
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8424 works on TTY's; Egg/SJ3 input method now officially supported (Quail and
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8425 Egg/Skk already available through LEIM since 20.3); localized Japanese
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8426 menubars if XEmacs is built with the right support.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8427
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8428 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8429
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
8430 @unnumberedsubsubsec Lisp and internal changes in XEmacs 21.1
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8431
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8432 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8433
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8434 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8435 @strong{Specifier changes}: The window locale now has a higher
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8436 precedence than the buffer locale when instantiating; new macro
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8437 @code{let-specifier}; new specifiers
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8438 @code{vertical-scrollbar-visible-p}, horizontal-scrollbar-visible-p',
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8439 @code{scrollbar-on-left-p}, @code{scrollbar-on-top-p},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8440 @code{vertical-divider-always-visible-p},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8441 @code{vertical-divider-shadow-thickness},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8442 @code{vertical-divider-line-width}, @code{vertical-divider-spacing};
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8443 specifiers and symbols whose value is a specifier allowed as modeline
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8444 specifications.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8445
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8446 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8447 @strong{Frame focus changes}: @code{focus-follows-mouse} works like FSF,
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8448 prevents any attempt to permanently change the selected frame; new
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8449 function @code{focus-frame} sets the window system focus a frame; new
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8450 special forms @code{save-selected-frame} and @code{with-selected-frame}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8451
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8452 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8453 @strong{Window function changes}: @code{select-window} now has optional
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8454 argument @var{NORECORD} to inhibit recording a buffer change;
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8455 @code{vertical-motion} now correctly handles optional @var{WINDOW}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8456 argument and has new optional argument @var{PIXELS}, to have the
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8457 returned values be in pixels; new function
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8458 @code{vertical-motion-pixels}; new functions
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8459 @code{window-text-area-pixel-@{width,height,edges@}}; new functions
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8460 @code{shrink-window-pixels} and @code{enlarge-window-pixels}; new
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8461 function @code{window-displayed-text-pixel-height}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8462
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8463 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8464 @strong{Other function changes}: Arithmetic comparison functions
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8465 @code{<}, @code{>}, @code{=}, @code{/=} now accept a variable number of
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8466 arguments; hashtables now have a consistent read/print syntax; keyword
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8467 symbols cannot be set to a value other than themselves; @code{concat} no
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8468 longer accepts integer arguments; new function @code{string}, like
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8469 @code{list}, @code{vector}, etc.; new function @code{temp-directory}
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8470 (OS-independent way to get a temp directory); @code{load-average} has
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8471 optional argument @var{USE-FLOATS}; @code{make-event} implemented
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8472 completely; new function @code{function-interactive} (returns a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8473 function's interactive spec); new functions @code{lmessage},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8474 @code{lwarn} (printf-like versions of @code{display-wessage},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8475 @code{display-warning}); new keyword @code{:version} to
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8476 @code{defcustom}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8477
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8478 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8479 @strong{Performance}: when the new GNU Malloc aka Doug Lea Malloc is
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8480 available, it will be used (better performance on libc6 Linux systems);
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8481 tracking line-numbers in modeline is now efficient; profiling records a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8482 call-count of all called functions, retrievable through
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8483 @code{profile-call-count-results}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8484
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8485 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8486 @strong{Startup and path searching}: code to assemble paths at startup
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8487 rewritten for new package system; new function @code{split-path} (splits
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8488 by @code{path-separator}); @code{Info-default-directory-list} obsolete,
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8489 use @code{Info-directory-list} instead; site-lisp is deprecated and no
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8490 longer on the load-path by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8491
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8492 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8493
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8494 @node Q9.0.4, Q9.0.5, Q9.0.3, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8495 @unnumberedsubsec Q9.0.4: What's new in XEmacs 20.4?
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8496
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8497 XEmacs 20.4 is a bugfix release with no user-visible changes.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8498 @c Filled in from NEWS file of 20.5-b33
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8499
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8500 @node Q9.0.5, Q9.0.6, Q9.0.4, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8501 @unnumberedsubsec Q9.0.5: What's new in XEmacs 20.3?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8502
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8503 XEmacs 20.3 was released in November 1997. It contains many bugfixes,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8504 and a number of new features, including Autoconf 2 based configuration,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8505 additional support for Mule (Multi-language extensions to Emacs), many
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8506 more customizations, multiple frames on TTY-s, support for multiple info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8507 directories, an enhanced gnuclient, improvements to regexp matching,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8508 increased MIME support, and many, many synches with GNU Emacs 20.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8509
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8510 The XEmacs/Mule support has been only seriously tested in a Japanese
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8511 locale, and no doubt many problems still remain. The support for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8512 ISO-Latin-1 and Japanese is fairly strong. MULE support comes at a
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
8513 price---about a 30% slowdown from 19.16. We're making progress on
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8514 improving performance and XEmacs 20.3 compiled without Mule (which is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8515 the default) is definitely faster than XEmacs 19.16.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8516
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8517 XEmacs 20.3 is the first non-beta v20 release, and will be the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8518 basis for all further development.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8519
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8520 @node Q9.0.6, , Q9.0.5, Current Events
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8521 @unnumberedsubsec Q9.0.6: What's new in XEmacs 20.2?
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8522
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8523 The biggest changes in 20.2 include integration of EFS (the next
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8524 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8525 major mode for editing Tex and LaTeX, and a lot of other stuff). Many
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8526 bugs from 20.0 have been fixed for this release. 20.2 also contains a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8527 new system for customizing XEmacs options, invoked via @kbd{M-x
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8528 customize}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8529
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8530 XEmacs 20.2 is the development release (20.0 was beta), and is no longer
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8531 considered unstable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8532
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8533 For older news, see the file @file{ONEWS} in the @file{etc} directory of
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
8534 the XEmacs distribution.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8535
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
8536 @node Legacy Versions, , Current Events, Top
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8537 @unnumbered 10 New information about old XEmacsen
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8538
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8539 This is part 10 of the XEmacs Frequently Asked Questions list. It will
1495
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8540 occasionally be updated to reflect new information about versions which
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8541 are no longer being revised by the XEmacs Project. The primary purpose
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8542 is advice on compatibility of older XEmacsen with new packages and
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8543 updated versions of packages, but bug fixes (which will not be applied
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8544 to released XEmacsen, but users can apply themselves) are also accepted.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8545
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8546 @menu
2537
b7b90f750a78 [xemacs-hg @ 2005-01-31 20:08:32 by ben]
ben
parents: 2459
diff changeset
8547 10.0: XEmacs 21.1
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8548 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1.
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8549 * Q10.0.2:: XEmacs won't start on Windows in XEmacs 21.1.
1495
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8550 @end menu
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8551
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8552 @unnumberedsec 10.0: XEmacs 21.1
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8553
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8554 @node Q10.0.1, Q10.0.2, Legacy Versions, Legacy Versions
2459
4c1db13742bc [xemacs-hg @ 2004-12-29 05:08:26 by ben]
ben
parents: 2421
diff changeset
8555 @unnumberedsubsec Q10.0.1: Gnus 5.10 won't display smileys in XEmacs 21.1.
1495
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8556
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8557 @email{eeide@@cs.utah.edu, Eric Eide} wrote:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8558
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8559 @quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8560 Previously I wrote:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8561
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8562 Eric> Summary: with Gnus 5.10.1 in XEmacs 21.1.14, I don't see
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8563 Eric> any smileys :-(.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8564
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8565 After a bit of sleuthing, I discovered the essence of the problem.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8566 For me, the form:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8567
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8568 @lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8569 (with-temp-buffer
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8570 (insert-file-contents "foo.xpm")
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8571 (buffer-string))
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8572 @end lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8573
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8574 returns the empty string. This is because something somewhere
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8575 replaces the XPM data with a glyph --- I haven't figured out where
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8576 this occurs.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8577 @end quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8578
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8579 @email{kyle_jones@@wonderworks.com, Kyle Jones} replies:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8580
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8581 @quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8582 Do this:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8583
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8584 @lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8585 (setq format-alist nil)
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8586 @end lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8587
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8588 The image-mode stuff is gone from format-alist in the 21.4
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8589 branch, praise be.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8590 @end quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
8591
2559
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8592 @node Q10.0.2, , Q10.0.1, Legacy Versions
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8593 @unnumberedsubsec Q10.0.2: XEmacs won't start on Windows in XEmacs 21.1.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8594
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8595 XEmacs relies on a process called "dumping" to generate a working
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8596 executable. Under MS-Windows this process effectively fixes the memory
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8597 addresses of information in the executable. When XEmacs starts up it tries
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8598 to reserve these memory addresses so that the dumping process can be
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8599 reversed -- putting the information back at the correct addresses.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8600 Unfortunately some .DLLs (for instance the soundblaster driver) occupy
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8601 memory addresses that can conflict with those needed by the dumped XEmacs
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8602 executable. In this instance XEmacs will fail to start without any
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8603 explanation. Note that this is extremely machine specific.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8604
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8605 21.1.10 includes a fix for this that makes more intelligent guesses
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8606 about which memory addresses will be free, and this should cure the
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8607 problem for most people. 21.4 implements "portable dumping", which
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8608 eliminates the problem altogether. We recommend you use the 21.4
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8609 binaries, but you can use the 21.1 binaries if you are very paranoid
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8610 about stability. @xref{Q1.1.2, Are binaries available?}.
0e04aba50e0b [xemacs-hg @ 2005-02-04 02:51:20 by ben]
ben
parents: 2537
diff changeset
8611
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8612 @bye