+++ /dev/null
-This is Info file ../info/xemacs-faq.info, produced by Makeinfo version
-1.68 from the input file xemacs-faq.texi.
-
-INFO-DIR-SECTION XEmacs Editor
-START-INFO-DIR-ENTRY
-* FAQ: (xemacs-faq). XEmacs FAQ.
-END-INFO-DIR-ENTRY
-
-\1f
-File: xemacs-faq.info, Node: Q5.0.20, Next: Q5.1.1, Prev: Q5.0.19, Up: Miscellaneous
-
-Q5.0.20: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
----------------------------------------------------------------------------------------------------------
-
- Jan Vroonhof <vroonhof@math.ethz.ch> writes:
- Here is one of the solutions, we have this in a script called
- `etc/editclient.sh'.
- #!/bin/sh
- if gnuclient -batch -eval t >/dev/null 2>&1
- then
- exec gnuclient ${1+"$@"}
- else
- xemacs -unmapped -f gnuserv-start &
- until gnuclient -batch -eval t >/dev/null 2>&1
- do
- sleep 1
- done
- exec gnuclient ${1+"$@"}
- fi
-
- Note that there is a known problem when running XEmacs and
- 'gnuclient -nw' on the same TTY.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.1, Next: Q5.1.2, Prev: Q5.0.20, Up: Miscellaneous
-
-5.1: Emacs Lisp Programming Techniques
-======================================
-
-Q5.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
------------------------------------------------------------------------------
-
- Erik Naggum <clerik@naggum.no> writes;
-
- Emacs has a legacy of keyboards that produced characters with
- modifier bits, and therefore map a variety of input systems into
- this scheme even today. XEmacs is instead optimized for X events.
- This causes an incompatibility in the way key sequences are
- specified, but both Emacs and XEmacs will accept a key sequence as
- a vector of lists of modifiers that ends with a key, e.g., to bind
- `M-C-a', you would say `[(meta control a)]' in both Emacsen.
- XEmacs has an abbreviated form for a single key, just (meta
- control a). Emacs has an abbreviated form for the Control and the
- Meta modifiers to string-characters (the ASCII characters), as in
- `\M-\C-a'. XEmacs users need to be aware that the abbreviated
- form works only for one-character key sequences, while Emacs users
- need to be aware that the string-character is rather limited.
- Specifically, the string-character can accommodate only 256
- different values, 128 of which have the Meta modifier and 128 of
- which have not. In each of these blocks, only 32 characters have
- the Control modifier. Whereas `[(meta control A)]' differs from
- `[(meta control a)]' because the case differs, `\M-\C-a' and
- `\M-\C-A' do not. Programmers are advised to use the full common
- form, both because it is more readable and less error-prone, and
- because it is supported by both Emacsen.
-
- Another (even safer) way to be sure of the key-sequences is to use
-the `read-kbd-macro' function, which takes a string like `C-c <up>',
-and converts it to the internal key representation of the Emacs you
-use. The function is available both on XEmacs and GNU Emacs.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.2, Next: Q5.1.3, Prev: Q5.1.1, Up: Miscellaneous
-
-Q5.1.2: Can I generate "fake" keyboard events?
-----------------------------------------------
-
- I wonder if there is an interactive function that can generate
-"fake" keyboard events. This way, I could simply map them inside
-XEmacs.
-
- This seems to work:
-
- (defun cg--generate-char-event (ch)
- "Generate an event, as if ch has been typed"
- (dispatch-event (character-to-event ch)))
-
- ;; Backspace and Delete stuff
- (global-set-key [backspace]
- (lambda () (interactive) (cg--generate-char-event 127)))
- (global-set-key [unknown_keysym_0x4]
- (lambda () (interactive) (cg--generate-char-event 4)))
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.3, Next: Q5.1.4, Prev: Q5.1.2, Up: Miscellaneous
-
-Q5.1.3: Could you explain `read-kbd-macro' in more detail?
-----------------------------------------------------------
-
- The `read-kbd-macro' function returns the internal Emacs
-representation of a human-readable string (which is its argument).
-Thus:
-
- (read-kbd-macro "C-c C-a")
- => [(control ?c) (control ?a)]
-
- (read-kbd-macro "C-c C-. <up>")
- => [(control ?c) (control ?.) up]
-
- In GNU Emacs the same forms will be evaluated to what GNU Emacs
-understands internally--the sequences `"\C-x\C-c"' and `[3 67108910
-up]', respectively.
-
- The exact "human-readable" syntax is defined in the docstring of
-`edmacro-mode'. I'll repeat it here, for completeness.
-
- Format of keyboard macros during editing:
-
- Text is divided into "words" separated by whitespace. Except for
- the words described below, the characters of each word go directly
- as characters of the macro. The whitespace that separates words is
- ignored. Whitespace in the macro must be written explicitly, as in
- `foo <SPC> bar <RET>'.
-
- * The special words `RET', `SPC', `TAB', `DEL', `LFD', `ESC',
- and `NUL' represent special control characters. The words
- must be written in uppercase.
-
- * A word in angle brackets, e.g., `<return>', `<down>', or
- `<f1>', represents a function key. (Note that in the standard
- configuration, the function key `<return>' and the control key
- <RET> are synonymous.) You can use angle brackets on the
- words <RET>, <SPC>, etc., but they are not required there.
-
- * Keys can be written by their ASCII code, using a backslash
- followed by up to six octal digits. This is the only way to
- represent keys with codes above \377.
-
- * One or more prefixes `M-' (meta), `C-' (control), `S-'
- (shift), `A-' (alt), `H-' (hyper), and `s-' (super) may
- precede a character or key notation. For function keys, the
- prefixes may go inside or outside of the brackets: `C-<down>'
- == `<C-down>'. The prefixes may be written in any order:
- `M-C-x' == `C-M-x'.
-
- Prefixes are not allowed on multi-key words, e.g., `C-abc',
- except that the Meta prefix is allowed on a sequence of
- digits and optional minus sign: `M--123' == `M-- M-1 M-2 M-3'.
-
- * The `^' notation for control characters also works: `^M' ==
- `C-m'.
-
- * Double angle brackets enclose command names: `<<next-line>>'
- is shorthand for `M-x next-line <RET>'.
-
- * Finally, `REM' or `;;' causes the rest of the line to be
- ignored as a comment.
-
- Any word may be prefixed by a multiplier in the form of a decimal
- number and `*': `3*<right>' == `<right> <right> <right>', and
- `10*foo' == `foofoofoofoofoofoofoofoofoofoo'.
-
- Multiple text keys can normally be strung together to form a word,
- but you may need to add whitespace if the word would look like one
- of the above notations: `; ; ;' is a keyboard macro with three
- semicolons, but `;;;' is a comment. Likewise, `\ 1 2 3' is four
- keys but `\123' is a single key written in octal, and `< right >'
- is seven keys but `<right>' is a single function key. When in
- doubt, use whitespace.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.4, Next: Q5.1.5, Prev: Q5.1.3, Up: Miscellaneous
-
-Q5.1.4: What is the performance hit of `let'?
----------------------------------------------
-
- In most cases, not noticeable. Besides, there's no avoiding
-`let'--you have to bind your local variables, after all. Some pose a
-question whether to nest `let's, or use one `let' per function. I
-think because of clarity and maintenance (and possible future
-implementation), `let'-s should be used (nested) in a way to provide
-the clearest code.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.5, Next: Q5.1.6, Prev: Q5.1.4, Up: Miscellaneous
-
-Q5.1.5: What is the recommended use of `setq'?
-----------------------------------------------
-
- * Global variables
-
- You will typically `defvar' your global variable to a default
- value, and use `setq' to set it later.
-
- It is never a good practice to `setq' user variables (like
- `case-fold-search', etc.), as it ignores the user's choice
- unconditionally. Note that `defvar' doesn't change the value of a
- variable if it was bound previously. If you wish to change a
- user-variable temporarily, use `let':
-
- (let ((case-fold-search nil))
- ... ; code with searches that must be case-sensitive
- ...)
-
- You will notice the user-variables by their docstrings beginning
- with an asterisk (a convention).
-
- * Local variables
-
- Bind them with `let', which will unbind them (or restore their
- previous value, if they were bound) after exiting from the `let'
- form. Change the value of local variables with `setq' or whatever
- you like (e.g. `incf', `setf' and such). The `let' form can even
- return one of its local variables.
-
- Typical usage:
-
- ;; iterate through the elements of the list returned by
- ;; `hairy-function-that-returns-list'
- (let ((l (hairy-function-that-returns-list)))
- (while l
- ... do something with (car l) ...
- (setq l (cdr l))))
-
- Another typical usage includes building a value simply to work
- with it.
-
- ;; Build the mode keymap out of the key-translation-alist
- (let ((inbox (file-truename (expand-file-name box)))
- (i 0))
- ... code dealing with inbox ...
- inbox)
-
- This piece of code uses the local variable `inbox', which becomes
- unbound (or regains old value) after exiting the form. The form
- also returns the value of `inbox', which can be reused, for
- instance:
-
- (setq foo-processed-inbox
- (let .....))
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.6, Next: Q5.1.7, Prev: Q5.1.5, Up: Miscellaneous
-
-Q5.1.6: What is the typical misuse of `setq' ?
-----------------------------------------------
-
- A typical misuse is probably `setq'ing a variable that was meant to
-be local. Such a variable will remain bound forever, never to be
-garbage-collected. For example, the code doing:
-
- (defun my-function (whatever)
- (setq a nil)
- ... build a large list ...
- ... and exit ...)
-
- does a bad thing, as `a' will keep consuming memory, never to be
-unbound. The correct thing is to do it like this:
-
- (defun my-function (whatever)
- (let (a) ; default initialization is to nil
- ... build a large list ...
- ... and exit, unbinding `a' in the process ...)
-
- Not only is this prettier syntactically, but it makes it possible for
-Emacs to garbage-collect the objects which `a' used to reference.
-
- Note that even global variables should not be `setq'ed without
-`defvar'ing them first, because the byte-compiler issues warnings. The
-reason for the warning is the following:
-
- (defun flurgoze nil) ; ok, global internal variable
- ...
-
- (setq flurghoze t) ; ops! a typo, but semantically correct.
- ; however, the byte-compiler warns.
-
- While compiling toplevel forms:
- ** assignment to free variable flurghoze
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.7, Next: Q5.1.8, Prev: Q5.1.6, Up: Miscellaneous
-
-Q5.1.7: I like the the `do' form of cl, does it slow things down?
------------------------------------------------------------------
-
- It shouldn't. Here is what Dave Gillespie has to say about cl.el
-performance:
-
- Many of the advanced features of this package, such as `defun*',
- `loop', and `setf', are implemented as Lisp macros. In
- byte-compiled code, these complex notations will be expanded into
- equivalent Lisp code which is simple and efficient. For example,
- the forms
-
- (incf i n)
- (push x (car p))
-
- are expanded at compile-time to the Lisp forms
-
- (setq i (+ i n))
- (setcar p (cons x (car p)))
-
- which are the most efficient ways of doing these respective
- operations in Lisp. Thus, there is no performance penalty for
- using the more readable `incf' and `push' forms in your compiled
- code.
-
- *Interpreted* code, on the other hand, must expand these macros
- every time they are executed. For this reason it is strongly
- recommended that code making heavy use of macros be compiled. (The
- features labelled "Special Form" instead of "Function" in this
- manual are macros.) A loop using `incf' a hundred times will
- execute considerably faster if compiled, and will also
- garbage-collect less because the macro expansion will not have to
- be generated, used, and thrown away a hundred times.
-
- You can find out how a macro expands by using the `cl-prettyexpand'
- function.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.8, Next: Q5.1.9, Prev: Q5.1.7, Up: Miscellaneous
-
-Q5.1.8: I like recursion, does it slow things down?
----------------------------------------------------
-
- Yes. Emacs byte-compiler cannot do much to optimize recursion. But
-think well whether this is a real concern in Emacs. Much of the Emacs
-slowness comes from internal mechanisms such as redisplay, or from the
-fact that it is an interpreter.
-
- Please try not to make your code much uglier to gain a very small
-speed gain. It's not usually worth it.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.9, Next: Q5.1.10, Prev: Q5.1.8, Up: Miscellaneous
-
-Q5.1.9: How do I put a glyph as annotation in a buffer?
--------------------------------------------------------
-
- Here is a solution that will insert the glyph annotation at the
-beginning of buffer:
-
- (make-annotation (make-glyph '([FORMAT :file FILE]
- [string :data "fallback-text"]))
- (point-min)
- 'text
- (current-buffer))
-
- Replace `FORMAT' with an unquoted symbol representing the format of
-the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.) Instead of `FILE',
-use the image file name (e.g.
-`/usr/local/lib/xemacs-20.2/etc/recycle.xpm').
-
- You can turn this to a function (that optionally prompts you for a
-file name), and inserts the glyph at `(point)' instead of `(point-min)'.
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.10, Next: Q5.1.11, Prev: Q5.1.9, Up: Miscellaneous
-
-Q5.1.10: `map-extents' won't traverse all of my extents!
---------------------------------------------------------
-
- I tried to use `map-extents' to do an operation on all the extents
-in a region. However, it seems to quit after processing a random number
-of extents. Is it buggy?
-
- No. The documentation of `map-extents' states that it will iterate
-across the extents as long as FUNCTION returns `nil'. Unexperienced
-programmers often forget to return `nil' explicitly, which results in
-buggy code. For instance, the following code is supposed to delete all
-the extents in a buffer, and issue as many `fubar!' messages.
-
- (map-extents (lambda (ext ignore)
- (delete-extent ext)
- (message "fubar!")))
-
- Instead, it will delete only the first extent, and stop right there -
-because `message' will return a non-nil value. The correct code is:
-
- (map-extents (lambda (ext ignore)
- (delete-extent ext)
- (message "fubar!")
- nil))
-
-\1f
-File: xemacs-faq.info, Node: Q5.1.11, Next: Q5.2.1, Prev: Q5.1.10, Up: Miscellaneous
-
-Q5.1.11: My elisp program is horribly slow. Is there
------------------------------------------------------
-
- an easy way to find out where it spends time?
-
- zHrvoje Niksic <hniksic@srce.hr> writes:
- Under XEmacs 20.4 and later you can use `M-x
- profile-key-sequence', press a key (say <RET> in the Gnus Group
- buffer), and get the results using `M-x profile-results'. It
- should give you an idea of where the time is being spent.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.1, Next: Q5.2.2, Prev: Q5.1.11, Up: Miscellaneous
-
-Q5.2.1: How do I turn off the sound?
-------------------------------------
-
- Add the following line to your `.emacs':
-
- (setq bell-volume 0)
- (setq sound-alist nil)
-
- That will make your XEmacs totally silent - even the default ding
-sound (TTY beep on TTY-s) will be gone.
-
- Starting with XEmacs-20.2 you can also change these with Customize.
-Select from the `Options' menu
-`Customize->Emacs->Environment->Sound->Sound...' or type `M-x customize
-<RET> sound <RET>'.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.2, Next: Q5.2.3, Prev: Q5.2.1, Up: Miscellaneous
-
-Q5.2.2: How do I get funky sounds instead of a boring beep?
------------------------------------------------------------
-
- Make sure your XEmacs was compiled with sound support, and then put
-this in your `.emacs':
-
- (load-default-sounds)
-
- The sound support in XEmacs 19.14 was greatly improved over previous
-versions.
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.3, Next: Q5.2.4, Prev: Q5.2.2, Up: Miscellaneous
-
-Q5.2.3: What's NAS, how do I get it?
-------------------------------------
-
- *Note Q2.0.3::, for an explanation of the "Network Audio System".
-
-\1f
-File: xemacs-faq.info, Node: Q5.2.4, Next: Q5.3.1, Prev: Q5.2.3, Up: Miscellaneous
-
-Q5.2.4: Sunsite sounds don't play.
-----------------------------------
-
- I'm having some trouble with sounds I've downloaded from sunsite.
-They play when I run them through `showaudio' or cat them directly to
-`/dev/audio', but XEmacs refuses to play them.
-
- Markus Gutschke <gutschk@uni-muenster.de> writes:
-
- [Many of] These files have an (erroneous) 24byte header that tells
- about the format that they have been recorded in. If you cat them
- to `/dev/audio', the header will be ignored and the default
- behavior for /dev/audio will be used. This happens to be 8kHz
- uLaw. It is probably possible to fix the header by piping through
- `sox' and passing explicit parameters for specifying the sampling
- format; you then need to perform a 'null' conversion from SunAudio
- to SunAudio.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.1, Next: Q5.3.2, Prev: Q5.2.4, Up: Miscellaneous
-
-5.3: Miscellaneous
-==================
-
-Q5.3.1: How do you make XEmacs indent CL if-clauses correctly?
---------------------------------------------------------------
-
- I'd like XEmacs to indent all the clauses of a Common Lisp `if' the
-same amount instead of indenting the 3rd clause differently from the
-first two.
-
- One way is to add, to `.emacs':
-
- (put 'if 'lisp-indent-function nil)
-
- However, note that the package `cl-indent' that comes with XEmacs
-sets up this kind of indentation by default. `cl-indent' also knows
-about many other CL-specific forms. To use `cl-indent', one can do
-this:
-
- (load "cl-indent")
- (setq lisp-indent-function (function common-lisp-indent-function))
-
- One can also customize `cl-indent.el' so it mimics the default `if'
-indentation `then' indented more than the `else'. Here's how:
-
- (put 'if 'common-lisp-indent-function '(nil nil &body))
-
- Also, a new version (1.2) of `cl-indent.el' was posted to
-comp.emacs.xemacs on 12/9/94. This version includes more documentation
-than previous versions. This may prove useful if you need to customize
-any indent-functions.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.2, Next: Q5.3.3, Prev: Q5.3.1, Up: Miscellaneous
-
-Q5.3.2: Fontifying hang when editing a postscript file.
--------------------------------------------------------
-
- When I try to edit a postscript file it gets stuck saying:
-`fontifying 'filename' (regexps....)' and it just sits there. If I
-press `C-c' in the window where XEmacs was started, it suddenly becomes
-alive again.
-
- This was caused by a bug in the Postscript font-lock regular
-expressions. It was fixed in 19.13. For earlier versions of XEmacs,
-have a look at your `.emacs' file. You will probably have a line like:
-
- (add-hook 'postscript-mode-hook 'turn-on-font-lock)
-
- Take it out, restart XEmacs, and it won't try to fontify your
-postscript files anymore.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.3, Next: Q5.3.4, Prev: Q5.3.2, Up: Miscellaneous
-
-Q5.3.3: How can I print WYSIWYG a font-locked buffer?
------------------------------------------------------
-
- Font-lock looks nice. How can I print (WYSIWYG) the highlighted
-document?
-
- The package `ps-print', which is now included with XEmacs, provides
-the ability to do this. The source code contains complete instructions
-on its use, in `<xemacs_src_root>/lisp/packages/ps-print.el'.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.4, Next: Q5.3.5, Prev: Q5.3.3, Up: Miscellaneous
-
-Q5.3.4: Getting `M-x lpr' to work with postscript printer.
-----------------------------------------------------------
-
- My printer is a Postscript printer and `lpr' only works for
-Postscript files, so how do I get `M-x lpr-region' and `M-x lpr-buffer'
-to work?
-
- Put something like this in your `.emacs':
-
- (setq lpr-command "a2ps")
- (setq lpr-switches '("-p" "-1"))
-
- If you don't use a2ps to convert ASCII to postscript (why not, it's
-free?), replace with the command you do use. Note also that some
-versions of a2ps require a `-Pprinter' to ensure spooling.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.5, Next: Q5.3.6, Prev: Q5.3.4, Up: Miscellaneous
-
-Q5.3.5: How do I specify the paths that XEmacs uses for finding files?
-----------------------------------------------------------------------
-
- You can specify what paths to use by using a number of different
-flags when running configure. See the section MAKE VARIABLES in the
-top-level file INSTALL in the XEmacs distribution for a listing of
-those flags.
-
- Most of the time, however, the simplest fix is: *do not* specify
-paths as you might for GNU Emacs. XEmacs can generally determine the
-necessary paths dynamically at run time. The only path that generally
-needs to be specified is the root directory to install into. That can
-be specified by passing the `--prefix' flag to configure. For a
-description of the XEmacs install tree, please consult the `NEWS' file.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.6, Next: Q5.3.7, Prev: Q5.3.5, Up: Miscellaneous
-
-Q5.3.6: [This question intentionally left blank]
-------------------------------------------------
-
- Obsolete question, left blank to avoid renumbering.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.7, Next: Q5.3.8, Prev: Q5.3.6, Up: Miscellaneous
-
-Q5.3.7: Can I have the end of the buffer delimited in some way?
----------------------------------------------------------------
-
- Say, with: `[END]'?
-
- Try this:
-
- (let ((ext (make-extent (point-min) (point-max))))
- (set-extent-property ext 'start-closed t)
- (set-extent-property ext 'end-closed t)
- (set-extent-property ext 'detachable nil)
- (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
-
- Since this is XEmacs, you can specify an icon to be shown on
-window-system devices. To do so, change the `make-glyph' call to
-something like this:
-
- (make-glyph '([xpm :file "~/something.xpm"]
- [string :data "[END]"]))
-
- You can inline the XPM definition yourself by specifying `:data'
-instead of `:file'. Here is such a full-featured version that works on
-both X and TTY devices:
-
- (let ((ext (make-extent (point-min) (point-max))))
- (set-extent-property ext 'start-closed t)
- (set-extent-property ext 'end-closed t)
- (set-extent-property ext 'detachable nil)
- (set-extent-end-glyph ext (make-glyph '([xpm :data "\
- /* XPM */
- static char* eye = {
- \"20 11 7 2\",
- \"__ c None\"
- \"_` c #7f7f7f\",
- \"_a c #fefefe\",
- \"_b c #7f0000\",
- \"_c c #fefe00\",
- \"_d c #fe0000\",
- \"_e c #bfbfbf\",
- \"___________`_`_`___b_b_b_b_________`____\",
- \"_________`_`_`___b_c_c_c_b_b____________\",
- \"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
- \"___`_`_e_a___b_b_d___b___b___b___b______\",
- \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
- \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
- \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
- \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
- \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
- \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
- \"___`_____`_`_`_`___b_b_b_b_b_b__________\",
- } ;"]
- [string :data "[END]"]))))
-
- Note that you might want to make this a function, and put it to a
-hook. We leave that as an exercise for the reader.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.8, Next: Q5.3.9, Prev: Q5.3.7, Up: Miscellaneous
-
-Q5.3.8: How do I insert today's date into a buffer?
----------------------------------------------------
-
- Like this:
-
- (insert (current-time-string))
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.9, Next: Q5.3.10, Prev: Q5.3.8, Up: Miscellaneous
-
-Q5.3.9: Are only certain syntactic character classes available for abbrevs?
----------------------------------------------------------------------------
-
- Markus Gutschke <gutschk@uni-muenster.de> writes:
-
- Yes, abbrevs only expands word-syntax strings. While XEmacs does
- not prevent you from defining (e.g. with `C-x a g' or `C-x a l')
- abbrevs that contain special characters, it will refuse to expand
- them. So you need to ensure, that the abbreviation contains
- letters and digits only. This means that `xd', `d5', and `5d' are
- valid abbrevs, but `&d', and `x d' are not.
-
- If this sounds confusing to you, (re-)read the online
- documentation for abbrevs (`C-h i m XEmacs <RET> m Abbrevs
- <RET>'), and then come back and read this question/answer again.
-
- Starting with XEmacs 20.3 this restriction has been lifted.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.10, Next: Q5.3.11, Prev: Q5.3.9, Up: Miscellaneous
-
-Q5.3.10: How can I get those oh-so-neat X-Face lines?
------------------------------------------------------
-
- Firstly there is an ftp site which describes X-faces and has the
-associated tools mentioned below, at
-`ftp://ftp.cs.indiana.edu:/pub/faces/'.
-
- Then the steps are
-
- 1. Create 48x48x1 bitmap with your favorite tool
-
- 2. Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
- and then compile the face.
-
- 3. cat file.xbm | xbm2ikon |compface > file.face
-
- 4. Then be sure to quote things that are necessary for emacs strings:
-
- cat ./file.face | sed 's/\\/\\\\/g'
- | sed 's/\"/\\\"/g' > ./file.face.quoted
-
- 5. Then set up emacs to include the file as a mail header - there
- were a couple of suggestions here--either something like:
-
- (setq mail-default-headers
- "X-Face: <Ugly looking text string here>")
-
- Or, alternatively, as:
-
- (defun mail-insert-x-face ()
- (save-excursion
- (goto-char (point-min))
- (search-forward mail-header-separator)
- (beginning-of-line)
- (insert "X-Face:")
- (insert-file-contents "~/.face")))
-
- (add-hook 'mail-setup-hook 'mail-insert-x-face)
-
- However, 2 things might be wrong:
-
- Some versions of pbmtoicon produces some header lines that is not
-expected by the version of compface that I grabbed. So I found I had to
-include a `tail +3' in the pipeline like this:
-
- cat file.xbm | xbm2ikon | tail +3 |compface > file.face
-
- Some people have also found that if one uses the `(insert-file)'
-method, one should NOT quote the face string using the sed script .
-
- It might also be helpful to use Stig's <stig@hackvan.com> script
-(included in the compface distribution at XEmacs.org) to do the
-conversion. For convenience xbm2xface is available for anonymous FTP at
-`ftp://ftp.miranova.com/pub/xemacs/xbm2xface.pl'.
-
- Contributors for this item:
-
- Paul Emsley, Ricardo Marek, Amir J. Katz, Glen McCort, Heinz Uphoff,
-Peter Arius, Paul Harrison, and Vegard Vesterheim
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.11, Next: Q5.3.12, Prev: Q5.3.10, Up: Miscellaneous
-
-Q5.3.11: How do I add new Info directories?
--------------------------------------------
-
- You use something like:
-
- (setq Info-directory-list (cons
- (expand-file-name "~/info")
- Info-default-directory-list))
-
- David Masterson <davidm@prism.kla.com> writes:
-
- Emacs Info and XEmacs Info do many things differently. If you're
- trying to support a number of versions of Emacs, here are some
- notes to remember:
-
- 1. Emacs Info scans `Info-directory-list' from right-to-left
- while XEmacs Info reads it from left-to-right, so append to
- the *correct* end of the list.
-
- 2. Use `Info-default-directory-list' to initialize
- `Info-directory-list' *if* it is available at startup, but not
- all Emacsen define it.
-
- 3. Emacs Info looks for a standard `dir' file in each of the
- directories scanned from #1 and magically concatenates them
- together.
-
- 4. XEmacs Info looks for a `localdir' file (which consists of
- just the menu entries from a `dir' file) in each of the
- directories scanned from #1 (except the first), does a simple
- concatenation of them, and magically attaches the resulting
- list to the end of the menu in the `dir' file in the first
- directory.
-
- Another alternative is to convert the documentation to HTML with
- texi2html and read it from a web browser like Lynx or W3.
-
-\1f
-File: xemacs-faq.info, Node: Q5.3.12, Prev: Q5.3.11, Up: Miscellaneous
-
-Q5.3.12: What do I need to change to make printing work?
---------------------------------------------------------
-
- For regular printing there are two variables that can be customized.
-
-`lpr-command'
- This should be set to a command that takes standard input and sends
- it to a printer. Something like:
-
- (setq lpr-command "lp")
-
-`lpr-switches'
- This should be set to a list that contains whatever the print
- command requires to do its job. Something like:
-
- (setq lpr-switches '("-depson"))
-
- For postscript printing there are three analogous variables to
-customize.
-
-`ps-lpr-command'
- This should be set to a command that takes postscript on standard
- input and directs it to a postscript printer.
-
-`ps-lpr-switches'
- This should be set to a list of switches required for
- `ps-lpr-command' to do its job.
-
-`ps-print-color-p'
- This boolean variable should be set `t' if printing will be done in
- color, otherwise it should be set to `nil'.
-
- NOTE: It is an undocumented limitation in XEmacs that postscript
-printing (the `Pretty Print Buffer' menu item) *requires* a window
-system environment. It cannot be used outside of X11.
-
-\1f
-File: xemacs-faq.info, Node: Current Events, Prev: Miscellaneous, Up: Top
-
-6 What the Future Holds
-***********************
-
- This is part 6 of the XEmacs Frequently Asked Questions list. This
-section will change monthly, and contains any interesting items that
-have transpired over the previous month. If you are reading this from
-the XEmacs distribution, please see the version on the Web or archived
-at the various FAQ FTP sites, as this file is surely out of date.
-
-* Menu:
-
-* Q6.0.1:: What is new in 20.2?
-* Q6.0.2:: What is new in 20.3?
-* Q6.0.3:: What is new in 20.4?
-* Q6.0.4:: Procedural changes in XEmacs development.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.1, Next: Q6.0.2, Prev: Current Events, Up: Current Events
-
-6.0: Changes
-============
-
-Q6.0.1: What is new in 20.2?
-----------------------------
-
- The biggest changes in 20.2 include integration of EFS (the next
-generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
-major mode for editing Tex and LaTeX, and a lot of other stuff). Many
-bugs from 20.0 have been fixed for this release. 20.2 also contains a
-new system for customizing XEmacs options, invoked via `M-x customize'.
-
- XEmacs 20.2 is the development release (20.0 was beta), and is no
-longer considered unstable.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.2, Next: Q6.0.3, Prev: Q6.0.1, Up: Current Events
-
-Q6.0.2: What is new in 20.3?
-----------------------------
-
- XEmacs 20.3 was released in November 1997. It contains many bugfixes,
-and a number of new features, including Autoconf 2 based configuration,
-additional support for Mule (Multi-language extensions to Emacs), many
-more customizations, multiple frames on TTY-s, support for multiple info
-directories, an enhanced gnuclient, improvements to regexp matching,
-increased MIME support, and many, many synches with GNU Emacs 20.
-
- The XEmacs/Mule support has been only seriously tested in a Japanese
-locale, and no doubt many problems still remain. The support for
-ISO-Latin-1 and Japanese is fairly strong. MULE support comes at a
-price - about a 30% slowdown from 19.16. We're making progress on
-improving performance and XEmacs 20.3 compiled without Mule (which is
-the default) is definitely faster than XEmacs 19.16.
-
- XEmacs 20.3 is the first non-beta v20 release, and will be the basis
-for all further development.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.3, Next: Q6.0.4, Prev: Q6.0.2, Up: Current Events
-
-Q6.0.3: What's new in XEmacs 20.4?
-----------------------------------
-
- XEmacs 20.4 is a bugfix release with no user-visible changes.
-
-\1f
-File: xemacs-faq.info, Node: Q6.0.4, Prev: Q6.0.3, Up: Current Events
-
-Q6.0.4: Procedural changes in XEmacs development.
--------------------------------------------------
-
- 1. Discussion about the development of XEmacs occurs on the
- xemacs-beta mailing list. Subscriptions to this list will now be
- fully automated instead of being handled by hand. Send a mail
- message to <xemacs-beta-request@xemacs.org> with `subscribe' as the
- BODY of the message to join the list. Please note this is a
- developers mailing list for people who have an active interest in
- the development process.
-
- The discussion of NT XEmacs development is taking place on a
- separate mailing list. Send mail to
- <xemacs-nt-request@xemacs.org> to subscribe.
-
- 2. Due to the long development cycle in between releases, it has been
- decided that intermediate versions will be made available in
- source only form for the truly interested.
-
- XEmacs 19.16 was the last 19 release, basically consisting of
- 19.15 plus the collected bugfixes.
-
- 3. As of December 1996, Steve Baur <steve@altair.xemacs.org> has
- become the lead maintainer of XEmacs.
-
-