Merge r21-4-11-chise-0_20-=ucs.
[chise/xemacs-chise.git.1] / info / lispref.info-15
diff --git a/info/lispref.info-15 b/info/lispref.info-15
deleted file mode 100644 (file)
index ce05ae6..0000000
+++ /dev/null
@@ -1,1289 +0,0 @@
-This is Info file ../../info/lispref.info, produced by Makeinfo version
-1.68 from the input file lispref.texi.
-
-INFO-DIR-SECTION XEmacs Editor
-START-INFO-DIR-ENTRY
-* Lispref: (lispref).          XEmacs Lisp Reference Manual.
-END-INFO-DIR-ENTRY
-
-   Edition History:
-
-   GNU Emacs Lisp Reference Manual Second Edition (v2.01), May 1993 GNU
-Emacs Lisp Reference Manual Further Revised (v2.02), August 1993 Lucid
-Emacs Lisp Reference Manual (for 19.10) First Edition, March 1994
-XEmacs Lisp Programmer's Manual (for 19.12) Second Edition, April 1995
-GNU Emacs Lisp Reference Manual v2.4, June 1995 XEmacs Lisp
-Programmer's Manual (for 19.13) Third Edition, July 1995 XEmacs Lisp
-Reference Manual (for 19.14 and 20.0) v3.1, March 1996 XEmacs Lisp
-Reference Manual (for 19.15 and 20.1, 20.2, 20.3) v3.2, April, May,
-November 1997 XEmacs Lisp Reference Manual (for 21.0) v3.3, April 1998
-
-   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995 Free Software
-Foundation, Inc.  Copyright (C) 1994, 1995 Sun Microsystems, Inc.
-Copyright (C) 1995, 1996 Ben Wing.
-
-   Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-   Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-   Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-   Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided also
-that the section entitled "GNU General Public License" is included
-exactly as in the original, and provided that the entire resulting
-derived work is distributed under the terms of a permission notice
-identical to this one.
-
-   Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that the section entitled "GNU General Public License"
-may be included in a translation approved by the Free Software
-Foundation instead of in the original English.
-
-\1f
-File: lispref.info,  Node: Input Streams,  Next: Input Functions,  Prev: Streams Intro,  Up: Read and Print
-
-Input Streams
-=============
-
-   Most of the Lisp functions for reading text take an "input stream"
-as an argument.  The input stream specifies where or how to get the
-characters of the text to be read.  Here are the possible types of input
-stream:
-
-BUFFER
-     The input characters are read from BUFFER, starting with the
-     character directly after point.  Point advances as characters are
-     read.
-
-MARKER
-     The input characters are read from the buffer that MARKER is in,
-     starting with the character directly after the marker.  The marker
-     position advances as characters are read.  The value of point in
-     the buffer has no effect when the stream is a marker.
-
-STRING
-     The input characters are taken from STRING, starting at the first
-     character in the string and using as many characters as required.
-
-FUNCTION
-     The input characters are generated by FUNCTION, one character per
-     call.  Normally FUNCTION is called with no arguments, and should
-     return a character.
-
-     Occasionally FUNCTION is called with one argument (always a
-     character).  When that happens, FUNCTION should save the argument
-     and arrange to return it on the next call.  This is called
-     "unreading" the character; it happens when the Lisp reader reads
-     one character too many and wants to "put it back where it came
-     from".
-
-`t'
-     `t' used as a stream means that the input is read from the
-     minibuffer.  In fact, the minibuffer is invoked once and the text
-     given by the user is made into a string that is then used as the
-     input stream.
-
-`nil'
-     `nil' supplied as an input stream means to use the value of
-     `standard-input' instead; that value is the "default input
-     stream", and must be a non-`nil' input stream.
-
-SYMBOL
-     A symbol as input stream is equivalent to the symbol's function
-     definition (if any).
-
-   Here is an example of reading from a stream that is a buffer, showing
-where point is located before and after:
-
-     ---------- Buffer: foo ----------
-     This-!- is the contents of foo.
-     ---------- Buffer: foo ----------
-     
-     (read (get-buffer "foo"))
-          => is
-     (read (get-buffer "foo"))
-          => the
-     
-     ---------- Buffer: foo ----------
-     This is the-!- contents of foo.
-     ---------- Buffer: foo ----------
-
-Note that the first read skips a space.  Reading skips any amount of
-whitespace preceding the significant text.
-
-   In Emacs 18, reading a symbol discarded the delimiter terminating the
-symbol.  Thus, point would end up at the beginning of `contents' rather
-than after `the'.  The Emacs 19 behavior is superior because it
-correctly handles input such as `bar(foo)', where the open-parenthesis
-that ends one object is needed as the beginning of another object.
-
-   Here is an example of reading from a stream that is a marker,
-initially positioned at the beginning of the buffer shown.  The value
-read is the symbol `This'.
-
-
-     ---------- Buffer: foo ----------
-     This is the contents of foo.
-     ---------- Buffer: foo ----------
-     
-     (setq m (set-marker (make-marker) 1 (get-buffer "foo")))
-          => #<marker at 1 in foo>
-     (read m)
-          => This
-     m
-          => #<marker at 5 in foo>   ;; Before the first space.
-
-   Here we read from the contents of a string:
-
-     (read "(When in) the course")
-          => (When in)
-
-   The following example reads from the minibuffer.  The prompt is:
-`Lisp expression: '.  (That is always the prompt used when you read
-from the stream `t'.)  The user's input is shown following the prompt.
-
-     (read t)
-          => 23
-     ---------- Buffer: Minibuffer ----------
-     Lisp expression: 23 <RET>
-     ---------- Buffer: Minibuffer ----------
-
-   Finally, here is an example of a stream that is a function, named
-`useless-stream'.  Before we use the stream, we initialize the variable
-`useless-list' to a list of characters.  Then each call to the function
-`useless-stream' obtains the next character in the list or unreads a
-character by adding it to the front of the list.
-
-     (setq useless-list (append "XY()" nil))
-          => (88 89 40 41)
-     
-     (defun useless-stream (&optional unread)
-       (if unread
-           (setq useless-list (cons unread useless-list))
-         (prog1 (car useless-list)
-                (setq useless-list (cdr useless-list)))))
-          => useless-stream
-
-Now we read using the stream thus constructed:
-
-     (read 'useless-stream)
-          => XY
-     
-     useless-list
-          => (40 41)
-
-Note that the open and close parentheses remains in the list.  The Lisp
-reader encountered the open parenthesis, decided that it ended the
-input, and unread it.  Another attempt to read from the stream at this
-point would read `()' and return `nil'.
-
-\1f
-File: lispref.info,  Node: Input Functions,  Next: Output Streams,  Prev: Input Streams,  Up: Read and Print
-
-Input Functions
-===============
-
-   This section describes the Lisp functions and variables that pertain
-to reading.
-
-   In the functions below, STREAM stands for an input stream (see the
-previous section).  If STREAM is `nil' or omitted, it defaults to the
-value of `standard-input'.
-
-   An `end-of-file' error is signaled if reading encounters an
-unterminated list, vector, or string.
-
- - Function: read &optional STREAM
-     This function reads one textual Lisp expression from STREAM,
-     returning it as a Lisp object.  This is the basic Lisp input
-     function.
-
- - Function: read-from-string STRING &optional START END
-     This function reads the first textual Lisp expression from the
-     text in STRING.  It returns a cons cell whose CAR is that
-     expression, and whose CDR is an integer giving the position of the
-     next remaining character in the string (i.e., the first one not
-     read).
-
-     If START is supplied, then reading begins at index START in the
-     string (where the first character is at index 0).  If END is also
-     supplied, then reading stops just before that index, as if the rest
-     of the string were not there.
-
-     For example:
-
-          (read-from-string "(setq x 55) (setq y 5)")
-               => ((setq x 55) . 11)
-          (read-from-string "\"A short string\"")
-               => ("A short string" . 16)
-          
-          ;; Read starting at the first character.
-          (read-from-string "(list 112)" 0)
-               => ((list 112) . 10)
-          ;; Read starting at the second character.
-          (read-from-string "(list 112)" 1)
-               => (list . 5)
-          ;; Read starting at the seventh character,
-          ;;   and stopping at the ninth.
-          (read-from-string "(list 112)" 6 8)
-               => (11 . 8)
-
- - Variable: standard-input
-     This variable holds the default input stream--the stream that
-     `read' uses when the STREAM argument is `nil'.
-
-\1f
-File: lispref.info,  Node: Output Streams,  Next: Output Functions,  Prev: Input Functions,  Up: Read and Print
-
-Output Streams
-==============
-
-   An output stream specifies what to do with the characters produced
-by printing.  Most print functions accept an output stream as an
-optional argument.  Here are the possible types of output stream:
-
-BUFFER
-     The output characters are inserted into BUFFER at point.  Point
-     advances as characters are inserted.
-
-MARKER
-     The output characters are inserted into the buffer that MARKER
-     points into, at the marker position.  The marker position advances
-     as characters are inserted.  The value of point in the buffer has
-     no effect on printing when the stream is a marker.
-
-FUNCTION
-     The output characters are passed to FUNCTION, which is responsible
-     for storing them away.  It is called with a single character as
-     argument, as many times as there are characters to be output, and
-     is free to do anything at all with the characters it receives.
-
-`t'
-     The output characters are displayed in the echo area.
-
-`nil'
-     `nil' specified as an output stream means to the value of
-     `standard-output' instead; that value is the "default output
-     stream", and must be a non-`nil' output stream.
-
-SYMBOL
-     A symbol as output stream is equivalent to the symbol's function
-     definition (if any).
-
-   Many of the valid output streams are also valid as input streams.
-The difference between input and output streams is therefore mostly one
-of how you use a Lisp object, not a distinction of types of object.
-
-   Here is an example of a buffer used as an output stream.  Point is
-initially located as shown immediately before the `h' in `the'.  At the
-end, point is located directly before that same `h'.
-
-     ---------- Buffer: foo ----------
-     This is t-!-he contents of foo.
-     ---------- Buffer: foo ----------
-     
-     (print "This is the output" (get-buffer "foo"))
-          => "This is the output"
-     
-     ---------- Buffer: foo ----------
-     This is t
-     "This is the output"
-     -!-he contents of foo.
-     ---------- Buffer: foo ----------
-
-   Now we show a use of a marker as an output stream.  Initially, the
-marker is in buffer `foo', between the `t' and the `h' in the word
-`the'.  At the end, the marker has advanced over the inserted text so
-that it remains positioned before the same `h'.  Note that the location
-of point, shown in the usual fashion, has no effect.
-
-     ---------- Buffer: foo ----------
-     "This is the -!-output"
-     ---------- Buffer: foo ----------
-     
-     m
-          => #<marker at 11 in foo>
-     
-     (print "More output for foo." m)
-          => "More output for foo."
-     
-     ---------- Buffer: foo ----------
-     "This is t
-     "More output for foo."
-     he -!-output"
-     ---------- Buffer: foo ----------
-     
-     m
-          => #<marker at 35 in foo>
-
-   The following example shows output to the echo area:
-
-     (print "Echo Area output" t)
-          => "Echo Area output"
-     ---------- Echo Area ----------
-     "Echo Area output"
-     ---------- Echo Area ----------
-
-   Finally, we show the use of a function as an output stream.  The
-function `eat-output' takes each character that it is given and conses
-it onto the front of the list `last-output' (*note Building Lists::.).
-At the end, the list contains all the characters output, but in reverse
-order.
-
-     (setq last-output nil)
-          => nil
-     
-     (defun eat-output (c)
-       (setq last-output (cons c last-output)))
-          => eat-output
-     
-     (print "This is the output" 'eat-output)
-          => "This is the output"
-     
-     last-output
-          => (?\n ?\" ?t ?u ?p ?t ?u ?o ?\  ?e ?h ?t
-                     ?\  ?s ?i ?\  ?s ?i ?h ?T ?\" ?\n)
-
-Now we can put the output in the proper order by reversing the list:
-
-     (concat (nreverse last-output))
-          => "
-     \"This is the output\"
-     "
-
-Calling `concat' converts the list to a string so you can see its
-contents more clearly.
-
-\1f
-File: lispref.info,  Node: Output Functions,  Next: Output Variables,  Prev: Output Streams,  Up: Read and Print
-
-Output Functions
-================
-
-   This section describes the Lisp functions for printing Lisp objects.
-
-   Some of the XEmacs printing functions add quoting characters to the
-output when necessary so that it can be read properly.  The quoting
-characters used are `"' and `\'; they distinguish strings from symbols,
-and prevent punctuation characters in strings and symbols from being
-taken as delimiters when reading.  *Note Printed Representation::, for
-full details.  You specify quoting or no quoting by the choice of
-printing function.
-
-   If the text is to be read back into Lisp, then it is best to print
-with quoting characters to avoid ambiguity.  Likewise, if the purpose is
-to describe a Lisp object clearly for a Lisp programmer.  However, if
-the purpose of the output is to look nice for humans, then it is better
-to print without quoting.
-
-   Printing a self-referent Lisp object requires an infinite amount of
-text.  In certain cases, trying to produce this text leads to a stack
-overflow.  XEmacs detects such recursion and prints `#LEVEL' instead of
-recursively printing an object already being printed.  For example,
-here `#0' indicates a recursive reference to the object at level 0 of
-the current print operation:
-
-     (setq foo (list nil))
-          => (nil)
-     (setcar foo foo)
-          => (#0)
-
-   In the functions below, STREAM stands for an output stream.  (See
-the previous section for a description of output streams.)  If STREAM
-is `nil' or omitted, it defaults to the value of `standard-output'.
-
- - Function: print OBJECT &optional STREAM
-     The `print' function is a convenient way of printing.  It outputs
-     the printed representation of OBJECT to STREAM, printing in
-     addition one newline before OBJECT and another after it.  Quoting
-     characters are used.  `print' returns OBJECT.  For example:
-
-          (progn (print 'The\ cat\ in)
-                 (print "the hat")
-                 (print " came back"))
-               -|
-               -| The\ cat\ in
-               -|
-               -| "the hat"
-               -|
-               -| " came back"
-               -|
-               => " came back"
-
- - Function: prin1 OBJECT &optional STREAM
-     This function outputs the printed representation of OBJECT to
-     STREAM.  It does not print newlines to separate output as `print'
-     does, but it does use quoting characters just like `print'.  It
-     returns OBJECT.
-
-          (progn (prin1 'The\ cat\ in)
-                 (prin1 "the hat")
-                 (prin1 " came back"))
-               -| The\ cat\ in"the hat"" came back"
-               => " came back"
-
- - Function: princ OBJECT &optional STREAM
-     This function outputs the printed representation of OBJECT to
-     STREAM.  It returns OBJECT.
-
-     This function is intended to produce output that is readable by
-     people, not by `read', so it doesn't insert quoting characters and
-     doesn't put double-quotes around the contents of strings.  It does
-     not add any spacing between calls.
-
-          (progn
-            (princ 'The\ cat)
-            (princ " in the \"hat\""))
-               -| The cat in the "hat"
-               => " in the \"hat\""
-
- - Function: terpri &optional STREAM
-     This function outputs a newline to STREAM.  The name stands for
-     "terminate print".
-
- - Function: write-char CHARACTER &optional STREAM
-     This function outputs CHARACTER to STREAM.  It returns CHARACTER.
-
- - Function: prin1-to-string OBJECT &optional NOESCAPE
-     This function returns a string containing the text that `prin1'
-     would have printed for the same argument.
-
-          (prin1-to-string 'foo)
-               => "foo"
-          (prin1-to-string (mark-marker))
-               => "#<marker at 2773 in strings.texi>"
-
-     If NOESCAPE is non-`nil', that inhibits use of quoting characters
-     in the output.  (This argument is supported in Emacs versions 19
-     and later.)
-
-          (prin1-to-string "foo")
-               => "\"foo\""
-          (prin1-to-string "foo" t)
-               => "foo"
-
-     See `format', in *Note String Conversion::, for other ways to
-     obtain the printed representation of a Lisp object as a string.
-
-\1f
-File: lispref.info,  Node: Output Variables,  Prev: Output Functions,  Up: Read and Print
-
-Variables Affecting Output
-==========================
-
- - Variable: standard-output
-     The value of this variable is the default output stream--the stream
-     that print functions use when the STREAM argument is `nil'.
-
- - Variable: print-escape-newlines
-     If this variable is non-`nil', then newline characters in strings
-     are printed as `\n' and formfeeds are printed as `\f'.  Normally
-     these characters are printed as actual newlines and formfeeds.
-
-     This variable affects the print functions `prin1' and `print', as
-     well as everything that uses them.  It does not affect `princ'.
-     Here is an example using `prin1':
-
-          (prin1 "a\nb")
-               -| "a
-               -| b"
-               => "a
-          b"
-          
-          (let ((print-escape-newlines t))
-            (prin1 "a\nb"))
-               -| "a\nb"
-               => "a
-          b"
-
-     In the second expression, the local binding of
-     `print-escape-newlines' is in effect during the call to `prin1',
-     but not during the printing of the result.
-
- - Variable: print-readably
-     If non-`nil', then all objects will be printed in a readable form.
-     If an object has no readable representation, then an error is
-     signalled.  When `print-readably' is true, compiled-function
-     objects will be written in `#[...]' form instead of in
-     `#<compiled-function [...]>' form, and two-element lists of the
-     form `(quote object)' will be written as the equivalent `'object'.
-     Do not *set* this variable; bind it instead.
-
- - Variable: print-length
-     The value of this variable is the maximum number of elements of a
-     list that will be printed.  If a list being printed has more than
-     this many elements, it is abbreviated with an ellipsis.
-
-     If the value is `nil' (the default), then there is no limit.
-
-          (setq print-length 2)
-               => 2
-          (print '(1 2 3 4 5))
-               -| (1 2 ...)
-               => (1 2 ...)
-
- - Variable: print-level
-     The value of this variable is the maximum depth of nesting of
-     parentheses and brackets when printed.  Any list or vector at a
-     depth exceeding this limit is abbreviated with an ellipsis.  A
-     value of `nil' (which is the default) means no limit.
-
-     This variable exists in version 19 and later versions.
-
- - Variable: print-string-length
-     The value of this variable is the maximum number of characters of
-     a string that will be printed.  If a string being printed has more
-     than this many characters, it is abbreviated with an ellipsis.
-
- - Variable: print-gensym
-     If non-`nil', then uninterned symbols will be printed specially.
-     Uninterned symbols are those which are not present in `obarray',
-     that is, those which were made with `make-symbol' or by calling
-     `intern' with a second argument.
-
-     When `print-gensym' is true, such symbols will be preceded by
-     `#:', which causes the reader to create a new symbol instead of
-     interning and returning an existing one.  Beware: The `#:' syntax
-     creates a new symbol each time it is seen, so if you print an
-     object which contains two pointers to the same uninterned symbol,
-     `read' will not duplicate that structure.
-
-     Also, since XEmacs has no real notion of packages, there is no way
-     for the printer to distinguish between symbols interned in no
-     obarray, and symbols interned in an alternate obarray.
-
- - Variable: float-output-format
-     This variable holds the format descriptor string that Lisp uses to
-     print floats.  This is a `%'-spec like those accepted by `printf'
-     in C, but with some restrictions.  It must start with the two
-     characters `%.'.  After that comes an integer precision
-     specification, and then a letter which controls the format.  The
-     letters allowed are `e', `f' and `g'.
-
-        * Use `e' for exponential notation `DIG.DIGITSeEXPT'.
-
-        * Use `f' for decimal point notation `DIGITS.DIGITS'.
-
-        * Use `g' to choose the shorter of those two formats for the
-          number at hand.
-
-     The precision in any of these cases is the number of digits
-     following the decimal point.  With `f', a precision of 0 means to
-     omit the decimal point.  0 is not allowed with `f' or `g'.
-
-     A value of nil means to use `%.16g'.
-
-     Regardless of the value of `float-output-format', a floating point
-     number will never be printed in such a way that it is ambiguous
-     with an integer; that is, a floating-point number will always be
-     printed with a decimal point and/or an exponent, even if the
-     digits following the decimal point are all zero.  This is to
-     preserve read-equivalence.
-
-\1f
-File: lispref.info,  Node: Minibuffers,  Next: Command Loop,  Prev: Read and Print,  Up: Top
-
-Minibuffers
-***********
-
-   A "minibuffer" is a special buffer that XEmacs commands use to read
-arguments more complicated than the single numeric prefix argument.
-These arguments include file names, buffer names, and command names (as
-in `M-x').  The minibuffer is displayed on the bottom line of the
-frame, in the same place as the echo area, but only while it is in use
-for reading an argument.
-
-* Menu:
-
-* Intro to Minibuffers::      Basic information about minibuffers.
-* Text from Minibuffer::      How to read a straight text string.
-* Object from Minibuffer::    How to read a Lisp object or expression.
-* Minibuffer History::       Recording previous minibuffer inputs
-                               so the user can reuse them.
-* Completion::                How to invoke and customize completion.
-* Yes-or-No Queries::         Asking a question with a simple answer.
-* Multiple Queries::         Asking a series of similar questions.
-* Minibuffer Misc::           Various customization hooks and variables.
-
-\1f
-File: lispref.info,  Node: Intro to Minibuffers,  Next: Text from Minibuffer,  Up: Minibuffers
-
-Introduction to Minibuffers
-===========================
-
-   In most ways, a minibuffer is a normal XEmacs buffer.  Most
-operations *within* a buffer, such as editing commands, work normally
-in a minibuffer.  However, many operations for managing buffers do not
-apply to minibuffers.  The name of a minibuffer always has the form
-` *Minibuf-NUMBER', and it cannot be changed.  Minibuffers are
-displayed only in special windows used only for minibuffers; these
-windows always appear at the bottom of a frame.  (Sometime frames have
-no minibuffer window, and sometimes a special kind of frame contains
-nothing but a minibuffer window; see *Note Minibuffers and Frames::.)
-
-   The minibuffer's window is normally a single line.  You can resize it
-temporarily with the window sizing commands; it reverts to its normal
-size when the minibuffer is exited.  You can resize it permanently by
-using the window sizing commands in the frame's other window, when the
-minibuffer is not active.  If the frame contains just a minibuffer, you
-can change the minibuffer's size by changing the frame's size.
-
-   If a command uses a minibuffer while there is an active minibuffer,
-this is called a "recursive minibuffer".  The first minibuffer is named
-` *Minibuf-0*'.  Recursive minibuffers are named by incrementing the
-number at the end of the name.  (The names begin with a space so that
-they won't show up in normal buffer lists.)  Of several recursive
-minibuffers, the innermost (or most recently entered) is the active
-minibuffer.  We usually call this "the" minibuffer.  You can permit or
-forbid recursive minibuffers by setting the variable
-`enable-recursive-minibuffers'.
-
-   Like other buffers, a minibuffer may use any of several local keymaps
-(*note Keymaps::.); these contain various exit commands and in some
-cases completion commands (*note Completion::.).
-
-   * `minibuffer-local-map' is for ordinary input (no completion).
-
-   * `minibuffer-local-ns-map' is similar, except that <SPC> exits just
-     like <RET>.  This is used mainly for Mocklisp compatibility.
-
-   * `minibuffer-local-completion-map' is for permissive completion.
-
-   * `minibuffer-local-must-match-map' is for strict completion and for
-     cautious completion.
-
-\1f
-File: lispref.info,  Node: Text from Minibuffer,  Next: Object from Minibuffer,  Prev: Intro to Minibuffers,  Up: Minibuffers
-
-Reading Text Strings with the Minibuffer
-========================================
-
-   Most often, the minibuffer is used to read text as a string.  It can
-also be used to read a Lisp object in textual form.  The most basic
-primitive for minibuffer input is `read-from-minibuffer'; it can do
-either one.
-
-   In most cases, you should not call minibuffer input functions in the
-middle of a Lisp function.  Instead, do all minibuffer input as part of
-reading the arguments for a command, in the `interactive' spec.  *Note
-Defining Commands::.
-
- - Function: read-from-minibuffer PROMPT-STRING &optional
-          INITIAL-CONTENTS KEYMAP READ HIST
-     This function is the most general way to get input through the
-     minibuffer.  By default, it accepts arbitrary text and returns it
-     as a string; however, if READ is non-`nil', then it uses `read' to
-     convert the text into a Lisp object (*note Input Functions::.).
-
-     The first thing this function does is to activate a minibuffer and
-     display it with PROMPT-STRING as the prompt.  This value must be a
-     string.
-
-     Then, if INITIAL-CONTENTS is a string, `read-from-minibuffer'
-     inserts it into the minibuffer, leaving point at the end.  The
-     minibuffer appears with this text as its contents.
-
-     The value of INITIAL-CONTENTS may also be a cons cell of the form
-     `(STRING . POSITION)'.  This means to insert STRING in the
-     minibuffer but put point POSITION characters from the beginning,
-     rather than at the end.
-
-     If KEYMAP is non-`nil', that keymap is the local keymap to use in
-     the minibuffer.  If KEYMAP is omitted or `nil', the value of
-     `minibuffer-local-map' is used as the keymap.  Specifying a keymap
-     is the most important way to customize the minibuffer for various
-     applications such as completion.
-
-     The argument HIST specifies which history list variable to use for
-     saving the input and for history commands used in the minibuffer.
-     It defaults to `minibuffer-history'.  *Note Minibuffer History::.
-
-     When the user types a command to exit the minibuffer,
-     `read-from-minibuffer' uses the text in the minibuffer to produce
-     its return value.  Normally it simply makes a string containing
-     that text.  However, if READ is non-`nil', `read-from-minibuffer'
-     reads the text and returns the resulting Lisp object, unevaluated.
-     (*Note Input Functions::, for information about reading.)
-
- - Function: read-string PROMPT &optional INITIAL
-     This function reads a string from the minibuffer and returns it.
-     The arguments PROMPT and INITIAL are used as in
-     `read-from-minibuffer'.  The keymap used is `minibuffer-local-map'.
-
-     This is a simplified interface to the `read-from-minibuffer'
-     function:
-
-          (read-string PROMPT INITIAL)
-          ==
-          (read-from-minibuffer PROMPT INITIAL nil nil nil)
-
- - Variable: minibuffer-local-map
-     This is the default local keymap for reading from the minibuffer.
-     By default, it makes the following bindings:
-
-    <LFD>
-          `exit-minibuffer'
-
-    <RET>
-          `exit-minibuffer'
-
-    `C-g'
-          `abort-recursive-edit'
-
-    `M-n'
-          `next-history-element'
-
-    `M-p'
-          `previous-history-element'
-
-    `M-r'
-          `next-matching-history-element'
-
-    `M-s'
-          `previous-matching-history-element'
-
- - Function: read-no-blanks-input PROMPT &optional INITIAL
-     This function reads a string from the minibuffer, but does not
-     allow whitespace characters as part of the input: instead, those
-     characters terminate the input.  The arguments PROMPT and INITIAL
-     are used as in `read-from-minibuffer'.
-
-     This is a simplified interface to the `read-from-minibuffer'
-     function, and passes the value of the `minibuffer-local-ns-map'
-     keymap as the KEYMAP argument for that function.  Since the keymap
-     `minibuffer-local-ns-map' does not rebind `C-q', it *is* possible
-     to put a space into the string, by quoting it.
-
-          (read-no-blanks-input PROMPT INITIAL)
-          ==
-          (read-from-minibuffer PROMPT INITIAL minibuffer-local-ns-map)
-
- - Variable: minibuffer-local-ns-map
-     This built-in variable is the keymap used as the minibuffer local
-     keymap in the function `read-no-blanks-input'.  By default, it
-     makes the following bindings, in addition to those of
-     `minibuffer-local-map':
-
-    <SPC>
-          `exit-minibuffer'
-
-    <TAB>
-          `exit-minibuffer'
-
-    `?'
-          `self-insert-and-exit'
-
-\1f
-File: lispref.info,  Node: Object from Minibuffer,  Next: Minibuffer History,  Prev: Text from Minibuffer,  Up: Minibuffers
-
-Reading Lisp Objects with the Minibuffer
-========================================
-
-   This section describes functions for reading Lisp objects with the
-minibuffer.
-
- - Function: read-minibuffer PROMPT &optional INITIAL
-     This function reads a Lisp object in the minibuffer and returns it,
-     without evaluating it.  The arguments PROMPT and INITIAL are used
-     as in `read-from-minibuffer'.
-
-     This is a simplified interface to the `read-from-minibuffer'
-     function:
-
-          (read-minibuffer PROMPT INITIAL)
-          ==
-          (read-from-minibuffer PROMPT INITIAL nil t)
-
-     Here is an example in which we supply the string `"(testing)"' as
-     initial input:
-
-          (read-minibuffer
-           "Enter an expression: " (format "%s" '(testing)))
-          
-          ;; Here is how the minibuffer is displayed:
-
-          ---------- Buffer: Minibuffer ----------
-          Enter an expression: (testing)-!-
-          ---------- Buffer: Minibuffer ----------
-
-     The user can type <RET> immediately to use the initial input as a
-     default, or can edit the input.
-
- - Function: eval-minibuffer PROMPT &optional INITIAL
-     This function reads a Lisp expression in the minibuffer, evaluates
-     it, then returns the result.  The arguments PROMPT and INITIAL are
-     used as in `read-from-minibuffer'.
-
-     This function simply evaluates the result of a call to
-     `read-minibuffer':
-
-          (eval-minibuffer PROMPT INITIAL)
-          ==
-          (eval (read-minibuffer PROMPT INITIAL))
-
- - Function: edit-and-eval-command PROMPT FORM
-     This function reads a Lisp expression in the minibuffer, and then
-     evaluates it.  The difference between this command and
-     `eval-minibuffer' is that here the initial FORM is not optional
-     and it is treated as a Lisp object to be converted to printed
-     representation rather than as a string of text.  It is printed with
-     `prin1', so if it is a string, double-quote characters (`"')
-     appear in the initial text.  *Note Output Functions::.
-
-     The first thing `edit-and-eval-command' does is to activate the
-     minibuffer with PROMPT as the prompt.  Then it inserts the printed
-     representation of FORM in the minibuffer, and lets the user edit.
-     When the user exits the minibuffer, the edited text is read with
-     `read' and then evaluated.  The resulting value becomes the value
-     of `edit-and-eval-command'.
-
-     In the following example, we offer the user an expression with
-     initial text which is a valid form already:
-
-          (edit-and-eval-command "Please edit: " '(forward-word 1))
-          
-          ;; After evaluation of the preceding expression,
-          ;;   the following appears in the minibuffer:
-
-          ---------- Buffer: Minibuffer ----------
-          Please edit: (forward-word 1)-!-
-          ---------- Buffer: Minibuffer ----------
-
-     Typing <RET> right away would exit the minibuffer and evaluate the
-     expression, thus moving point forward one word.
-     `edit-and-eval-command' returns `t' in this example.
-
-\1f
-File: lispref.info,  Node: Minibuffer History,  Next: Completion,  Prev: Object from Minibuffer,  Up: Minibuffers
-
-Minibuffer History
-==================
-
-   A "minibuffer history list" records previous minibuffer inputs so
-the user can reuse them conveniently.  A history list is actually a
-symbol, not a list; it is a variable whose value is a list of strings
-(previous inputs), most recent first.
-
-   There are many separate history lists, used for different kinds of
-inputs.  It's the Lisp programmer's job to specify the right history
-list for each use of the minibuffer.
-
-   The basic minibuffer input functions `read-from-minibuffer' and
-`completing-read' both accept an optional argument named HIST which is
-how you specify the history list.  Here are the possible values:
-
-VARIABLE
-     Use VARIABLE (a symbol) as the history list.
-
-(VARIABLE . STARTPOS)
-     Use VARIABLE (a symbol) as the history list, and assume that the
-     initial history position is STARTPOS (an integer, counting from
-     zero which specifies the most recent element of the history).
-
-     If you specify STARTPOS, then you should also specify that element
-     of the history as the initial minibuffer contents, for consistency.
-
-   If you don't specify HIST, then the default history list
-`minibuffer-history' is used.  For other standard history lists, see
-below.  You can also create your own history list variable; just
-initialize it to `nil' before the first use.
-
-   Both `read-from-minibuffer' and `completing-read' add new elements
-to the history list automatically, and provide commands to allow the
-user to reuse items on the list.  The only thing your program needs to
-do to use a history list is to initialize it and to pass its name to
-the input functions when you wish.  But it is safe to modify the list
-by hand when the minibuffer input functions are not using it.
-
- - Variable: minibuffer-history
-     The default history list for minibuffer history input.
-
- - Variable: query-replace-history
-     A history list for arguments to `query-replace' (and similar
-     arguments to other commands).
-
- - Variable: file-name-history
-     A history list for file name arguments.
-
- - Variable: regexp-history
-     A history list for regular expression arguments.
-
- - Variable: extended-command-history
-     A history list for arguments that are names of extended commands.
-
- - Variable: shell-command-history
-     A history list for arguments that are shell commands.
-
- - Variable: read-expression-history
-     A history list for arguments that are Lisp expressions to evaluate.
-
- - Variable: Info-minibuffer-history
-     A history list for Info mode's minibuffer.
-
- - Variable: Manual-page-minibuffer-history
-     A history list for `manual-entry'.
-
-   There are many other minibuffer history lists, defined by various
-libraries.  An `M-x apropos' search for `history' should prove fruitful
-in discovering them.
-
-\1f
-File: lispref.info,  Node: Completion,  Next: Yes-or-No Queries,  Prev: Minibuffer History,  Up: Minibuffers
-
-Completion
-==========
-
-   "Completion" is a feature that fills in the rest of a name starting
-from an abbreviation for it.  Completion works by comparing the user's
-input against a list of valid names and determining how much of the
-name is determined uniquely by what the user has typed.  For example,
-when you type `C-x b' (`switch-to-buffer') and then type the first few
-letters of the name of the buffer to which you wish to switch, and then
-type <TAB> (`minibuffer-complete'), Emacs extends the name as far as it
-can.
-
-   Standard XEmacs commands offer completion for names of symbols,
-files, buffers, and processes; with the functions in this section, you
-can implement completion for other kinds of names.
-
-   The `try-completion' function is the basic primitive for completion:
-it returns the longest determined completion of a given initial string,
-with a given set of strings to match against.
-
-   The function `completing-read' provides a higher-level interface for
-completion.  A call to `completing-read' specifies how to determine the
-list of valid names.  The function then activates the minibuffer with a
-local keymap that binds a few keys to commands useful for completion.
-Other functions provide convenient simple interfaces for reading
-certain kinds of names with completion.
-
-* Menu:
-
-* Basic Completion::       Low-level functions for completing strings.
-                             (These are too low level to use the minibuffer.)
-* Minibuffer Completion::  Invoking the minibuffer with completion.
-* Completion Commands::    Minibuffer commands that do completion.
-* High-Level Completion::  Convenient special cases of completion
-                             (reading buffer name, file name, etc.)
-* Reading File Names::     Using completion to read file names.
-* Programmed Completion::  Finding the completions for a given file name.
-
-\1f
-File: lispref.info,  Node: Basic Completion,  Next: Minibuffer Completion,  Up: Completion
-
-Basic Completion Functions
---------------------------
-
-   The two functions `try-completion' and `all-completions' have
-nothing in themselves to do with minibuffers.  We describe them in this
-chapter so as to keep them near the higher-level completion features
-that do use the minibuffer.
-
- - Function: try-completion STRING COLLECTION &optional PREDICATE
-     This function returns the longest common substring of all possible
-     completions of STRING in COLLECTION.  The value of COLLECTION must
-     be an alist, an obarray, or a function that implements a virtual
-     set of strings (see below).
-
-     Completion compares STRING against each of the permissible
-     completions specified by COLLECTION; if the beginning of the
-     permissible completion equals STRING, it matches.  If no
-     permissible completions match, `try-completion' returns `nil'.  If
-     only one permissible completion matches, and the match is exact,
-     then `try-completion' returns `t'.  Otherwise, the value is the
-     longest initial sequence common to all the permissible completions
-     that match.
-
-     If COLLECTION is an alist (*note Association Lists::.), the CARs
-     of the alist elements form the set of permissible completions.
-
-     If COLLECTION is an obarray (*note Creating Symbols::.), the names
-     of all symbols in the obarray form the set of permissible
-     completions.  The global variable `obarray' holds an obarray
-     containing the names of all interned Lisp symbols.
-
-     Note that the only valid way to make a new obarray is to create it
-     empty and then add symbols to it one by one using `intern'.  Also,
-     you cannot intern a given symbol in more than one obarray.
-
-     If the argument PREDICATE is non-`nil', then it must be a function
-     of one argument.  It is used to test each possible match, and the
-     match is accepted only if PREDICATE returns non-`nil'.  The
-     argument given to PREDICATE is either a cons cell from the alist
-     (the CAR of which is a string) or else it is a symbol (*not* a
-     symbol name) from the obarray.
-
-     You can also use a symbol that is a function as COLLECTION.  Then
-     the function is solely responsible for performing completion;
-     `try-completion' returns whatever this function returns.  The
-     function is called with three arguments: STRING, PREDICATE and
-     `nil'.  (The reason for the third argument is so that the same
-     function can be used in `all-completions' and do the appropriate
-     thing in either case.)  *Note Programmed Completion::.
-
-     In the first of the following examples, the string `foo' is
-     matched by three of the alist CARs.  All of the matches begin with
-     the characters `fooba', so that is the result.  In the second
-     example, there is only one possible match, and it is exact, so the
-     value is `t'.
-
-          (try-completion
-           "foo"
-           '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)))
-               => "fooba"
-
-          (try-completion "foo" '(("barfoo" 2) ("foo" 3)))
-               => t
-
-     In the following example, numerous symbols begin with the
-     characters `forw', and all of them begin with the word `forward'.
-     In most of the symbols, this is followed with a `-', but not in
-     all, so no more than `forward' can be completed.
-
-          (try-completion "forw" obarray)
-               => "forward"
-
-     Finally, in the following example, only two of the three possible
-     matches pass the predicate `test' (the string `foobaz' is too
-     short).  Both of those begin with the string `foobar'.
-
-          (defun test (s)
-            (> (length (car s)) 6))
-               => test
-
-          (try-completion
-           "foo"
-           '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
-           'test)
-               => "foobar"
-
- - Function: all-completions STRING COLLECTION &optional PREDICATE
-          NOSPACE
-     This function returns a list of all possible completions of
-     STRING.  The parameters to this function are the same as to
-     `try-completion'.
-
-     If COLLECTION is a function, it is called with three arguments:
-     STRING, PREDICATE and `t'; then `all-completions' returns whatever
-     the function returns.  *Note Programmed Completion::.
-
-     If NOSPACE is non-`nil', completions that start with a space are
-     ignored unless STRING also starts with a space.
-
-     Here is an example, using the function `test' shown in the example
-     for `try-completion':
-
-          (defun test (s)
-            (> (length (car s)) 6))
-               => test
-
-          (all-completions
-           "foo"
-           '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
-           'test)
-               => ("foobar1" "foobar2")
-
- - Variable: completion-ignore-case
-     If the value of this variable is non-`nil', XEmacs does not
-     consider case significant in completion.
-
-\1f
-File: lispref.info,  Node: Minibuffer Completion,  Next: Completion Commands,  Prev: Basic Completion,  Up: Completion
-
-Completion and the Minibuffer
------------------------------
-
-   This section describes the basic interface for reading from the
-minibuffer with completion.
-
- - Function: completing-read PROMPT COLLECTION &optional PREDICATE
-          REQUIRE-MATCH INITIAL HIST
-     This function reads a string in the minibuffer, assisting the user
-     by providing completion.  It activates the minibuffer with prompt
-     PROMPT, which must be a string.  If INITIAL is non-`nil',
-     `completing-read' inserts it into the minibuffer as part of the
-     input.  Then it allows the user to edit the input, providing
-     several commands to attempt completion.
-
-     The actual completion is done by passing COLLECTION and PREDICATE
-     to the function `try-completion'.  This happens in certain
-     commands bound in the local keymaps used for completion.
-
-     If REQUIRE-MATCH is `t', the usual minibuffer exit commands won't
-     exit unless the input completes to an element of COLLECTION.  If
-     REQUIRE-MATCH is neither `nil' nor `t', then the exit commands
-     won't exit unless the input typed is itself an element of
-     COLLECTION.  If REQUIRE-MATCH is `nil', the exit commands work
-     regardless of the input in the minibuffer.
-
-     The user can exit with null input by typing <RET> with an empty
-     minibuffer.  Then `completing-read' returns `nil'.  This is how
-     the user requests whatever default the command uses for the value
-     being read.  The user can return using <RET> in this way regardless
-     of the value of REQUIRE-MATCH.
-
-     The function `completing-read' works by calling `read-minibuffer'.
-     It uses `minibuffer-local-completion-map' as the keymap if
-     REQUIRE-MATCH is `nil', and uses `minibuffer-local-must-match-map'
-     if REQUIRE-MATCH is non-`nil'.  *Note Completion Commands::.
-
-     The argument HIST specifies which history list variable to use for
-     saving the input and for minibuffer history commands.  It defaults
-     to `minibuffer-history'.  *Note Minibuffer History::.
-
-     Completion ignores case when comparing the input against the
-     possible matches, if the built-in variable
-     `completion-ignore-case' is non-`nil'.  *Note Basic Completion::.
-
-     Here's an example of using `completing-read':
-
-          (completing-read
-           "Complete a foo: "
-           '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
-           nil t "fo")
-
-          ;; After evaluation of the preceding expression,
-          ;;   the following appears in the minibuffer:
-          
-          ---------- Buffer: Minibuffer ----------
-          Complete a foo: fo-!-
-          ---------- Buffer: Minibuffer ----------
-
-     If the user then types `<DEL> <DEL> b <RET>', `completing-read'
-     returns `barfoo'.
-
-     The `completing-read' function binds three variables to pass
-     information to the commands that actually do completion.  These
-     variables are `minibuffer-completion-table',
-     `minibuffer-completion-predicate' and
-     `minibuffer-completion-confirm'.  For more information about them,
-     see *Note Completion Commands::.
-
-\1f
-File: lispref.info,  Node: Completion Commands,  Next: High-Level Completion,  Prev: Minibuffer Completion,  Up: Completion
-
-Minibuffer Commands That Do Completion
---------------------------------------
-
-   This section describes the keymaps, commands and user options used in
-the minibuffer to do completion.
-
- - Variable: minibuffer-local-completion-map
-     `completing-read' uses this value as the local keymap when an
-     exact match of one of the completions is not required.  By
-     default, this keymap makes the following bindings:
-
-    `?'
-          `minibuffer-completion-help'
-
-    <SPC>
-          `minibuffer-complete-word'
-
-    <TAB>
-          `minibuffer-complete'
-
-     with other characters bound as in `minibuffer-local-map' (*note
-     Text from Minibuffer::.).
-
- - Variable: minibuffer-local-must-match-map
-     `completing-read' uses this value as the local keymap when an
-     exact match of one of the completions is required.  Therefore, no
-     keys are bound to `exit-minibuffer', the command that exits the
-     minibuffer unconditionally.  By default, this keymap makes the
-     following bindings:
-
-    `?'
-          `minibuffer-completion-help'
-
-    <SPC>
-          `minibuffer-complete-word'
-
-    <TAB>
-          `minibuffer-complete'
-
-    <LFD>
-          `minibuffer-complete-and-exit'
-
-    <RET>
-          `minibuffer-complete-and-exit'
-
-     with other characters bound as in `minibuffer-local-map'.
-
- - Variable: minibuffer-completion-table
-     The value of this variable is the alist or obarray used for
-     completion in the minibuffer.  This is the global variable that
-     contains what `completing-read' passes to `try-completion'.  It is
-     used by minibuffer completion commands such as
-     `minibuffer-complete-word'.
-
- - Variable: minibuffer-completion-predicate
-     This variable's value is the predicate that `completing-read'
-     passes to `try-completion'.  The variable is also used by the other
-     minibuffer completion functions.
-
- - Command: minibuffer-complete-word
-     This function completes the minibuffer contents by at most a single
-     word.  Even if the minibuffer contents have only one completion,
-     `minibuffer-complete-word' does not add any characters beyond the
-     first character that is not a word constituent.  *Note Syntax
-     Tables::.
-
- - Command: minibuffer-complete
-     This function completes the minibuffer contents as far as possible.
-
- - Command: minibuffer-complete-and-exit
-     This function completes the minibuffer contents, and exits if
-     confirmation is not required, i.e., if
-     `minibuffer-completion-confirm' is non-`nil'.  If confirmation
-     *is* required, it is given by repeating this command
-     immediately--the command is programmed to work without confirmation
-     when run twice in succession.
-
- - Variable: minibuffer-completion-confirm
-     When the value of this variable is non-`nil', XEmacs asks for
-     confirmation of a completion before exiting the minibuffer.  The
-     function `minibuffer-complete-and-exit' checks the value of this
-     variable before it exits.
-
- - Command: minibuffer-completion-help
-     This function creates a list of the possible completions of the
-     current minibuffer contents.  It works by calling `all-completions'
-     using the value of the variable `minibuffer-completion-table' as
-     the COLLECTION argument, and the value of
-     `minibuffer-completion-predicate' as the PREDICATE argument.  The
-     list of completions is displayed as text in a buffer named
-     `*Completions*'.
-
- - Function: display-completion-list COMPLETIONS
-     This function displays COMPLETIONS to the stream in
-     `standard-output', usually a buffer.  (*Note Read and Print::, for
-     more information about streams.)  The argument COMPLETIONS is
-     normally a list of completions just returned by `all-completions',
-     but it does not have to be.  Each element may be a symbol or a
-     string, either of which is simply printed, or a list of two
-     strings, which is printed as if the strings were concatenated.
-
-     This function is called by `minibuffer-completion-help'.  The most
-     common way to use it is together with
-     `with-output-to-temp-buffer', like this:
-
-          (with-output-to-temp-buffer "*Completions*"
-            (display-completion-list
-              (all-completions (buffer-string) my-alist)))
-
- - User Option: completion-auto-help
-     If this variable is non-`nil', the completion commands
-     automatically display a list of possible completions whenever
-     nothing can be completed because the next character is not
-     uniquely determined.
-