annotate man/xemacs-faq.texi @ 2417:8b907450718f

[xemacs-hg @ 2004-12-05 08:48:12 by ben] The section on Troubleshooting (now 2.3) has been completely written and includes a lot of stuff that is not properly documented anywhere else. A fair amount of obsolete info has been deleted and I've incorporated the comments that people (mostly Stephen T) made. Former chapter 3 has been split up in two, one pertaining to basic I/O and the other to external I/O. What were formerly chapters 5 and 6 no longer exist as such; the info in them has been distributed across various other chapters. Old chapter 4 got split up, part going to the new chapter 4 on external I/O and part going to the new chapter 5 on the Internet. In this new chapter, stuff not pertaining to a specific package (e.g. VM or GNUS) was taken out of package-specific sections and a general mail section was constituted. Part of old chapter 5 remains in a new chapter 6 devoted to Emacs Lisp and other advanced stuff, and a section from old chapter 3 on basic init-file Lisp and some stuff from old chapter 5 on Info. The rest of chapter 5 was just misc and has gotten scattered to the winds (mostly in chapters 3 and 4). Old chapter 6 has also gotten quite scattered; there is no longer any section specifically devoted to Windows except one of the Installation sections (along with a section specfically devoted to Unix), and the rest has moved to join the appropriate non-Windows-specific section elsewhere. A lot of chapters had their sections rearranged and likewise for sections having entries rearranged, with the intention that the new arrangement should be more natural. In general I hope that stuff should be much easier to locate. I also rewrote the entries on the relation between XEmacs and GNU Emacs on the authors of XEmacs, including lots of info on who wrote specific subsections. However, this history is certainly not complete; I hope people will look over this and fix it up as necessary.
author ben
date Sun, 05 Dec 2004 08:48:12 +0000
parents e0dc83407d58
children e19aeba465d6
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
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2004/12/05 08:48:12 $
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
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
58 1. Use the Lisp line below to get the spacing correct for the Q#.#.#
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
59 menu entries.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
60
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
61 (set (make-local-variable 'texinfo-column-for-description) 14)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
62
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
63 2. C-u C-c C-u m (C-u M-x texinfo-master-menu) will update the menus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
64 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
65 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
66 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
67 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
68 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
69 detailmenu and the individual chapter menus. In addition,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
70 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
71 menus. Therefore:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
72
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
73 1. Copy the whole detailmenu beforehand.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
74 2. Run C-u C-C C-u m to fix up the nodes.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
75 3. Run `fix-main-menu' and `fix-omitted-menu-lines'.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
76 4. Check the new detailmenu carefully to see if anything is screwed up
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
77 compared to the old detailmenu you copied.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
78 5. If so, paste back the appropriate sections and fix up the corresponding
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)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
85 (search-forward "@menu")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
86 (setq p (match-beginning 0))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
87 (re-search-forward "^$")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
88 (setq q (match-end 0))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
89 (narrow-to-region p q)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
90 (goto-char p)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
91 (while (search-forward ":: " nil t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
92 (indent-to-column 26)))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
93
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
94 (defun fix-omitted-menu-lines ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
95 (interactive)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
96 (save-excursion
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
97 (loop for x from 1 to 7 do
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
98 (goto-char (point-min))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
99 (re-search-forward (format "@unnumberedsec \\(%d.0: .*\\)" x))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
100 (let ((line (match-string 1)))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
101 (search-backward "@menu")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
102 (forward-line 1)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
103 (unless (looking-at "[0-9].0:")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
104 (insert line)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
105 (insert "\n"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
106 (goto-char (point-min))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
107 (search-forward "@menu")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
108 (search-forward (format "Q%d.0.1:" x))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
109 (forward-line -1)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
110 (unless (looking-at "[0-9].0:")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
111 (insert line)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
112 (insert "\n"))))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
113
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 ***** Other work *****
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
116 *****************************************
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 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
119 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
120 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
121 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
122 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
123 @code{texinfo-master-menu}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
124
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
125 (setq last-kbd-macro (read-kbd-macro
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
126 "<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
127 @end ignore
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
128
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
129
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 @node Top, Introduction, (dir), (dir)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 @top XEmacs FAQ
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 This is the guide to the XEmacs Frequently Asked Questions list---a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 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
135 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
136
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
137 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
138 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
139 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 If you have a Web browser, the official hypertext version is at
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 @end iftex
1143
820f727b1801 [xemacs-hg @ 2002-12-04 14:05:57 by stephent]
stephent
parents: 1138
diff changeset
145 @uref{http://www.xemacs.org/FAQ/xemacs-faq.html}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 @ifset CANONICAL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148 @html
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 This document is available in several different formats:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 @uref{xemacs-faq.txt, As a single ASCII file}, produced by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 @code{makeinfo --no-headers}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 @uref{xemacs-faq.dvi, As a .dvi file}, as used with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @uref{http://www.tug.org, TeX.}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 As a PostScript file @uref{xemacs-faq-a4.ps, in A4 format},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 as well as in @uref{xemacs-faq-letter.ps, letter format}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 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
162 @uref{xemacs-faq.html, one monolithic} document.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 The canonical version of the FAQ is the texinfo document
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 @uref{xemacs-faq.texi, man/xemacs-faq.texi}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 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
168 download the faq} in info format, and install it in @file{<XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 library directory>/info/}. For example in
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
170 @file{/usr/local/lib/xemacs-21.4/info/}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 @end html
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 @end ifset
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 @c end ifset points to CANONICAL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
181 * Introduction:: Introduction, Policy, Credits.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
182 * Installation:: Installation and Troubleshooting.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
183 * Display Subsystems:: Basic Display-Related Subsystems.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
184 * 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
185 * Internet:: Connecting to the Internet.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
186 * Advanced:: Advanced Customization Using XEmacs Lisp.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
187 * Current Events:: What the Future Holds.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
188 * Legacy Versions:: New information about old XEmacsen.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190 @detailmenu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 --- The Detailed Node Listing ---
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
193 1 Introduction, Policy, Credits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
194
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
195 1.0: Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
196 * Q1.0.1:: What is XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
197 * Q1.0.2:: What is the current version of XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
198 * Q1.0.3:: Where can I find it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
199 * Q1.0.4:: Are binaries available?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
200 * Q1.0.5:: How does XEmacs differ from GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
201 * Q1.0.6:: How much does XEmacs differ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
202 * Q1.0.7:: Is XEmacs "GNU"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
203 * Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
204 * Q1.0.9:: Why haven't XEmacs and GNU Emacs merged?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
205 * Q1.0.10:: Where can I get help?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
206 * Q1.0.11:: Where are the mailing lists archived?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
207 * Q1.0.12:: How do you pronounce XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
208 * Q1.0.13:: What does XEmacs look like?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
209 * Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
210
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
211 1.1: Versions for Different Operating Systems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
212 * Q1.1.1:: Do I need X11 to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
213 * Q1.1.2:: Is there a port of XEmacs to Microsoft Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
214 * Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
215 * Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
216 * Q1.1.5:: What are the differences between the various MS Windows emacsen?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
217 * Q1.1.6:: Is there a port of XEmacs to the Macintosh?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
218 * Q1.1.7:: Is there a port of XEmacs to NextStep?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
219 * Q1.1.8:: Is there a port of XEmacs to OS/2?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
220 * Q1.1.9:: How does the port cope with differences in the Windows user interface?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
221
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
222 1.2: Policies
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
223 * Q1.2.1:: What is the FAQ editorial policy?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
224 * Q1.2.2:: How do I become a beta tester?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
225 * Q1.2.3:: How do I contribute to XEmacs itself?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
226
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
227 1.3: Credits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
228 * Q1.3.1:: Who wrote XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
229 * Q1.3.2:: Who contributed to this version of the FAQ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
230 * Q1.3.3:: Who contributed to the FAQ in the past?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
231
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
232 1.4: Internationalization
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
233 * Q1.4.1:: What is the status of internationalization support aka MULE (including Asian language support?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
234 * Q1.4.2:: How can I help with internationalization?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
235 * Q1.4.3:: How do I type non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
236 * Q1.4.4:: Can XEmacs messages come out in a different language?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
237 * Q1.4.5:: Please explain the various input methods in MULE/XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
238 * Q1.4.6:: How do I portably code for MULE/XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
239 * Q1.4.7:: How about Cyrillic modes?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
240 * Q1.4.8:: Does XEmacs support Unicode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
241 * Q1.4.9:: How does XEmacs display Unicode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
242
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
243 1.5: Getting Started
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
244 * Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
245 * Q1.5.2:: Where do I put my @file{init.el} file?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
246 * Q1.5.3:: Can I use the same @file{init.el} with the other Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
247 * Q1.5.4:: Any good XEmacs tutorials around?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
248 * Q1.5.5:: May I see an example of a useful XEmacs Lisp function?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
249 * Q1.5.6:: And how do I bind it to a key?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
250 * Q1.5.7:: What's the difference between a macro and a function?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
251 * Q1.5.8:: What is @code{Custom}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
252
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
253 2 Installation and Troubleshooting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
254
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
255 2.0: Installation (General), Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
256 * Q2.0.1:: How do I install the packages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
257 * Q2.0.2:: I don't need no steenkin' packages. Do I?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
258 * Q2.0.3:: Where do I find external libraries?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
259 * Q2.0.4:: How do I specify the paths that XEmacs uses for finding files?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
260 * Q2.0.5:: Running XEmacs without installing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
261 * Q2.0.6:: XEmacs is too big
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
262 * Q2.0.7:: EFS fails with "500 AUTH not understood" (NEW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
263
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
264 2.1: Unix/Mac OS Installation (Also Relevant to Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
265 * Q2.1.1:: Libraries in non-standard locations
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
266 * Q2.1.2:: Why can't I strip XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
267 * Q2.1.3:: Compiling XEmacs with Netaudio.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
268 * Q2.1.4:: Problems with Linux and ncurses.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
269
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
270 2.2: Windows Installation (Windows, Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
271 * Q2.2.1:: What exactly are all the different ways to build XEmacs under Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
272 * Q2.2.2:: What compiler/libraries do I need to compile XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
273 * Q2.2.3:: How do I compile the native port?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
274 * Q2.2.4:: What do I need for Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
275 * Q2.2.5:: How do I compile under Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
276 * Q2.2.6:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
277 * Q2.2.7:: How do I compile with X support?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
278 * Q2.2.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
279
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
280 2.3: General Troubleshooting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
281 * Q2.3.1:: Help! XEmacs just crashed on me!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
282 * Q2.3.2:: XEmacs crashes and I compiled it myself.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
283 * Q2.3.3:: How to debug an XEmacs problem with a debugger
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
284 * Q2.3.4:: I get a cryptic error message when trying to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
285 * Q2.3.5:: XEmacs hangs when I try to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
286 * Q2.3.6:: I get an error message when XEmacs is running in batch mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
287 * Q2.3.7:: The keyboard or mouse is not working properly, or I have some other event-related problem.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
288 * Q2.3.8:: @kbd{C-g} doesn't work for me. Is it broken?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
289 * Q2.3.9:: How do I debug process-related problems?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
290 * Q2.3.10:: XEmacs is outputting lots of X errors.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
291 * Q2.3.11:: After upgrading, XEmacs won't do `foo' any more!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
292
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
293 2.4: Startup-Related Problems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
294 * Q2.4.1:: XEmacs cannot connect to my X Terminal!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
295 * Q2.4.2:: XEmacs won't start on Windows.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
296 * Q2.4.3:: XEmacs won't start without network.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
297 * Q2.4.4:: Startup warnings about deducing proper fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
298 * Q2.4.5:: Warnings from incorrect key modifiers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
299 * Q2.4.6:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
300
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
301 3 Basic Display-Related Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
302
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
303 3.0: The Keyboard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
304 * Q3.0.1:: How can I bind complex functions (or macros) to keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
305 * Q3.0.2:: How do I bind C-. and C-; to scroll one line up and down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
306 * Q3.0.3:: Globally binding @kbd{Delete}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
307 * Q3.0.4:: How to map @kbd{Help} key alone on Sun type4 keyboard?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
308 * Q3.0.5:: How can you type in special characters in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
309 * Q3.0.6:: Can I turn on @dfn{sticky} modifier keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
310 * Q3.0.7:: How do I map the arrow keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
311 * Q3.0.8:: HP Alt key as Meta.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
312 * Q3.0.9:: Why does edt emulation not work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
313 * Q3.0.10:: How can I emulate VI and use it as my default mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
314
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
315 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
316 * 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
317 * 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
318 * 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
319 * Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
320 * Q3.1.5:: How I can set XEmacs up so that it pastes where the text cursor is?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
321
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
322 3.2: Textual Fonts and Colors
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
323 * Q3.2.1:: How do I specify a font?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
324 * Q3.2.2:: How do I set the text, menu and modeline fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
325 * Q3.2.3:: How can I set color options from @file{init.el}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
326 * Q3.2.4:: How can I set the colors when highlighting a region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
327 * Q3.2.5:: How can I limit color map usage?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
328 * Q3.2.6:: My tty supports color, but XEmacs doesn't use them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
329 * Q3.2.7:: Can I have pixmap backgrounds in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
330 * Q3.2.8:: How do I display non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
331 * Q3.2.9:: Font selections in don't get saved after @code{Save Options}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
332
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
333 3.3: The Menubar and Toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
334 * Q3.3.1:: How do I get rid of the menu (or menubar)?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
335 * Q3.3.2:: Can I customize the basic menubar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
336 * Q3.3.3:: How do I control how many buffers are listed in the menu @code{Buffers List}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
337 * Q3.3.4:: Resources like @code{Emacs*menubar*font} are not working?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
338 * Q3.3.5:: How can I bind a key to a function to toggle the toolbar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
339 * Q3.3.6:: @samp{Can't instantiate image error...} in toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
340
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
341 3.4: Scrollbars and Scrolling
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
342 * Q3.4.1:: How can I disable the scrollbar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
343 * Q3.4.2:: How can one use resources to change scrollbar colors?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
344 * Q3.4.3:: Moving the scrollbar can move the point; can I disable this?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
345 * Q3.4.4:: Scrolling one line at a time.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
346 * Q3.4.5:: How can I turn off automatic horizontal scrolling in specific modes?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
347 * Q3.4.6:: I find auto-show-mode disconcerting. How do I turn it off?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
348
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
349 3.5: The Modeline
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
350 * Q3.5.1:: How can I make the modeline go away?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
351 * Q3.5.2:: How do you have XEmacs display the line number in the modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
352 * Q3.5.3:: How do I get XEmacs to put the time of day on the modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
353 * Q3.5.4:: How can one change the modeline color based on the mode used?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
354
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
355 3.6: The Cursor
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
356 * Q3.6.1:: Is there a way to make the bar cursor thicker?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
357 * Q3.6.2:: Is there a way to get back the block cursor?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
358 * Q3.6.3:: Can I make the cursor blink?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
359
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
360 3.7: Text Selections
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
361 * Q3.7.1:: How do I select a rectangular region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
362 * Q3.7.2:: How can I turn off or change highlighted selections?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
363 * Q3.7.3:: How do I get that typing on an active region removes it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
364 * Q3.7.4:: Can I turn off the highlight during isearch?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
365 * Q3.7.5:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
366 * Q3.7.6:: The region disappears when I hit the end of buffer while scrolling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
367 * Q3.7.7:: Why is killing so slow?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
368 * Q3.7.8:: Why does @kbd{M-w} take so long?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
369
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
370 3.8: Buffers, Text Editing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
371 * Q3.8.1:: Can I have the end of the buffer delimited in some way?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
372 * Q3.8.2:: How do I insert today's date into a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
373 * Q3.8.3:: How do I get a single minibuffer frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
374 * Q3.8.4:: How can I enable auto-indent and/or Filladapt?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
375 * Q3.8.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
376
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
377 3.9: Editing Source Code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
378 * Q3.9.1:: How can I do source code highlighting using font-lock?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
379 * Q3.9.2:: How do I get @samp{More} Syntax Highlighting on by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
380 * Q3.9.3:: Where do I get the latest CC Mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
381 * Q3.9.4:: I do not like cc-mode. How do I use the old c-mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
382 * Q3.9.5:: How do you make XEmacs indent CL if-clauses correctly?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
383
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
384 4 Interfacing with the Operating System and External Devices
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
385
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
386 4.0: X Window System and Resources
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
387 * Q4.0.1:: Where is a list of X resources?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
388 * Q4.0.2:: How can I detect a color display?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
389 * Q4.0.3:: How can I get the icon to just say @samp{XEmacs}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
390 * Q4.0.4:: How can I have the window title area display the full path?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
391 * Q4.0.5:: @samp{xemacs -name junk} doesn't work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
392 * Q4.0.6:: @samp{-iconic} doesn't work.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
393
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
394 4.1: Microsoft Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
395 * Q4.1.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
396 * Q4.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
397
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
398 4.2: Printing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
399 * Q4.2.1:: What do I need to change to make printing work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
400 * Q4.2.2:: How can I print WYSIWYG a font-locked buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
401 * Q4.2.3:: Getting @kbd{M-x lpr} to work with postscript printer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
402 * Q4.2.4:: Can you print under MS Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
403
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
404 4.3: Sound
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
405 * Q4.3.1:: How do I turn off the sound?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
406 * Q4.3.2:: How do I get funky sounds instead of a boring beep?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
407 * Q4.3.3:: What's NAS, how do I get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
408 * Q4.3.4:: Sunsite sounds don't play.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
409
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
410 4.4: Running an Interior Shell, Invoking Subprocesses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
411 * Q4.4.1:: What is an interior shell?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
412 * Q4.4.2:: How do I start up a second shell buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
413 * Q4.4.3:: Telnet from shell filters too much
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
414 * Q4.4.4:: Strange things are happening in Shell Mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
415 * Q4.4.5:: XEmacs complains "No such file or directory, diff"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
416
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
417 4.5: Multiple Device Support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
418 * Q4.5.1:: How do I open a frame on another screen of my multi-headed display?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
419 * Q4.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
420 * Q4.5.3:: How do I disable gnuserv from opening a new frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
421 * Q4.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
422 * Q4.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
423
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
424 4.6: TeX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
425 * Q4.6.1:: Is there something better than LaTeX mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
426 * Q4.6.2:: What is AUCTeX? Where do you get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
427 * Q4.6.3:: Problems installing AUCTeX.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
428 * Q4.6.4:: How do I turn off current chapter from AUCTeX modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
429
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
430 4.7: Other Unbundled Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
431 * Q4.7.1:: Is there a reason for an Emacs package not to be included in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
432 * Q4.7.2:: Are there any Emacs Lisp Spreadsheets?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
433 * Q4.7.3:: Is there a MatLab mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
434
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
435 4.8: Environments Built Around XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
436 * Q4.8.1:: What are SPARCworks, EOS, and WorkShop?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
437 * Q4.8.2:: How do I start the Sun Workshop support in XEmacs 21?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
438 * Q4.8.3:: What is/was Energize?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
439 * Q4.8.4:: What is Infodock?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
440
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
441 5 Connecting to the Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
442
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
443 5.0: General Mail and News
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
444 * Q5.0.1:: What are the various packages for reading mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
445 * Q5.0.2:: How can I send mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
446 * Q5.0.3:: How do I get my outgoing mail archived?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
447 * Q5.0.4:: How can I read and/or compose MIME messages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
448 * Q5.0.5:: How do I customize the From line?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
449 * Q5.0.6:: How do I get my MUA to filter mail for me?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
450 * Q5.0.7:: Remote mail reading with an MUA.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
451 * Q5.0.8:: An MUA gets an error incorporating new mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
452 * Q5.0.9:: Why isn't @file{movemail} working?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
453 * Q5.0.10:: How do I make my MUA display graphical smilies?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
454 * Q5.0.11:: How can I get those oh-so-neat X-Face lines?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
455
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
456 5.1: Reading Mail with VM
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
457 * Q5.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
458 * Q5.1.2:: How can I get VM to automatically check for new mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
459 * Q5.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
460 * Q5.1.4:: Is there a mailing list or FAQ for VM?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
461 * Q5.1.5:: How do I make VM stay in a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
462 * Q5.1.6:: Customization of VM not covered in the manual, or here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
463
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
464 5.2: Reading Netnews and Mail with Gnus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
465 * Q5.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
466 * Q5.2.2:: How do I make Gnus stay within a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
467
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
468 5.3: FTP Access
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
469 * Q5.3.1:: Can I edit files on other hosts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
470 * Q5.3.2:: What is EFS?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
471
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
472 5.4: Web Browsing with W3
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
473 * Q5.4.1:: What is W3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
474 * Q5.4.2:: How do I run W3 from behind a firewall?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
475 * Q5.4.3:: Is it true that W3 supports style sheets and tables?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
476
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
477 6 Advanced Customization Using XEmacs Lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
478
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
479 6.0: Online Help
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
480 * Q6.0.1:: How can I get two instances of info?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
481 * Q6.0.2:: How do I add new Info directories?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
482
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
483 6.1: Emacs Lisp and @file{init.el}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
484 * Q6.1.1:: What version of Emacs am I running?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
485 * Q6.1.2:: How can I evaluate Emacs-Lisp expressions?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
486 * Q6.1.3:: @code{(setq tab-width 6)} behaves oddly.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
487 * Q6.1.4:: How can I add directories to the @code{load-path}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
488 * Q6.1.5:: How to check if a lisp function is defined?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
489 * Q6.1.6:: Can I force the output of @code{(face-list)} to a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
490
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
491 6.2: Emacs Lisp Programming Techniques
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
492 * Q6.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
493 * Q6.2.2:: Can I generate "fake" keyboard events?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
494 * Q6.2.3:: Could you explain @code{read-kbd-macro} in more detail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
495 * Q6.2.4:: What is the performance hit of @code{let}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
496 * Q6.2.5:: What is the recommended use of @code{setq}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
497 * Q6.2.6:: What is the typical misuse of @code{setq}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
498 * Q6.2.7:: I like the @code{do} form of cl, does it slow things down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
499 * Q6.2.8:: I like recursion, does it slow things down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
500 * Q6.2.9:: How do I put a glyph as annotation in a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
501 * Q6.2.10:: @code{map-extents} won't traverse all of my extents!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
502 * Q6.2.11:: My elisp program is horribly slow. Is there
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
503
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
504 6.3: Mathematics
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
505 * Q6.3.1:: What are bignums, ratios, and bigfloats in Lisp?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
506 * Q6.3.2:: XEmacs segfaults when I use very big numbers!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
507 * Q6.3.3:: Bignums are really slow!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
508 * Q6.3.4:: Equal bignums don't compare as equal! What gives?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
509
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
510 7 What the Future Holds
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
511
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
512 7.0: Changes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
513 * Q7.0.1:: What new features will be in XEmacs soon?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
514 * Q7.0.2:: What's new in XEmacs 21.4?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
515 * Q7.0.3:: What's new in XEmacs 21.1?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
516 * Q7.0.4:: What's new in XEmacs 20.4?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
517 * Q7.0.5:: What's new in XEmacs 20.3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
518 * Q7.0.6:: What's new in XEmacs 20.2?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
519
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
520 8 New information about old XEmacsen
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
521
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
522 8.0: XEmacs 21.1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
523 * Q8.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
524
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
525 @end detailmenu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
526 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
527
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
528 @node Introduction, Installation, Top, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
529 @unnumbered 1 Introduction, Policy, Credits
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
530
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
531 Learning XEmacs is a lifelong activity. Even people who have used Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
532 for years keep discovering new features. Therefore this document cannot
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
533 be complete. Instead it is aimed at the person who is either
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
534 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
535 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
536 available resources.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
537
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
538 The previous maintainer of the FAQ was
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
539 @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
540 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
541 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
542 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
543 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
544 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
545 document.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
546
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
547 The previous version was converted to hypertext format, and edited by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
548 @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
549 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
550 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
551 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
552
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
553 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
554 @email{ben@@xemacs.org, Ben Wing}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
555
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
556 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
557 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
558 Include @samp{XEmacs FAQ} on the Subject: line.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
559
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
560 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
561 1.0: Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
562 * Q1.0.1:: What is XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
563 * Q1.0.2:: What is the current version of XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
564 * Q1.0.3:: Where can I find it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
565 * Q1.0.4:: Are binaries available?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
566 * Q1.0.5:: How does XEmacs differ from GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
567 * Q1.0.6:: How much does XEmacs differ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
568 * Q1.0.7:: Is XEmacs "GNU"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
569 * Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
570 * Q1.0.9:: Why haven't XEmacs and GNU Emacs merged?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
571 * Q1.0.10:: Where can I get help?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
572 * Q1.0.11:: Where are the mailing lists archived?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
573 * Q1.0.12:: How do you pronounce XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
574 * Q1.0.13:: What does XEmacs look like?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
575 * Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
576
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
577 1.1: Versions for Different Operating Systems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
578 * Q1.1.1:: Do I need X11 to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
579 * Q1.1.2:: Is there a port of XEmacs to Microsoft Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
580 * Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
581 * Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
582 * Q1.1.5:: What are the differences between the various MS Windows emacsen?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
583 * Q1.1.6:: Is there a port of XEmacs to the Macintosh?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
584 * Q1.1.7:: Is there a port of XEmacs to NextStep?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
585 * Q1.1.8:: Is there a port of XEmacs to OS/2?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
586 * Q1.1.9:: How does the port cope with differences in the Windows user interface?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
587
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
588 1.2: Policies
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
589 * Q1.2.1:: What is the FAQ editorial policy?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
590 * Q1.2.2:: How do I become a beta tester?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
591 * Q1.2.3:: How do I contribute to XEmacs itself?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
592
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
593 1.3: Credits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
594 * Q1.3.1:: Who wrote XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
595 * Q1.3.2:: Who contributed to this version of the FAQ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
596 * Q1.3.3:: Who contributed to the FAQ in the past?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
597
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
598 1.4: Internationalization
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
599 * Q1.4.1:: What is the status of internationalization support aka MULE (including Asian language support?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
600 * Q1.4.2:: How can I help with internationalization?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
601 * Q1.4.3:: How do I type non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
602 * Q1.4.4:: Can XEmacs messages come out in a different language?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
603 * Q1.4.5:: Please explain the various input methods in MULE/XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
604 * Q1.4.6:: How do I portably code for MULE/XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
605 * Q1.4.7:: How about Cyrillic modes?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
606 * Q1.4.8:: Does XEmacs support Unicode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
607 * Q1.4.9:: How does XEmacs display Unicode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
608
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
609 1.5: Getting Started
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
610 * Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
611 * Q1.5.2:: Where do I put my @file{init.el} file?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
612 * Q1.5.3:: Can I use the same @file{init.el} with the other Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
613 * Q1.5.4:: Any good XEmacs tutorials around?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
614 * Q1.5.5:: May I see an example of a useful XEmacs Lisp function?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
615 * Q1.5.6:: And how do I bind it to a key?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
616 * Q1.5.7:: What's the difference between a macro and a function?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
617 * Q1.5.8:: What is @code{Custom}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
618 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
619
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
620 @unnumberedsec 1.0: Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
621
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
622 @node Q1.0.1, Q1.0.2, Introduction, Introduction
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
623 @unnumberedsubsec Q1.0.1: What is XEmacs?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
624
479
52626a2f02ef [xemacs-hg @ 2001-04-20 11:31:53 by ben]
ben
parents: 468
diff changeset
625 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
626 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
627 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
628 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
629 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
630 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
631 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
632 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
633 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
634 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
635 of Illinois, Lucid, ETL/Electrotechnical Laboratory, Amdahl
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
636 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
637 number of individual developers.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
638
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
639 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
640 @unnumberedsubsec Q1.0.2: What is the current version of XEmacs?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
641
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
642 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
643 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
644 releases made from the development sources. Check at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
645 @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
646 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
647
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
648 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
649
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
650 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
651 and was also the last version without international language support.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
652
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
653 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
654 @unnumberedsubsec Q1.0.3: Where can I find it?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
655
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
656 The canonical source and binaries can be found via anonymous FTP at:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
657
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
658 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
659 @uref{ftp://ftp.xemacs.org/pub/xemacs/}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
660 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
661
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
662 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
663 @unnumberedsubsec Q1.0.4: Are binaries available?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
664
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
665 MS Windows binaries are available at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
666 @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
667 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
668 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
669 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
670
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
671 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
672 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
673 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
674 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
675 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
676 the configuration of your particular system.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
677
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
678 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
679 @unnumberedsubsec Q1.0.5: How does XEmacs differ from GNU Emacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
680
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
681 For a detailed description of the differences between GNU Emacs and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
682 XEmacs and a detailed history of XEmacs, check out the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
683 @example
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
684 @uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
685 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
686
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
687 @table @strong
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
688 @item User-Visible Editing Features
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
689 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
690 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
691 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
692 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
693 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
694 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
695
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
696 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
697 simultaneously: top, bottom, left, and right toolbars.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
698
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
699 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
700 (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
701 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
702 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
703 preferable as it is faster.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
704
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
705 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
706 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
707
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
708 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
709 it.
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 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
712 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
713 executed via the keyboard will use the minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
714
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
715 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
716 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
717 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
718 keymap.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
719
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
720 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
721 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
722 used in font lock to show the progress.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
723
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
724 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
725 XEmacs 21.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
726
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
727 @item General Platform Support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
728 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
729 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
730 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
731 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
732 EsounD.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
733
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
734 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
735 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
736
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
737 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
738 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
739 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
740 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
741 languages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
742
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
743 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
744 it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
745
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
746 @item Packaged LISP Libraries
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
747 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
748 19 or 20.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
749
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
750 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
751 EFS to download, then automatically install prebuilt LISP
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
752 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
753 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
754
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
755 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
756 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
757
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
758 @item LISP Programming
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
759 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
760 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
761 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
762 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
763 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
764
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
765 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
766 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
767 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
768
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
769 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
770 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
771 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
772 of them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
773
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
774 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
775 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
776 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
777 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
778 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
779 keymaps, it will not.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
780
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
781 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
782 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
783 "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
784 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
785 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
786 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
787 representation).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
788
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
789 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
790 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
791 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
792 have this behavior and overlays never do.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
793
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
794 @item Window System Programming Interface
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
795 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
796 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
797 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
798 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
799 arguments.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
800
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
801 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
802 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
803 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
804 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
805 the support is as yet scarce.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
806
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
807 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
808 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
809 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
810 provided with Motif or Athena.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
811
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
812 @item Community Participation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
813 Starting with XEmacs 20, joining the XEmacs development team is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
814 simple. Mail to @email{xemacs-beta@@xemacs.org, XEmacs Developers}, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
815 you're in! (If you want to be, of course. You're also welcome to just
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
816 post development-related questions and bug reports.) The GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
817 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
818 only.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
819
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
820 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
821 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
822 module for the latest in GUI features!)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
823
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
824 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
825 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
826 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
827 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
828 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
829 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
830 updates often within days.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
831
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
832 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
833 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
834 automatically qualify for CVS accounts for their packages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
835 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
836
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
837 @node Q1.0.6, Q1.0.7, Q1.0.5, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
838 @unnumberedsubsec Q1.0.6: How much does XEmacs differ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
839
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
840 RMS has asserted at times that XEmacs is merely a "patch" on top of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
841 GNU Emacs (@pxref{Q1.0.7}). In fact, probably not more than 5% of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
842 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
843 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
844 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
845 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
846 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
847
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
848 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
849 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
850 "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
851 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
852 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
853 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
854 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
855 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
856
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
857 @node Q1.0.7, Q1.0.8, Q1.0.6, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
858 @unnumberedsubsec Q1.0.7: Is XEmacs "GNU"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
859
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
860 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
861
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
862 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
863 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
864 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
865 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
866 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
867 is why the term "GNU XEmacs" is legitimate.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
868 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
869
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
870 In fact, FSF is @emph{not} the copyright holder for most of the code,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
871 as very little unmodified FSF code remains (@pxref{Q1.0.6}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
872
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
873 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
874 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
875 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
876 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
877 (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
878 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
879 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
880 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
881 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
882 one of them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
883
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
884 @node Q1.0.8, Q1.0.9, Q1.0.7, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
885 @unnumberedsubsec Q1.0.8: What is the correct way to refer to XEmacs and GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
886
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
887 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
888 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
889 politicizing similar issues. (Compare the controversy over "Lignux"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
890 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
891 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
892 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
893 his product is called "GNU Emacs", then ours must be called "GNU
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
894 XEmacs". (For our opinion of this term, @xref{Q1.0.7}.) On the other
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
895 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
896 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
897 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
898 version is the "real" Emacs and ours is merely a derivative,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
899 second-class product (@pxref{Q1.0.6}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
900
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
901 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
902 "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
903 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
904 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
905 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
906 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
907 internals, XEmacs Internals Manual}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
908
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
909 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
910 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
911 "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
912 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
913 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
914 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
915 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
916 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
917 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
918 preference to GNU Emacs.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
919
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
920 @node Q1.0.9, Q1.0.10, Q1.0.8, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
921 @unnumberedsubsec Q1.0.9: Why haven't XEmacs and GNU Emacs merged?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
922
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
923 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
924 technical, programming, design, organizational and legal matters
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
925 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
926 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
927 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
928 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
929 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
930 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
931 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
932 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
933 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
934 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
935 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
936 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
937 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
938 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
939 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
940 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
941 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
942 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
943 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
944 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
945 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
946 position is completely reasonable -- but unfortunately, makes any
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
947 merge impossible.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
948
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
949 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
950 legal and organizational, specifically:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
951
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
952 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
953 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
954 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
955 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
956 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
957 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
958 discouraging individual and in particular corporate contributions --
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
959 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
960 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
961 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
962 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
963 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
964 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
965 understandably reluctant to do.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
966
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
967 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
968 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
969 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
970 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
971 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
972 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
973 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
974 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
975 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
976 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
977 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
978 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
979 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
980 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
981
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
982 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
983 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
984 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
985 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
986 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
987 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
988 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
989 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
990 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
991 discourage code-sharing and cooperative development -- although a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
992 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
993 practically none has gone the other direction.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
994 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
995
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
996 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
997 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
998 that often result. Mail your questions to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
999 @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
1000
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1001 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1002 @unnumberedsubsec Q1.0.10: Where can I get help?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1003
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1004 Probably the easiest way, if everything is installed, is to use Info, by
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1005 pressing @kbd{C-h i}, or looking for an Info item on the
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1006 Help Menu. @kbd{M-x apropos} can be used to look for particular commands.
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1007
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1008 For items not found in the manual, try reading this FAQ
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1009 @comment , examining the regular GNU Emacs FAQ (which can be
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1010 @comment found with the Emacs 19 distribution) as well as at
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1011 @comment @uref{http://www.eecs.nwu.edu/emacs/faq/}
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1012 and reading the Usenet group comp.emacs.xemacs.
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1013
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1014 If you choose to post to a newsgroup, @strong{please use
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1015 comp.emacs.xemacs}. Please do not post XEmacs related questions to
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1016 gnu.emacs.help.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1017
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1018 If you cannot post or read Usenet news, there is a corresponding mailing
741
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
1019 list @email{xemacs-news@@xemacs.org} which is available. It can be
742
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1020 subscribed to via the Mailman Web interface or by sending mail to to
741
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
1021 @email{xemacs-news-request@@xemacs.org} with @samp{subscribe} in the
742
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1022 body of the message. See also
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1023 @uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1024 subscription, you may use the @email{xemacs-news-request@@xemacs.org}
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1025 address or the Web interface. Send a message with a subject of
ececdfb867ce [xemacs-hg @ 2002-02-04 10:57:01 by stephent]
stephent
parents: 741
diff changeset
1026 @samp{unsubscribe} to be removed.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1027
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1028 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1029 @unnumberedsubsec Q1.0.11: Where are the mailing lists archived?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1030
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1031 The archives can be found at @uref{http://list-archive.xemacs.org}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1032
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1033 @node Q1.0.12, Q1.0.13, Q1.0.11, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1034 @unnumberedsubsec Q1.0.12: How do you pronounce XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1035
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1036 The most common pronounciation is @samp{Eks eemax}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1037
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1038 @node Q1.0.13, Q1.0.14, Q1.0.12, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1039 @unnumberedsubsec Q1.0.13: What does XEmacs look like?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1040
658
6693b6f85480 [xemacs-hg @ 2001-09-09 19:47:59 by adrian]
adrian
parents: 647
diff changeset
1041 Screen snapshots are available at
6693b6f85480 [xemacs-hg @ 2001-09-09 19:47:59 by adrian]
adrian
parents: 647
diff changeset
1042 @uref{http://www.xemacs.org/About/Screenshots/index.html}
6693b6f85480 [xemacs-hg @ 2001-09-09 19:47:59 by adrian]
adrian
parents: 647
diff changeset
1043 as part of the XEmacs website.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1044
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1045 @node Q1.0.14, Q1.1.1, Q1.0.13, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1046 @unnumberedsubsec Q1.0.14: Where can I obtain a printed copy of the XEmacs User's Manual?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1047
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1048 Pre-printed manuals are not available. If you are familiar with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1049 TeX, you can generate your own manual from the XEmacs sources.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1050
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1051 HTML and Postscript versions of XEmacs manuals are available from the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1052 XEmacs web site at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1053 @uref{http://www.xemacs.org/Documentation/index.html}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1054
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1055 @unnumberedsec 1.1: Versions for Different Operating Systems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1056
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1057 @node Q1.1.1, Q1.1.2, Q1.0.14, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1058 @unnumberedsubsec Q1.1.1: Do I need X11 to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1059
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1060 No. The name @dfn{XEmacs} is unfortunate in the sense that it is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1061 @strong{not} an X Window System-only version of Emacs. XEmacs has
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1062 full color support on a color-capable character terminal.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1063
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1064 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1065 @unnumberedsubsec Q1.1.2: Is there a port of XEmacs to Microsoft Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1066
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1067 Yes. Beginning with release 21.0, XEmacs has worked under MS Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1068 and is fully-featured and actively developed. A group of dedicated
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1069 developers actively maintains and improves the Windows-specific
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1070 portions of the code. Some of the core developers, in fact, use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1071 Windows as their only development environment, and some features, such
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1072 as printing, actually work better on Windows than native Unix and Mac
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1073 OS X. The mailing list at @email{xemacs-winnt@@xemacs.org} is dedicated
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1074 to that effort (please use the -request address to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1075 subscribe). (Despite its name, XEmacs actually works on all versions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1076 of Windows.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1077
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1078 The list name is misleading, as XEmacs supports and has been compiled on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1079 Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1080 XP, and all newer versions of Windows. The MS Windows-specific code is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1081 based on Microsoft Win32 API, and will not work on MS Windows 3.x or on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1082 MS-DOS.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1083
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1084 XEmacs also supports the Cygwin and MinGW development and runtime
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1085 environments, where it also uses native Windows code for graphical
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1086 features. In addition, under Cygwin it is possible to compile XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1087 to use an X server (and XFree86 is available as part of the standard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1088 Cygwin installation).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1089
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1090 @node Q1.1.3, Q1.1.4, Q1.1.2, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1091 @unnumberedsubsec Q1.1.3: Can I build XEmacs on MS Windows with X support? Do I need to?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1092
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1093 Yes, you can, but no you do not need to. In fact, we recommend that you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1094 use a native-GUI version unless you have a specific need for an X
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1095 version.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1096
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1097 @node Q1.1.4, Q1.1.5, Q1.1.3, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1098 @unnumberedsubsec Q1.1.4: What are Cygwin and MinGW, and do I need them to run XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1099
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1100 To answer the second part of the question: No, you, you don't need
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1101 Cygwin or MinGW to build or to run XEmacs. But if you have them and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1102 want to use them, XEmacs supports these environments.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1103
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1104 (One important reason to support Cygwin is that it lets the MS Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1105 developers test out their code in a Unix environment without actually
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1106 having to have a Unix machine around. For this reason alone, Cygwin
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1107 support is likely to remain supported for a long time in XEmacs. Same
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1108 goes for the X support under Cygwin, for the same reasons. MinGW
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1109 support, on the other hand, depends on volunteers to keep it up to date;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1110 but this is generally not hard.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1111
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1112 Cygwin is a set of tools providing Unix-like API on top of Win32.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1113 It makes it easy to port large Unix programs without significant
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1114 changes to their source code. It is a development environment as well
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1115 as a runtime environment.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1116
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1117 When built with Cygwin, XEmacs supports all display types -- TTY, X &
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1118 Win32 GUI, and can be built with support for all three simultaneously.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1119 If you build with Win32 GUI support then the Cygwin version uses the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1120 majority of the Windows-specific code, which is mostly related to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1121 display. If you want to build with X support you need X libraries (and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1122 an X server to display XEmacs on); see @ref{Q2.2.7}. TTY and Win32 GUI
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1123 require no additional libraries beyond what comes standard with Cygwin.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1124
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1125 The advantages of the Cygwin version are that it integrates well with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1126 the Cygwin environment for existing Cygwin users; uses configure so
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1127 building with different features is very easy; and actively supports X &
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1128 TTY. Furthermore, the entire Cygwin environment and compiler are free,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1129 whereas Visual C++ costs money.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1130
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1131 The disadvantage is that it requires the whole Cygwin environment,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1132 whereas the native port requires only a suitable MS Windows compiler.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1133 Also, it follows the Unix filesystem and process model very closely
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1134 (some will undoubtedly view this as an advantage).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1135
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1136 See @uref{http://sources.redhat.com/cygwin/} for more information on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1137 Cygwin.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1138
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1139 MinGW is a collection of header files and import libraries that allow
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1140 one to use GCC under the Cygwin environment to compile and produce
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1141 exactly the same native Win32 programs that you can using Visual C++.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1142 Programs compiled with MinGW make use of the standard Microsoft runtime
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1143 library @file{MSVCRT.DLL}, present on all Windows systems, and look,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1144 feel, and act like a standard Visual-C-produced application. (The only
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1145 difference is the compiler.) This means that, unlike a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1146 standardly-compiled Cygwin application, no extra runtime support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1147 (e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1148 fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1149 environment, for those die-hard Unix hackers out there), is the main
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1150 advantage of MinGW. It is also potentially faster than Cygwin because
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1151 it has less overhead when calling Windows, but you lose the POSIX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1152 emulation layer, which makes Unix programs harder to port. (But this is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1153 irrelevant for XEmacs since it's already ported to Win32.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1154
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1155 See @uref{http://www.mingw.org/} for more information on MinGW.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1156
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1157 @node Q1.1.5, Q1.1.6, Q1.1.4, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1158 @unnumberedsubsec Q1.1.5: What are the differences between the various MS Windows emacsen?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1159
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1160 XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1161 Could you briefly explain the differences between them?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1162
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1163 Here is a recount of various Emacs versions running on MS Windows:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1164
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1165 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1166
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1167 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1168 XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1169
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1170 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1171
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1172 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1173 Beginning with XEmacs 19.12, XEmacs' architecture was redesigned
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1174 in such a way to allow clean support of multiple window systems. At
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1175 this time the TTY support was added, making X and TTY the first two
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1176 "window systems" supported by XEmacs. The 19.12 design is the basis for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1177 the current native MS Windows code.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1178
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1179 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1180 Some time during 1997, David Hobley (soon joined by Marc Paquette)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1181 imported some of the NT-specific portions of GNU Emacs, making XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1182 with X support compile under Windows NT, and creating the "X" port.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1183
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1184 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1185 Several months later, Jonathan Harris sent out initial patches to use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1186 the Win32 API, thus creating the native port. Since then, various
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1187 people have contributed, including Kirill M. Katsnelson (contributed
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1188 support for menubars, subprocesses and network, as well as loads of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1189 other code), Andy Piper (ported XEmacs to Cygwin environment,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1190 contributed Windows unexec, Windows-specific glyphs and toolbars code,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1191 and more), Ben Wing (loads of improvements; primary MS Windows developer
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1192 since 2000), Jeff Sparkes (contributed scrollbars support) and many
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1193 others.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1194 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1195
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1196 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1197 NT Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1198
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1199 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1200
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1201 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1202 NT Emacs was an early version of GNU Emacs 19 modified to compile and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1203 run under MS Windows 95 and NT using the native Win32 API. It was
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1204 written by Geoff Voelker, and has long since been incorporated into
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1205 the mainline GNU Emacs distribution.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1206 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1207
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1208 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1209 Win-Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1210
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1211 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1212
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1213 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1214 Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1215 compatibility libraries. Win-Emacs was written by Ben Wing. The MS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1216 Windows code never made it back to Lucid Emacs, and its creator (Pearl
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1217 Software) has long since gone out of business.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1218 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1219
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1220 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1221 GNU Emacs for DOS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1222
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1223 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1224
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1225 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1226 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1227 port of GCC). Such an Emacs is heavily underfeatured, because it does
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1228 not support long file names, lacks proper subprocesses support, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1229 is far too big compared with typical DOS editors.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1230 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1231
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1232 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1233 GNU Emacs compiled with Win32
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1234
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1235 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1236
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1237 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1238 Starting with version 19.30, it has been possible to compile GNU Emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1239 under MS Windows using the DJGPP compiler and X libraries. The result
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1240 is very similar to GNU Emacs compiled under MS DOS, only it works
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1241 somewhat better because it runs in 32-bit mode, makes use of all the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1242 system memory, supports long file names, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1243 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1244
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1245 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1246
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1247 @node Q1.1.6, Q1.1.7, Q1.1.5, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1248 @unnumberedsubsec Q1.1.6: Is there a port of XEmacs to the Macintosh?
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1249
613
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1250 Yes.
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1251
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1252 XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1253 will not feel very much like a Mac application as it has no Mac-specific
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1254 code in it.
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1255
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1256 There is also a port of XEmacs 19.14 that works on all recent versions
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1257 of MacOS, from 8.1 through MacOS X, by @email{pjarvis@@ispchannel.com,
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1258 Pitts Jarvis}. It runs in an equivalent of TTY mode only (one single
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1259 Macintosh window, 25 colors), but has a large number of Mac-specific
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1260 additions. It's available at
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 611
diff changeset
1261 @uref{http://homepage.mac.com/pjarvis/xemacs.html}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1262
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1263 @node Q1.1.7, Q1.1.8, Q1.1.6, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1264 @unnumberedsubsec Q1.1.7: Is there a port of XEmacs to NextStep?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1265
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1266 Carl Edman, apparently no longer at @email{cedman@@princeton.edu}, did
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1267 the port of GNU Emacs to NeXTstep and expressed interest in doing the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1268 XEmacs port, but never went any farther.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1269
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1270 @node Q1.1.8, Q1.1.9, Q1.1.7, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1271 @unnumberedsubsec Q1.1.8: Is there a port of XEmacs to OS/2?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1272
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1273 No, but Alexander Nikolaev <avn_1251@@mail.ru> is working on it.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1274
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1275 @node Q1.1.9, Q1.2.1, Q1.1.8, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1276 @unnumberedsubsec Q1.1.9: How does the port cope with differences in the Windows user interface?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1277
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1278 The XEmacs (and Emacs in general) user interface is pretty different
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1279 from what is expected of a typical MS Windows program. How does the MS
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1280 Windows port cope with it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1281
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1282 As a general rule, we follow native MS Windows conventions as much as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1283 possible. 21.4 is a fairly complete Windows application, supporting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1284 native printing, system file dialog boxes, tool tips, etc. In cases
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1285 where there's a clear UI conflict, we currently use normal Unix XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1286 behavior by default, but make sure the MS Windows "look and feel" (mark
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1287 via shift-arrow, self-inserting deletes region, Alt selects menu items,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1288 etc.) is easily configurable (respectively: using the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1289 @code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1290 the default in these versions], or the @file{pc-select} package; using
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1291 the @file{pending-del} package; and setting the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1292 @code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1293 In fact, if you use the sample @file{init.el} file as your init file,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1294 you will get all these behaviors automatically turned on.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1295
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1296 In future versions, some of these features might be turned on by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1297 default in the MS Windows environment.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1298
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1299 @unnumberedsec 1.2: Policies
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1300
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1301 @node Q1.2.1, Q1.2.2, Q1.1.9, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1302 @unnumberedsubsec Q1.2.1: What is the FAQ editorial policy?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1303
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1304 The FAQ is actively maintained and modified regularly. All links should
434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
1305 be up to date. Unfortunately, some of the information is out of date --
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
1306 a situation which the FAQ maintainer is working on. All submissions are
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
1307 welcome, please e-mail submissions to @email{faq@@xemacs.org, XEmacs FAQ
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
1308 maintainers}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1309
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1310 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1311 If you think you have a better way of answering a question, or think a
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1312 question should be included, we'd like to hear about it. Questions and
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1313 answers included into the FAQ will be edited for spelling and grammar
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1314 and will be attributed. Answers appearing without attribution are
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1315 either from versions of the FAQ dated before May 1996 or are from
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1316 previous FAQ maintainers. Answers quoted from Usenet news articles will
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1317 always be attributed, regardless of the author.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1318
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1319 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1320 @unnumberedsubsec Q1.2.2: How do I become a beta tester?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1321
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1322 Send an email message to @email{xemacs-beta-request@@xemacs.org} with
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1323 the line @samp{subscribe} in the body of the message.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1324
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1325 Be prepared to get your hands dirty, as beta testers are expected to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1326 identify problems as best they can.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1327
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1328 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1329 @unnumberedsubsec Q1.2.3: How do I contribute to XEmacs itself?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1330
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1331 It depends on the knowledge and time you possess. If you are able, by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1332 all means become a beta tester (@pxref{Q1.2.2}). If you are a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1333 programmer, try to build XEmacs and see if you can improve it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1334
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1335 Otherwise, you can still help by using XEmacs as your everyday editor
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1336 (for pre-built binary versions, @pxref{Q1.0.4}) and reporting bugs you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1337 find to the mailing list.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1338
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1339 Another area where we need help is the documentation: We need good
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1340 documentation for building XEmacs and for using it. This FAQ is a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1341 small step in that direction.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1342
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1343 Ben Wing @email{ben@@xemacs.org} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1344
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1345 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1346 BTW if you have a wish list of things that you want added, you have to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1347 speak up about it! More specifically, you can do the following if you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1348 want a feature added (in increasing order of usefulness):
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1349
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1350 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1351 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1352 Make a posting about a feature you want added.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1353
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1354 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1355 Become a beta tester and make more postings about those same features.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1356
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1357 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1358 Convince us that you're going to use the features in some cool and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1359 useful way.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1360
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1361 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1362 Come up with a clear and well-thought-out API concerning the features.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1363
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1364 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1365 Write the code to implement a feature and send us a patch.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1366 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1367
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1368 (not that we're necessarily requiring you to write the code, but we can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1369 always hope :)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1370 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1371
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1372 @unnumberedsec 1.3: Credits
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1373
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1374 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1375 @unnumberedsubsec Q1.3.1: Who wrote XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1376
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1377 XEmacs is the result of the time and effort of many people, and the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1378 active developers have changed over time. There are two major
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1379 components of the XEmacs effort -- writing the code itself and providing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1380 all the support work (testing the code, releasing beta and final
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1381 versions, handling patches, reading bug reports, maintaining the web
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1382 site, managing the mailing lists, etc. etc.). Neither component would
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1383 work without the other.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1384
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1385 @subheading CODING
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1386
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1387 The primary code contributor over the years has been Ben Wing (active
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1388 since late 1992). Between 1991 and 1995, large amounts of coding was
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1389 contributed by Jamie Zawinski and Chuck Thompson. Many other people
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1390 have authored major subsystems or otherwise contributed large amounts of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1391 code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1392 Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1393 Mlynarik, Stig, William Perry and plenty of others.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1394
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1395 Primary XEmacs-specific subsystems and their authors:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1396
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1397 @table @asis
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1398 @item Objects
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1399 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1400 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1401 Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard Mlynarik, 1994
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1402 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1403 Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1404 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1405 Portable dumper, object descriptions: Olivier Galibert
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1406 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1407 KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1408 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1409 Random object work (object equal and hash methods, weak lists, lcrecord lists, bit vectors, dynarr, blocktype, opaque, string resizing): Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1410 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1411 Profiling: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1412 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1413 Some byte-compilation and hash-table improvements: Martin Buchholz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1414 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1415 Bignum: Jerry James
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1416 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1418 @item Internationalization/Mule
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1419 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1420 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1421 mostly Ben Wing; many ideas for future work, Stephen Turnbull
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1422 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1423
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1424 @item I/O
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1425 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1426 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1427 Basic event/event-stream implementation: Jamie Zawinski
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1428 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1429 Most event work since 1994: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1430 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1431 Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1432 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1433 Process method abstraction, Windows process work: Kirill Katsnelson
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1434 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1435 Misc-user events, async timeouts, most quit-checking and signal code, most other work since 1994: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1436 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1437 Lstreams: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1438 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1439
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1440 @item Display
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1441 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1442 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1443 Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1444 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1445 Glyphs: mostly Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1446 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1447 Specifiers: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1448 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1449 Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1450 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1451 Widgets: Andy Piper
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1452 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1453 JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see comment in @file{glyphs-eimage.c})
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1454 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1455 Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1456 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1457 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1458 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1459 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1460 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1461 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1462 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1463 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1464 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1465 Toolbars: implementation, chuck, much interface work, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1466 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1467 Gutters, tabs: andy piper
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1468 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1469
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1470 @item Device subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1471 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1472 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1473 X Windows: Jamie Zawinksi, Ben Wing, others
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1474 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1475 GTK: William Perry, Malcolm Purvis
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1476 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1477 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1478 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1479 TTY: Chuck Thompson, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1480 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1481 Cygwin: Andy Piper
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1482 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1483
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1484 @item Misc
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1485 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1486 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1487 Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1488 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1489 Most initialization-related code: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1490 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1491 Internals manual, much of Lisp manual: Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1492 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1493 FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1494 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1495 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1496
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1497 @subheading SUPPORT
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1498
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1499 Currently, support duties are handled by many different people.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1500
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1501 Release managers have been
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1502
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1503 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1504 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1505 Stephen Turnbull (April 2001 - present, 21.x - 21.x?)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1506 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1507 Vin Shelton?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1508 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1509 Steve Youngs (July 2002 - present??, 21.x - 21.x?)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1510 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1511 Martin Buchholz (December 1998 - May 2001, 21.x - 21.x?)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1512 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1513 Steve Baur (early 1997 - November 1998, 19.15 - 21.0)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1514 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1515 Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1516 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1517 Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1518 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1519
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1520 The recent overlapping dates are intentional, since two or three trees
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1521 are maintained simultaneously at any point.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1522
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1523 Other major support work:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1524
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1525 @itemize @minus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1526 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1527 Adrian Aichner wrote and maintains the web site.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1528 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1529 Stephen Turnbull has produced many of the beta and semi-stable releases
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1530 and has attempted to be the "face" of XEmacs on the newsgroups and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1531 mailing lists.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1532 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1533 Steve Youngs currently produces the beta releases (???).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1534 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1535 Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1536 maintaining the packages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1537 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1538 Vin Shelton maintains the stable releases.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1539 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1540 Testing - #### Norbert, Adrian, ???
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1541 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1542
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1543 Portraits and email of some of the major developers:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1544
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1545 @itemize @bullet
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1546 @item @email{andy@@xemacs.org, Andy Piper}
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1547 @html
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1548 <br><img src="wing.gif" alt="Portrait of Ben Wing"><br>
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1549 @end html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1550
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1551 @item @email{ben@@xemacs.org, Ben Wing}
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1552 @html
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1553 <br><img src="wing.gif" alt="Portrait of Ben Wing"><br>
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1554 @end html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1555
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1556 @item @email{cthomp@@xemacs.org, Chuck Thompson}
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1557 @html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1558 <br><img src="cthomp.jpeg" alt="Portrait of Chuck Thompson"><br>
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1559 @end html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1560
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1561 @item @email{hniksic@@xemacs.org, Hrvoje Niksic}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1562
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1563 @html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1564 <br><img src="hniksic.jpeg" alt="Portrait of Hrvoje Niksic"><br>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1565 @end html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1566
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1567 @item @email{jwz@@jwz.org, Jamie Zawinski}
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1568 @html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1569 <br><img src="jwz.gif" alt="Portrait of Jamie Zawinski"><br>
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
1570 @end html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1571
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1572 @item @email{martin@@xemacs.org, Martin Buchholz}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1573 @html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1574 <br><img src="mrb.jpeg" alt="Portrait of Martin Buchholz"><br>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1575 @end html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1576
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1577 @item @email{mly@@adoc.xerox.com, Richard Mlynarik}
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1578
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1579 @item @email{stephen@@xemacs.org, Stephen Turnbull}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1580
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1581 @item @email{steve@@xemacs.org, Steve Baur}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1582 @html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1583 <br><img src="steve.gif" alt="Portrait of Steve Baur"><br>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1584 @end html
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1585 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1586
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1587 Many other people have contributed to XEmacs; this is partially
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1588 enumerated in the @samp{About XEmacs} option in the Help menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1589
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1590 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1591 @unnumberedsubsec Q1.3.2: Who contributed to this version of the FAQ?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1592
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1593 The current version of this FAQ was created by @email{ben@@xemacs.org,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1594 Ben Wing}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1595
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1596 @node Q1.3.3, Q1.4.1, Q1.3.2, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1597 @unnumberedsubsec Q1.3.3: Who contributed to the FAQ in the past?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1598
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1599 This is only a partial list, as many names were lost in a hard disk
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1600 crash some time ago.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1601
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1602 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1603 @item @email{steve@@xemacs.org, SL Baur}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1604
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1605 @item @email{hniksic@@xemacs.org, Hrvoje Niksic}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1606
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1607 @item @email{binge@@aloft.att.com, Curtis.N.Bingham}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1608
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1609 @item @email{bruncott@@dormeur.inria.fr, Georges Brun-Cottan}
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1610
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1611 @item @email{rjc@@cogsci.ed.ac.uk, Richard Caley}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1612
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1613 @item @email{cognot@@ensg.u-nancy.fr, Richard Cognot}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1614
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1615 @item @email{daku@@nortel.ca, Mark Daku}
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1616
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1617 @item @email{wgd@@martigny.ai.mit.edu, William G. Dubuque}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1618
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1619 @item @email{eeide@@cs.utah.edu, Eric Eide}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1620
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1621 @item @email{af@@biomath.jussieu.fr, Alain Fauconnet}
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
1622
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1623 @item @email{cflatter@@nrao.edu, Chris Flatters}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1624
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1625 @item @email{ginsparg@@adra.com, Evelyn Ginsparg}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1626
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1627 @item @email{hall@@aplcenmp.apl.jhu.edu, Marty Hall}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1628
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1629 @item @email{dkindred@@cmu.edu, Darrell Kindred}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1630
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1631 @item @email{dmoore@@ucsd.edu, David Moore}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1632
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1633 @item @email{arup+@@cmu.edu, Arup Mukherjee}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1634
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1635 @item @email{nickel@@prz.tu-berlin.de, Juergen Nickelsen}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1636
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1637 @item @email{powell@@csl.ncsa.uiuc.edu, Kevin R. Powell}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1638
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1639 @item @email{dworkin@@ccs.neu.edu, Justin Sheehy}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1640
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1641 @item @email{stig@@hackvan.com, Stig}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1642
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1643 @item @email{Aki.Vehtari@@hut.fi, Aki Vehtari}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1644 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1645
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1646 @unnumberedsec 1.4: Internationalization
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1647
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1648 @node Q1.4.1, Q1.4.2, Q1.3.3, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1649 @unnumberedsubsec Q1.4.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
1650
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1651 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
1652 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
1653 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
1654 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
1655 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
1656 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
1657 support run faster than MULE capable XEmacsen.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1658
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1659 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1660 @unnumberedsubsec Q1.4.2: How can I help with internationalization?
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1661
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1662 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
1663 @email{xemacs-mule@@xemacs.org} mailing list. Especially needed are
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
1664 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
1665 use XEmacs/MULE regularly, and have some experience with Elisp.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1666
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1667 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
1668 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
1669
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1670 @xref{Q1.2.2, How do I become a Beta Tester?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1671
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1672 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1673 @unnumberedsubsec Q1.4.3: How do I type non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1674
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1675 @xref{Q3.0.5, How can you type in special characters in XEmacs?}, in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1676 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
1677 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
1678 mostly for ISO 8859/1). Many of the methods available for Cyrillic
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1679 (@pxref{Q1.4.7, How about Cyrillic modes?}) work without MULE. MULE
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1680 has more general capabilities. @xref{Q1.4.5, Please explain the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1681 various input methods in MULE/XEmacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1682
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1683 @xref{Q3.2.8, How do I display non-ASCII characters?}, which covers
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1684 display of non-ASCII characters.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1685
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1686 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1687 @unnumberedsubsec Q1.4.4: Can XEmacs messages come out in a different language?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1688
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1689 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
1690 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
1691 will not either.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1692
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1693 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
1694 your @file{Emacs} file entries like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1695
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1696 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1697 Emacs*XlwMenu.resourceLabels: True
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1698 Emacs*XlwMenu.file.labelString: Fichier
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1699 Emacs*XlwMenu.openInOtherWindow.labelString: In anderem Fenster oeffnen
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1700 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1701
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1702 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
1703 removing punctuation and capitalizing as above.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1704
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1705 @node Q1.4.5, Q1.4.6, Q1.4.4, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1706 @unnumberedsubsec Q1.4.5: Please explain the various input methods in MULE/XEmacs
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1707
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1708 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
1709 classes: Lisp implementations, generic platform support, and library
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1710 interfaces.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1711
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1712 @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
1713 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
1714 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
1715 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
1716 "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
1717 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
1718 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
1719 methods used for Asian ideographic languages like Chinese.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1720
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1721 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
1722 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
1723 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
1724 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
1725 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
1726 anywhere.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1727
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1728 @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
1729 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
1730 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
1731 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
1732 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
1733 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
1734 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
1735 variables.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1736
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1737 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
1738 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
1739 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
1740 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
1741 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
1742 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
1743 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
1744 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
1745 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
1746
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1747 @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
1748 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
1749 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
1750 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
1751 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
1752 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
1753 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
1754 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
1755 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
1756
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1757 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
1758 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
1759 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
1760 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
1761 is specialized to Canna.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1762
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1763 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
1764 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
1765 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
1766 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
1767
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1768 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
1769 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
1770 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
1771 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
1772 there is a Microsoft Windows version).
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1773
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1774 SJ3, by Sony, supports only Japanese.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1775
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1776 Egg consists of following parts:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1777
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1778 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1779 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1780 Input character Translation System (ITS) layer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1781 It translates ASCII inputs to Kana/PinYin/Hangul characters.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1782
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1783 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1784 Kana/PinYin/Hangul to Kanji transfer layer.
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1785 The interface layer to network Kana-Kanji server (Wnn and Sj3).
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1786 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1787
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1788 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
1789 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
1790 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
1791 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
1792 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
1793 boiled-egg-like utilities.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1794
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1795 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
1796 MORIOKA Tomohiko}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1797
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1798 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1799 @unnumberedsubsec Q1.4.6: How do I portably code for MULE/XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1800
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1801 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
1802 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
1803 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
1804 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
1805
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1806 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
1807 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
1808 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
1809 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
1810 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
1811 detections, but will also involve new APIs.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1812
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1813 @email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1814
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1815 @quotation
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
1816 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
1817 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
1818 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
1819 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
1820
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1821 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
1822 different---requiring separate code as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1823
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1824 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
1825 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
1826 @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
1827 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
1828 however; APEL has problems of its own. -- Ed.]
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1829
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1830 I have the following suggestions about dealing with mule variants:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1831
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1832 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1833 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1834 @code{(featurep 'mule)} @code{t} on all mule variants
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1835
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1836 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1837 @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
1838 of Emacs will not have this symbol.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1839
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1840 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1841 MULE has a variable @code{mule-version}. Perhaps the next version of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1842 Emacs will have this variable as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1843 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1844
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1845 Following is a sample to distinguish mule variants:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1846
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1847 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1848 (if (featurep 'mule)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1849 (cond ((boundp 'MULE)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1850 ;; for original Mule
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1851 )
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1852 ((string-match "XEmacs" emacs-version)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1853 ;; for XEmacs with Mule
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1854 )
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1855 (t
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1856 ;; for next version of Emacs
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
1857 ))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1858 ;; for old emacs variants
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1859 )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1860 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1861 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1862
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1863 @node Q1.4.7, Q1.4.8, Q1.4.6, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1864 @unnumberedsubsec Q1.4.7: How about Cyrillic modes?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1865
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1866 @email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1867
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1868 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1869 There is a cyrillic mode in the file @file{mysetup.zip} in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1870 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1871 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1872 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1873 @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
1874 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
1875 which can be obtained from
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1876 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1877
871
732270854293 [xemacs-hg @ 2002-06-11 19:28:14 by adrian]
adrian
parents: 853
diff changeset
1878 @uref{http://www.math.uga.edu/~valery/russian.el}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1879
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1880 @email{d.barsky@@ee.surrey.ac.uk, Dima Barsky} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1881
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1882 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1883 There is another cyrillic mode for both GNU Emacs and XEmacs by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1884 @email{manin@@camelot.mssm.edu, Dmitrii
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1885 (Mitya) Manin} at
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1886 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1887
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1888 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1889 @uref{http://kulichki-lat.rambler.ru/centrolit/manin/cyr.el}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1890 @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
1891 @c Changed to russian host instead
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1892 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1893
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1894 @email{rebecca.ore@@op.net, Rebecca Ore} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1895
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1896 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1897 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
1898 XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1899 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1900
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1901 @node Q1.4.8, Q1.4.9, Q1.4.7, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1902 @unnumberedsubsec Q1.4.8: Does XEmacs support Unicode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1903
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1904 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
1905
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1906 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
1907 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
1908
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1909 21.4 supports Unicode partially -- as an external encoding for files,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1910 processes, and terminals, but without font support. @xref{Q1.4.9, How
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1911 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
1912 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
1913
1616
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
1914 @example
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1915 (require 'un-define)
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1916 (set-coding-priority-list '(utf-8))
1616
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
1917 (set-coding-category-system 'utf-8 'utf-8)
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
1918 @end example
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
1919
aaf5e80aedd2 [xemacs-hg @ 2003-08-12 06:15:51 by stephent]
stephent
parents: 1549
diff changeset
1920 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
1921 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
1922 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
1923
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1924 Install standard national fonts (not Unicode fonts) for all character
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1925 sets you use. @xref{Q1.4.9, How does XEmacs display Unicode??}.
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1926
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1927 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
1928 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
1929
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1930 @node Q1.4.9, Q1.5.1, Q1.4.8, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1931 @unnumberedsubsec Q1.4.9: How does XEmacs display Unicode?
745
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1932
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1933 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
1934 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
1935 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
1936 translate it to multiple 96x96 pages.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1937
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1938 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
1939 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
1940 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
1941 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
1942 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
1943 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
1944 `un-define-change-charset-order'.
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1945
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1946 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
1947 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
1948 '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
1949
4aa6e26cd8ba [xemacs-hg @ 2002-02-06 16:27:05 by stephent]
stephent
parents: 742
diff changeset
1950 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
1951
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1952 @unnumberedsec 1.5: Getting Started
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1953
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1954 @node Q1.5.1, Q1.5.2, Q1.4.9, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1955 @unnumberedsubsec Q1.5.1: What is an @file{init.el} or @file{.emacs} and is there a sample one?
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1956
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1957 The @file{init.el} or @file{.emacs} file is used to customize XEmacs to
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1958 your tastes. Starting in 21.4, the preferred location for the init file
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1959 is @file{~/.xemacs/init.el}; in previous versions, it was
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1960 @file{~/.emacs}. 21.4 still accepts the old location, but the first
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1961 time you run it, it will ask to migrate your file to the new location.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1962 If you answer yes, the file will be moved, and a "compatibility"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1963 @file{.emacs} file will be placed in the old location so that you can
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1964 still run older versions of XEmacs, and versions of GNU Emacs, which
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1965 expect the old location. The @file{.emacs} file present is just a stub
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1966 that loads the real file in @file{~/.xemacs/init.el}.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1967
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1968 No two init files are alike, nor are they expected to be alike, but
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1969 that's the point. The XEmacs distribution contains an excellent starter
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1970 example in the @file{etc/} directory called @file{sample.init.el}
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1971 (starting in 21.4) or @file{sample.emacs} in older versions. Copy this
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1972 file from there to @file{~/.xemacs/init.el} (starting in 21.4) or
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1973 @file{~/.emacs} in older versions, where @samp{~} means your home
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1974 directory, of course. Then edit it to suit.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1975
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1976 You may bring the @file{sample.init.el} or @file{sample.emacs} file into
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1977 an XEmacs buffer from the menubar. (The menu entry for it is always
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1978 under the @samp{Help} menu, but its location under that has changed in
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1979 various versions. Recently, look under the @samp{Samples} submenu.) To
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
1980 determine the location of the @file{etc/} directory type the command
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1981 @kbd{C-h v data-directory @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1982
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1983 @node Q1.5.2, Q1.5.3, Q1.5.1, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1984 @unnumberedsubsec Q1.5.2: Where do I put my @file{init.el} file?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1985
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1986 @file{init.el} is the name of the init file starting with 21.4, and is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1987 located in the subdirectory @file{.xemacs/} of your home directory. In
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1988 prior versions, the init file is called @file{.emacs} and is located in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1989 your home directory.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1990
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1991 Your home directory under Windows is determined by the @samp{HOME}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1992 environment variable. If this is not set, it defaults to @samp{C:\}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1993 To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1994 select @samp{Control Panel->System->Advanced->Environment Variables...}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1995 under Windows NT/2000.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1996
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1997 @node Q1.5.3, Q1.5.4, Q1.5.2, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
1998 @unnumberedsubsec Q1.5.3: Can I use the same @file{init.el} with the other Emacs?
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 Yes. The sample @file{init.el} included in the XEmacs
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
2001 distribution will show you how to handle different versions and flavors
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
2002 of Emacs.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2003
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2004 @node Q1.5.4, Q1.5.5, Q1.5.3, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2005 @unnumberedsubsec Q1.5.4: Any good XEmacs tutorials around?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2006
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2007 There's the XEmacs tutorial available from the Help Menu under
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2008 @samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2009 it's available in a non-english language, type @kbd{C-u C-h t TAB}, type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2010 the first letters of your preferred language, then type @key{RET}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2011
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2012 @comment There's an Emacs Lisp tutorial at
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
2013 @comment
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2014 @comment @example
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2015 @comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}.
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2016 @comment @end example
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
2017 @comment
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2018 @comment @email{erik@@petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2019 @comment page at
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2020 @comment @iftex
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2021 @comment @*
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2022 @comment @end iftex
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
2023 @comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2024
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2025 @node Q1.5.5, Q1.5.6, Q1.5.4, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2026 @unnumberedsubsec Q1.5.5: May I see an example of a useful XEmacs Lisp function?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2027
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2028 The following function does a little bit of everything useful. It does
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2029 something with the prefix argument, it examines the text around the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2030 cursor, and it's interactive so it may be bound to a key. It inserts
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2031 copies of the current word the cursor is sitting on at the cursor. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2032 you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2033 insert 3 copies.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2034
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2035 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2036 (defun double-word (count)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2037 "Insert a copy of the current word underneath the cursor"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2038 (interactive "*p")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2039 (let (here there string)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2040 (save-excursion
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2041 (forward-word -1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2042 (setq here (point))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2043 (forward-word 1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2044 (setq there (point))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2045 (setq string (buffer-substring here there)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2046 (while (>= count 1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2047 (insert string)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2048 (decf count))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2049 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2050
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2051 The best way to see what is going on here is to let XEmacs tell you.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2052 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2053 sitting just to the right of the function you want explained. Eg. move
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2054 the cursor to the SPACE between @code{interactive} and @samp{"*p"} and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2055 hit @kbd{C-h f} to see what the function @code{interactive} does. Doing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2056 this will tell you that the @code{*} requires a writable buffer, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2057 @code{p} converts the prefix argument to a number, and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2058 @code{interactive} allows you to execute the command with @kbd{M-x}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2059
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2060 @node Q1.5.6, Q1.5.7, Q1.5.5, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2061 @unnumberedsubsec Q1.5.6: And how do I bind it to a key?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2062
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2063 To bind to a key do:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2064
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2065 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2066 (global-set-key "\C-cd" 'double-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2067 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2068
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2069 Or interactively, @kbd{M-x global-set-key} and follow the prompts.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2070
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2071 @node Q1.5.7, Q1.5.8, Q1.5.6, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2072 @unnumberedsubsec Q1.5.7: What's the difference between a macro and a function?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2073
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2074 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2075
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2076 @dfn{Macros} enable you to define new control constructs and other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2077 language features. A macro is defined much like a function, but instead
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2078 of telling how to compute a value, it tells how to compute another Lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2079 expression which will in turn compute the value. We call this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2080 expression the @dfn{expansion} of the macro.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2081
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2082 Macros can do this because they operate on the unevaluated expressions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2083 for the arguments, not on the argument values as functions do. They can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2084 therefore construct an expansion containing these argument expressions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2085 or parts of them.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2086
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2087 Do not confuse the two terms with @dfn{keyboard macros}, which are
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2088 another matter, entirely. A keyboard macro is a key bound to several
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2089 other keys. Refer to manual for details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2090
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2091 @node Q1.5.8, , Q1.5.7, Introduction
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2092 @unnumberedsubsec Q1.5.8: What is @code{Custom}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2093
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2094 @code{Custom} is a system for customizing XEmacs options.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2095
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2096 You can access @code{Advanced (Customize)} from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2097 or invoking one of customize commands by typing eg.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2098 @kbd{M-x customize}, @kbd{M-x customize-face},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2099 @kbd{M-x customize-variable} or @kbd{M-x customize-apropos}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2100
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2101 There is also new @samp{browser} mode for Customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2102 Try it out with @kbd{M-x customize-browse}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2103
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2104 @node Installation, Display Subsystems, Introduction, Top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2105 @unnumbered 2 Installation and Troubleshooting
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2106
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2107 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
2108 section is devoted to Installation, Maintenance and Troubleshooting.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2109
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2110 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2111 2.0: Installation (General), Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2112 * Q2.0.1:: How do I install the packages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2113 * Q2.0.2:: I don't need no steenkin' packages. Do I?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2114 * Q2.0.3:: Where do I find external libraries?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2115 * Q2.0.4:: How do I specify the paths that XEmacs uses for finding files?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2116 * Q2.0.5:: Running XEmacs without installing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2117 * Q2.0.6:: XEmacs is too big
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2118 * Q2.0.7:: EFS fails with "500 AUTH not understood" (NEW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2119
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2120 2.1: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2121 * Q2.1.1:: Libraries in non-standard locations
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2122 * Q2.1.2:: Why can't I strip XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2123 * Q2.1.3:: Compiling XEmacs with Netaudio.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2124 * Q2.1.4:: Problems with Linux and ncurses.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2125
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2126 2.2: Windows Installation (Windows, Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2127 * Q2.2.1:: What exactly are all the different ways to build XEmacs under Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2128 * Q2.2.2:: What compiler/libraries do I need to compile XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2129 * Q2.2.3:: How do I compile the native port?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2130 * Q2.2.4:: What do I need for Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2131 * Q2.2.5:: How do I compile under Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2132 * Q2.2.6:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2133 * Q2.2.7:: How do I compile with X support?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2134 * Q2.2.8:: Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
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 2.3: General Troubleshooting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2137 * Q2.3.1:: Help! XEmacs just crashed on me!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2138 * Q2.3.2:: XEmacs crashes and I compiled it myself.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2139 * Q2.3.3:: How to debug an XEmacs problem with a debugger
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2140 * Q2.3.4:: I get a cryptic error message when trying to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2141 * Q2.3.5:: XEmacs hangs when I try to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2142 * Q2.3.6:: I get an error message when XEmacs is running in batch mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2143 * Q2.3.7:: The keyboard or mouse is not working properly, or I have some other event-related problem.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2144 * Q2.3.8:: @kbd{C-g} doesn't work for me. Is it broken?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2145 * Q2.3.9:: How do I debug process-related problems?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2146 * Q2.3.10:: XEmacs is outputting lots of X errors.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2147 * Q2.3.11:: After upgrading, XEmacs won't do `foo' any more!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2148
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2149 2.4: Startup-Related Problems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2150 * Q2.4.1:: XEmacs cannot connect to my X Terminal!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2151 * Q2.4.2:: XEmacs won't start on Windows.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2152 * Q2.4.3:: XEmacs won't start without network.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2153 * Q2.4.4:: Startup warnings about deducing proper fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2154 * Q2.4.5:: Warnings from incorrect key modifiers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2155 * Q2.4.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
2156 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2157
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2158 @unnumberedsec 2.0: Installation (General), Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2159
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2160 @node Q2.0.1, Q2.0.2, Installation, Installation
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2161 @unnumberedsubsec Q2.0.1: How do I install the packages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2162
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2163 Many people really liked the old way that packages were bundled and do
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2164 not want to mess with packages at all. You can grab all the packages at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2165 once like you used to with old XEmacs versions. Download the file
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2166
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2167 @file{xemacs-sumo.tar.gz}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2168
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2169 For an XEmacs compiled with Mule you also need
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2170
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2171 @file{xemacs-mule-sumo.tar.gz}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2172
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2173 These are in the @file{packages} directory on your XEmacs mirror
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2174 archive. N.B. They are called 'Sumo Tarballs' for good reason. They
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2175 are currently about 15MB and 2.3MB (gzipped) respectively.
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 Install them on Unix and Mac OS X using the shell/Terminal command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2178
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2179 @code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xf -}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2180
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2181 Where @samp{$prefix} is what you gave to the @samp{--prefix} flag to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2182 @file{configure}, and defaults to @file{/usr/local}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2183
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2184 If you have the packages somewhere nonstandard and don't want to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2185 bother with @samp{$prefix} (for example, you're a developer and are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2186 compiling the packages yourself, and want your own private copy of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2187 everything), you can also directly specify this using @file{configure}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2188 To do this under 21.5 and above use the @samp{--package-prefix} parameter
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2189 to specify the directory under which you untarred the above tarballs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2190 Under 21.4 and previous you need to use @samp{--package-path},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2191 something like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2192
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2193 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2194 configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2195 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2196
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2197 Under Windows, you need to place the above @samp{tar.gz} files in the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2198 directory specified using the @samp{PACKAGE_PREFIX} value in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2199 @file{nt/config.inc} and by default is @file{\Program Files\XEmacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2200 (To untar a @samp{tar.gz} file you will need to use a utility such as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2201 WinZip, unless you have Cygwin or a similar environment installed, in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2202 which case the above Unix shell command should work fine.) If you want
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2203 the packages somewhere else, just change @samp{PACKAGE_PREFIX}.
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 Note that XEmacs finds the packages automatically anywhere underneath
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2206 the directory tree where it expects to find the packages. All you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2207 need to do is put stuff there; you don't need to run any program to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2208 tell XEmacs to find the packges, or do anything of that sort.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2209
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2210 See @file{README.packages} in the top-level source directory for more
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2211 detailed installation instructions.
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 As the Sumo tarballs are not regenerated as often as the individual
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2214 packages, it is recommended that you use the automatic package tools
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2215 afterwards to pick up any recent updates.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2216
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2217 @emph{More detailed info}: If the package path is not explicitly
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2218 specified, XEmacs looks for the package directory
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2219 @file{xemacs-packages} (and @file{mule-packages}, etc.) first under
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2220 @samp{~/.xemacs}, then for a sister directory
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2221 @file{lib/xemacs-VERSION} of the directory in which the XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2222 executable is located, then for a sister directory @file{lib/xemacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2223 The XEmacs executable (under Unix at least) is installed by default in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2224 @file{/usr/local/bin}; this explains why XEmacs in its default
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2225 installation will find packages that you put under
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2226 @file{/usr/local/lib/xemacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2227
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2228 #### I'm not sure what exactly happens when the package path is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2229 specifically given, as is the case when the @samp{--package-prefix} or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2230 @samp{--package-path} options are given to @file{configure}, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2231 always under Microsoft Windows.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2232
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2233 @emph{NOTE}: For detailed information about how the package
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2234 hierarchies work, @xref{Package Overview,,,lispref, the XEmacs Lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2235 Reference Manual}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2236
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2237 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2238 @unnumberedsubsec Q2.0.2: I don't need no steenkin' packages. Do I?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2239
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2240 Strictly speaking, no. XEmacs will build and install just fine without
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2241 any packages installed. However, only the most basic editing functions
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2242 will be available with no packages installed, so installing packages is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2243 an essential part of making your installed XEmacs _useful_.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2244
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2245 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2246 @unnumberedsubsec Q2.0.3: Where do I find external libraries?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2247
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2248 All external libraries used by XEmacs can be found at the XEmacs FTP
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2249 site
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2250 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2251 @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2252 @end iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2253 @uref{http://ftp.xemacs.org/pub/aux/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2254
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2255 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
2256 (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
2257 We try to keep the libraries up-to-date but may not always succeed.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2258 If you want to make sure of getting the latest version, check the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2259 canonical locations below.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2260
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2261 The canonical locations (at the time of this writing) are as follows:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2262
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2263 @subheading Databases:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2264
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2265 These DBM implementations are supported by XEmacs:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2266 native dbm (provided by OS), GDBM, and Berkeley DB version 1, 2 and 3.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2267
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2268 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2269 GDBM is the GNU DBM library, compatible with the Unix dbm library.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2270 gdbm-1.8.3.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2271 ftp://ftp.gnu.org/pub/gnu/gdbm/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2272 http://www.gnu.org/software/gdbm/gdbm.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2273 configure flag: --with-database=gnudbm
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2274
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2275 Berkeley DB is provided by Sleepycat Software.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2276 db-4.1.25.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2277 http://www.sleepycat.com/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2278 configure flag: --with-database=berkdb
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2279
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2280 OpenLDAP is an implementation of the LDAP X.500 Directory protocol.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2281 openldap-2.1.12.tgz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2282 http://www.openldap.org/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2283 configure flag: --with-ldap
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2284 @end example
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 @subheading Image Format Libraries:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2287
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2288 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2289 `compface' is an old library for viewing X-Faces in messages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2290 It is no longer being maintained and has been frozen for 10 years or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2291 so, but still works. It should be compiled with the same options that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2292 X11 was compiled with on your system. The version of this library at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2293 xemacs.org includes the `xbm2xface.pl' script, written by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2294 @email{stig@@hackvan.com, Stig}, which may be useful when generating
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2295 your own xface.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2296 compface.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2297 ftp://ftp.cs.indiana.edu/pub/faces/compface/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2298 configure flag: --with-xface
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2299
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2300 The JPEG image format library
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2301 jpegsrc.v6b.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2302 ftp://ftp.uu.net/graphics/jpeg/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2303 http://www.ijg.org/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2304 configure flag: --with-jpeg
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2305
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2306 The TIFF image format library
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2307 tiff-v3.4-tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2308 ftp://ftp.sgi.com/graphics/tiff/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2309 configure flag: --with-tiff
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2310
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2311 The XPM image format library
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2312 xpm-3.4k.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2313 ftp://koala.inria.fr/pub/xpm/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2314 http://www.inria.fr/koala/lehors/xpm.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2315 configure flag: --with-xpm
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2316
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2317 The PNG image format library
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2318 libpng-1.2.15.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2319 http://www.libpng.org/pub/png/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2320 configure flag: --with-png
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2321
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2322 The ZLIB compression library is used by the PNG library.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2323 A GZIP coding system is also available, in XEmacs 21.5 and onward.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2324 zlib-1.1.4.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2325 http://www.gzip.org/zlib/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2326 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2327
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2328 @subheading Other Multimedia:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2329
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2330 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2331 Network Audio System (NAS) is a client-server sound library for X.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2332 nas-1.6.src.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2333 ftp://ftp.x.org/contrib/audio/nas/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2334 http://radscan.com/nas.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2335 configure flag: --with-nas
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2336
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2337 Enlightened Sound Daemon (ESD) is yet another sound system.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2338 esound-0.2.8.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2339 http://www.tux.org/~ricdude/EsounD.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2340
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2341 Netpbm is a collection of programs that XEmacs might use at runtime.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2342 netpbm-1mar1994.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2343 netpbm-9.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2344 ftp://metalab.unc.edu/pub/Linux/apps/graphics/convert/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2345
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2346 Xaw3d is designed to be a drop-in replacement for the Athena widget
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2347 library that `looks cooler'.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2348 Xaw3d-1.5.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2349 ftp://ftp.x.org/contrib/widgets/Xaw3d/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2350 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2351
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2352 @subheading Internationalization:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2353
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2354 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2355 Canna is a Japanese language input method.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2356 Canna has not been updated since 1996.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2357 Canna35b2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2358 cfw35f1p.exe (Canna on W95)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2359 http://www.nec.co.jp/canna/ (in Japanese)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2360 http://www.nec.co.jp/canna/c-down.html (download site, for those not able
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2361 to read Japanese)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2362 configure flag: --with-canna
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2363
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2364 Wnn is a multi-language mule input method.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2365 Wnn4 is the free version, while Wnn6 is the commercial version.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2366 Wnn4.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2367 ftp://ftp.omronsoft.co.jp/pub/Wnn6/ (commercial version)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2368
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2369 Wnn4 appears completely orphaned; searches on google turn up XEmacs' own
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2370 site first. However, here is a (very old) site with some info on WNN:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2371 http://web.kyoto-inet.or.jp/people/tomoko-y/biwa/root/wnn_e.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2372
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2373 configure flag: --with-wnn
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2374
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2375 Mew is a multi-lingual mailreader.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2376 mew-1.94.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2377 http://www.mew.org/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2378
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2379 kterm is a multi-lingual terminal emulator with special support for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2380 Asian languages with large character sets.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2381 kterm-6.2.0.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2382 ftp://ftp.x.org/contrib/applications/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2383
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2384 ispell is a spelling checker with support for multiple languages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2385 ispell-3.2.06.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2386 http://ficus-www.cs.ucla.edu/ficus-members/geoff/ispell.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2387 http://www.kdstevens.com/~stevens/ispell-page.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2388
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2389 SKK (Simple Kana-to-Kanji) is a simple input method for Japanese.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2390 It has been modified to work with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2391 skk-8.6x.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2392
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2393 X11 fonts for numerous languages.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2394 intlfonts-1.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2395 http://www.gnu.org/directory/localization/intlfonts.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2396 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2397
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2398 @subheading Miscellaneous:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2399
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2400 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2401 ncurses is the standard free software curses library.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2402 ncurses-5.3.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2403 http://dickey.his.com/ncurses/ncurses.html
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2404 ftp://dickey.his.com/ncurses/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2405 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2406
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2407 @subheading Developer Tools:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2408
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2409 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2410 CVS is the version control system used by XEmacs to manage the sources.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2411 cvs-1.11.5.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2412 http:/www.cvshome.org/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2413
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2414 bzip2 is a compressor that compresses much better than gzip.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2415 bzip2-1.0.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2416 http://sources.redhat.com/bzip2/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2418 texi2html is a script that converts Texinfo pages to HTML.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2419 texi2html-1.64.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2420 http://www.mathematik.uni-kl.de/~obachman/Texi2html/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2421
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2422 Gnats is a bug tracking system. Red Hat recommends using GNATS 4.0 for any
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2423 new installations (see the beta below).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2424 gnats-3.113.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2425 gnats-3.999.2.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2426 cern_wwwgnats_v2.0-beta.tar.gz (WWW front end to Gnats)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2427 http://sources.redhat.com/gnats/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2428
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2429 Use autoconf to generate `configure' from `configure.in'.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2430 NOTE: There is a more recent series, 2.5x, that XEmacs doesn't currently
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2431 work with.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2432 autoconf-2.13.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2433 http://www.gnu.org/software/autoconf/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2434
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2435 Use the `applypatch' program from the makepatch package
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2436 to apply patches to upgrade from one beta release to another.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2437 Use this if you have a slow or expensive connection to the Net.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2438 makepatch-2.00_09.tar.gz
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2439 http://www.squirrel.nl/people/jvromans/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2440 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2441
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2442 @node Q2.0.4, Q2.0.5, Q2.0.3, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2443 @unnumberedsubsec Q2.0.4: How do I specify the paths that XEmacs uses for finding files?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2444
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2445 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
2446 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
2447 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
2448
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2449 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
2450 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
2451 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
2452 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
2453 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
2454 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
2455 file.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2456
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2457 @node Q2.0.5, Q2.0.6, Q2.0.4, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2458 @unnumberedsubsec Q2.0.5: Running XEmacs without installing
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2459
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2460 How can I just try XEmacs without installing it?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2461
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2462 XEmacs will run in place without requiring installation and copying of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2463 the Lisp directories, and without having to specify a special build-time
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2464 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
2465 space. XEmacs is largely written in Lisp.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2466
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2467 A good method is to make a shell alias for xemacs:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2468
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2469 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2470 alias xemacs=/i/xemacs-20.2/src/xemacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2471 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2472
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2473 (You will obviously use whatever directory you downloaded the source
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2474 tree to instead of @file{/i/xemacs-20.2}).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2475
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2476 This will let you run XEmacs without massive copying.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2477
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2478 @node Q2.0.6, Q2.0.7, Q2.0.5, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2479 @unnumberedsubsec Q2.0.6: XEmacs is too big
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2480
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
2481 The space required by the installation directories can be
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2482 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
2483 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
2484 Remove the Info (and use just hardcopy versions of the manual). Remove
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2485 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
2486 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
2487 the support lisp.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2488
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2489 These are all Emacs Lisp source code and bytecompiled object code. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2490 may safely gzip everything named *.el here. You may remove any package
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2491 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
2492 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
2493 conservative at first.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2494
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
2495 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
2496 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
2497 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
2498
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2499 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
2500 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
2501 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
2502 can remove a package via the PUI interface
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
2503 (@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
2504 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
2505
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
2506 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
2507
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2508 @node Q2.0.7, Q2.1.1, Q2.0.6, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2509 @unnumberedsubsec Q2.0.7: EFS fails with "500 AUTH not understood" (NEW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2510
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2511 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
2512
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2513 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
2514 on comp.emacs.xemacs:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2515
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2516 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
2517 use FTP servers that don't understand AUTH)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2518
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2519 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
2520 `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
2521 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
2522
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2523 @unnumberedsec 2.1: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2524
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2525 @node Q2.1.1, Q2.1.2, Q2.0.7, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2526 @unnumberedsubsec Q2.1.1: Libraries in non-standard locations
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2527
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2528 I have x-faces, jpeg, xpm etc. all in different places. I've tried
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2529 space-separated, comma-separated, several --site-libraries, all to no
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2530 avail.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2531
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2532 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2533 --site-libraries='/path/one /path/two /path/etc'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2534 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2535
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2536 @node Q2.1.2, Q2.1.3, Q2.1.1, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2537 @unnumberedsubsec Q2.1.2: Why can't I strip XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2538
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2539 @email{cognot@@fronsac.ensg.u-nancy.fr, Richard Cognot} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2540
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2541 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2542 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
2543 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
2544 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
2545 executable, named xemacs, which will contain all of the preloaded lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2546 functions and data.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2547
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2548 Now, during the dump itself, the executable (code+data+symbols) is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2549 written on disk using a special unexec() function. This function is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2550 obviously heavily system dependent. And on some systems, it leads to an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2551 executable which, although valid, cannot be stripped without damage. If
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2552 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
2553 architectures it might work OK.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2554
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2555 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
2556 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
2557 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
2558 kits).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2559 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2560
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2561 @email{nat@@nataa.fr.eu.org, Nat Makarevitch} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2562
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2563 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2564 Here is the trick:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2565
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2566 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2567 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2568 [ ./configure; make ]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2569
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2570 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2571 rm src/xemacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2572
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2573 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2574 strip src/temacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2575
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2576 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2577 make
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2578
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2579 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2580 cp src/xemacs /usr/local/bin/xemacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2581
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2582 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2583 cp lib-src/DOC-19.16-XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2584 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2585 \ @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2586 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2587 /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2588 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2589 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2590
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2591 @node Q2.1.3, Q2.1.4, Q2.1.2, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2592 @unnumberedsubsec Q2.1.3: Compiling XEmacs with Netaudio.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2593
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2594 What is the best way to compile XEmacs with the netaudio system, since I
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2595 have got the netaudio system compiled but installed at a weird place, I
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2596 am not root. Also in the READMEs it does not say anything about
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2597 compiling with the audioserver?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2598
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2599 You should only need to add some stuff to the configure command line.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2600 To tell it to compile in netaudio support: @samp{--with-sound=both}, or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2601 @samp{--with-sound=nas} if you don't want native sound support for some
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2602 reason.) To tell it where to find the netaudio includes and libraries:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2603
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2604 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2605 --site-libraries=WHATEVER
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2606 --site-includes=WHATEVER
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2607 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2608
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2609 Then (fingers crossed) it should compile and it will use netaudio if you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2610 have a server running corresponding to the X server. The netaudio server
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2611 has to be there when XEmacs starts. If the netaudio server goes away and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2612 another is run, XEmacs should cope (fingers crossed, error handling in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2613 netaudio isn't perfect).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2614
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2615 BTW, netaudio has been renamed as it has a name clash with something
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2616 else, so if you see references to NAS or Network Audio System, it's the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2617 same thing. It also might be found at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2618 @uref{ftp://ftp.x.org/contrib/audio/nas/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2619
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2620 @node Q2.1.4, Q2.2.1, Q2.1.3, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2621 @unnumberedsubsec Q2.1.4: Problems with Linux and ncurses.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2622
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2623 On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with libc
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2624 5.2.18, XEmacs 20.0b20 is unable to open a tty device:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2625
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2626 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2627 src/xemacs -nw -q
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2628 Initialization error:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2629 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2630 @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2631 @end iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2632 Terminal type `xterm' undefined (or can't access database?)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2633 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2634
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2635 @email{ben@@xemacs.org, Ben Wing} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2636
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2637 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2638 Your ncurses configuration is messed up. Your /usr/lib/terminfo is a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2639 bad pointer, perhaps to a CD-ROM that is not inserted.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2640 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2641
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2642 @unnumberedsec 2.2: Windows Installation (Windows, Cygwin, MinGW)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2643
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2644 @node Q2.2.1, Q2.2.2, Q2.1.4, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2645 @unnumberedsubsec Q2.2.1: What exactly are all the different ways to build XEmacs under Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2646
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2647 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
2648
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2649 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
2650 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
2651 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
2652 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
2653 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
2654 there is little reason not to use it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2655
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2656 The second way to build is the Cygwin port. It takes advantage of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2657 Cygnus emulation library under Win32. @xref{Q1.1.4, What are Cygwin
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2658 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
2659
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2660 A third way is the MinGW port. It uses the Cygwin environment to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2661 build but does not require it at runtime. @xref{Q1.1.4, What are
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2662 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
2663 information.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2664
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2665 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
2666 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
2667 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
2668 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
2669 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
2670 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
2671 developers can test the X support in XEmacs.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2672
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2673 @node Q2.2.2, Q2.2.3, Q2.2.1, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2674 @unnumberedsubsec Q2.2.2: What compiler/libraries do I need to compile XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2675
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2676 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
2677 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
2678 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
2679 MinGW versions, you need the Cygwin environment, which comes with GCC,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2680 the compiler used for those versions. @xref{Q1.1.4, What are Cygwin
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2681 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
2682 Cygwin and MinGW.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2683
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2684 @node Q2.2.3, Q2.2.4, Q2.2.2, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2685 @unnumberedsubsec Q2.2.3: How do I compile the native port?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2686
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2687 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
2688 contains the full description.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2689
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2690 @node Q2.2.4, Q2.2.5, Q2.2.3, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2691 @unnumberedsubsec Q2.2.4: What do I need for Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2692
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2693 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
2694
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2695 @uref{http://www.cygwin.com/}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2696
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2697 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
2698 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
2699 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
2700 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
2701 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
2702 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
2703 want to compile under X.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2704
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2705 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
2706 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
2707 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
2708 Currently it is called @file{cygXpm-noX4.dll}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2709
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2710 @node Q2.2.5, Q2.2.6, Q2.2.4, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2711 @unnumberedsubsec Q2.2.5: How do I compile under Cygwin?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2712
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2713 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
2714 Some problems to watch out for:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2715
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2716 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2717 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2718 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
2719 @file{init.el} file comes from;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2720
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2721 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2722 @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
2723
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2724 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2725 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
2726
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2727 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2728 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
2729 number;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2730
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2731 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2732 (Unconfirmed) The Cygwin version doesn't understand
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2733 @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
2734 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
2735 on the directory;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2736
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2737 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2738 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
2739 @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
2740 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
2741 versions. So:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2742
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2743 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2744 /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
2745 /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
2746 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2747
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2748 (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
2749 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
2750 @email{faq@@xemacs.org}.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2751
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2752 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2753 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
2754 directory of the XEmacs sources.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2755
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2756 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2757
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2758
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2759 @node Q2.2.6, Q2.2.7, Q2.2.5, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2760 @unnumberedsubsec Q2.2.6: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2761
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2762 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
2763
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2764 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2765 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2766 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
2767 @samp{./configure i586-pc-mingw32}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2768
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2769 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2770 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
2771 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
2772 path (@file{c:\build\xemacs}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2773
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2774 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2775 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
2776 @file{compface}, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2777
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2778 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2779 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
2780 to @file{configure}, e.g.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2781 @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
2782 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2783
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2784 @node Q2.2.7, Q2.2.8, Q2.2.6, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2785 @unnumberedsubsec Q2.2.7: How do I compile with X support?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2786
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2787 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
2788 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
2789 @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
2790 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
2791
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2792 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
2793 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
2794 @file{nt/README} in some detail. Basically, you need to get X11
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2795 libraries from @uref{ftp://ftp.x.org}, and compile them. If the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2796 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
2797
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2798 @node Q2.2.8, Q2.3.1, Q2.2.7, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2799 @unnumberedsubsec Q2.2.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
2800
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2801 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
2802 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
2803
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2804 This application has failed to start because cygXpm-noX4.dll was not found.
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2805 Re-installing the application may fix this problem.
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2806
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2807 Andy Piper <andy@@xemacs.org> sez:
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2808
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2809 cygXpm-noX4 is part of the cygwin distribution under libraries or
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2810 graphics, but is not installed by default. You need to run the
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2811 cygwin setup again and select this package.
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2812
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2813 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
2814 distribution.
d7285d54aa5f [xemacs-hg @ 2002-10-18 05:43:26 by stephent]
stephent
parents: 892
diff changeset
2815
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2816 @unnumberedsec 2.3: General Troubleshooting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2817
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2818 @node Q2.3.1, Q2.3.2, Q2.2.8, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2819 @unnumberedsubsec Q2.3.1: Help! XEmacs just crashed on me!
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2820
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2821 First of all, don't panic. Whenever XEmacs crashes, it tries extremely
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2822 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
2823 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
2824 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
2825 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
2826 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
2827 auto-saved version of the file.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2828
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
2829 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
2830 up where you left off.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2831
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2832 Now, XEmacs is not perfect, and there may occasionally be times, or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2833 particular sequences of actions, that cause it to crash. If you can
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2834 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
2835 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
2836 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
2837 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
2838 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
2839 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
2840 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
2841 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
2842 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
2843 (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
2844 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
2845 @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
2846 general questions about XEmacs than bug reports.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2847
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
2848 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
2849 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
2850 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
2851 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
2852 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
2853 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
2854 that directory and execute a command like:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2855
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2856 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2857 gdb `which xemacs` core
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2858 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2859
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2860 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
2861 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
2862 @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
2863 your system administrator.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2864
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2865 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
2866 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
2867 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
2868 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
2869 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
2870 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
2871 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
2872 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
2873 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
2874 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
2875 default.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2876
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2877 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
2878 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
2879 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
2880 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
2881 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
2882 debugging information stripped. A compilation with optimization can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2883 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
2884 cases, you will need to recompile XEmacs with debugging information
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2885 and without optimization; @xref{Q2.3.3, How to debug an XEmacs problem
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2886 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
2887 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
2888 from gdb.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2889
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2890 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
2891 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
2892 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
2893 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
2894 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
2895 information is better than none. The process of getting backtraces
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2896 from gdb is described in detail in @ref{Q2.3.3, How to debug an XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2897 problem with a debugger}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2898
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
2899 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
2900 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
2901 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
2902 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
2903 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
2904 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
2905
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2906 When making a problem report make sure that:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2907
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2908 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2909 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2910 Report @strong{all} of the information output by XEmacs during the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2911 crash.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2912
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2913 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2914 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
2915
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2916 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2917 What version of XEmacs you are running.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2918
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2919 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2920 What build options you are using.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2921
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2922 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2923 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
2924 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
2925 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
2926
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
2927 @item
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
2928 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
2929
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2930 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2931 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
2932 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2933
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2934 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
2935 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
2936 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
2937 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
2938 and executing @kbd{M-x build-report}.
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
2939
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2940
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2941 @node Q2.3.2, Q2.3.3, Q2.3.1, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2942 @unnumberedsubsec Q2.3.2: XEmacs crashes and I compiled it myself.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2943
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2944 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
2945 buggy optimizers. If you are compiling with optimization, consider
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2946 turning it off (@pxref{Q2.3.3, How to debug an XEmacs problem with a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2947 debugger}) and recompiling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2948
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2949 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
2950 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
2951 platform.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2952
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2953 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
2954 @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
2955 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
2956 compiler errors in a number of cases.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2957
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2958 @node Q2.3.3, Q2.3.4, Q2.3.2, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2959 @unnumberedsubsec Q2.3.3: How to debug an XEmacs problem with a debugger
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2960
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2961 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
2962 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
2963 Here are some hints:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2964
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2965 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2966 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2967 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
2968 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
2969 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
2970 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
2971 @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
2972 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
2973 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
2974 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
2975 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
2976 @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
2977 @samp{--without-optimization} in preference to directly setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2978 @samp{--cflags}.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
2979
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
2980 @item
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
2981 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
2982 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
2983 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
2984 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
2985 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
2986 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
2987 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
2988 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
2989 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
2990
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2991 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2992 gdb /path/to/xemacs/xemacs ####
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2993 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2994
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
2995 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
2996 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
2997 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
2998 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
2999 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
3000 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
3001 continue from where it was at.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3002
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3003 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
3004 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
3005 command or something similar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3006
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3007 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
3008 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
3009 given.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3010
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3011 @item
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3012 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
3013 here are some things you can do:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3014
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3015 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3016 If XEmacs is hitting an assertion failure, put a breakpoint on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3017 @code{assert_failed()}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3018
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3019 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3020 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
3021 (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
3022 declared static in @file{eval.c}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3023
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3024 @item
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3025 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
3026 @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
3027 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
3028 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
3029 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
3030 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
3031 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
3032 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
3033 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
3034 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
3035 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
3036
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3037 @item
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3038 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
3039 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
3040 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
3041 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
3042
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3043 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3044 call debug_print (OBJECT)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3045 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3046
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3047 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
3048 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
3049 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
3050 invoked.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3051
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3052 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
3053 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
3054 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
3055 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
3056 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
3057 a Lisp object).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3058
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3059 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3060 If you want to get a Lisp backtrace showing the Lisp call
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3061 stack, do this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3062
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3063 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3064 call debug_backtrace ()
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3065 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3066
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3067 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
3068 of @code{debug_backtrace}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3069
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3070 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3071 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
3072 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
3073 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
3074 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
3075 all is not lost.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3076
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3077 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
3078 @file{src/.gdbinit} in the XEmacs source distribution that should make
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3079 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
3080 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
3081 contains these useful macros to inspect the state of xemacs:
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3082
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3083 @table @code
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3084 @item pobj
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3085 Usage: pobj lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3086 Print the internal C representation of a lisp object.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3087
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3088 @item xtype
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3089 Usage: xtype lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3090 Print the Lisp type of a lisp object.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3091
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3092 @item lbt
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3093 Usage: lbt @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3094 Print the current Lisp stack trace.
1258
473e76fb6d95 [xemacs-hg @ 2003-02-05 08:18:55 by stephent]
stephent
parents: 1183
diff changeset
3095 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
3096 routine described above.)
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3097
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3098 @item ldp
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3099 Usage: ldp lisp_object @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3100 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
3101 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
3102 routine described above.)
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3103
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3104 @item run-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3105 Usage: run-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3106 Run temacs interactively, like xemacs.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3107 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
3108 or when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3109
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3110 @item dump-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3111 Usage: dump-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3112 Run the dumping part of the build procedure.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3113 Use when debugging temacs, not xemacs!
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3114 Use this when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3115
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3116 @item check-xemacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3117 Usage: check-xemacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3118 Run the test suite. Equivalent to 'make check'.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3119
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3120 @item check-temacs
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3121 Usage: check-temacs @*
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3122 Run the test suite on temacs. Equivalent to 'make check-temacs'.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3123 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
3124 or when temacs builds successfully, but xemacs does not.
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3125 @end table
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3126
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3127 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
3128 @file{src/.dbxrc}, which defines the same commands for dbx.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3129
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3130 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3131 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
3132 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
3133 dynamic linking. (This happens especially under Linux.) Consider
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3134 reconfiguring with @samp{--dynamic=no}. Also, sometimes (again under
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3135 Linux), stack backtraces of core dumps will have the frame where the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3136 fatal signal occurred mangled; if you can obtain a stack trace while
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3137 running the XEmacs process under a debugger, the stack trace should be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3138 clean.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3139
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3140 @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
3141 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
3142
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3143 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3144 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
3145 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
3146 one of the following:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3147
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3148 @enumerate a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3149 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3150 Your executable has been stripped. Bad news. Tell your sysadmin not to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3151 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
3152 space, and makes debugging much much harder.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3153
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3154 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3155 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
3156 binary-search type of narrowing down where the crash occurs, until you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3157 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
3158 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
3159 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
3160 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
3161 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
3162 far from where the crash occurs.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3163
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3164 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3165 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
3166 could simply mean that XEmacs attempted to execute code at that address,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3167 e.g. through jumping to a null function pointer. Unfortunately, under
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3168 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
3169 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
3170 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
3171 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
3172 use the narrowing-down process described above.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3173
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3174 @item
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3175 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
3176 something useful.
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 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3179
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3180 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3181 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
3182 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
3183 debug information generated by the newer compilers.
428
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 @item
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3186 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
3187 @file{src/gdbinit}. This had the disadvantage of not being sourced
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
3188 automatically by gdb, so you had to set that up yourself.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3189
1183
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3190 @item
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3191 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
3192 further information about debugging XEmacs.
c1553814932e [xemacs-hg @ 2003-01-03 12:12:30 by stephent]
stephent
parents: 1143
diff changeset
3193
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3194 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3195
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3196 @node Q2.3.4, Q2.3.5, Q2.3.3, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3197 @unnumberedsubsec Q2.3.4: I get a cryptic error message when trying to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3198
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3199 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
3200 get a cryptic error message in the minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3201
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3202 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
3203 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
3204
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3205 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
3206 @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
3207 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
3208 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
3209 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
3210 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
3211 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
3212 @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
3213 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
3214 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
3215 backtrace by doing the following:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3216
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3217 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3218 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3219 Visit the .el file in an XEmacs buffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3220
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3221 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3222 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
3223
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3224 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3225 Reproduce the error.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3226 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3227
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3228 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
3229 lispref, XEmacs Lisp Reference Manual}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3230
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3231 @node Q2.3.5, Q2.3.6, Q2.3.4, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3232 @unnumberedsubsec Q2.3.5: XEmacs hangs when I try to do something.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3233
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3234 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
3235 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
3236 you are trying to send mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3237
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3238 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
3239 example, Lisp code explicitly disabled this by setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3240 @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
3241 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
3242 debugger and give you a backtrace, which can tell you where the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3243 problem is (@pxref{Q2.3.3, How to debug an XEmacs problem with a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3244 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
3245 @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
3246 @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
3247
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3248 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
3249 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
3250 signal using the @samp{kill} command.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3251
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3252 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
3253 you can't interrupt it at all, you could try attaching to the process
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3254 and getting a C stack backtrace. @xref{Q2.3.3, How to debug an XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3255 problem with a debugger}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3256
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3257 @node Q2.3.6, Q2.3.7, Q2.3.5, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3258 @unnumberedsubsec Q2.3.6: I get an error message when XEmacs is running in batch mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3259
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3260 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
3261 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
3262 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
3263 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
3264 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
3265 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
3266 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
3267 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
3268 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
3269 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
3270 @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
3271 executed at startup time.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3272
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3273 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
3274 the problem, you should consider using a debugger such as GDB.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3275 @xref{Q2.3.3, How to debug an XEmacs problem with a debugger}. You
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3276 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
3277 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
3278 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
3279 the process once it's running.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3280
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3281 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
3282 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
3283 debugging support (configure option @samp{--debug} or setting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3284 @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
3285 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
3286 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
3287 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
3288 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
3289 @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
3290 @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
3291 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
3292 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
3293 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
3294 core.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3295
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3296 @node Q2.3.7, Q2.3.8, Q2.3.6, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3297 @unnumberedsubsec Q2.3.7: The keyboard or mouse is not working properly, or I have some other event-related problem.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3298
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3299 XEmacs has various facilities for debugging event handling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3300
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3301 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
3302 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
3303 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
3304 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
3305 @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
3306 to debug.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3307
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3308 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
3309 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
3310 @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
3311 output, including all parameters.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3312
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3313 A similar facility exists under MS Windows: Set
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3314 @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
3315 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
3316 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
3317 super-gorily-detailed output.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3318
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3319 @node Q2.3.8, Q2.3.9, Q2.3.7, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3320 @unnumberedsubsec Q2.3.8: @kbd{C-g} doesn't work for me. Is it broken?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3321
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3322 @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
3323 doesn't, there are two possible explanations:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3324
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3325 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3326 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3327 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
3328 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
3329 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
3330 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
3331 lucky, sending @samp{SIGINT} to the XEmacs process will interrupt it.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3332 @xref{Q2.3.5, XEmacs hangs when I try to do something.}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3333
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3334 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3335 @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
3336 @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
3337 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
3338 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
3339 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
3340 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3341
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3342 @node Q2.3.9, Q2.3.10, Q2.3.8, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3343 @unnumberedsubsec Q2.3.9: How do I debug process-related problems?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3344
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3345 Under MS Windows, you can set the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3346 @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
3347 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
3348 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
3349 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
3350 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
3351 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
3352 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
3353 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
3354 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
3355 XEmacs uses the variable
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3356 @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
3357 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
3358 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
3359
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3360 @node Q2.3.10, Q2.3.11, Q2.3.9, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3361 @unnumberedsubsec Q2.3.10: XEmacs is outputting lots of X errors.
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3362
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 479
diff changeset
3363 If this is happening, we would very much like to know what's causing
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3364 them. To find this out, see @ref{Q2.3.3, How to debug an XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3365 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
3366 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
3367 @email{xemacs-beta@@xemacs.org}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3368
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3369 @node Q2.3.11, Q2.4.1, Q2.3.10, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3370 @unnumberedsubsec Q2.3.11: After upgrading, XEmacs won't do `foo' any more!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3371
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3372 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
3373 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
3374 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
3375 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
3376 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
3377 their contents in @file{etc/PACKAGES}), or install the `Sumo Tarball'
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3378 (@pxref{Q2.0.2, How do I figure out which packages to install?}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3379
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3380 @c #### should xref to XEmacs manual here
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3381
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3382 @unnumberedsec 2.4: Startup-Related Problems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3383
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3384 @node Q2.4.1, Q2.4.2, Q2.3.11, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3385 @unnumberedsubsec Q2.4.1: XEmacs cannot connect to my X Terminal!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3386
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3387 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
3388
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3389 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
3390 the host you are running XEmacs from.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3391
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3392 @node Q2.4.2, Q2.4.3, Q2.4.1, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3393 @unnumberedsubsec Q2.4.2: XEmacs won't start on Windows.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3394
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3395 XEmacs relies on a process called "dumping" to generate a working
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3396 executable. Under MS-Windows this process effectively fixes the memory
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3397 addresses of information in the executable. When XEmacs starts up it tries
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3398 to reserve these memory addresses so that the dumping process can be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3399 reversed -- putting the information back at the correct addresses.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3400 Unfortunately some .DLLs (for instance the soundblaster driver) occupy
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3401 memory addresses that can conflict with those needed by the dumped XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3402 executable. In this instance XEmacs will fail to start without any
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3403 explanation. Note that this is extremely machine specific.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3404
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3405 21.1.10 includes a fix for this that makes more intelligent guesses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3406 about which memory addresses will be free, and this should cure the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3407 problem for most people. 21.4 implements "portable dumping", which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3408 eliminates the problem altogether. We recommend you use the 21.4
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3409 binaries, but you can use the 21.1 binaries if you are very paranoid
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3410 about stability. @xref{Q1.0.4, Are binaries available?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3411
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3412 @node Q2.4.3, Q2.4.4, Q2.4.2, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3413 @unnumberedsubsec Q2.4.3: XEmacs won't start without network.
434
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3414
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3415 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
3416 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
3417 @file{/etc/hosts} file. The file should contain an entry like:
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3418
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3419 @example
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3420 127.0.0.1 localhost
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3421 @end example
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3422
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3423 Add that line, and XEmacs will be happy.
9d177e8d4150 Import from CVS: tag r21-2-25
cvs
parents: 430
diff changeset
3424
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3425 @node Q2.4.4, Q2.4.5, Q2.4.3, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3426 @unnumberedsubsec Q2.4.4: Startup warnings about deducing proper fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3427
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3428 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
3429
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3430 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
3431 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
3432
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3433 @format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3434 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3435 @end format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3436
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3437 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
3438
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3439 @format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3440 Emacs.default.attributeFont: \
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3441 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3442 @end format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3443
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3444 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
3445 time, you can set this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3446
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3447 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3448 (setq display-warning-minimum-level 'error)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3449 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3450
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3451 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
3452
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3453 @node Q2.4.5, Q2.4.6, Q2.4.4, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3454 @unnumberedsubsec Q2.4.5: Warnings from incorrect key modifiers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3455
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3456 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
3457 with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3458
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3459 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
3460 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
3461 sure that it is run after VUE configures the X server.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3462
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3463 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3464 #! /bin/sh
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3465 xmodmap 2> /dev/null - << EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3466 keysym Alt_L = Meta_L
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3467 keysym Alt_R = Meta_R
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3468 EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3469
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3470 xmodmap - << EOF
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3471 clear mod1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3472 keysym Mode_switch = NoSymbol
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3473 add mod1 = Meta_L
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3474 keysym Meta_R = Mode_switch
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3475 add mod2 = Mode_switch
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3476 EOF
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3477 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3478
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3479 @node Q2.4.6, , Q2.4.5, Installation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3480 @unnumberedsubsec Q2.4.6: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3481
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3482 Yes.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3483
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3484 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
3485 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
3486 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
3487 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
3488 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
3489 that it didn't want a console.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3490
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3491 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
3492 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
3493 educational value.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3494
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3495 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
3496 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
3497 "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
3498 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
3499 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
3500 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
3501 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
3502 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
3503 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
3504 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
3505 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
3506 @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
3507 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
3508 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
3509 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
3510 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
3511 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
3512 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
3513 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
3514 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
3515 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
3516 not.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3517
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3518 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
3519 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
3520 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
3521 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
3522 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
3523 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
3524 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
3525 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
3526 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
3527 window as necessary to display messages in.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3528
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3529 @node Display Subsystems, External Subsystems, Installation, Top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3530 @unnumbered 3 Basic Display-Related Subsystems
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 This is part 3 of the XEmacs Frequently Asked Questions list. This
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3533 section is devoted to the basic display-related capabilities of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3534 XEmacs, such as the keyboard, the mouse, fonts, colors, the modeline,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3535 etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3536
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3537 @menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3538 3.0: The Keyboard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3539 * Q3.0.1:: How can I bind complex functions (or macros) to keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3540 * Q3.0.2:: How do I bind C-. and C-; to scroll one line up and down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3541 * Q3.0.3:: Globally binding @kbd{Delete}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3542 * Q3.0.4:: How to map @kbd{Help} key alone on Sun type4 keyboard?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3543 * Q3.0.5:: How can you type in special characters in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3544 * Q3.0.6:: Can I turn on @dfn{sticky} modifier keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3545 * Q3.0.7:: How do I map the arrow keys?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3546 * Q3.0.8:: HP Alt key as Meta.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3547 * Q3.0.9:: Why does edt emulation not work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3548 * Q3.0.10:: How can I emulate VI and use it as my default mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3549
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3550 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3551 * 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
3552 * 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
3553 * 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
3554 * Q3.1.4:: How can I get a list of buffers when I hit mouse button 3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3555 * Q3.1.5:: How I can set XEmacs up so that it pastes where the text cursor is?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3556
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3557 3.2: Textual Fonts and Colors
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3558 * Q3.2.1:: How do I specify a font?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3559 * Q3.2.2:: How do I set the text, menu and modeline fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3560 * Q3.2.3:: How can I set color options from @file{init.el}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3561 * Q3.2.4:: How can I set the colors when highlighting a region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3562 * Q3.2.5:: How can I limit color map usage?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3563 * Q3.2.6:: My tty supports color, but XEmacs doesn't use them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3564 * Q3.2.7:: Can I have pixmap backgrounds in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3565 * Q3.2.8:: How do I display non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3566 * Q3.2.9:: Font selections in don't get saved after @code{Save Options}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3567
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3568 3.3: The Menubar and Toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3569 * Q3.3.1:: How do I get rid of the menu (or menubar)?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3570 * Q3.3.2:: Can I customize the basic menubar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3571 * Q3.3.3:: How do I control how many buffers are listed in the menu @code{Buffers List}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3572 * Q3.3.4:: Resources like @code{Emacs*menubar*font} are not working?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3573 * Q3.3.5:: How can I bind a key to a function to toggle the toolbar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3574 * Q3.3.6:: @samp{Can't instantiate image error...} in toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3575
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3576 3.4: Scrollbars and Scrolling
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3577 * Q3.4.1:: How can I disable the scrollbar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3578 * Q3.4.2:: How can one use resources to change scrollbar colors?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3579 * Q3.4.3:: Moving the scrollbar can move the point; can I disable this?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3580 * Q3.4.4:: Scrolling one line at a time.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3581 * Q3.4.5:: How can I turn off automatic horizontal scrolling in specific modes?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3582 * Q3.4.6:: I find auto-show-mode disconcerting. How do I turn it off?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3583
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3584 3.5: The Modeline
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3585 * Q3.5.1:: How can I make the modeline go away?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3586 * Q3.5.2:: How do you have XEmacs display the line number in the modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3587 * Q3.5.3:: How do I get XEmacs to put the time of day on the modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3588 * Q3.5.4:: How can one change the modeline color based on the mode used?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3589
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3590 3.6: The Cursor
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3591 * Q3.6.1:: Is there a way to make the bar cursor thicker?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3592 * Q3.6.2:: Is there a way to get back the block cursor?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3593 * Q3.6.3:: Can I make the cursor blink?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3594
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3595 3.7: Text Selections
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3596 * Q3.7.1:: How do I select a rectangular region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3597 * Q3.7.2:: How can I turn off or change highlighted selections?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3598 * Q3.7.3:: How do I get that typing on an active region removes it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3599 * Q3.7.4:: Can I turn off the highlight during isearch?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3600 * Q3.7.5:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3601 * Q3.7.6:: The region disappears when I hit the end of buffer while scrolling.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3602 * Q3.7.7:: Why is killing so slow?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3603 * Q3.7.8:: Why does @kbd{M-w} take so long?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3604
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3605 3.8: Buffers, Text Editing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3606 * Q3.8.1:: Can I have the end of the buffer delimited in some way?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3607 * Q3.8.2:: How do I insert today's date into a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3608 * Q3.8.3:: How do I get a single minibuffer frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3609 * Q3.8.4:: How can I enable auto-indent and/or Filladapt?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3610 * Q3.8.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3611
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3612 3.9: Editing Source Code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3613 * Q3.9.1:: How can I do source code highlighting using font-lock?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3614 * Q3.9.2:: How do I get @samp{More} Syntax Highlighting on by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3615 * Q3.9.3:: Where do I get the latest CC Mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3616 * Q3.9.4:: I do not like cc-mode. How do I use the old c-mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3617 * Q3.9.5:: How do you make XEmacs indent CL if-clauses correctly?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3618 @end menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3619
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3620 @unnumberedsec 3.0: The Keyboard
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3621
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3622 @node Q3.0.1, Q3.0.2, Display Subsystems, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3623 @unnumberedsubsec Q3.0.1: How can I bind complex functions (or macros) to keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3624
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3625 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
3626 insert the current Primary X selection at point. You can accomplish this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3627 with:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3628
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3629 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3630 (define-key global-map [f18] 'x-insert-selection)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3631 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3632
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3633 However, this only works if there is a current X selection (the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3634 selection will be highlighted). The functionality I like is for the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3635 @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
3636 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
3637 pass arguments to @code{x-insert-selection}. This is done by wrapping
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3638 the call in a 'lambda form:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3639
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3640 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3641 (global-set-key [f18]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3642 (lambda () (interactive) (x-insert-selection t nil)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3643 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3644
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3645 This binds the f18 key to a @dfn{generic} functional object. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3646 interactive spec is required because only interactive functions can be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3647 bound to keys.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3648
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3649 For the FAQ example you could use:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3650
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3651 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3652 (global-set-key [(control ?.)]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3653 (lambda () (interactive) (scroll-up 1)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3654 (global-set-key [(control ?;)]
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3655 (lambda () (interactive) (scroll-up -1)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3656 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3657
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3658 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
3659 If you're doing more it's cleaner to define a separate function.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3660 @xref{Q3.0.2, How do I bind C-. and C-; to scroll one line up and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3661 down?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3662
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3663 @node Q3.0.2, Q3.0.3, Q3.0.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3664 @unnumberedsubsec Q3.0.2: 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
3665
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3666 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
3667 @email{wayne@@zen.cac.stratus.com, Wayne Newberry}) to @file{.emacs}:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3668
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3669 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3670 (defun scroll-up-one-line ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3671 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3672 (scroll-up 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3673
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3674 (defun scroll-down-one-line ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3675 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3676 (scroll-down 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3677
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3678 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3679 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3680 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3681
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3682 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
3683 can not bind a key to a function that you're also passing arguments
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3684 to. (@pxref{Q3.0.1, How can I bind complex functions (or macros) to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3685 keys?} for a better answer).
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 @node Q3.0.3, Q3.0.4, Q3.0.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3688 @unnumberedsubsec Q3.0.3: Globally binding @kbd{Delete}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3689
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3690 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
3691 than the default. How does one do this?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3692
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3693 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
3694 get around this, try the following:
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3695
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3696 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3697 (defun foo ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3698 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3699 (message "You hit DELETE"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3700
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3701 (define-key key-translation-map 'delete 'redirected-delete)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3702 (global-set-key 'redirected-delete 'foo)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3703 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3704
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3705 @node Q3.0.4, Q3.0.5, Q3.0.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3706 @unnumberedsubsec Q3.0.4: How to map @kbd{Help} key alone on Sun type4 keyboard?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3707
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3708 The following works in GNU Emacs 19:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3709
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3710 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3711 (global-set-key [help] 'help-command);; Help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3712 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3713
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3714 The following works in XEmacs with the addition of shift:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3715
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3716 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3717 (global-set-key [(shift help)] 'help-command);; Help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3718 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3719
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3720 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
3721 should have come with your XEmacs installation: @emph{Emacs ignores the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3722 @kbd{help} key when running OLWM}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3723
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3724 OLWM grabs the @kbd{help} key, and retransmits it to the appropriate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3725 client using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3726 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3727 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3728 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3729 @code{XSendEvent}. Allowing Emacs to react to synthetic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3730 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
3731 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
3732 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
3733 the null binding @code{OpenWindows.KeyboardCommand.Help:}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3734
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3735 @node Q3.0.5, Q3.0.6, Q3.0.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3736 @unnumberedsubsec Q3.0.5: How can you type in special characters in XEmacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3737 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
3738 sequences like @kbd{Compose " a} to get ä, etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3739
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3740 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
3741 sequences like @kbd{C-x 8 " a} to get ä, etc.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3742
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3743 @email{glynn@@sensei.co.uk, Glynn Clements} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3744
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3745 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3746 It depends upon your X server.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3747
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3748 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
3749 xmodmap, e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3750 @c hey, show some respect, willya -- there's xkeycaps, isn't there? --
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3751 @c chr ;)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3752 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3753 xmodmap -e 'keycode 0xff20 = Multi_key'
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3754 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3755
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3756 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
3757 keycodes for each key.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3758
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3759 [NB: On a `Windows' keyboard, recent versions of XFree86 automatically
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3760 define the right `Windows' key as Multi_key'.]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3761
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3762 Once you have Multi_key defined, you can use e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3763 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3764 Multi a ' => á
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3765 Multi e " => ë
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3766 Multi c , => ç
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3767 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3768
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3769 etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3770
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3771 Also, recent versions of XFree86 define various AltGr-<key>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3772 combinations as dead keys, i.e.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3773 @example
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3774 AltGr [ => dead_diaeresis
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3775 AltGr ] => dead_tilde
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
3776 AltGr ; => dead_acute
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3777 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3778 etc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3779
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3780 Running @samp{xmodmap -pk} will list all of the defined keysyms.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3781 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3782
1135
9eddcb9548e2 [xemacs-hg @ 2002-12-02 17:56:58 by stephent]
stephent
parents: 1058
diff changeset
3783 For the related problem of @emph{displaying} non-ASCII characters in a
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3784 non-Mule XEmacs, @xref{Q3.2.8, How do I display non-ASCII characters?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3785
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3786 @node Q3.0.6, Q3.0.7, Q3.0.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3787 @unnumberedsubsec Q3.0.6: Can I turn on @dfn{sticky} modifier keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3788
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3789 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
3790 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
3791 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
3792 modifier keys like Control and Meta as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3793
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3794 @email{ben@@xemacs.org, Ben Wing} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3795
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3796 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3797 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
3798 of the frame and back in, it cancels all currently ``stuck'' modifiers.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3799 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3800
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3801 @node Q3.0.7, Q3.0.8, Q3.0.6, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3802 @unnumberedsubsec Q3.0.7: How do I map the arrow keys?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3803 @c New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3804 Say you want to map @kbd{C-@key{right}} to forward-word:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3805
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3806 @email{sds@@usa.net, Sam Steingold} writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3807
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3808 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3809 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3810 ; both XEmacs and Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3811 (define-key global-map [(control right)] 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3812 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3813 or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3814 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3815 ; Emacs only
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3816 (define-key global-map [C-right] 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3817 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3818 or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3819 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3820 ; ver > 20, both
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3821 (define-key global-map (kbd "C-<right>") 'forward-word)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3822 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3823 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3824
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3825 @node Q3.0.8, Q3.0.9, Q3.0.7, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3826 @unnumberedsubsec Q3.0.8: HP Alt key as Meta.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3827
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3828 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
3829 Meta key?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3830
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3831 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
3832 starting XEmacs:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3833
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3834 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3835 remove Mod1 = Mode_switch
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3836 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3837
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3838 @node Q3.0.9, Q3.0.10, Q3.0.8, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3839 @unnumberedsubsec Q3.0.9: Why does edt emulation not work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3840
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3841 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
3842 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
3843 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
3844
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3845 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3846 (tpu-edt)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3847 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3848
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3849 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
3850 add this as well:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3851
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3852 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3853 (global-set-key [(control h)] 'help-for-help)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3854 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3855
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3856 @node Q3.0.10, Q3.1.1, Q3.0.9, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3857 @unnumberedsubsec Q3.0.10: How can I emulate VI and use it as my default mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3858
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3859 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
3860 add this to your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3861
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3862 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3863 (viper-mode)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3864 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3865
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3866 @email{kifer@@CS.SunySB.EDU, Michael Kifer} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3867
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3868 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3869 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
3870 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
3871 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3872
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3873 @unnumberedsec 3.1: The Mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3874
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3875 @node Q3.1.1, Q3.1.2, Q3.0.10, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3876 @unnumberedsubsec Q3.1.1: How can I turn off Mouse pasting?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3877
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3878 I keep hitting the middle mouse button by accident and getting stuff
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3879 pasted into my buffer so how can I turn this off?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3880
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3881 Here is an alternative binding, whereby the middle mouse button selects
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3882 (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
3883 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
3884 use @code{define-key} or @code{global-set-key}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3885
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3886 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3887 (defun mouse-set-point-and-select (event)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3888 "Sets the point at the mouse location, then marks following form"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3889 (interactive "@@e")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3890 (mouse-set-point event)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3891 (mark-sexp 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3892 (define-key global-map [button2] 'mouse-set-point-and-select)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3893 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3894
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3895 @node Q3.1.2, Q3.1.3, Q3.1.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3896 @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
3897
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3898 Use, for instance, @code{[(meta button1)]}. For example, here is a common
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3899 setting for Common Lisp programmers who use the bundled @code{ilisp}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3900 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
3901 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
3902 file.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3903
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3904 [Inside a function that gets called by the lisp-mode-hook and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3905 ilisp-mode-hook]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3906
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3907 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3908 (local-set-key [(meta button1)] 'edit-definitions-lisp)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3909 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3910
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3911 @node Q3.1.3, Q3.1.4, Q3.1.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3912 @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
3913
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3914 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
3915 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
3916 does not do anything.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3917
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3918 Use the middle mouse button.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3919
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3920 @node Q3.1.4, Q3.1.5, Q3.1.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3921 @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
3922
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3923 The following code will replace the default popup on button3:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3924
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3925 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3926 (global-set-key [button3] 'popup-buffer-menu)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3927 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3928
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3929 @node Q3.1.5, Q3.2.1, Q3.1.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3930 @unnumberedsubsec Q3.1.5: How I can 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
3931
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3932 By default XEmacs pastes X selections where the mouse pointer is. How
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3933 do I disable this?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3934
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3935 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
3936 @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3937
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3938 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
3939
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3940 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3941 (setq mouse-yank-at-point t)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3942 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3943
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3944 Starting with XEmacs-20.2 you can also change this with Customize.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3945 Select from the @code{Options} menu
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
3946 @code{Advanced (Customize)->Emacs->Editing->Mouse->Yank At Point...} or type
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3947 @kbd{M-x customize @key{RET} mouse @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3948
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3949 @unnumberedsec 3.2: Textual Fonts and Colors
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3950
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3951 @node Q3.2.1, Q3.2.2, Q3.1.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3952 @unnumberedsubsec Q3.2.1: How do I specify a font?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3953
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3954 #### Update me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3955
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3956 In 21.4 and above, you can use the @samp{Options} menu to change the font.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3957 You can also do it in your init file, e.g. like this (for MS Windows):
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 @display
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3960 (set-face-font 'default "Lucida Console:Regular:10")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3961 (set-face-font 'modeline "MS Sans Serif:Regular:10")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3962 @end display
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 @node Q3.2.2, Q3.2.3, Q3.2.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3965 @unnumberedsubsec Q3.2.2: How do I set the text, menu and modeline fonts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3966
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3967 #### Update me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3968
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3969 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3970 setting face values.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3971
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3972 In @file{.Xresources}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3973
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3974 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3975 Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3976 Emacs*menubar*font: fixed
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3977 Emacs.modeline.attributeFont: fixed
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3978 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3979
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3980 This is confusing because @samp{default} and @samp{modeline} are face
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3981 names, and can be found listed with all faces in the current mode by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3982 using @kbd{M-x set-face-font (enter) ?}. They use the face-specific
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3983 resource @samp{attributeFont}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3984
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3985 On the other hand, @samp{menubar} is a normal X thing that uses the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3986 resource @samp{font}. With Motif it @emph{may be} necessary to use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3987 @samp{fontList} @emph{instead of} @samp{font}. In @emph{non-Motif}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3988 configurations with Mule it @emph{is} necessary to use @samp{fontSet}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3989 instead of @samp{font}. (Sorry, there just is no simple recipe here.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3990
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3991 @node Q3.2.3, Q3.2.4, Q3.2.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3992 @unnumberedsubsec Q3.2.3: How can I set color options from @file{init.el}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3993
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3994 How can I set the most commonly used color options from my
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3995 @file{init.el} instead of from my @file{.Xresources}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3996
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
3997 Like this:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3998
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3999 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4000 (set-face-background 'default "bisque") ; frame background
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4001 (set-face-foreground 'default "black") ; normal text
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4002 (set-face-background 'zmacs-region "red") ; When selecting w/
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4003 ; mouse
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4004 (set-face-foreground 'zmacs-region "yellow")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4005 (set-face-font 'default "*courier-bold-r*120-100-100*")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4006 (set-face-background 'highlight "blue") ; Ie when selecting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4007 ; buffers
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4008 (set-face-foreground 'highlight "yellow")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4009 (set-face-background 'modeline "blue") ; Line at bottom
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4010 ; of buffer
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4011 (set-face-foreground 'modeline "white")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4012 (set-face-font 'modeline "*bold-r-normal*140-100-100*")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4013 (set-face-background 'isearch "yellow") ; When highlighting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4014 ; while searching
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4015 (set-face-foreground 'isearch "red")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4016 (setq x-pointer-foreground-color "black") ; Adds to bg color,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4017 ; so keep black
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4018 (setq x-pointer-background-color "blue") ; This is color
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4019 ; you really
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4020 ; want ptr/crsr
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4021 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4022
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4023 @node Q3.2.4, Q3.2.5, Q3.2.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4024 @unnumberedsubsec Q3.2.4: How can I set the colors when highlighting a region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4025
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4026 How can I set the background/foreground colors when highlighting a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4027 region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4028
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4029 You can change the face @code{zmacs-region} either in your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4030 @file{.Xresources}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4031
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4032 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4033 Emacs.zmacs-region.attributeForeground: firebrick
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4034 Emacs.zmacs-region.attributeBackground: lightseagreen
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4035 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4036
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4037 or in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4038
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4039 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4040 (set-face-background 'zmacs-region "red")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4041 (set-face-foreground 'zmacs-region "yellow")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4042 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4043
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4044 @node Q3.2.5, Q3.2.6, Q3.2.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4045 @unnumberedsubsec Q3.2.5: How can I limit color map usage?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4046
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4047 I'm using Netscape (or another color grabber like XEmacs);
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4048 is there any way to limit the number of available colors in the color map?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4049
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4050 Answer: No, but you can start Netscape before XEmacs, and it will use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4051 the closest available color if the colormap is full. You can also limit
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4052 the number of colors Netscape uses, using the flags -mono, -ncols <#> or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4053 -install (for mono, limiting to <#> colors, or for using a private color
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4054 map).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4055
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4056 If you have the money, another solution would be to use a truecolor or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4057 direct color video.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4058
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4059 @node Q3.2.6, Q3.2.7, Q3.2.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4060 @unnumberedsubsec Q3.2.6: My tty supports color, but XEmacs doesn't use them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4061
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4062 XEmacs tries to automatically determine whether your tty supports color,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4063 but sometimes guesses wrong. In that case, you can make XEmacs Do The
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4064 Right Thing using this Lisp code:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4065
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4066 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4067 (if (eq 'tty (device-type))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4068 (set-device-class nil 'color))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4069 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4070
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4071 @node Q3.2.7, Q3.2.8, Q3.2.6, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4072 @unnumberedsubsec Q3.2.7: Can I have pixmap backgrounds in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4073 @c New
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4074 @email{jvillaci@@wahnsinnig.extreme.indiana.edu, Juan Villacis} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4075
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4076 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4077 There are several ways to do it. For example, you could specify a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4078 default pixmap image to use in your @file{~/.Xresources}, e.g.,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4079
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4080
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4081 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4082 Emacs*EmacsFrame.default.attributeBackgroundPixmap: /path/to/image.xpm
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4083 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4084
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4085
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4086 and then reload ~/.Xresources and restart XEmacs. Alternatively,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4087 since each face can have its own pixmap background, a better way
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4088 would be to set a face's pixmap within your XEmacs init file, e.g.,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4089
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4090 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4091 (set-face-background-pixmap 'default "/path/to/image.xpm")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4092 (set-face-background-pixmap 'bold "/path/to/another_image.xpm")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4093 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4094
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4095 and so on. You can also do this interactively via @kbd{M-x edit-faces}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4096
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4097 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4098
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4099 @node Q3.2.8, Q3.2.9, Q3.2.7, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4100 @unnumberedsubsec Q3.2.8: How do I display non-ASCII characters?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4101 @c New
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4102
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4103 If you're using a Mule-enabled XEmacs, then display is automatic. If
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4104 you're not seeing the characters you expect, either (1) you don't have
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4105 appropriate fonts available or (2) XEmacs did not correctly detect the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4106 coding system (@pxref{Recognize Coding, , , xemacs}). In case (1),
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4107 install fonts as is customary for your platform. In case (2), you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4108 need to tell XEmacs explicitly what coding systems you're using.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4109 @ref{Specify Coding, , , xemacs}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4110
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4111 If your XEmacs is not Mule-enabled, and for some reason getting a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4112 Mule-enabled XEmacs seems like the wrong thing to do, all is not lost.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4113 You can arrange it by brute force. In @file{event-Xt.c} (suppress the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4114 urge to look in this file---play Doom instead, because you'll survive
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4115 longer), it is written:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4116
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4117 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4118 In a non-Mule world, a user can still have a multi-lingual editor, by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4119 doing @code{(set-face-font "-*-iso8859-2" (current-buffer))} for all
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4120 their Latin-2 buffers, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4121 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4122
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4123 For the related problem of @emph{inputting} non-ASCII characters in a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4124 non-Mule XEmacs, @xref{Q3.0.5, How can you type in special characters
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4125 in XEmacs?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4126
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4127 @node Q3.2.9, Q3.3.1, Q3.2.8, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4128 @unnumberedsubsec Q3.2.9: Font selections in don't get saved after @code{Save Options}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4129
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4130 @email{mannj@@ll.mit.edu, John Mann} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4131
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4132 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4133 You have to go to @samp{Options->Menubars} and unselect
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4134 @samp{Frame-Local Font Menu}. If this option is selected, font changes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4135 are only applied to the @emph{current} frame and do @emph{not} get saved
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4136 when you save options.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4137 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4138
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4139 Also, set the following in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4140
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4141 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4142 (setq options-save-faces t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4143 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4144
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4145 @unnumberedsec 3.3: The Menubar and Toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4146
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4147 @node Q3.3.1, Q3.3.2, Q3.2.9, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4148 @unnumberedsubsec Q3.3.1: How do I get rid of the menu (or menubar)?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4149
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4150 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4151 (set-specifier menubar-visible-p nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4152 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4153
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4154 @node Q3.3.2, Q3.3.3, Q3.3.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4155 @unnumberedsubsec Q3.3.2: Can I customize the basic menubar?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4156
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4157 For an extensive menubar, add this line to your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4158
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4159 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4160 (load "big-menubar")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4161 @end lisp
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 If you'd like to write your own, this file provides as good a set of
1648
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
4164 examples as any to start from. The file is located in edit-utils
712931b4b71d [xemacs-hg @ 2003-08-27 18:06:54 by youngs]
youngs
parents: 1616
diff changeset
4165 package.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4166
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4167 @node Q3.3.3, Q3.3.4, Q3.3.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4168 @unnumberedsubsec Q3.3.3: How do I control how many buffers are listed in the menu @code{Buffers List}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4169
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4170 Add the following to your @file{init.el} (suit to fit):
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4171
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4172 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4173 (setq buffers-menu-max-size 20)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4174 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4175
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4176 For no limit, use an argument of @samp{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4177
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4178 Starting with XEmacs-20.3 you can also change this with Customize.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4179 Select from the @code{Options} menu
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4180 @code{Advanced (Customize)->Emacs->Environment->Menu->Buffers Menu->Max Size...} or
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4181 type @kbd{M-x customize @key{RET} buffers-menu @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4182
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4183 @node Q3.3.4, Q3.3.5, Q3.3.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4184 @unnumberedsubsec Q3.3.4: Resources like @code{Emacs*menubar*font} are not working?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4185
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4186 I am trying to use a resource like @code{Emacs*menubar*font} to set the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4187 font of the menubar but it's not working.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4188
1386
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4189 In Motif, the use of @samp{font} resources is obsoleted in order to
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4190 support internationalization. If you are using the real Motif menubar,
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4191 this resource is not recognized at all; you have to say:
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 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4194 Emacs*menubar*fontList: FONT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4195 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4196
1389
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4197 If you are using the Lucid menubar, for backward compatibility with
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4198 existing user configurations, the @samp{font} resource is recognized.
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4199 Since this is not supported by Motif itself, the code is a kludge and
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4200 the @samp{font} resource will be recognized only if the @samp{fontList}
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4201 resource resource is unset. This means that the resource
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4202
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4203 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4204 *fontList: FONT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4205 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4206
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4207 will override
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4208
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4209 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4210 Emacs*menubar*font: FONT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4211 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4212
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4213 even though the latter is more specific.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4214
1389
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4215 In non-Motif configurations using @samp{--with-mule} and
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4216 @samp{--with-xfs} it @emph{is} necessary to use the @code{fontSet}
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4217 resource @emph{instead of} the @code{font} resource. The backward
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4218 compatibility kludge was never implemented for non-Motif builds.
6355bae896e3 [xemacs-hg @ 2003-03-27 12:57:36 by stephent]
stephent
parents: 1386
diff changeset
4219 Example:
1386
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4220
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4221 @example
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4222 *fontSet: FONT
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4223 @end example
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4224
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4225 @node Q3.3.5, Q3.3.6, Q3.3.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4226 @unnumberedsubsec Q3.3.5: How can I bind a key to a function to toggle the toolbar?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4227
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4228 Try something like:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4229
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4230 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4231 (defun my-toggle-toolbar ()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4232 (interactive)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4233 (set-specifier default-toolbar-visible-p
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4234 (not (specifier-instance default-toolbar-visible-p))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4235 (global-set-key "\C-xT" 'my-toggle-toolbar)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4236 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4237
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4238 There are redisplay bugs in 19.14 that may make the preceding result in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4239 a messed-up display, especially for frames with multiple windows. You
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4240 may need to resize the frame before XEmacs completely realizes the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4241 toolbar is really gone.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4242
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4243 Thanks to @email{martin@@xemacs.org, Martin Buchholz} for the correct
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4244 code.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4245
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4246 @node Q3.3.6, Q3.4.1, Q3.3.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4247 @unnumberedsubsec Q3.3.6: @samp{Can't instantiate image error...} in toolbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4248 @c New
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4249
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4250 @email{expt@@alanine.ram.org, Dr. Ram Samudrala} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4251
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4252 I just installed the XEmacs (20.4-2) RPMS that I downloaded from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4253 @uref{http://www.xemacs.org/}. Everything works fine, except that when
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4254 I place my mouse over the toolbar, it beeps and gives me this message:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4255
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4256 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4257 Can't instantiate image (probably cached):
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4258 [xbm :mask-file "/usr/include/X11/bitmaps/leftptrmsk :mask-data
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4259 (16 16 <strange control characters> ...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4260 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4261
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4262 @email{kyle_jones@@wonderworks.com, Kyle Jones} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4263 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4264 This is problem specific to some Chips and Technologies video
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4265 chips, when running XFree86. Putting
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 @code{Option "sw_cursor"}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4268
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4269 in @file{XF86Config} gets rid of the problem.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4270 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4271
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4272 @unnumberedsec 3.4: Scrollbars
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4273
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4274 @node Q3.4.1, Q3.4.2, Q3.3.6, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4275 @unnumberedsubsec Q3.4.1: How can I disable the scrollbar?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4276
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4277 To disable them for all frames, add the following line to
1386
fea518919305 [xemacs-hg @ 2003-03-26 06:10:47 by stephent]
stephent
parents: 1258
diff changeset
4278 your @file{.Xresources}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4279
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4280 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4281 Emacs.scrollBarWidth: 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4282 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4283
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4284 Or select @samp{Options->Display->Scrollbars}.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4285 Remember to save options.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4286
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4287 To turn the scrollbar off on a per-frame basis, use the following
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4288 function:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4289
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4290 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4291 (set-specifier scrollbar-width 0 (selected-frame))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4292 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4293
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4294 You can actually turn the scrollbars on at any level you want by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4295 substituting for (selected-frame) in the above command. For example, to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4296 turn the scrollbars off only in a single buffer:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4297
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4298 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4299 (set-specifier scrollbar-width 0 (current-buffer))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4300 @end lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4301
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4302 @node Q3.4.2, Q3.4.3, Q3.4.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4303 @unnumberedsubsec Q3.4.2: How can one use resources to change scrollbar colors?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4304
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4305 Here's a recap of how to use resources to change your scrollbar colors:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4306
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4307 @example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4308 ! Motif scrollbars
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4309
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4310 Emacs*XmScrollBar.Background: skyblue
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4311 Emacs*XmScrollBar.troughColor: lightgray
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4312
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4313 ! Athena scrollbars
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4314
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4315 Emacs*Scrollbar.Foreground: skyblue
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4316 Emacs*Scrollbar.Background: lightgray
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4317 @end example
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4318
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4319 Note the capitalization of @code{Scrollbar} for the Athena widget.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4320
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4321 @node Q3.4.3, Q3.4.4, Q3.4.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4322 @unnumberedsubsec Q3.4.3: Moving the scrollbar can move the point; can I disable this?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4323
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4324 When I move the scrollbar in an XEmacs window, it moves the point as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4325 well, which should not be the default behavior. Is this a bug or a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4326 feature? Can I disable it?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4327
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4328 The current behavior is a feature, not a bug. Point remains at the same
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4329 buffer position as long as that position does not scroll off the screen.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4330 In that event, point will end up in either the upper-left or lower-left
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4331 hand corner.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4332
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4333 This cannot be changed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4334
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4335 @node Q3.4.4, Q3.4.5, Q3.4.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4336 @unnumberedsubsec Q3.4.4: Scrolling one line at a time.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4337
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4338 Can the cursor keys scroll the screen a line at a time, rather than the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4339 default half page jump? I tend it to find it disorienting.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4340
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4341 Use the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4342
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4343 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4344 (setq scroll-step 1)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4345 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4346
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4347 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
4348 @code{Options} menu @code{Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4349 (Customize)->Emacs->Environment->Windows->Scroll Step...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4350 @kbd{M-x customize @key{RET} windows @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4351
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4352 @node Q3.4.5, Q3.4.6, Q3.4.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4353 @unnumberedsubsec Q3.4.5: How can I turn off automatic horizontal scrolling in specific modes?
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4354
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
4355 Do @code{(setq truncate-lines t)} in the mode-hooks for any modes
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4356 in which you want lines truncated.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4357
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4358 More precisely: If @code{truncate-lines} is nil, horizontal scrollbars
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4359 will never appear. Otherwise, they will appear only if the value of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4360 @code{scrollbar-height} for that buffer/window/etc. is non-zero. If you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4361 do
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4362
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4363 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4364 (set-specifier scrollbar-height 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4365 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4366
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4367 then horizontal scrollbars will not appear in truncated buffers unless
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4368 the package specifically asked for them.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4369
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4370 @node Q3.4.6, Q3.5.1, Q3.4.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4371 @unnumberedsubsec Q3.4.6: I find auto-show-mode disconcerting. How do I turn it off?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4372
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4373 @code{auto-show-mode} controls whether or not a horizontal scrollbar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4374 magically appears when a line is too long to be displayed. This is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4375 enabled by default. To turn it off, put the following in your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4376 @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4377
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4378 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4379 (setq auto-show-mode nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4380 (setq-default auto-show-mode nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4381 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4382
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4383 @unnumberedsec 3.5: The Modeline
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4384
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4385 @node Q3.5.1, Q3.5.2, Q3.4.6, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4386 @unnumberedsubsec Q3.5.1: How can I make the modeline go away?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4387
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4388 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4389 (set-specifier has-modeline-p nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4390 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4391
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4392 @node Q3.5.2, Q3.5.3, Q3.5.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4393 @unnumberedsubsec Q3.5.2: How do you have XEmacs display the line number in the modeline?
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 Add the following line to your @file{init.el} file to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4396 display the line number:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4397
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4398 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4399 (line-number-mode 1)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4400 @end lisp
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 Use the following to display the column number:
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 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4405 (column-number-mode 1)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4406 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4407
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4408 Or select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4409 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4410 @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4411 @end iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4412 @code{Advanced (Customize)->Emacs->Editing->Basics->Line Number Mode}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4413 and/or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4414 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4415 @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4416 @end iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4417 @code{Advanced (Customize)->Emacs->Editing->Basics->Column Number Mode}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4418
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4419 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
4420
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4421 @node Q3.5.3, Q3.5.4, Q3.5.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4422 @unnumberedsubsec Q3.5.3: How do I get XEmacs to put the time of day on the modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4423
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4424 Add the following line to your @file{init.el} file to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4425 display the time:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4426
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4427 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4428 (display-time)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4429 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4430
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4431 See @code{Customize} from the @code{Options} menu for customization.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4432
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4433 @node Q3.5.4, Q3.6.1, Q3.5.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4434 @unnumberedsubsec Q3.5.4: How can one change the modeline color based on the mode used?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4435
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4436 You can use something like the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4437
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4438 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4439 (add-hook 'lisp-mode-hook
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4440 (lambda ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4441 (set-face-background 'modeline "red" (current-buffer))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4442 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4443
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4444 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4445 colors change from the default set in your @file{init.el}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4446 The change will only be made in the buffer you just entered (which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4447 contains the Lisp file you are editing) and will not affect the modeline
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4448 colors anywhere else.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4449
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4450 Notes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4451
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4452 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4453
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4454 @item The hook is the mode name plus @code{-hook}. eg. c-mode-hook,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4455 c++-mode-hook, emacs-lisp-mode-hook (used for your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4456 @file{init.el} or a @file{xx.el} file),
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4457 lisp-interaction-mode-hook (the @samp{*scratch*} buffer),
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4458 text-mode-hook, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4459
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4460 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4461 Be sure to use @code{add-hook}, not @code{(setq c-mode-hook xxxx)},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4462 otherwise you will erase anything that anybody has already put on the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4463 hook.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4464
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4465 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4466 You can also do @code{(set-face-font 'modeline @var{font})},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4467 eg. @code{(set-face-font 'modeline "*bold-r-normal*140-100-100*"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4468 (current-buffer))} if you wish the modeline font to vary based on the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4469 current mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4470 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4471
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4472 There are additional modeline faces, @code{modeline-buffer-id},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4473 @code{modeline-mousable}, and @code{modeline-mousable-minor-mode}, which
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4474 you may want to customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4475
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4476 @unnumberedsec 3.6: The Cursor
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4477
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4478 @node Q3.6.1, Q3.6.2, Q3.5.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4479 @unnumberedsubsec Q3.6.1: Is there a way to make the bar cursor thicker?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4480
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4481 I'd like to have the bar cursor a little thicker, as I tend to "lose" it
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4482 often.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4483
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4484 For a 1 pixel bar cursor, use:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4485
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4486 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4487 (setq bar-cursor t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4488 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4489
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4490 For a 2 pixel bar cursor, use:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4491
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4492 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4493 (setq bar-cursor 'anything-else)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4494 @end lisp
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 Starting with XEmacs-20.3 you can also change these with Customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4497 Select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4498 @code{Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4499 @kbd{M-x customize @key{RET} display @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4500
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4501 You can use a color to make it stand out better:
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 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4504 Emacs*cursorColor: Red
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4505 @end example
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 @node Q3.6.2, Q3.6.3, Q3.6.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4508 @unnumberedsubsec Q3.6.2: Is there a way to get back the block cursor?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4509
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4510 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4511 (setq bar-cursor nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4512 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4513
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4514 Starting with XEmacs 20.3 you can also change this with Customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4515 Select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4516 @code{Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4517 @kbd{M-x customize @key{RET} display @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4518
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4519 @node Q3.6.3, Q3.7.1, Q3.6.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4520 @unnumberedsubsec Q3.6.3: Can I make the cursor blink?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4521
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4522 Yes, like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4523
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4524 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4525 (blink-cursor-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4526 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4527
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4528 This function toggles between a steady cursor and a blinking cursor.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4529 You may also set this mode from the menu bar by selecting
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4530 @samp{Options->Display->Blinking Cursor}. Remember to save options.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4531
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4532 @unnumberedsec 3.7: Text Selections
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4533
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4534 @node Q3.7.1, Q3.7.2, Q3.6.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4535 @unnumberedsubsec Q3.7.1: How do I select a rectangular region?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4536
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4537 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
4538 @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
4539 rectangle, but the commands work just fine.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4540
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4541 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
4542 @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
4543 Then use rectangle commands.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4544
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4545 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
4546 rectangular regions:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4547
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4548 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4549 (setq mouse-track-rectangle-p t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4550 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4551
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4552 Starting with XEmacs-20.2 you can also change this with Customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4553 Select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4554 @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
4555 @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
4556
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4557
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4558 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4559 mouse-track-do-rectangle: (event)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4560 -- an interactive compiled Lisp function.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4561 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
4562 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4563
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4564 @node Q3.7.2, Q3.7.3, Q3.7.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4565 @unnumberedsubsec Q3.7.2: How can I turn off or change highlighted selections?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4566
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4567 The @code{zmacs} mode allows for what some might call gratuitous
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4568 highlighting for selected regions (either by setting mark or by using
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4569 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
4570 following line to your @file{init.el} file:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4571
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4572 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4573 (setq zmacs-regions nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4574 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4575
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4576 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
4577 @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4578 @code{Advanced (Customize)->Emacs->Editing->Basics->Zmacs Regions}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4579 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
4580
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4581 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
4582 on the menubar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4583
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4584 @node Q3.7.3, Q3.7.4, Q3.7.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4585 @unnumberedsubsec Q3.7.3: How do I get that typing on an active region removes it?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4586
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4587 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
4588 the typed text replaces the selected text, similar to Motif.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4589
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4590 You want to use something called @dfn{pending delete}. Pending delete
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4591 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
4592 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
4593 Usually backspace kills the selected region.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4594
2164
e0dc83407d58 [xemacs-hg @ 2004-07-05 10:42:30 by stephent]
stephent
parents: 1987
diff changeset
4595 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
4596 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
4597 @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4598
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4599 @lisp
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4600 (cond
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4601 ((fboundp 'turn-on-pending-delete)
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4602 (turn-on-pending-delete))
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4603 ((fboundp 'pending-delete-on)
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
4604 (pending-delete-on t)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4605 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4606
1138
05ed51332340 [xemacs-hg @ 2002-12-03 11:01:40 by didierv]
didierv
parents: 1135
diff changeset
4607 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
4608 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
4609 more portable.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4610
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4611 @node Q3.7.4, Q3.7.5, Q3.7.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4612 @unnumberedsubsec Q3.7.4: Can I turn off the highlight during isearch?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4613
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4614 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
4615 able to see what's underneath. How do I turn it off?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4616
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4617 Put the following in your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4618
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4619 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4620 (setq isearch-highlight nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4621 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4622
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4623 Starting with XEmacs-20.2 you can also change this with Customize. Type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4624 @kbd{M-x customize-variable @key{RET} isearch-highlight @key{RET}}.
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 Note also that isearch-highlight affects query-replace and ispell.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4627 Instead of disabling isearch-highlight you may find that a better
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4628 solution consists of customizing the @code{isearch} face.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4629
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4630 @node Q3.7.5, Q3.7.6, Q3.7.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4631 @unnumberedsubsec Q3.7.5: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
428
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 Put this in your @code{.emacs}:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4634
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4635 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4636 (setq zmacs-regions nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4637 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4638
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4639 @strong{Warning: This command turns off all region highlighting.}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4640
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4641 @xref{Q3.7.2, How can I turn off or change highlighted selections?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4642
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4643 @node Q3.7.6, Q3.7.7, Q3.7.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4644 @unnumberedsubsec Q3.7.6: The region disappears when I hit the end of buffer while scrolling.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4645
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4646 This has been fixed by default starting with XEmacs-20.3.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4647
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4648 With older versions you can turn this feature (if it indeed is a feature)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4649 off like this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4650
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4651 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4652 (defadvice scroll-up (around scroll-up freeze)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4653 (interactive "_P")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4654 (let ((zmacs-region-stays t))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4655 (if (interactive-p)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4656 (condition-case nil
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4657 ad-do-it
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4658 (end-of-buffer (goto-char (point-max))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4659 ad-do-it)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4660
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4661 (defadvice scroll-down (around scroll-down freeze)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4662 (interactive "_P")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4663 (let ((zmacs-region-stays t))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4664 (if (interactive-p)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4665 (condition-case nil
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4666 ad-do-it
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
4667 (beginning-of-buffer (goto-char (point-min))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4668 ad-do-it)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4669 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4670
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4671 Thanks to @email{raman@@adobe.com, T. V. Raman} for assistance in deriving this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4672 answer.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4673
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4674 @node Q3.7.7, Q3.7.8, Q3.7.6, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4675 @unnumberedsubsec Q3.7.7: Why is killing so slow?
892
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4676
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4677 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
4678 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
4679 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
4680
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4681 @table @strong
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4682 @item Primary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4683 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
4684
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4685 @item Secondary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4686 for "exchanging" with the primary selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4687
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4688 @item Cut buffers
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4689 a clipboard internal to the X server (deprecated)
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4690
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4691 @item Clipboard selection
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4692 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
4693 manage the clipboard
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4694 @end table
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4695
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4696 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
4697 inefficient than the clipboard notification protocol. The primary
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4698 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
4699 robust under intensive or sophisticated use.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4700
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4701 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
4702 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
4703 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
4704 (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
4705 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
4706 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
4707
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4708 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
4709 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
4710 Motif.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4711
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4712 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
4713 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
4714 that the situation is not going to improve.
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4715
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4716 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
4717 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
4718 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
4719 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
4720 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
4721 @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
4722 @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
4723 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
4724 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
4725
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4726 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
4727 primary selection, then you can customize
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4728 @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
4729 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
4730 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
4731 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
4732 @code{interprogram-paste-function} to @code{nil}. (Otherwise
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4733 XEmacs-to-XEmacs pastes will not work correctly.)
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4734
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4735 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
4736 @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
4737 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
4738
52c2a7139db0 [xemacs-hg @ 2002-07-02 12:27:53 by stephent]
stephent
parents: 871
diff changeset
4739 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
4740
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4741 @node Q3.7.8, Q3.8.1, Q3.7.7, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4742 @unnumberedsubsec Q3.7.8: Why does @kbd{M-w} take so long?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4743
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4744 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
4745 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
4746 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
4747 delay for a second if you let it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4748
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4749 @unnumberedsec 3.8: Buffers, Text Editing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4750
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4751 @node Q3.8.1, Q3.8.2, Q3.7.8, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4752 @unnumberedsubsec Q3.8.1: Can I have the end of the buffer delimited in some way?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4753
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4754 Say, with: @samp{[END]}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4755
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4756 Try this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4757
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4758 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4759 (let ((ext (make-extent (point-min) (point-max))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4760 (set-extent-property ext 'start-closed t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4761 (set-extent-property ext 'end-closed t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4762 (set-extent-property ext 'detachable nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4763 (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4764 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4765
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4766 Since this is XEmacs, you can specify an icon to be shown on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4767 window-system devices. To do so, change the @code{make-glyph} call to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4768 something like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4769
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4770 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4771 (make-glyph '([xpm :file "~/something.xpm"]
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4772 [string :data "[END]"]))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4773 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4774
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4775 You can inline the @sc{xpm} definition yourself by specifying
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4776 @code{:data} instead of @code{:file}. Here is such a full-featured
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4777 version that works on both X and TTY devices:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4778
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4779 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4780 (let ((ext (make-extent (point-min) (point-max))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4781 (set-extent-property ext 'start-closed t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4782 (set-extent-property ext 'end-closed t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4783 (set-extent-property ext 'detachable nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4784 (set-extent-end-glyph ext (make-glyph '([xpm :data "\
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4785 /* XPM */
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4786 static char* eye = @{
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4787 \"20 11 7 2\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4788 \"__ c None\"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4789 \"_` c #7f7f7f\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4790 \"_a c #fefefe\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4791 \"_b c #7f0000\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4792 \"_c c #fefe00\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4793 \"_d c #fe0000\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4794 \"_e c #bfbfbf\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4795 \"___________`_`_`___b_b_b_b_________`____\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4796 \"_________`_`_`___b_c_c_c_b_b____________\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4797 \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4798 \"___`_`_e_a___b_b_d___b___b___b___b______\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4799 \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4800 \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4801 \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4802 \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4803 \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4804 \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4805 \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4806 @} ;"]
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4807 [string :data "[END]"]))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4808 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4809
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4810 Note that you might want to make this a function, and put it to a hook.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4811 We leave that as an exercise for the reader.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4812
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4813 @node Q3.8.2, Q3.8.3, Q3.8.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4814 @unnumberedsubsec Q3.8.2: How do I insert today's date into a buffer?
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 Like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4817
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4818 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4819 (insert (current-time-string))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4820 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4821
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4822 @node Q3.8.3, Q3.8.4, Q3.8.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4823 @unnumberedsubsec Q3.8.3: How do I get a single minibuffer frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4824
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4825 @email{acs@@acm.org, Vin Shelton} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4826
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4827 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4828 (setq initial-frame-plist '(minibuffer nil))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4829 (setq default-frame-plist '(minibuffer nil))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4830 (setq default-minibuffer-frame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4831 (make-frame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4832 '(minibuffer only
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4833 width 86
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4834 height 1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4835 menubar-visible-p nil
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4836 default-toolbar-visible-p nil
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4837 name "minibuffer"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4838 top -2
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4839 left -2
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4840 has-modeline-p nil)))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4841 (frame-notice-user-settings)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4842 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4843
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4844 @strong{Please note:} The single minibuffer frame may not be to everyone's
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4845 taste, and there any number of other XEmacs options settings that may
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4846 make it difficult or inconvenient to use.
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 @node Q3.8.4, Q3.8.5, Q3.8.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4849 @unnumberedsubsec Q3.8.4: How can I enable auto-indent and/or Filladapt?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4850
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4851 Put the following line in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4852
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4853 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4854 (setq indent-line-function 'indent-relative-maybe)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4855 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4856
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4857 If you want to get fancy, try the @code{filladapt} package available
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4858 standard with XEmacs. Put this into your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4859
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4860 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4861 (require 'filladapt)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4862 (setq-default filladapt-mode t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4863 (add-hook 'c-mode-hook 'turn-off-filladapt-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4864 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4865
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4866 This will enable Filladapt for all modes except C mode, where it doesn't
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4867 work well. To turn Filladapt on only in particular major modes, remove
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4868 the @code{(setq-default ...)} line and use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4869 @code{turn-on-filladapt-mode}, like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4870
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4871 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4872 (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4873 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4874
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4875 You can customize filling and adaptive filling with Customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4876 Select from the @code{Options} menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4877 @code{Advanced (Customize)->Emacs->Editing->Fill->Fill...}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4878 or type @kbd{M-x customize @key{RET} fill @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4879
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4880 Note that well-behaving text-lookalike modes will run
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4881 @code{text-mode-hook} by default (e.g. that's what Message does). For
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4882 the nasty ones, you'll have to provide the @code{add-hook}s yourself.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4883
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4884 Please note that the @code{fa-extras} package is no longer useful.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4885
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4886 @node Q3.8.5, Q3.9.1, Q3.8.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4887 @unnumberedsubsec Q3.8.5: How can I get XEmacs to come up in text/auto-fill mode by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4888
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4889 Try the following lisp in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4890
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4891 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4892 (setq default-major-mode 'text-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4893 (setq text-mode-hook 'turn-on-auto-fill)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4894 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4895
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4896 @strong{WARNING}: note that changing the value of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4897 @code{default-major-mode} from @code{fundamental-mode} can break a large
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4898 amount of built-in code that expects newly created buffers to be in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4899 @code{fundamental-mode}. (Changing from @code{fundamental-mode} to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4900 @code{text-mode} might not wreak too much havoc, but changing to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4901 something more exotic like a lisp-mode would break many Emacs packages).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4902
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4903 Note that Emacs by default starts up in buffer @code{*scratch*} in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4904 @code{initial-major-mode}, which defaults to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4905 @code{lisp-interaction-mode}. Thus adding the following form to your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4906 Emacs init file will cause the initial @code{*scratch*} buffer to be put
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4907 into auto-fill'ed @code{text-mode}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4908
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4909 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4910 (setq initial-major-mode
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4911 (lambda ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4912 (text-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4913 (turn-on-auto-fill)))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4914 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4915
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4916 Note that after your init file is loaded, if
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4917 @code{inhibit-startup-message} is @code{nil} (the default) and the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4918 startup buffer is @code{*scratch*} then the startup message will be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4919 inserted into @code{*scratch*}; it will be removed after a timeout by
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4920 erasing the entire @code{*scratch*} buffer. Keep in mind this default
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4921 usage of @code{*scratch*} if you desire any prior manipulation of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4922 @code{*scratch*} from within your Emacs init file. In particular,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4923 anything you insert into @code{*scratch*} from your init file will be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4924 later erased. Also, if you change the mode of the @code{*scratch*}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4925 buffer, be sure that this will not interfere with possible later
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4926 insertion of the startup message (e.g. if you put @code{*scratch*} into
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4927 a nonstandard mode that has automatic font lock rules, then the startup
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4928 message might get fontified in a strange foreign manner, e.g. as code in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4929 some programming language).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4930
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4931 @unnumberedsec 3.9: Editing Source Code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4932
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4933 @node Q3.9.1, Q3.9.2, Q3.8.5, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4934 @unnumberedsubsec Q3.9.1: How can I do source code highlighting using font-lock?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4935
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4936 For most modes, font-lock is already set up and just needs to be turned
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4937 on. This can be done by adding the line:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4938
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4939 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4940 (require 'font-lock)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4941 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4942
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4943 to your @file{init.el}. (You can turn it on for the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4944 current buffer and session only by @kbd{M-x font-lock-mode}.) See the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4945 file @file{etc/sample.init.el} (@file{etc/sample.emacs} in XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4946 versions prior to 21.4) for more information.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4947
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4948 @c the old way:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4949 @c (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4950 @c (add-hook 'dired-mode-hook 'turn-on-font-lock)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4951
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4952 See also @code{Syntax Highlighting} from the @code{Options} menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4953 Remember to save options.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4954
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4955 @node Q3.9.2, Q3.9.3, Q3.9.1, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4956 @unnumberedsubsec Q3.9.2: How do I get @samp{More} Syntax Highlighting on by default?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4957
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4958 Use the following code in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4959
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4960 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4961 (setq-default font-lock-maximum-decoration t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4962 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4963
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4964 See also @code{Syntax Highlighting} from the @code{Options} menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4965 Remember to save options.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4966
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4967 @node Q3.9.3, Q3.9.4, Q3.9.2, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4968 @unnumberedsubsec Q3.9.3: Where do I get the latest CC Mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4969
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4970 @email{bwarsaw@@cnri.reston.va.us, Barry A. Warsaw} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4971
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4972 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4973 This can be had from @uref{http://www.python.org/emacs/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4974 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4975
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4976 @node Q3.9.4, Q3.9.5, Q3.9.3, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4977 @unnumberedsubsec Q3.9.4: I do not like cc-mode. How do I use the old c-mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4978
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4979 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
4980 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
4981 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
4982 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
4983
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4984 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
4985
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4986 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4987 (fmakunbound 'c-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4988 (makunbound 'c-mode-map)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4989 (fmakunbound 'c++-mode)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4990 (makunbound 'c++-mode-map)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4991 (makunbound 'c-style-alist)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4992 (load-library "old-c-mode")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4993 (load-library "old-c++-mode")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4994 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4995
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4996 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
4997 c++-mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4998
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
4999 @node Q3.9.5, , Q3.9.4, Display Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5000 @unnumberedsubsec Q3.9.5: How do you make XEmacs indent CL if-clauses correctly?
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 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
5003 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
5004 first two.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5005
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5006 One way is to add, to @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5007
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5008 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5009 (put 'if 'lisp-indent-function nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5010 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5011
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5012 However, note that the package @code{cl-indent} that comes with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5013 XEmacs sets up this kind of indentation by default. @code{cl-indent}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5014 also knows about many other CL-specific forms. To use @code{cl-indent},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5015 one can do this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5016
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5017 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5018 (load "cl-indent")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5019 (setq lisp-indent-function (function common-lisp-indent-function))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5020 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5021
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5022 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
5023 @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
5024 Here's how:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5025
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5026 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5027 (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
5028 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5029
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5030 Also, a new version (1.2) of @file{cl-indent.el} was posted to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5031 comp.emacs.xemacs on 12/9/94. This version includes more documentation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5032 than previous versions. This may prove useful if you need to customize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5033 any indent-functions.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5034
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5035 @node External Subsystems, Internet, Display Subsystems, Top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5036 @unnumbered 4 Interfacing with the Operating System and External Devices
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5037
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5038 This is part 4 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
5039 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
5040 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
5041 as speakers and the printer.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5042
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5043 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5044 4.0: X Window System and Resources
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5045 * Q4.0.1:: Where is a list of X resources?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5046 * Q4.0.2:: How can I detect a color display?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5047 * Q4.0.3:: How can I get the icon to just say @samp{XEmacs}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5048 * Q4.0.4:: How can I have the window title area display the full path?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5049 * Q4.0.5:: @samp{xemacs -name junk} doesn't work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5050 * Q4.0.6:: @samp{-iconic} doesn't work.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5051
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5052 4.1: Microsoft Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5053 * Q4.1.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5054 * Q4.1.2:: How do I get Windows Explorer to associate a file type with XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5055
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5056 4.2: Printing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5057 * Q4.2.1:: What do I need to change to make printing work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5058 * Q4.2.2:: How can I print WYSIWYG a font-locked buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5059 * Q4.2.3:: Getting @kbd{M-x lpr} to work with postscript printer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5060 * Q4.2.4:: Can you print under MS Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5061
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5062 4.3: Sound
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5063 * Q4.3.1:: How do I turn off the sound?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5064 * Q4.3.2:: How do I get funky sounds instead of a boring beep?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5065 * Q4.3.3:: What's NAS, how do I get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5066 * Q4.3.4:: Sunsite sounds don't play.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5067
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5068 4.4: Running an Interior Shell, Invoking Subprocesses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5069 * Q4.4.1:: What is an interior shell?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5070 * Q4.4.2:: How do I start up a second shell buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5071 * Q4.4.3:: Telnet from shell filters too much
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5072 * Q4.4.4:: Strange things are happening in Shell Mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5073 * Q4.4.5:: XEmacs complains "No such file or directory, diff"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5074
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5075 4.5: Multiple Device Support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5076 * Q4.5.1:: How do I open a frame on another screen of my multi-headed display?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5077 * Q4.5.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5078 * Q4.5.3:: How do I disable gnuserv from opening a new frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5079 * Q4.5.4:: How do I start gnuserv so that each subsequent XEmacs is a client?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5080 * Q4.5.5:: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5081
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5082 4.6: TeX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5083 * Q4.6.1:: Is there something better than LaTeX mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5084 * Q4.6.2:: What is AUCTeX? Where do you get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5085 * Q4.6.3:: Problems installing AUCTeX.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5086 * Q4.6.4:: How do I turn off current chapter from AUCTeX modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5087
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5088 4.7: Other Unbundled Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5089 * Q4.7.1:: Is there a reason for an Emacs package not to be included in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5090 * Q4.7.2:: Are there any Emacs Lisp Spreadsheets?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5091 * Q4.7.3:: Is there a MatLab mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5092
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5093 4.8: Environments Built Around XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5094 * Q4.8.1:: What are SPARCworks, EOS, and WorkShop?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5095 * Q4.8.2:: How do I start the Sun Workshop support in XEmacs 21?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5096 * Q4.8.3:: What is/was Energize?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5097 * Q4.8.4:: What is Infodock?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5098 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5099
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5100 @unnumberedsec 4.0: X Window System and Resources
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5101
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5102 @node Q4.0.1, Q4.0.2, External Subsystems, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5103 @unnumberedsubsec Q4.0.1: Where is a list of X resources?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5104
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5105 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
5106 comprehensive list is given after it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5107
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5108 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
5109 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
5110 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
5111 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
5112 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
5113 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
5114 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
5115
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5116 @node Q4.0.2, Q4.0.3, Q4.0.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5117 @unnumberedsubsec Q4.0.2: How can I detect a color display?
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 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
5120 in:
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 (when (eq (device-class) 'color)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5124 (set-face-foreground 'font-lock-comment-face "Grey")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5125 (set-face-foreground 'font-lock-string-face "Red")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5126 ....
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5127 )
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5128 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5129
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5130 @node Q4.0.3, Q4.0.4, Q4.0.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5131 @unnumberedsubsec Q4.0.3: How can I get the icon to just say @samp{XEmacs}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5132
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5133 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
5134 the current file in it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5135
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5136 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
5137
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5138 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5139 (setq frame-icon-title-format "XEmacs")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5140 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5141
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5142 @node Q4.0.4, Q4.0.5, Q4.0.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5143 @unnumberedsubsec Q4.0.4: How can I have the window title area display the full path?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5144
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5145 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
5146 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
5147
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5148 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
5149
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5150 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5151 (setq frame-title-format "%S: %f")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5152 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5153
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5154 A more sophisticated title might be:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5155
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5156 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5157 (setq frame-title-format
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5158 '("%S: " (buffer-file-name "%f"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5159 (dired-directory dired-directory "%b"))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5160 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5161
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5162 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
5163
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5164 @node Q4.0.5, Q4.0.6, Q4.0.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5165 @unnumberedsubsec Q4.0.5: @samp{xemacs -name junk} doesn't work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5166
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5167 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
5168 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
5169 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
5170 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
5171 @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
5172 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
5173 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
5174 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
5175
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5176 @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
5177 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
5178 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
5179 @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
5180 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
5181 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
5182 @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
5183 widget would be:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5184
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5185 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5186 Name: FOO .shell .container .BAR
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5187 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5188 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5189
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5190 instead of the default
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5191
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5192 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5193 Name: xemacs.shell .container .emacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5194 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5195 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5196
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5197
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5198 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
5199 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
5200 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
5201 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
5202 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
5203 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
5204 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
5205 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
5206 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
5207 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
5208
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5209 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
5210
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5211 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5212 (make-frame '((name . "the-name")))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5213 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5214
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5215 @node Q4.0.6, Q4.1.1, Q4.0.5, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5216 @unnumberedsubsec Q4.0.6: @samp{-iconic} doesn't work.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5217
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5218 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
5219 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
5220 @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
5221
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5222 @email{ben@@xemacs.org, Ben Wing} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5223
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5224 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5225 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
5226 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
5227 bugs...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5228 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5229
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5230 @unnumberedsec 4.1: Microsoft Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5231
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5232 @node Q4.1.1, Q4.1.2, Q4.0.6, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5233 @unnumberedsubsec Q4.1.1: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5234
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5235 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
5236 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
5237
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5238 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
5239 @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
5240 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
5241 @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
5242 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
5243 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
5244 and functions.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5245
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5246 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
5247 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
5248 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
5249 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
5250 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
5251 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
5252 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
5253
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5254 @c not true:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5255 @c The user variables
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5256 @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
5257 @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
5258 @c compatibility aliases.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5259
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5260 @node Q4.1.2, Q4.2.1, Q4.1.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5261 @unnumberedsubsec Q4.1.2: How do I get Windows Explorer to associate a file type with XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5262
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5263 @unnumberedsubsubsec Associating a new file type with XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5264
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5265 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
5266 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
5267
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5268 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5269 Description of type: Emacs Lisp source
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5270 Associated extension: el
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5271 Content Type (MIME): text/plain
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5272 @end example
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 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
5275 follows:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5276
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5277 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5278 Action:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5279 Open
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5280
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5281 Application used to perform action:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5282 D:\Full\path\for\xemacs.exe "%1"
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 [x] Use DDE
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5285
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5286 DDE Message:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5287 open("%1")
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 Application:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5290 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5291
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5292 DDE Application Not Running:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5293 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5294
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5295 Topic:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5296 <leave blank>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5297 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5298
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5299 @unnumberedsubsubsec Associating an existing file type with XEmacs.
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 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
5302 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
5303 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
5304 @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
5305 action.
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 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
5308 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
5309 it and pressing @samp{Set Default}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5310
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5311 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
5312 using @samp{Control Panel->Folder Options->File Types}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5313
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5314 @unnumberedsec 4.2: Printing
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5315
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5316 @node Q4.2.1, Q4.2.2, Q4.1.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5317 @unnumberedsubsec Q4.2.1: What do I need to change to make printing work?
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 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
5320
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5321 @table @code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5322 @item lpr-command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5323 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
5324 it to a printer. Something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5325
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5326 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5327 (setq lpr-command "lp")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5328 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5329
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5330 @item lpr-switches
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5331 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
5332 requires to do its job. Something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5333
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5334 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5335 (setq lpr-switches '("-depson"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5336 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5337 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5338
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5339 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
5340 customize.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5341
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5342 @table @code
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5343 @item ps-lpr-command
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5344 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
5345 and directs it to a postscript printer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5346
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5347 @item ps-lpr-switches
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5348 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
5349 @code{ps-lpr-command} to do its job.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5350
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5351 @item ps-print-color-p
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5352 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
5353 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
5354 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5355
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5356 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
5357 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
5358 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
5359
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5360 @node Q4.2.2, Q4.2.3, Q4.2.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5361 @unnumberedsubsec Q4.2.2: How can I print WYSIWYG a font-locked buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5362
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5363 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
5364 document?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5365
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5366 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
5367 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
5368 on its use, in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5369 @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
5370 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
5371
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5372 @node Q4.2.3, Q4.2.4, Q4.2.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5373 @unnumberedsubsec Q4.2.3: Getting @kbd{M-x lpr} to work with postscript printer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5374
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5375 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
5376 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
5377 lpr-buffer} to work?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5378
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5379 Put something like this in your @file{init.el}:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5380
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5381 @lisp
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5382 (setq lpr-command "a2ps")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5383 (setq lpr-switches '("-p" "-1"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5384 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5385
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5386 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
5387 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
5388 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
5389
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5390 @node Q4.2.4, Q4.3.1, Q4.2.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5391 @unnumberedsubsec Q4.2.4: Can you print under MS Windows?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5392
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5393 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
5394 @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
5395 @samp{File->Page Setup...}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5396
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5397 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
5398 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
5399 here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5400
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5401 @unnumberedsec 4.3: Sound
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5402
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5403 @node Q4.3.1, Q4.3.2, Q4.2.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5404 @unnumberedsubsec Q4.3.1: How do I turn off the sound?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5405
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5406 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
5407
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5408 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5409 (setq bell-volume 0)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5410 (setq sound-alist nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5411 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5412
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5413 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
5414 (TTY beep on TTY-s) will be gone.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5415
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5416 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
5417 @code{Options} menu @code{Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5418 (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
5419 customize @key{RET} sound @key{RET}}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5420
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5421
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5422 @node Q4.3.2, Q4.3.3, Q4.3.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5423 @unnumberedsubsec Q4.3.2: How do I get funky sounds instead of a boring beep?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5424
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5425 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
5426 in your @file{init.el}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5427
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5428 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5429 (load-default-sounds)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5430 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5431
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5432 @node Q4.3.3, Q4.3.4, Q4.3.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5433 @unnumberedsubsec Q4.3.3: What's NAS, how do I get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5434
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5435 @xref{Q2.1.3, Compiling XEmacs with Netaudio}, for an explanation of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5436 the @dfn{Network Audio System}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5437
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5438 @node Q4.3.4, Q4.4.1, Q4.3.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5439 @unnumberedsubsec Q4.3.4: Sunsite sounds don't play.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5440
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5441 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
5442 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
5443 @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
5444
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5445 @email{gutschk@@uni-muenster.de, Markus Gutschke} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5446
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5447 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5448 [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
5449 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
5450 @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
5451 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
5452 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
5453 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
5454 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
5455 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5456
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5457 @unnumberedsec 4.4: Running an Interior Shell, Invoking Subprocesses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5458
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5459 @node Q4.4.1, Q4.4.2, Q4.3.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5460 @unnumberedsubsec Q4.4.1: What is an interior shell?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5461
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5462 #### Write me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5463
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5464 @node Q4.4.2, Q4.4.3, Q4.4.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5465 @unnumberedsubsec Q4.4.2: How do I start up a second shell buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5466
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5467 In the @code{*shell*} buffer:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5468
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5469 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5470 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
5471 M-x shell RET
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5472 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5473
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5474 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
5475 @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
5476 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
5477 rename-buffer}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5478
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5479 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
5480 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
5481 a new shell is made
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5482
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5483 @node Q4.4.3, Q4.4.4, Q4.4.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5484 @unnumberedsubsec Q4.4.3: Telnet from shell filters too much
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5485
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5486 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
5487 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
5488 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
5489
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5490 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
5491 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
5492 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
5493 installed.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5494
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5495 @node Q4.4.4, Q4.4.5, Q4.4.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5496 @unnumberedsubsec Q4.4.4: Strange things are happening in Shell Mode.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5497
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5498 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
5499 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
5500 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
5501 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
5502 given to the shell.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5503
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5504 @email{martin@@xemacs.org, Martin Buchholz} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5505
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5506 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5507 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
5508 @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
5509 @file{.cshrc}:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5510
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5511 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5512 if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5513 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5514 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5515
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5516 @node Q4.4.5, Q4.5.1, Q4.4.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5517 @unnumberedsubsec Q4.4.5: XEmacs complains "No such file or directory, diff"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5518
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5519 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
5520 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
5521
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5522 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
5523 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
5524 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
5525 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
5526 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
5527 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
5528 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
5529 please let us know!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5530
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5531 @unnumberedsec 4.5: Multiple Device Support
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5532
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5533 @node Q4.5.1, Q4.5.2, Q4.4.5, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5534 @unnumberedsubsec Q4.5.1: How do I open a frame on another screen of my multi-headed display?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5535
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5536 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
5537 on the File menu in the menubar.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5538
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5539 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
5540 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
5541 left to @code{gnuclient}, though.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5542
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5543 @node Q4.5.2, Q4.5.3, Q4.5.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5544 @unnumberedsubsec Q4.5.2: Can I really connect to a running XEmacs after calling up over a modem? How?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5545
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5546 Yes. Use @code{gnuclient -nw}. (Prior to 20.3, use the @code{gnuattach}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5547 program supplied with XEmacs instead.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5548
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5549 Also see @ref{Q4.5.3, How do I disable gnuserv from opening a new frame?}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5550
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5551 @node Q4.5.3, Q4.5.4, Q4.5.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5552 @unnumberedsubsec Q4.5.3: How do I disable gnuserv from opening a new frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5553
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5554 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
5555 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
5556 created. For example, you could put
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5557
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5558 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5559 (setq gnuserv-frame (selected-frame))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5560 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5561
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5562 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
5563 is the one used for your gnuserv buffers.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5564
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5565 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
5566 @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
5567
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5568 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
5569 @code{Options} menu @code{Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5570 (Customize)->Emacs->Environment->Gnuserv->Gnuserv Frame...} or type
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5571 @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
5572
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5573
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5574 @node Q4.5.4, Q4.5.5, Q4.5.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5575 @unnumberedsubsec Q4.5.4: How do I start gnuserv so that each subsequent XEmacs is a client?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5576
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5577 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
5578
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5579 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5580 (gnuserv-start)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5581 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5582
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5583 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
5584
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5585 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5586 gnuclient randomfilename
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5587 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5588
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5589 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
5590 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
5591 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
5592 frame.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5593
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5594 See also man page of gnuclient.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5595
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5596 @node Q4.5.5, Q4.6.1, Q4.5.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5597 @unnumberedsubsec Q4.5.5: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5598
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5599 @email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5600 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5601 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
5602 @file{etc/editclient.sh}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5603 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5604 #!/bin/sh
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5605 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
5606 then
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5607 exec gnuclient $@{1+"$@@"@}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5608 else
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5609 xemacs -unmapped -f gnuserv-start &
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5610 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
5611 do
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5612 sleep 1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5613 done
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5614 exec gnuclient $@{1+"$@@"@}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5615 fi
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5616 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5617
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5618 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
5619 -nw' on the same TTY.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5620 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5621
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5622 @unnumberedsec 4.6: TeX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5623
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5624 @node Q4.6.1, Q4.6.2, Q4.5.5, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5625 @unnumberedsubsec Q4.6.1: Is there something better than LaTeX mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5626
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5627 @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
5628
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5629 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5630 The standard TeX modes leave much to be desired, and are somewhat
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5631 leniently maintained. Serious TeX users use AUCTeX (@pxref{Q4.6.2,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5632 What is AUCTeX? Where do you get it?}).
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5633 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5634
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5635 @node Q4.6.2, Q4.6.3, Q4.6.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5636 @unnumberedsubsec Q4.6.2: What is AUCTeX? Where do you get it?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5637
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5638 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
5639 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
5640 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
5641 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
5642 LaTeX environments, etc, and for fontlock.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5643
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5644 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
5645 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
5646 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
5647 maintained by Uwe Brauer <GET MAIL ADDRESS>.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5648
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5649 AUCTeX is extremely complicated, and its developers primarily
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5650 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
5651 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
5652 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
5653 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
5654
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5655 @node Q4.6.3, Q4.6.4, Q4.6.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5656 @unnumberedsubsec Q4.6.3: Problems installing AUCTeX.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5657
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5658 @email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5659
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5660 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5661 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
5662 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
5663 @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
5664 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
5665 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5666
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5667 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
5668
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5669 @itemize @bullet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5670 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5671 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
5672 match.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5673
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5674 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
5675
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5676 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5677 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
5678
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5679 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
5680 @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
5681 @end itemize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5682
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5683 @node Q4.6.4, Q4.7.1, Q4.6.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5684 @unnumberedsubsec Q4.6.4: How do I turn off current chapter from AUCTeX modeline?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5685
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5686 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
5687 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
5688
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5689 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
5690
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5691 @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
5692 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5693 @c @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5694 @c (setq fume-display-in-modeline-p nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5695 @c @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5696 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5697 @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
5698 @c mode:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5699 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5700 @c @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5701 @c (add-hook 'TeX-mode-hook
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5702 @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
5703 @c @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5704 @c
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5705 @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
5706
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5707 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5708 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
5709 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
5710 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
5711 Buffer} option in the function-menu.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5712
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5713 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5714 (setq-default fume-auto-rescan-buffer-p nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5715 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5716 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5717
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5718 @unnumberedsec 4.7: Other Unbundled Packages
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5719
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5720 @node Q4.7.1, Q4.7.2, Q4.6.4, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5721 @unnumberedsubsec Q4.7.1: Is there a reason for an Emacs package not to be included in XEmacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5722
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5723 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
5724 usually one or more of the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5725
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5726 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5727 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5728 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
5729 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
5730 XEmacs.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5731
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5732 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
5733 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
5734 usually choose to support both Emacsen themselves.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5735
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5736 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5737 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
5738 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
5739 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
5740 additional package.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5741
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5742 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
5743 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
5744 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
5745 so---we will more likely include it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5746
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5747 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5748 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
5749 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
5750 our attention.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5751
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5752 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5753 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
5754 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
5755 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
5756 appreciated.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5757 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5758
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5759 @node Q4.7.2, Q4.7.3, Q4.7.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5760 @unnumberedsubsec Q4.7.2: Are there any Emacs Lisp Spreadsheets?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5761
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5762 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
5763 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5764 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5765 @end iftex
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5766 @uref{ftp://cs.nyu.edu/pub/local/fox/dismal/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5767
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5768 @node Q4.7.3, Q4.8.1, Q4.7.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5769 @unnumberedsubsec Q4.7.3: Is there a MatLab mode?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5770
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5771 Yes, a matlab mode and other items are available at the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5772 @uref{ftp://ftp.mathworks.com/pub/contrib/emacs_add_ons,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5773 MathWorks' emacs_add_ons ftp directory}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5774
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5775 @unnumberedsec 4.8: Environments Built Around XEmacs
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5776
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5777 @node Q4.8.1, Q4.8.2, Q4.7.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5778 @unnumberedsubsec Q4.8.1: What are SPARCworks, EOS, and WorkShop?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5779
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5780 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
5781 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
5782 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
5783 configuration management), MakeTool, etc.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5784
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5785 EOS is the integration of XEmacs with the SPARCworks debugger. It
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5786 allows one to use an XEmacs frame to view code (complete with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5787 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
5788 using the SPARCworks debugger.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5789
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5790 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
5791 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
5792 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
5793 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
5794
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5795 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
5796 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
5797 unknown.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5798
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5799 @node Q4.8.2, Q4.8.3, Q4.8.1, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5800 @unnumberedsubsec Q4.8.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
5801
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5802 Add the switch ---with-workshop to the configure command when building
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5803 XEmacs and put the following in one of your startup files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5804 (e.g. site-start.el or .emacs):
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5805
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5806 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5807 (when (featurep 'tooltalk)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5808 (load "tooltalk-macros")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5809 (load "tooltalk-util")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5810 (load "tooltalk-init"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5811 (when (featurep 'sparcworks)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5812 (load "sunpro-init")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5813 (load "ring")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5814 (load "comint")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5815 (load "annotations")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5816 (sunpro-startup))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5817 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5818
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5819 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
5820 following patch:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5821
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5822 @format
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5823 --- /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
5824 +++ /opt/SUNWspro/lib/eserve.el Fri May 14 15:24:54 1999
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5825 @@@@ -42,7 +42,7 @@@@
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5826 (defvar running-xemacs nil "t if we're running XEmacs")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5827 (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
5828
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5829 -(if (string-match "^\\(19\\|20\\)\..*\\(XEmacs\\|Lucid\\)" emacs-version)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5830 +(if (string-match "\\(XEmacs\\|Lucid\\)" emacs-version)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5831 (setq running-xemacs t)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5832 (setq running-emacs t))
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
5833 @end format
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5834
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5835 @node Q4.8.3, Q4.8.4, Q4.8.2, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5836 @unnumberedsubsec Q4.8.3: What is/was Energize?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5837
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5838 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
5839 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
5840 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
5841 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
5842 Engineering (which briefly employed Stig Hackvan aka Jonathan
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5843 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
5844 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
5845 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
5846 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
5847
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5848 @node Q4.8.4, , Q4.8.3, External Subsystems
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5849 @unnumberedsubsec Q4.8.4: What is Infodock?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5850
660
cd653494e774 [xemacs-hg @ 2001-09-15 14:26:30 by adrian]
adrian
parents: 658
diff changeset
5851 @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
5852 integrated productivity toolset, mainly aimed at technical people,
cd653494e774 [xemacs-hg @ 2001-09-15 14:26:30 by adrian]
adrian
parents: 658
diff changeset
5853 hosted at SourceForge.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5854
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5855 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
5856 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
5857 menu-based user interface. The bottom portion of this text describes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5858 how it differs from XEmacs and GNU Emacs from the Free Software
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5859 Foundation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5860
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5861 InfoDock is aimed at people who want a free, turn-key productivity
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5862 environment. Although InfoDock is customizable, it is not intended for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5863 people who like basic versions of Emacs which need to be customized
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5864 extensively for local use; standard Emacs distributions are better for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5865 such uses. InfoDock is for those people who want a complete,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5866 pre-customized environment in one package, which they need not touch
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5867 more than once or twice a year to update to new revisions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5868
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5869 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
5870 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
5871 although most features will work on monochrome monitors. Simply unpack
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5872 InfoDock according to the instructions in the ID-INSTALL file and you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5873 are ready to run.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5874
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5875 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
5876 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
5877 already familiar with Emacs, it supplements the information in the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5878 Emacs Manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5879
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5880 InfoDock menus are much more extensive and more mature than standard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5881 Emacs menus. Each menu offers a @samp{Manual} item which displays
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5882 documentation associated with the menu's functions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5883
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5884 @noindent
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5885 Four types of menubars are provided:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5886 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5887 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5888 An extensive menubar providing access to global InfoDock commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5889 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5890 Mode-specific menubars tailored to the current major mode.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5891 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5892 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
5893 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5894 The standard XEmacs menubar.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5895 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5896
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5897 Most modes also include mode-specific popup menus. Additionally, region and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5898 rectangle popup menus are included.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5899
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5900 @samp{Hyperbole}, the everyday information manager, is a core part of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5901 InfoDock. This provides context-sensitive mouse keys, a rolodex-type
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5902 contact manager, programmable hypertext buttons, and an autonumbered
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5903 outliner with embedded hyperlink anchors.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5904
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5905 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
5906 standard part of InfoDock.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5907
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5908 InfoDock saves a more extensive set of user options than other Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5909 versions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5910
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5911 InfoDock inserts a useful file header in many file types, showing the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5912 author, summary, and last modification time of each file. A summary
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5913 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
5914 for easy MANIFEST file creation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5915
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5916 Your working set of buffers is automatically saved and restored (if you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5917 answer yes to a prompt) between InfoDock sessions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5918
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5919 Refined color choices for code highlighting are provided for both dark and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5920 light background display frames.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5921
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5922 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
5923 @kbd{C-x} key prefix for window-based commands.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5924
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5925 The Smart Menu system is included for producing command menus on dumb
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5926 terminals.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5927
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5928 Lisp libraries are better categorized according to function.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5929
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5930 Extensions and improvements to many areas of Emacs are included, such as:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5931 paragraph filling, mail reading with Rmail, shell handling, outlining, code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5932 highlighting and browsing, and man page browsing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5933
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5934 InfoDock questions, answers and discussion should go to the mail list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5935 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5936 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5937 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5938 @email{infodock@@infodock.com}. Use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5939 @email{infodock-request@@infodock.com} to be added or removed from the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5940 list. Always include your InfoDock version number when sending help
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5941 requests.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5942
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5943 @node Internet, Advanced, External Subsystems, Top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5944 @unnumbered 5 Connecting to the Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5945
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5946 This is part 5 of the XEmacs Frequently Asked Questions list. This
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5947 section is devoted connecting to the Internet.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5948
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5949 @menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5950 5.0: General Mail and News
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5951 * Q5.0.1:: What are the various packages for reading mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5952 * Q5.0.2:: How can I send mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5953 * Q5.0.3:: How do I get my outgoing mail archived?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5954 * Q5.0.4:: How can I read and/or compose MIME messages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5955 * Q5.0.5:: How do I customize the From line?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5956 * Q5.0.6:: How do I get my MUA to filter mail for me?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5957 * Q5.0.7:: Remote mail reading with an MUA.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5958 * Q5.0.8:: An MUA gets an error incorporating new mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5959 * Q5.0.9:: Why isn't @file{movemail} working?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5960 * Q5.0.10:: How do I make my MUA display graphical smilies?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5961 * Q5.0.11:: How can I get those oh-so-neat X-Face lines?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5962
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5963 5.1: Reading Mail with VM
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5964 * Q5.1.1:: How do I set up VM to retrieve mail from a remote site using POP?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5965 * Q5.1.2:: How can I get VM to automatically check for new mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5966 * Q5.1.3:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5967 * Q5.1.4:: Is there a mailing list or FAQ for VM?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5968 * Q5.1.5:: How do I make VM stay in a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5969 * Q5.1.6:: Customization of VM not covered in the manual, or here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5970
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5971 5.2: Reading Netnews and Mail with Gnus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5972 * Q5.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5973 * Q5.2.2:: How do I make Gnus stay within a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5974
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5975 5.3: FTP Access
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5976 * Q5.3.1:: Can I edit files on other hosts?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5977 * Q5.3.2:: What is EFS?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5978
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5979 5.4: Web Browsing with W3
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5980 * Q5.4.1:: What is W3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5981 * Q5.4.2:: How do I run W3 from behind a firewall?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5982 * Q5.4.3:: Is it true that W3 supports style sheets and tables?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5983 @end menu
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5984
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5985 @unnumberedsec 5.0: General Mail and News
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5986
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5987 @node Q5.0.1, Q5.0.2, Internet, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5988 @unnumberedsubsec Q5.0.1: What are the various packages for reading mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5989
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5990 #### Write me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5991
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5992 @node Q5.0.2, Q5.0.3, Q5.0.1, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5993 @unnumberedsubsec Q5.0.2: How can I send mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5994
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5995 Under Unix and Mac OS X, the @samp{sendmail} package is normally used
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5996 for this.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5997 #### Write me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5998
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
5999 Under Windows, you need to use @samp{smtpmail}, which communicates
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6000 directly with the mail server, as there is no @file{sendmail} program
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6001 running. To get it working, use code like the following in your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6002 @file{init.el} file:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6003
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6004 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6005 ;; Get mail working under Windows.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6006 (setq message-send-mail-function 'smtpmail-send-it) ; for message/Gnus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6007 (setq send-mail-function 'smtpmail-send-it) ; for C-x m, etc.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6008 ;; the following ensures that mail problems can be debugged: it logs a trace
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6009 ;; of the SMTP conversation to *trace of SMTP session to <somewhere>*.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6010 (setq smtpmail-debug-info t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6011 ;; Substitute your info here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6012 ;(setq user-mail-address "ben@@xemacs.org")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6013 ;(setq user-full-name "Ben Wing")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6014 ;(setq smtpmail-default-smtp-server "smtp.myserver.myisp.com")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6015 ;; The following two aren't completely necessary but may help.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6016 ;(setq smtpmail-local-domain "666.com")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6017 ;(setq smtpmail-sendto-domain "666.com")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6018 ;; If your SMTP server requires a username/password to authenticate, as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6019 ;; many do nowadays, set them like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6020 ;(setq smtpmail-auth-credentials ; or use ~/.authinfo
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6021 ; '(("smtp.myserver.myisp.com" 25 "USER@@SOMEWHERE" "PASSWORD")))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6022
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6023 ;; Other possibilities for getting smtpmail to work:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6024 ;;
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6025 ;; If for some reason you need to authenticate using the STARTTLS protocol
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6026 ;; (don't look into this unless you know what it is), use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6027 ;; (setq smtpmail-starttls-credentials
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6028 ;; '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6029 ;; Requires external program
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6030 ;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6031 ;; See http://www.ietf.org/rfc/rfc2246.txt,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6032 ;; http://www.ietf.org/rfc/rfc2487.txt
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6033 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6034
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6035 The lines you need to care about are those that set
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6036 @code{user-mail-address}, @code{user-full-name},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6037 @code{smtpmail-default-smtp-server}, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6038 @code{smtpmail-auth-credentials}. You need to set these with,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6039 respectively, your email address, your full name, the SMTP server you
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6040 use for outgoing mail, and the username and password you need to log
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6041 in to your SMTP server. (If for some reason your SMTP server doesn't
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6042 require logging in to send mail, don't uncomment this last line.)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6043
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6044 The other settings may be useful in specific cases, but you should know what
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6045 you're doing before enabling them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6046
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6047 @node Q5.0.3, Q5.0.4, Q5.0.2, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6048 @unnumberedsubsec Q5.0.3: How do I get my outgoing mail archived?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6049
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6050 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6051 (setq mail-archive-file-name "~/outbox")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6052 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6053
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6054 @node Q5.0.4, Q5.0.5, Q5.0.3, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6055 @unnumberedsubsec Q5.0.4: How can I read and/or compose MIME messages?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6056
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6057 VM, MH-E and GNUS support MIME natively. Other MUAs may or may not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6058 have MIME support; refer to their documentation and other resources,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6059 such as web pages and mailing lists. Packages like SEMI/WEMI may be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6060 useful in connection with MUAs like mew and Wanderlust.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6061
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6062 @node Q5.0.5, Q5.0.6, Q5.0.4, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6063 @unnumberedsubsec Q5.0.5: How do I customize the From line?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6064
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6065 How do I change the @samp{From:} line? I have set gnus-user-from-line
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6066 to
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6067 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6068 Gail Gurman <gail.gurman@@sybase.com>
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6069 @end example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6070 @noindent , but XEmacs Gnus doesn't use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6071 it. [This should apply to all MUA's. --ed] Instead it uses
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6072 @example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6073 Gail Mara Gurman @email{gailg@@deall}
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6074 @end example
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6075 @noindent and then complains
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6076 that it's incorrect. Also, as you perhaps can see, my Message-ID is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6077 screwy. How can I change that?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6078
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6079 @email{larsi@@ifi.uio.no, Lars Magne Ingebrigtsen} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6080
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6081 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6082 Set @code{user-mail-address} to @samp{gail.gurman@@sybase.com} or
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6083 @code{mail-host-address} to @samp{sybase.com}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6084 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6085
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6086 @node Q5.0.6, Q5.0.7, Q5.0.5, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6087 @unnumberedsubsec Q5.0.6: How do I get my MUA to filter mail for me?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6088
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6089 One possibility is to use procmail to split your mail before it gets to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6090 the MUA. I prefer this personally, since there are many strange and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6091 wonderful things one can do with procmail. Procmail may be found at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6092 @uref{ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6093
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6094 Also see the Mail Filtering FAQ at:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6095 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6096 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6097 @end iftex
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6098 @uref{ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/filtering-faq}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6099 @c Link above,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6100 @c <URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6101 @c was dead.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6102
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6103 @node Q5.0.7, Q5.0.8, Q5.0.6, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6104 @unnumberedsubsec Q5.0.7: Remote mail reading with an MUA.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6105
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6106 My mailbox lives at the office on a big honkin server. My regular INBOX
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6107 lives on my honkin desktop machine. I now can PPP to the office from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6108 home which is far from honking... I'd like to be able to read mail at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6109 home without storing it here and I'd like to use xemacs and the MUA at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6110 home... Is there a recommended setup?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6111
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6112 @email{nuspl@@nvwls.cc.purdue.edu, Joseph J. Nuspl Jr.} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6113
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6114 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6115 There are several ways to do this.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6116
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6117 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6118 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6119 Set your display to your home machine and run dxpc or one of the other X
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6120 compressors.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6121
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6122 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6123 NFS mount your desktop machine on your home machine and modify your pop
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6124 command on your home machine to rsh to your desktop machine and actually
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6125 do the pop get's.
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 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6128 Run a POP server on your desktop machine as well and do a sort of two
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6129 tiered POP get.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6130 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6131 @end quotation
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 @email{wmperry@@monolith.spry.com, William Perry} adds:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6134
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6135 @quotation
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6136 Or you could run a pop script periodically on your desktop machine, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6137 just use ange-ftp or NFS to get to your mailbox. I used to do this all
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6138 the time back at IU.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6139 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6140
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6141 @node Q5.0.8, Q5.0.9, Q5.0.7, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6142 @unnumberedsubsec Q5.0.8: An MUA gets an error incorporating new mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6143
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6144 rmail and VM, and probably other MUA's as well, get new mail from
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6145 your mailbox (called @file{/var/mail/$USER} or @file{/var/spool/mail/$USER}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6146 or something similar) using a program called @code{movemail}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6147 This program interlocks with @code{/bin/mail} using the protocol
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6148 defined by @code{/bin/mail}.
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 There are various different protocols in general use, which you need to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6151 specify using the @samp{--mail-locking} option to @file{configure}:
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 @table @samp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6154 @item lockf
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6155 POSIX file locking with @code{lockf()}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6156 @item flock
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6157 BSD file locking with @code{flock()}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6158 @item dot
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6159 To manipulate mail file @file{foo}, first create file @file{foo.lock}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6160 @item locking
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6161 Use @code{locking()}, Microsoft's renamed @code{flock()}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6162 @item mmdf
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6163 Use @code{lk_open()} and @code{lk_close()} as defined by the Multi-channel
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6164 Memo Distribution Facility
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6165 @item pop
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6166 Retrieve mail using POP (the Post Office Protocol). This is the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6167 default for Cygwin/MinGW.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6168 @end table
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6169
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6170 @strong{IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6171 SYSTEM, YOU CAN LOSE MAIL!}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6172
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6173 Usually the value is correctly determined automatically:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6174 @file{configure} tries to detect the method in use, and defaults exist
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6175 on systems for which this doesn't work.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6176
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6177 However, if you run into problems incorporating new mail, it may be
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6178 because an incorrect method is being used.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6179
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6180 If your system uses the lock file protocol, and permissions are set
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6181 so that ordinary users cannot write lock files in the mail spool
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6182 directory, you may need to make @file{movemail} setgid to a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6183 suitable group such as @samp{mail}. You can use these commands (as
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6184 root):
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6185
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6186 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6187 chgrp mail movemail
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6188 chmod 2755 movemail
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6189 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6190
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6191 If you are using the @samp{pop} locking method, @file{movemail} must
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6192 be setuid root.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6193
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6194 Installation normally copies movemail from the build directory to an
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6195 installation directory which is usually under @file{/usr/local/lib}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6196 The installed copy of @file{movemail} is usually in the directory
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6197 @file{/usr/local/lib/xemacs-VERSION/TARGET} (for example,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6198 @file{/usr/local/lib/xemacs-21.4.15/i686-pc-cygwin}). You must change
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6199 the group and mode of the installed copy; changing the group and mode
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6200 of the build directory copy is ineffective.
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 @node Q5.0.9, Q5.0.10, Q5.0.8, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6203 @unnumberedsubsec Q5.0.9: Why isn't @file{movemail} working?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6204
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6205 @xref{Q5.0.8}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6206
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6207 Note also that older versions of Mozilla came with a @file{movemail}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6208 program that is @strong{not} compatible with XEmacs. Do not use it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6209 Always use the @file{movemail} installed with your XEmacs. Failure to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6210 do so can result in lost mail.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6211
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6212 @node Q5.0.10, Q5.0.11, Q5.0.9, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6213 @unnumberedsubsec Q5.0.10: How do I make my MUA display graphical smilies?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6214 For mh-e use the following:
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 (add-hook 'mh-show-mode-hook '(lambda ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6218 (smiley-region (point-min)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6219 (point-max))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6220 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6221
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6222 @email{bill@@carpenter.ORG, WJCarpenter} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6223 For VM use the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6224 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6225 (autoload 'smiley-region "smiley" nil t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6226 (add-hook 'vm-select-message-hook
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6227 '(lambda ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6228 (smiley-region (point-min)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6229 (point-max))))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6230 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6231
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6232 For tm use the following:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6233 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6234 (autoload 'smiley-buffer "smiley" nil t)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6235 (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6236 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6237
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6238 @node Q5.0.11, Q5.1.1, Q5.0.10, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6239 @unnumberedsubsec Q5.0.11: How can I get those oh-so-neat X-Face lines?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6240
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6241 Firstly there is an ftp site which describes X-faces and has the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6242 associated tools mentioned below, at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6243 @uref{ftp://ftp.cs.indiana.edu:/pub/faces/}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6244
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6245 Then the steps are
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6246
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6247 @enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6248 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6249 Create 48x48x1 bitmap with your favorite tool
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 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6252 Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6253 and then compile the face.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6254
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6255 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6256 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6257 cat file.xbm | xbm2ikon |compface > file.face
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6258 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6259
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6260 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6261 Then be sure to quote things that are necessary for emacs strings:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6262
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6263 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6264 cat ./file.face | sed 's/\\/\\\\/g'
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6265 @iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6266 \ @*
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6267 @end iftex
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6268 | sed 's/\"/\\\"/g' > ./file.face.quoted
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6269 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6270
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6271 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6272 Then set up emacs to include the file as a mail header - there were a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6273 couple of suggestions here---either something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6274
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6275 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6276 (setq mail-default-headers
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6277 "X-Face: @email{Ugly looking text string here}")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6278 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6279
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6280 Or, alternatively, as:
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 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6283 (defun mail-insert-x-face ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6284 (save-excursion
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6285 (goto-char (point-min))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6286 (search-forward mail-header-separator)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6287 (beginning-of-line)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6288 (insert "X-Face:")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6289 (insert-file-contents "~/.face")))
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 (add-hook 'mail-setup-hook 'mail-insert-x-face)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6292 @end lisp
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6293 @end enumerate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6294
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6295 However, 2 things might be wrong:
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 Some versions of pbmtoicon produces some header lines that is not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6298 expected by the version of compface that I grabbed. So I found I had to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6299 include a @code{tail +3} in the pipeline like this:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6300
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6301 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6302 cat file.xbm | xbm2ikon | tail +3 |compface > file.face
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6303 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6304
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6305 Some people have also found that if one uses the @code{(insert-file)}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6306 method, one should NOT quote the face string using the sed script .
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6307
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6308 It might also be helpful to use @email{stig@@hackvan.com, Stig's} script
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6309 (included in the compface distribution at XEmacs.org) to do the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6310 conversion.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6311 @comment For convenience xbm2xface is available for anonymous FTP at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6312 @comment @uref{ftp://ftp.miranova.com/pub/xemacs/xbm2xface.pl}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6313
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6314 Contributors for this item:
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 Paul Emsley,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6317 Ricardo Marek,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6318 Amir J. Katz,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6319 Glen McCort,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6320 Heinz Uphoff,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6321 Peter Arius,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6322 Paul Harrison, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6323 Vegard Vesterheim
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6324
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6325 @unnumberedsec 5.1: Reading Mail with VM
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6326
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6327 @node Q5.1.1, Q5.1.2, Q5.0.11, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6328 @unnumberedsubsec Q5.1.1: How do I set up VM to retrieve mail from a remote site using POP?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6329
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6330 Use @code{vm-spool-files}, like this for example:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6331
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6332 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6333 (setq vm-spool-files '("/var/spool/mail/wing"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6334 "netcom23.netcom.com:110:pass:wing:MYPASS"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6335 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6336
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6337 Of course substitute your actual password for MYPASS.
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 @node Q5.1.2, Q5.1.3, Q5.1.1, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6340 @unnumberedsubsec Q5.1.2: How can I get VM to automatically check for new mail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6341
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6342 @email{turner@@lanl.gov, John Turner} writes:
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 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6345 Use the following:
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 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6348 (setq vm-auto-get-new-mail 60)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6349 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6350 @end quotation
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 @node Q5.1.3, Q5.1.4, Q5.1.2, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6353 @unnumberedsubsec Q5.1.3: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6354
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6355 Set @code{vm-reply-ignored-addresses} to a list, like
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6356
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6357 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6358 (setq vm-reply-ignored-addresses
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6359 '("wing@@nuspl@@nvwls.cc.purdue.edu,netcom[0-9]*.netcom.com"
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6360 "wing@@netcom.com" "wing@@xemacs.org"))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6361 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6362
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6363 Note that each string is a regular expression.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6364
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6365 @node Q5.1.4, Q5.1.5, Q5.1.3, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6366 @unnumberedsubsec Q5.1.4: Is there a mailing list or FAQ for VM?
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 A FAQ for VM exists at @uref{http://www.wonderworks.com/vm/FAQ.html}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6369
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6370 VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6371
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6372 @node Q5.1.5, Q5.1.6, Q5.1.4, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6373 @unnumberedsubsec Q5.1.5: How do I make VM stay in a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6374
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6375 John.@email{Cooper@@Eng.Sun.COM, John S Cooper} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6376
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6377 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6378 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6379 ; Don't use multiple frames
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6380 (setq vm-frame-per-composition nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6381 (setq vm-frame-per-folder nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6382 (setq vm-frame-per-edit nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6383 (setq vm-frame-per-summary nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6384 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6385 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6386
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6387 @node Q5.1.6, Q5.2.1, Q5.1.5, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6388 @unnumberedsubsec Q5.1.6: Customization of VM not covered in the manual, or here.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6389
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6390 @email{boffi@@hp735.stru.polimi.it, giacomo boffi} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6391
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6392 @quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6393 The meta-answer is to look into the file @file{vm-vars.el}, in the vm
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6394 directory of the lisp library.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6395
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6396 @file{vm-vars.el} contains, initializes and carefully describes, with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6397 examples of usage, the plethora of user options that @emph{fully}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6398 control VM's behavior.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6399
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6400 Enter vm-vars, @code{forward-search} for toolbar, find the variables
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6401 that control the toolbar placement, appearance, existence, copy to your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6402 @file{init.el} or @file{.vm} and modify according to the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6403 detailed instructions.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6404
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6405 The above also applies to all the various features of VM: search for
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6406 some keywords, maybe the first you conjure isn't appropriate, find the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6407 appropriate variables, copy and experiment.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6408 @end quotation
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6409
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6410 @unnumberedsec 5.2: Reading Netnews and Mail with Gnus
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6411
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6412 @node Q5.2.1, Q5.2.2, Q5.1.6, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6413 @unnumberedsubsec Q5.2.1: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6414
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6415 The Gnus numbering issues are not meant for mere mortals to know them.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6416 If you feel you @emph{must} enter the muddy waters of Gnus, visit the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6417 excellent FAQ, maintained by Justin Sheehy, at:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6418
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6419 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6420 @uref{http://www.ccs.neu.edu/software/contrib/gnus/}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6421 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6422
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6423 See also Gnus home page
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6424 @example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6425 @uref{http://www.gnus.org/}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6426 @end example
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6427
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6428 @node Q5.2.2, Q5.3.1, Q5.2.1, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6429 @unnumberedsubsec Q5.2.2: How do I make Gnus stay within a single frame?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6430
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6431 The toolbar code to start Gnus opens the new frame---and it's a feature
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6432 rather than a bug. If you don't like it, but would still like to click
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6433 on the seemly icon, use the following code:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6434
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6435 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6436 (defun toolbar-news ()
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6437 (gnus))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6438 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6439
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6440 It will redefine the callback function of the icon to just call
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6441 @code{gnus}, without all the fancy frame stuff.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6442
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6443 @unnumberedsec 5.3: FTP Access
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6444
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6445 @node Q5.3.1, Q5.3.2, Q5.2.2, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6446 @unnumberedsubsec Q5.3.1: Can I edit files on other hosts?
741
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6447
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6448 Yes. Of course XEmacs can use any network file system (such as NFS or
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6449 Windows file sharing) you have available, and includes some
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6450 optimizations and safety features appropriate to those environments.
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6451
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6452 It is also possible to transparently edit files via FTP, ssh, or rsh. That
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6453 is, XEmacs makes a local copy using the transport in the background, and
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6454 automatically refreshes the remote original from that copy when you save
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6455 it. XEmacs also is capable of doing file system manipulations like
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6456 creating and removing directories and files. The FTP interface is
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6457 provided by the standard @samp{efs} package @ref{Top, EFS, , efs}. The
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6458 ssh/rsh interface is provided by the optional @samp{tramp} package
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6459 @ref{Top, TRAMP, , tramp}.
1d4da9ee6381 [xemacs-hg @ 2002-02-04 10:13:45 by stephent]
stephent
parents: 676
diff changeset
6460
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6461 @node Q5.3.2, Q5.4.1, Q5.3.1, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6462 @unnumberedsubsec Q5.3.2: What is EFS?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6463
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6464 #### Write me.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6465
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6466 @unnumberedsec 5.4: Web Browsing with W3
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6467
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6468 @node Q5.4.1, Q5.4.2, Q5.3.2, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6469 @unnumberedsubsec Q5.4.1: What is W3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6470
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6471 W3 is an advanced graphical browser written in Emacs lisp that runs on
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6472 XEmacs. It has full support for cascaded style sheets, and more...
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6473
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6474 It has a home web page at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6475 @uref{http://www.cs.indiana.edu/elisp/w3/docs.html}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6476
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6477 @node Q5.4.2, Q5.4.3, Q5.4.1, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6478 @unnumberedsubsec Q5.4.2: How do I run W3 from behind a firewall?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6479
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6480 There is a long, well-written, detailed section in the W3 manual that
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6481 describes how to do this. Look in the section entitled "Firewalls".
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 @node Q5.4.3, , Q5.4.2, Internet
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6484 @unnumberedsubsec Q5.4.3: Is it true that W3 supports style sheets and tables?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6485
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6486 Yes, and much more. W3, as distributed with the latest XEmacs is a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6487 full-featured web browser.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6488
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6489 @node Advanced, Current Events, Internet, Top
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6490 @unnumbered 6 Advanced Customization Using XEmacs Lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6491
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6492 This is part 6 of the XEmacs Frequently Asked Questions list. This
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6493 section is devoted to advanced customization using XEmacs Lisp.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6494
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6495 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6496 6.0: Online Help
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6497 * Q6.0.1:: How can I get two instances of info?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6498 * Q6.0.2:: How do I add new Info directories?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6499
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6500 6.1: Emacs Lisp and @file{init.el}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6501 * Q6.1.1:: What version of Emacs am I running?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6502 * Q6.1.2:: How can I evaluate Emacs-Lisp expressions?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6503 * Q6.1.3:: @code{(setq tab-width 6)} behaves oddly.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6504 * Q6.1.4:: How can I add directories to the @code{load-path}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6505 * Q6.1.5:: How to check if a lisp function is defined?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6506 * Q6.1.6:: Can I force the output of @code{(face-list)} to a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6507
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6508 6.2: Emacs Lisp Programming Techniques
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6509 * Q6.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6510 * Q6.2.2:: Can I generate "fake" keyboard events?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6511 * Q6.2.3:: Could you explain @code{read-kbd-macro} in more detail?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6512 * Q6.2.4:: What is the performance hit of @code{let}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6513 * Q6.2.5:: What is the recommended use of @code{setq}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6514 * Q6.2.6:: What is the typical misuse of @code{setq}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6515 * Q6.2.7:: I like the @code{do} form of cl, does it slow things down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6516 * Q6.2.8:: I like recursion, does it slow things down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6517 * Q6.2.9:: How do I put a glyph as annotation in a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6518 * Q6.2.10:: @code{map-extents} won't traverse all of my extents!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6519 * Q6.2.11:: My elisp program is horribly slow. Is there
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6520
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6521 6.3: Mathematics
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6522 * Q6.3.1:: What are bignums, ratios, and bigfloats in Lisp?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6523 * Q6.3.2:: XEmacs segfaults when I use very big numbers!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6524 * Q6.3.3:: Bignums are really slow!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6525 * Q6.3.4:: Equal bignums don't compare as equal! What gives?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6526 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6527
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6528 @unnumberedsec 6.0: Online Help
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6529
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6530 @node Q6.0.1, Q6.0.2, Advanced, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6531 @unnumberedsubsec Q6.0.1: How can I get two instances of info?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6532
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
6533 Before 21.4, you can't. The @code{info} package does not provide for
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
6534 multiple info buffers. In 21.4, this should be fixed. #### how?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6535
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6536 @node Q6.0.2, Q6.1.1, Q6.0.1, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6537 @unnumberedsubsec Q6.0.2: How do I add new Info directories?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6538
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6539 You use something like:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6540
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6541 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6542 (setq Info-directory-list (cons
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6543 (expand-file-name "~/info")
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6544 Info-default-directory-list))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6545 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6546
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6547 @email{davidm@@prism.kla.com, David Masterson} writes:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6548
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6549 @quotation
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6550 Emacs Info and XEmacs Info do many things differently. If you're trying to
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6551 support a number of versions of Emacs, here are some notes to remember:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6552
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6553 @enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6554 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6555 Emacs Info scans @code{Info-directory-list} from right-to-left while
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6556 XEmacs Info reads it from left-to-right, so append to the @emph{correct}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6557 end of the list.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6558
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6559 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6560 Use @code{Info-default-directory-list} to initialize
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6561 @code{Info-directory-list} @emph{if} it is available at startup, but not
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6562 all Emacsen define it.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6563
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6564 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6565 Emacs Info looks for a standard @file{dir} file in each of the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6566 directories scanned from #1 and magically concatenates them together.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6567
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6568 @item
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6569 XEmacs Info looks for a @file{localdir} file (which consists of just the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6570 menu entries from a @file{dir} file) in each of the directories scanned
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6571 from #1 (except the first), does a simple concatenation of them, and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6572 magically attaches the resulting list to the end of the menu in the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6573 @file{dir} file in the first directory.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6574 @end enumerate
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6575
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6576 Another alternative is to convert the documentation to HTML with
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6577 texi2html and read it from a web browser like Lynx or W3.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6578 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6579
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6580 @unnumberedsec 6.1: Emacs Lisp and @file{init.el}
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6581
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6582 @node Q6.1.1, Q6.1.2, Q6.0.2, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6583 @unnumberedsubsec Q6.1.1: What version of Emacs am I running?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6584
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6585 How can @file{init.el} determine which of the family of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6586 Emacsen I am using?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6587
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6588 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6589 XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6590 example given in @file{etc/sample.init.el} (@file{etc/sample.emacs} in
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6591 XEmacs versions prior to 21.4). There are other nifty things in there
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6592 as well!
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6593
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6594 For all new code, all you really need to do is:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6595
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6596 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6597 (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6598 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6599
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6600 @node Q6.1.2, Q6.1.3, Q6.1.1, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6601 @unnumberedsubsec Q6.1.2: How can I evaluate Emacs-Lisp expressions?
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 I know I can evaluate Elisp expressions from @code{*scratch*} buffer
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6604 with @kbd{C-j} after the expression. How do I do it from another
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6605 buffer?
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 Press @kbd{M-:} (the default binding of @code{eval-expression}), and
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6608 enter the expression to the minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6609
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6610 @node Q6.1.3, Q6.1.4, Q6.1.2, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6611 @unnumberedsubsec Q6.1.3: @code{(setq tab-width 6)} behaves oddly.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6612
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6613 If you put @code{(setq tab-width 6)} in your
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6614 @file{init.el} file it does not work! Is there a reason
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6615 for this? If you do it at the EVAL prompt it works fine!! How strange.
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 Use @code{setq-default} instead, since @code{tab-width} is
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6618 all-buffer-local.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6619
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6620 @node Q6.1.4, Q6.1.5, Q6.1.3, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6621 @unnumberedsubsec Q6.1.4: How can I add directories to the @code{load-path}?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6622
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6623 Here are two ways to do that, one that puts your directories at the
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6624 front of the load-path, the other at the end:
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 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6627 ;;; Add things at the beginning of the load-path, do not add
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6628 ;;; duplicate directories:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6629 (pushnew "bar" load-path :test 'equal)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6630
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6631 (pushnew "foo" load-path :test 'equal)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6632
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6633 ;;; Add things at the end, unconditionally
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6634 (setq load-path (nconc load-path '("foo" "bar")))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6635 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6636
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6637 @email{keithh@@nortel.ca, keith (k.p.) hanlan} writes:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6638
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6639 @quotation
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6640 To add directories using Unix shell metacharacters use
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6641 @file{expand-file-name} like this:
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 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6644 (push (expand-file-name "~keithh/.emacsdir") load-path)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6645 @end lisp
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6646 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6647
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6648 @node Q6.1.5, Q6.1.6, Q6.1.4, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6649 @unnumberedsubsec Q6.1.5: How to check if a lisp function is defined?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6650
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6651 Use the following elisp:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6652
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6653 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6654 (fboundp 'foo)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6655 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6656
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6657 It's almost always a mistake to test @code{emacs-version} or any similar
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6658 variables.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6659
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6660 Instead, use feature-tests, such as @code{featurep}, @code{boundp},
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6661 @code{fboundp}, or even simple behavioral tests, eg.:
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6662
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6663 @lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6664 (defvar foo-old-losing-code-p
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6665 (condition-case nil (progn (losing-code t) nil)
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6666 (wrong-number-of-arguments t)))
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6667 @end lisp
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6668
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6669 There is an incredible amount of broken code out there which could work
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6670 much better more often in more places if it did the above instead of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6671 trying to divine its environment from the value of one variable.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6672
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6673 @node Q6.1.6, Q6.2.1, Q6.1.5, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6674 @unnumberedsubsec Q6.1.6: Can I force the output of @code{(face-list)} to a buffer?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6675
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6676 It would be good having it in a buffer, as the output of
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6677 @code{(face-list)} is too wide to fit to a minibuffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6678
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6679 Evaluate the expression in the @samp{*scratch*} buffer with point after
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6680 the rightmost paren and typing @kbd{C-j}.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6681
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6682 If the minibuffer smallness is the only problem you encounter, you can
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6683 simply press @kbd{C-h l} to get the former minibuffer contents in a
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6684 buffer.
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6685
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6686 @unnumberedsec 6.2: Emacs Lisp Programming Techniques
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6687
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6688 @node Q6.2.1, Q6.2.2, Q6.1.6, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6689 @unnumberedsubsec Q6.2.1: What is the difference in key sequences between XEmacs and GNU Emacs?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6690
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6691 @email{clerik@@naggum.no, Erik Naggum} writes;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6692
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6693 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6694 Emacs has a legacy of keyboards that produced characters with modifier
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6695 bits, and therefore map a variety of input systems into this scheme even
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6696 today. XEmacs is instead optimized for X events. This causes an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6697 incompatibility in the way key sequences are specified, but both Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6698 and XEmacs will accept a key sequence as a vector of lists of modifiers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6699 that ends with a key, e.g., to bind @kbd{M-C-a}, you would say
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6700 @code{[(meta control a)]} in both Emacsen. XEmacs has an abbreviated
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6701 form for a single key, just (meta control a). Emacs has an abbreviated
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6702 form for the Control and the Meta modifiers to string-characters (the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6703 ASCII characters), as in @samp{\M-\C-a}. XEmacs users need to be aware
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6704 that the abbreviated form works only for one-character key sequences,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6705 while Emacs users need to be aware that the string-character is rather
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6706 limited. Specifically, the string-character can accommodate only 256
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6707 different values, 128 of which have the Meta modifier and 128 of which
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6708 have not. In each of these blocks, only 32 characters have the Control
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6709 modifier. Whereas @code{[(meta control A)]} differs from @code{[(meta
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6710 control a)]} because the case differs, @samp{\M-\C-a} and @samp{\M-\C-A}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6711 do not. Programmers are advised to use the full common form, both
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6712 because it is more readable and less error-prone, and because it is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6713 supported by both Emacsen.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6714 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6715
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6716 Another (even safer) way to be sure of the key-sequences is to use the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6717 @code{read-kbd-macro} function, which takes a string like @samp{C-c
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6718 <up>}, and converts it to the internal key representation of the Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6719 you use. The function is available both on XEmacs and GNU Emacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6720
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6721 @node Q6.2.2, Q6.2.3, Q6.2.1, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6722 @unnumberedsubsec Q6.2.2: Can I generate "fake" keyboard events?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6723
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6724 I wonder if there is an interactive function that can generate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6725 @dfn{fake} keyboard events. This way, I could simply map them inside
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6726 XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6727
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6728 This seems to work:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6729
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6730 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6731 (defun cg--generate-char-event (ch)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6732 "Generate an event, as if ch has been typed"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6733 (dispatch-event (character-to-event ch)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6734
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6735 ;; Backspace and Delete stuff
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6736 (global-set-key [backspace]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6737 (lambda () (interactive) (cg--generate-char-event 127)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6738 (global-set-key [unknown_keysym_0x4]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6739 (lambda () (interactive) (cg--generate-char-event 4)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6740 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6741
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6742 @node Q6.2.3, Q6.2.4, Q6.2.2, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6743 @unnumberedsubsec Q6.2.3: Could you explain @code{read-kbd-macro} in more detail?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6744
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6745 The @code{read-kbd-macro} function returns the internal Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6746 representation of a human-readable string (which is its argument).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6747 Thus:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6748
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6749 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6750 (read-kbd-macro "C-c C-a")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6751 @result{} [(control ?c) (control ?a)]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6752
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6753 (read-kbd-macro "C-c C-. <up>")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6754 @result{} [(control ?c) (control ?.) up]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6755 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6756
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6757 In GNU Emacs the same forms will be evaluated to what GNU Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6758 understands internally---the sequences @code{"\C-x\C-c"} and @code{[3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6759 67108910 up]}, respectively.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6760
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6761 The exact @dfn{human-readable} syntax is defined in the docstring of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6762 @code{edmacro-mode}. I'll repeat it here, for completeness.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6763
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6764 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6765 Format of keyboard macros during editing:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6766
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6767 Text is divided into @dfn{words} separated by whitespace. Except for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6768 the words described below, the characters of each word go directly as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6769 characters of the macro. The whitespace that separates words is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6770 ignored. Whitespace in the macro must be written explicitly, as in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6771 @kbd{foo @key{SPC} bar @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6772
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6773 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6774 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6775 The special words @kbd{RET}, @kbd{SPC}, @kbd{TAB}, @kbd{DEL}, @kbd{LFD},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6776 @kbd{ESC}, and @kbd{NUL} represent special control characters. The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6777 words must be written in uppercase.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6778
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6779 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6780 A word in angle brackets, e.g., @code{<return>}, @code{<down>}, or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6781 @code{<f1>}, represents a function key. (Note that in the standard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6782 configuration, the function key @code{<return>} and the control key
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6783 @key{RET} are synonymous.) You can use angle brackets on the words
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6784 @key{RET}, @key{SPC}, etc., but they are not required there.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6785
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6786 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6787 Keys can be written by their @sc{ascii} code, using a backslash followed
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6788 by up to six octal digits. This is the only way to represent keys with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6789 codes above \377.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6790
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6791 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6792 One or more prefixes @kbd{M-} (meta), @kbd{C-} (control), @kbd{S-}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6793 (shift), @kbd{A-} (alt), @kbd{H-} (hyper), and @kbd{s-} (super) may
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6794 precede a character or key notation. For function keys, the prefixes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6795 may go inside or outside of the brackets: @code{C-<down>} @equiv{}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6796 @code{<C-down>}. The prefixes may be written in any order: @kbd{M-C-x}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6797 @equiv{} @kbd{C-M-x}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6798
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6799 Prefixes are not allowed on multi-key words, e.g., @kbd{C-abc}, except
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6800 that the Meta prefix is allowed on a sequence of digits and optional
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6801 minus sign: @kbd{M--123} @equiv{} @kbd{M-- M-1 M-2 M-3}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6802
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6803 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6804 The @code{^} notation for control characters also works: @kbd{^M}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6805 @equiv{} @kbd{C-m}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6806
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6807 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6808 Double angle brackets enclose command names: @code{<<next-line>>} is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6809 shorthand for @kbd{M-x next-line @key{RET}}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6810
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6811 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6812 Finally, @code{REM} or @code{;;} causes the rest of the line to be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6813 ignored as a comment.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6814 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6815
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6816 Any word may be prefixed by a multiplier in the form of a decimal number
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6817 and @code{*}: @code{3*<right>} @equiv{} @code{<right> <right> <right>},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6818 and @code{10*foo} @equiv{}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6819 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6820 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6821 @end iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6822 @code{foofoofoofoofoofoofoofoofoofoo}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6823
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6824 Multiple text keys can normally be strung together to form a word, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6825 you may need to add whitespace if the word would look like one of the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6826 above notations: @code{; ; ;} is a keyboard macro with three semicolons,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6827 but @code{;;;} is a comment. Likewise, @code{\ 1 2 3} is four keys but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6828 @code{\123} is a single key written in octal, and @code{< right >} is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6829 seven keys but @code{<right>} is a single function key. When in doubt,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6830 use whitespace.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6831 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6832
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6833 @node Q6.2.4, Q6.2.5, Q6.2.3, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6834 @unnumberedsubsec Q6.2.4: What is the performance hit of @code{let}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6835
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6836 In most cases, not noticeable. Besides, there's no avoiding
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6837 @code{let}---you have to bind your local variables, after all. Some
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6838 pose a question whether to nest @code{let}s, or use one @code{let} per
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6839 function. I think because of clarity and maintenance (and possible
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6840 future implementation), @code{let}-s should be used (nested) in a way to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6841 provide the clearest code.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6842
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6843 @node Q6.2.5, Q6.2.6, Q6.2.4, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6844 @unnumberedsubsec Q6.2.5: What is the recommended use of @code{setq}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6845
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6846 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6847 @item Global variables
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6848
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6849 You will typically @code{defvar} your global variable to a default
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6850 value, and use @code{setq} to set it later.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6851
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6852 It is never a good practice to @code{setq} user variables (like
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6853 @code{case-fold-search}, etc.), as it ignores the user's choice
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6854 unconditionally. Note that @code{defvar} doesn't change the value of a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6855 variable if it was bound previously. If you wish to change a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6856 user-variable temporarily, use @code{let}:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6857
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6858 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6859 (let ((case-fold-search nil))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
6860 ... ; code with searches that must be case-sensitive
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6861 ...)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6862 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6863
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6864 You will notice the user-variables by their docstrings beginning with an
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6865 asterisk (a convention).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6866
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6867 @item Local variables
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6868
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6869 Bind them with @code{let}, which will unbind them (or restore their
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6870 previous value, if they were bound) after exiting from the @code{let}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6871 form. Change the value of local variables with @code{setq} or whatever
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6872 you like (e.g. @code{incf}, @code{setf} and such). The @code{let} form
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6873 can even return one of its local variables.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6874
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6875 Typical usage:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6876
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6877 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6878 ;; iterate through the elements of the list returned by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6879 ;; `hairy-function-that-returns-list'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6880 (let ((l (hairy-function-that-returns-list)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6881 (while l
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6882 ... do something with (car l) ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6883 (setq l (cdr l))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6884 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6885
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6886 Another typical usage includes building a value simply to work with it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6887
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6888 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6889 ;; Build the mode keymap out of the key-translation-alist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6890 (let ((inbox (file-truename (expand-file-name box)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6891 (i 0))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6892 ... code dealing with inbox ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6893 inbox)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6894 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6895
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6896 This piece of code uses the local variable @code{inbox}, which becomes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6897 unbound (or regains old value) after exiting the form. The form also
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6898 returns the value of @code{inbox}, which can be reused, for instance:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6899
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6900 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6901 (setq foo-processed-inbox
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6902 (let .....))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6903 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6904 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6905
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6906 @node Q6.2.6, Q6.2.7, Q6.2.5, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6907 @unnumberedsubsec Q6.2.6: What is the typical misuse of @code{setq}?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6908
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6909 A typical misuse is probably @code{setq}ing a variable that was meant to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6910 be local. Such a variable will remain bound forever, never to be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6911 garbage-collected. For example, the code doing:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6912
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6913 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6914 (defun my-function (whatever)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6915 (setq a nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6916 ... build a large list ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6917 ... and exit ...)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6918 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6919
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6920 does a bad thing, as @code{a} will keep consuming memory, never to be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6921 unbound. The correct thing is to do it like this:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6922
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6923 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6924 (defun my-function (whatever)
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
6925 (let (a) ; default initialization is to nil
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6926 ... build a large list ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6927 ... and exit, unbinding `a' in the process ...)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6928 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6929
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6930 Not only is this prettier syntactically, but it makes it possible for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6931 Emacs to garbage-collect the objects which @code{a} used to reference.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6932
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6933 Note that even global variables should not be @code{setq}ed without
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6934 @code{defvar}ing them first, because the byte-compiler issues warnings.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6935 The reason for the warning is the following:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6936
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6937 @lisp
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
6938 (defun flurgoze nil) ; ok, global internal variable
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6939 ...
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6940
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
6941 (setq flurghoze t) ; ops! a typo, but semantically correct.
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 438
diff changeset
6942 ; however, the byte-compiler warns.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6943
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6944 While compiling toplevel forms:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6945 ** assignment to free variable flurghoze
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6946 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6947
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6948 @node Q6.2.7, Q6.2.8, Q6.2.6, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6949 @unnumberedsubsec Q6.2.7: I like the @code{do} form of cl, does it slow things down?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6950
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6951 It shouldn't. Here is what Dave Gillespie has to say about cl.el
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6952 performance:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6953
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6954 @quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6955 Many of the advanced features of this package, such as @code{defun*},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6956 @code{loop}, and @code{setf}, are implemented as Lisp macros. In
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6957 byte-compiled code, these complex notations will be expanded into
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6958 equivalent Lisp code which is simple and efficient. For example, the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6959 forms
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6960
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6961 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6962 (incf i n)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6963 (push x (car p))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6964 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6965
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6966 are expanded at compile-time to the Lisp forms
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6967
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6968 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6969 (setq i (+ i n))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6970 (setcar p (cons x (car p)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6971 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6972
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6973 which are the most efficient ways of doing these respective operations
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6974 in Lisp. Thus, there is no performance penalty for using the more
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6975 readable @code{incf} and @code{push} forms in your compiled code.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6976
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6977 @emph{Interpreted} code, on the other hand, must expand these macros
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6978 every time they are executed. For this reason it is strongly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6979 recommended that code making heavy use of macros be compiled. (The
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6980 features labelled @dfn{Special Form} instead of @dfn{Function} in this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6981 manual are macros.) A loop using @code{incf} a hundred times will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6982 execute considerably faster if compiled, and will also garbage-collect
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6983 less because the macro expansion will not have to be generated, used,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6984 and thrown away a hundred times.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6985
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6986 You can find out how a macro expands by using the @code{cl-prettyexpand}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6987 function.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6988 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6989
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6990 @node Q6.2.8, Q6.2.9, Q6.2.7, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6991 @unnumberedsubsec Q6.2.8: I like recursion, does it slow things down?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6992
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
6993 Yes. The Emacs byte-compiler cannot do much to optimize recursion. But
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6994 think well whether this is a real concern in Emacs. Much of the Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6995 slowness comes from internal mechanisms such as redisplay, or from the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6996 fact that it is an interpreter.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6997
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6998 Please try not to make your code much uglier to gain a very small speed
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6999 gain. It's not usually worth it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7000
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7001 @node Q6.2.9, Q6.2.10, Q6.2.8, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7002 @unnumberedsubsec Q6.2.9: How do I put a glyph as annotation in a buffer?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7003
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7004 Here is a solution that will insert the glyph annotation at the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7005 beginning of buffer:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7006
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7007 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7008 (make-annotation (make-glyph '([FORMAT :file FILE]
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7009 [string :data "fallback-text"]))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7010 (point-min)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7011 'text
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7012 (current-buffer))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7013 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7014
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7015 Replace @samp{FORMAT} with an unquoted symbol representing the format of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7016 the image (e.g. @code{xpm}, @code{xbm}, @code{gif}, @code{jpeg}, etc.)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7017 Instead of @samp{FILE}, use the image file name
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7018 (e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7019 @iftex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7020 @*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7021 @end iftex
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7022 @file{/usr/local/lib/xemacs-21.4/etc/recycle.xpm}).
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7023
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7024 You can turn this to a function (that optionally prompts you for a file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7025 name), and inserts the glyph at @code{(point)} instead of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7026 @code{(point-min)}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7027
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7028 @node Q6.2.10, Q6.2.11, Q6.2.9, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7029 @unnumberedsubsec Q6.2.10: @code{map-extents} won't traverse all of my extents!
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7030
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7031 I tried to use @code{map-extents} to do an operation on all the extents
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7032 in a region. However, it seems to quit after processing a random number
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7033 of extents. Is it buggy?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7034
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7035 No. The documentation of @code{map-extents} states that it will iterate
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7036 across the extents as long as @var{function} returns @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7037 Unexperienced programmers often forget to return @code{nil} explicitly,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7038 which results in buggy code. For instance, the following code is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7039 supposed to delete all the extents in a buffer, and issue as many
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7040 @samp{fubar!} messages.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7041
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7042 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7043 (map-extents (lambda (ext ignore)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7044 (delete-extent ext)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7045 (message "fubar!")))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7046 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7047
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7048 Instead, it will delete only the first extent, and stop right there --
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7049 because @code{message} will return a non-nil value. The correct code
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7050 is:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7051
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7052 @lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7053 (map-extents (lambda (ext ignore)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7054 (delete-extent ext)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7055 (message "fubar!")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7056 nil))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7057 @end lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7058
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7059 @node Q6.2.11, Q6.3.1, Q6.2.10, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7060 @unnumberedsubsec Q6.2.11: My elisp program is horribly slow. Is there
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7061 an easy way to find out where it spends time?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7062 @c New
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7063
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7064 @email{hniksic@@xemacs.org, Hrvoje Niksic} writes:
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7065 @quotation
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7066 Under XEmacs 20.4 and later you can use @kbd{M-x profile-key-sequence},
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7067 press a key (say @key{RET} in the Gnus Group buffer), and get the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7068 results using @kbd{M-x profile-results}. It should give you an idea of
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents: 454
diff changeset
7069 where the time is being spent.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7070 @end quotation
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7071
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7072 @unnumberedsec 6.3: Mathematics
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7073
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7074 @node Q6.3.1, Q6.3.2, Q6.2.11, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7075 @unnumberedsubsec Q6.3.1: What are bignums, ratios, and bigfloats in Lisp?
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7076
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7077 Thanks to @email{james@@xemacs.org, Jerry James}, XEmacs 21.5.18 and
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7078 later can use the capabilities of multiple-precision libraries that may
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7079 be available for your platform. The GNU Multiple Precision (GMP) and
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7080 BSD Multiple Precision (MP) libraries are partially supported. GMP
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7081 gives you @dfn{bignums} (arbitrary precision integers), @dfn{ratios}
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7082 (arbitrary precision fractions), and @dfn{bigfloats} (arbitrary
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7083 precision floating point numbers). GNU MP is better-supported by XEmacs
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7084 at the time of writing (2004-04-06). BSD MP support does not include
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7085 ratios or bigfloats, and it throws errors that aren't understood.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7086
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7087 In most cases, bignum support should be transparent to users and Lisp
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7088 programmers. A bignum-enabled XEmacs will automatically convert from
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7089 fixnums to bignums and back in pure integer arithmetic, and for GNU MP,
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7090 from floats to bigfloats. (Bigfloats must be explicitly coerced to
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7091 other types, even if they are exactly representable by less precise
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7092 types.) The Lisp reader and printer have been enhanced to handle
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7093 bignums, as have the mathematical functions. Rationals (fixnums,
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7094 bignums, and ratios) are printed using the @samp{%d}, @samp{%o},
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7095 @samp{%x}, and @samp{%u} format conversions. The read syntax for ratios
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7096 is @samp{3/5}.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7097
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7098 User-visible changes in behavior include (in probable order of annoyance)
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7099
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7100 @itemize
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7101 @item
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7102 Arithmetic can cause a segfault, depending on your MP library
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7103 @ref{Q6.3.2, XEmacs segfaults when I use very big numbers!}.
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7104
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7105 @item
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7106 Terminology is not Common-Lisp-conforming. For example, ``integer'' for
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7107 Emacs Lisp means what Common Lisp calls ``fixnum''. This issue is being
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7108 investigated, but the use of ``integer'' for fixnum is pervasive and may
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7109 cause backward-compatibility and GNU-Emacs-compatibility problems.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7110
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7111 @item
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7112 Many operations that used to cause a range error now succeed, with
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7113 intermediate results and return values coerced to bignums as needed.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7114
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7115 @item
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7116 An atom with ratio read syntax now returns a number, not a symbol.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7117
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7118 @item
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7119 The @samp{%u} format conversion will now give an error if its argument
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7120 is negative. (Without MP, it prints a number which Lisp can't read.)
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7121 @end itemize
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7122
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7123 @emph{Surgeon General's Warning}: The automatic conversions cannot be
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7124 disabled at runtime. New functions have been added which produce
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7125 ratios, so there should be few surprises with type conflicts, but they
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7126 can't be ruled out. ``Arbitrary'' precision means precisely what it
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7127 says. If you work with extremely large numbers, your machine may
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7128 arbitrarily decide to hand you an unpleasant surprise rather than a
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7129 bignum @ref{Q6.3.2, XEmacs segfaults when I use very big numbers!}.
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7130
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7131 To configure with GNU MP, add
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7132 @samp{--use-number-lib=gmp}
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7133 to your invocation of @file{configure}. For BSD MP, use
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7134 @samp{--use-number-lib=mp}.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7135
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7136 If you would like to help with bignum support, especially on BSD MP,
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7137 please subscribe to the @uref{http://www.xemacs.org/Lists/#xemacs-beta,
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7138 XEmacs Beta mailing list}, and book up on @file{number-gmp.h} and
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7139 @file{number-mp.h}. Jerry has promised to write internals documentation
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7140 eventually, but if your skills run more to analysis and documentation
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7141 than to writing new code, feel free to fill in the gap!
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7142
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7143
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7144 @node Q6.3.2, Q6.3.3, Q6.3.1, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7145 @unnumberedsubsec Q6.3.2: XEmacs segfaults when I use very big numbers!
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7146
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7147 GMP by default allocates temporaries on the stack. If you run out of
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7148 stack space, you're dead; there is no way that we know of to reliably
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7149 detect this condition, because @samp{alloca} is typically implemented to
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7150 be @emph{fast} rather than robust. If you just need a little more
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7151 oomph, use a bigger stack (@emph{e.g.}, the @file{ulimit -s} command in
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7152 bash(1)). If you want robustness at the cost of speed, configure GMP
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7153 with @samp{--disable-alloca} and rebuild the GMP library.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7154
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7155 We do not know whether BSD MP uses @samp{alloca} or not. Please send
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7156 any information you have as a bug report (@kbd{M-x report-xemacs-bug
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7157 @key{RET}}), which will give us platform information. (We do know that
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7158 BSD MP implementations vary across vendors, but how much, we do not know
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7159 yet.)
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7160
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7161
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7162 @node Q6.3.3, Q6.3.4, Q6.3.2, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7163 @unnumberedsubsec Q6.3.3: Bignums are really slow!
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7164
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7165 Many Linux distributions compile all their packages for the i386, and
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7166 this is costly. An optimized version can give you two or three orders
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7167 of magnitude better performance for a Pentium III or IV. (Yes, really.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7168 See @uref{http://www.swox.com/gmp/gmp-speed.html}.)
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7169
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7170
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7171 @node Q6.3.4, , Q6.3.3, Advanced
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7172 @unnumberedsubsec Q6.3.4: Equal bignums don't compare as equal! What gives?
1987
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7173
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7174 Ah, Grasshopper, I see you are using @code{(eq x y)}. The Bodhisattva
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7175 CLTL2 warned of the illusion that equal numbers would be @samp{eq}!
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7176 Meditate on the deeper truths of @samp{eql}, in which numbers of the same
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7177 type which have equal values compare equal, and @samp{=}, which does any
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7178 necessary type coercions before comparing for equality.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7179
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7180 Yeah, yeah, it has always worked for integer types, because fixnums and
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7181 characters have an immediate representation. Sorry about that;
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7182 arbitrary precision obviously requires consing new objects because the
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7183 objects are ``large'' and of variable size, and the definition of
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7184 @samp{eq} does not permit different objects to compare as equal.
eacbf51ca0d2 [xemacs-hg @ 2004-04-06 15:52:00 by stephent]
stephent
parents: 1869
diff changeset
7185
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7186 @node Current Events, Legacy Versions, Advanced, Top
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
7187 @unnumbered 7 What the Future Holds
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
7188
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
7189 This is part 7 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
7190 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
7191 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
7192 not getting updated like this.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7193
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7194 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
7195 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
7196 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
7197 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
7198 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
7199 menu.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7200
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7201 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
7202 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
7203
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7204
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7205 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7206 7.0: Changes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7207 * Q7.0.1:: What new features will be in XEmacs soon?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7208 * Q7.0.2:: What's new in XEmacs 21.4?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7209 * Q7.0.3:: What's new in XEmacs 21.1?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7210 * Q7.0.4:: What's new in XEmacs 20.4?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7211 * Q7.0.5:: What's new in XEmacs 20.3?
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7212 * Q7.0.6:: What's new in XEmacs 20.2?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7213 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7214
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7215 @unnumberedsec 7.0: Changes
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7216
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
7217 @node Q7.0.1, Q7.0.2, Current Events, Current Events
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7218 @unnumberedsubsec Q7.0.1: What new features will be in XEmacs soon?
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7219
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7220 #### Write me.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7221
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 428
diff changeset
7222 @node Q7.0.2, Q7.0.3, Q7.0.1, Current Events
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7223 @unnumberedsubsec Q7.0.2: What's new in XEmacs 21.4?
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7224
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7225 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
7226 "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
7227 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
7228 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
7229 development branches, one "stable" and one "experimental". Periodic
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7230 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
7231 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
7232 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
7233 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
7234 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
7235 sure they will increase and not decrease stability.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7236
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7237 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
7238 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
7239 ones stable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7240
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7241 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
7242 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
7243 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
7244 @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
7245
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
7246 @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
7247
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7248 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7249
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7250 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7251 The delete key now deletes forward by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7252 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7253 Shifted motion keys now select text by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7254 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7255 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
7256 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7257 ~/.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
7258 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
7259 file will move to ~/.xemacs/custom.el.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7260 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7261 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
7262 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7263 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
7264 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7265 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
7266 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
7267 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7268 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
7269 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
7270 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
7271 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
7272 available from @samp{Edit->Find...})
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7273 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7274 New buffer tabs.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7275 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7276 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
7277 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7278 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
7279 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7280 Printing support now available under MS Windows.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7281 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7282 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
7283 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7284 Mail spool locking now works correctly.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7285 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7286 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
7287 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
7288 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
7289 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
7290 4.)
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7291 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7292 Help buffers contain hyperlinks, and other changes.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7293 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7294 The modeline's text is now scrollable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7295 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7296 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
7297 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7298 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
7299 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7300 Rectangle functions rewritten to avoid inserting extra spaces.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7301 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7302 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
7303 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7304 Default values correctly stored in minibuffer histories.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7305 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7306 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
7307 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7308 Pixel-based scrolling has been implemented.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7309 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7310 Operation progress can be displayed using graphical widgets.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7311 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7312 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
7313 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7314 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
7315 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7316 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
7317 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7318 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
7319 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7320 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
7321 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7322 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
7323 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7324 New locations for early package hierarchies.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7325 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7326 The `auto-save' library has been greatly improved.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7327 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7328 New variable `mswindows-alt-by-itself-activates-menu'.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7329 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7330 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
7331 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7332 Etags changes. See @file{NEWS} for full details.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7333 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7334
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
7335 @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
7336
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7337 Not yet written.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7338
661
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
7339 @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
7340 @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
7341 @c @itemize @bullet
78df880cb9f8 [xemacs-hg @ 2001-09-16 10:09:54 by adrian]
adrian
parents: 660
diff changeset
7342 @c @end itemize
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7343
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7344 @node Q7.0.3, Q7.0.4, Q7.0.2, Current Events
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7345 @unnumberedsubsec Q7.0.3: What's new in XEmacs 21.1?
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7346
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7347 21.1 was the "stable" version of "experimental" 21.0 series.
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7348 @xref{Q7.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
7349
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7350 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
7351 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
7352 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
7353 @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
7354
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
7355 @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
7356
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7357 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7358
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7359 @item
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7360 XEmacs is now supported under Microsoft Windows 95/98/ME and Windows
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7361 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
7362 subscribe to the mailing list at
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7363 @email{xemacs-winnt-request@@xemacs.org}.
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7364
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7365 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7366 XEmacs has been unbundled into constituent installable packages.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7367
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7368 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7369 @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
7370 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
7371 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
7372 (side-by-side) split windows.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7373
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7374 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7375 @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
7376 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
7377 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
7378 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
7379
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7380 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7381 @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
7382
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7383 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7384 @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
7385 @file{gnuclient}. See @file{NEWS} for full details.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7386
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7387 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7388 @strong{New commands, variables and functions}:
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7389 @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
7390 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
7391 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
7392 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
7393 @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
7394 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
7395 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
7396 increment numbers in registers, useful for macros.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7397
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7398 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7399 @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
7400 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
7401 @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
7402 searches exact tag matches before inexact ones; function
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7403 @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
7404 @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
7405 the result in the current buffer.
1138
05ed51332340 [xemacs-hg @ 2002-12-03 11:01:40 by didierv]
didierv
parents: 1135
diff changeset
7406
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7407 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7408 @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
7409 byte-compilation of user-specs now works.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7410
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7411 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7412 @strong{XEmacs/Mule (internationalization) changes}: Mule support now
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7413 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
7414 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
7415 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
7416
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7417 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7418
676
5a9f0fc2b3dc [xemacs-hg @ 2001-11-27 18:54:56 by adrian]
adrian
parents: 662
diff changeset
7419 @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
7420
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7421 @itemize @bullet
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7422
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7423 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7424 @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
7425 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
7426 @code{let-specifier}; new specifiers
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7427 @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
7428 @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
7429 @code{vertical-divider-always-visible-p},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7430 @code{vertical-divider-shadow-thickness},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7431 @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
7432 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
7433 specifications.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7434
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7435 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7436 @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
7437 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
7438 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
7439 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
7440
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7441 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7442 @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
7443 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
7444 @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
7445 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
7446 returned values be in pixels; new function
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7447 @code{vertical-motion-pixels}; new functions
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7448 @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
7449 @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
7450 function @code{window-displayed-text-pixel-height}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7451
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7452 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7453 @strong{Other function changes}: Arithmetic comparison functions
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7454 @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
7455 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
7456 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
7457 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
7458 @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
7459 (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
7460 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
7461 completely; new function @code{function-interactive} (returns a
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7462 function's interactive spec); new functions @code{lmessage},
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7463 @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
7464 @code{display-warning}); new keyword @code{:version} to
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7465 @code{defcustom}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7466
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7467 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7468 @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
7469 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
7470 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
7471 call-count of all called functions, retrievable through
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7472 @code{profile-call-count-results}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7473
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7474 @item
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7475 @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
7476 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
7477 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
7478 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
7479 longer on the load-path by default.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7480
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7481 @end itemize
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7482
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7483 @node Q7.0.4, Q7.0.5, Q7.0.3, Current Events
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7484 @unnumberedsubsec Q7.0.4: What's new in XEmacs 20.4?
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7485
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7486 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
7487 @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
7488
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7489 @node Q7.0.5, Q7.0.6, Q7.0.4, Current Events
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7490 @unnumberedsubsec Q7.0.5: What's new in XEmacs 20.3?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7491
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7492 XEmacs 20.3 was released in November 1997. It contains many bugfixes,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7493 and a number of new features, including Autoconf 2 based configuration,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7494 additional support for Mule (Multi-language extensions to Emacs), many
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7495 more customizations, multiple frames on TTY-s, support for multiple info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7496 directories, an enhanced gnuclient, improvements to regexp matching,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7497 increased MIME support, and many, many synches with GNU Emacs 20.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7498
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7499 The XEmacs/Mule support has been only seriously tested in a Japanese
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7500 locale, and no doubt many problems still remain. The support for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7501 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
7502 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
7503 improving performance and XEmacs 20.3 compiled without Mule (which is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7504 the default) is definitely faster than XEmacs 19.16.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7505
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7506 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
7507 basis for all further development.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7508
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7509 @node Q7.0.6, , Q7.0.5, Current Events
611
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7510 @unnumberedsubsec Q7.0.6: What's new in XEmacs 20.2?
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7511
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7512 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
7513 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
7514 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
7515 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
7516 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
7517 customize}.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7518
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7519 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
7520 considered unstable.
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7521
38db05db9cb5 [xemacs-hg @ 2001-06-08 12:21:09 by ben]
ben
parents: 593
diff changeset
7522 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
7523 the XEmacs distribution.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7524
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7525 @node Legacy Versions, , Current Events, Top
1495
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7526 @unnumbered 8 New information about old XEmacsen
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7527
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7528 This is part 8 of the XEmacs Frequently Asked Questions list. It will
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7529 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
7530 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
7531 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
7532 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
7533 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
7534
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7535 @menu
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7536 * Q8.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
7537 @end menu
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7538
2417
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7539 @unnumberedsec 8.0: XEmacs 21.1
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7540
8b907450718f [xemacs-hg @ 2004-12-05 08:48:12 by ben]
ben
parents: 2164
diff changeset
7541 @node Q8.0.1, , Legacy Versions, Legacy Versions
1495
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7542 @unnumberedsubsec Q8.0.1: Gnus 5.10 won't display smileys in XEmacs 21.1.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7543
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7544 @email{eeide@@cs.utah.edu, Eric Eide} wrote:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7545
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7546 @quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7547 Previously I wrote:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7548
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7549 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
7550 Eric> any smileys :-(.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7551
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7552 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
7553 For me, the form:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7554
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7555 @lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7556 (with-temp-buffer
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7557 (insert-file-contents "foo.xpm")
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7558 (buffer-string))
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7559 @end lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7560
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7561 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
7562 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
7563 this occurs.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7564 @end quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7565
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7566 @email{kyle_jones@@wonderworks.com, Kyle Jones} replies:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7567
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7568 @quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7569 Do this:
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7570
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7571 @lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7572 (setq format-alist nil)
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7573 @end lisp
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7574
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7575 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
7576 branch, praise be.
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7577 @end quotation
c3cf7db99b98 [xemacs-hg @ 2003-05-22 07:41:20 by stephent]
stephent
parents: 1441
diff changeset
7578
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7579 @bye