summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/texinfo/info-files/texi.info-6
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/texinfo/info-files/texi.info-6')
-rw-r--r--gnu/usr.bin/texinfo/info-files/texi.info-61461
1 files changed, 0 insertions, 1461 deletions
diff --git a/gnu/usr.bin/texinfo/info-files/texi.info-6 b/gnu/usr.bin/texinfo/info-files/texi.info-6
deleted file mode 100644
index cac7b3a..0000000
--- a/gnu/usr.bin/texinfo/info-files/texi.info-6
+++ /dev/null
@@ -1,1461 +0,0 @@
-This is Info file texi.info, produced by Makeinfo-1.55 from the input
-file texi.texi.
-
- This file documents Texinfo, a documentation system that uses a
-single source file to produce both on-line information and a printed
-manual.
-
- Copyright (C) 1988, 1990, 1991, 1992, 1993 Free Software Foundation,
-Inc.
-
- This is the second edition of the Texinfo documentation,
-and is consistent with version 2 of `texinfo.tex'.
-
- 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 Free Software Foundation.
-
-
-File: texi.info, Node: Inserting An Atsign, Next: Inserting Braces, Up: Braces Atsigns Periods
-
-Inserting `@' with @@
----------------------
-
- `@@' stands for a single `@' in either printed or Info output.
-
- Do not put braces after an `@@' command.
-
-
-File: texi.info, Node: Inserting Braces, Next: Controlling Spacing, Prev: Inserting An Atsign, Up: Braces Atsigns Periods
-
-Inserting `{' and `}'with @{ and @}
------------------------------------
-
- `@{' stands for a single `{' in either printed or Info output.
-
- `@}' stands for a single `}' in either printed or Info output.
-
- Do not put braces after either an `@{' or an `@}' command.
-
-
-File: texi.info, Node: Controlling Spacing, Prev: Inserting Braces, Up: Braces Atsigns Periods
-
-Spacing After Colons and Periods
---------------------------------
-
- Use the `@:' command after a period, question mark, exclamation
-mark, or colon that should not be followed by extra space. For
-example, use `@:' after periods that end abbreviations which are not at
-the ends of sentences. `@:' has no effect on the Info file output.
-
- For example,
-
- The s.o.p.@: has three parts ...
- The s.o.p. has three parts ...
-
-produces
-
- The s.o.p. has three parts ...
- The s.o.p. has three parts ...
-
-`@:' has no effect on the Info output. (`s.o.p' is an acronym for
-"Standard Operating Procedure".)
-
- Use `@.' instead of a period at the end of a sentence that ends with
-a single capital letter. Otherwise, TeX will think the letter is an
-abbreviation and will not insert the correct end-of-sentence spacing.
-Here is an example:
-
- Give it to M.I.B. and to M.E.W@. Also, give it to R.J.C@.
- Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
-
-produces
-
- Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
- Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
-
- In the Info file output, `@.' is equivalent to a simple `.'.
-
- The meanings of `@:' and `@.' in Texinfo are designed to work well
-with the Emacs sentence motion commands. This made it necessary for
-them to be incompatible with some other formatting systems that use
-@-commands.
-
- Do not put braces after either an `@:' or an `@.' command.
-
-
-File: texi.info, Node: dmn, Next: Dots Bullets, Prev: Braces Atsigns Periods, Up: Insertions
-
-`@dmn'{DIMENSION}: Format a Dimension
-=====================================
-
- At times, you may want to write `12pt' or `8.5in' with little or no
-space between the number and the abbreviation for the dimension. You
-can use the `@dmn' command to do this. On seeing the command, TeX
-inserts just enough space for proper typesetting; the Info formatting
-commands insert no space at all, since the Info file does not require
-it.
-
- To use the `@dmn' command, write the number and then follow it
-immediately, with no intervening space, by `@dmn', and then by the
-dimension within braces.
-
-For example,
-
- A4 paper is 8.27@dmn{in} wide.
-
-produces
-
- A4 paper is 8.27in wide.
-
- Not everyone uses this style. Instead of writing `8.27@dmn{in}' in
-the Texinfo file, you may write `8.27 in.' or `8.27 inches'. (In these
-cases, the formatters may insert a line break between the number and the
-dimension. Also, if you write a period after an abbreviation within a
-sentence, you should write `@:' after the period to prevent TeX from
-inserting extra whitespace. *Note Spacing After Colons and Periods:
-Controlling Spacing.)
-
-
-File: texi.info, Node: Dots Bullets, Next: TeX and copyright, Prev: dmn, Up: Insertions
-
-Inserting Ellipsis, Dots, and Bullets
-=====================================
-
- An "ellipsis" (a line of dots) is not typeset as a string of
-periods, so a special command is used for ellipsis in Texinfo. The
-`@bullet' command is special, too. Each of these commands is followed
-by a pair of braces, `{}', without any whitespace between the name of
-the command and the braces. (You need to use braces with these
-commands because you can use them next to other text; without the
-braces, the formatters would be confused. *Note @-Command Syntax:
-Command Syntax, for further information.)
-
-* Menu:
-
-* dots:: How to insert dots ...
-* bullet:: How to insert a bullet.
-
-
-File: texi.info, Node: dots, Next: bullet, Up: Dots Bullets
-
-`@dots'{}
----------
-
- Use the `@dots{}' command to generate an ellipsis, which is three
-dots in a row, appropriately spaced, like this: `...'. Do not simply
-write three periods in the input file; that would work for the Info
-file output, but would produce the wrong amount of space between the
-periods in the printed manual.
-
-
-File: texi.info, Node: bullet, Prev: dots, Up: Dots Bullets
-
-`@bullet'{}
------------
-
- Use the `@bullet{}' command to generate a large round dot, or the
-closest possible thing to one. In Info, an asterisk is used.
-
- Here is a bullet: *
-
- When you use `@bullet' in `@itemize', you do not need to type the
-braces, because `@itemize' supplies them. *Note itemize::.
-
-
-File: texi.info, Node: TeX and copyright, Next: minus, Prev: Dots Bullets, Up: Insertions
-
-Inserting TeX and the Copyright Symbol
-======================================
-
- The logo `TeX' is typeset in a special fashion and it needs an
-@-command. The copyright symbol, `(C)', is also special. Each of
-these commands is followed by a pair of braces, `{}', without any
-whitespace between the name of the command and the braces.
-
-* Menu:
-
-* tex:: How to insert the TeX logo.
-* copyright symbol:: How to use `@copyright'{}.
-
-
-File: texi.info, Node: tex, Next: copyright symbol, Up: TeX and copyright
-
-`@TeX'{}
---------
-
- Use the `@TeX{}' command to generate `TeX'. In a printed manual,
-this is a special logo that is different from three ordinary letters.
-In Info, it just looks like `TeX'. The `@TeX{}' command is unique
-among Texinfo commands in that the T and the X are in upper case.
-
-
-File: texi.info, Node: copyright symbol, Prev: tex, Up: TeX and copyright
-
-`@copyright'{}
---------------
-
- Use the `@copyright{}' command to generate `(C)'. In a printed
-manual, this is a `c' inside a circle, and in Info, this is `(C)'.
-
-
-File: texi.info, Node: minus, Prev: TeX and copyright, Up: Insertions
-
-`@minus'{}: Inserting a Minus Sign
-==================================
-
- Use the `@minus{}' command to generate a minus sign. In a
-fixed-width font, this is a single hyphen, but in a proportional font,
-the symbol is the customary length for a minus sign--a little longer
-than a hyphen.
-
- You can compare the two forms:
-
- `-' is a minus sign generated with `@minus{}',
-
- `-' is a hyphen generated with the character `-'.
-
-In the fixed-width font used by Info, `@minus{}' is the same as a
-hyphen.
-
- You should not use `@minus{}' inside `@code' or `@example' because
-the width distinction is not made in the fixed-width font they use.
-
- When you use `@minus' to specify the mark beginning each entry in an
-itemized list, you do not need to type the braces (*note itemize::.).
-
-
-File: texi.info, Node: Glyphs, Next: Breaks, Prev: Insertions, Up: Top
-
-Glyphs for Examples
-*******************
-
- In Texinfo, code is often illustrated in examples that are delimited
-by `@example' and `@end example', or by `@lisp' and `@end lisp'. In
-such examples, you can indicate the results of evaluation or an
-expansion using `=>' or `==>'. Likewise, there are commands to insert
-glyphs to indicate printed output, error messages, equivalence of
-expressions, and the location of point.
-
- The glyph-insertion commands do not need to be used within an
-example, but most often they are. Every glyph-insertion command is
-followed by a pair of left- and right-hand braces.
-
-* Menu:
-
-* Glyphs Summary::
-* result:: How to show the result of expression.
-* expansion:: How to indicate an expansion.
-* Print Glyph:: How to indicate printed output.
-* Error Glyph:: How to indicate an error message.
-* Equivalence:: How to indicate equivalence.
-* Point Glyph:: How to indicate the location of point.
-
-
-File: texi.info, Node: Glyphs Summary, Next: result, Up: Glyphs
-
-Glyphs Summary
-==============
-
- Here are the different glyph commands:
-
-=>
- `@result{}' points to the result of an expression.
-
-==>
- `@expansion{}' shows the results of a macro expansion.
-
--|
- `@print{}' indicates printed output.
-
-error-->
- `@error{}' indicates that the following text is an error message.
-
-==
- `@equiv{}' indicates the exact equivalence of two forms.
-
--!-
- `@point{}' shows the location of point.
-
-
-File: texi.info, Node: result, Next: expansion, Prev: Glyphs Summary, Up: Glyphs
-
-=>: Indicating Evaluation
-=========================
-
- Use the `@result{}' command to indicate the result of evaluating an
-expression.
-
- The `@result{}' command is displayed as `=>' in Info and as a double
-stemmed arrow in the printed output.
-
- Thus, the following,
-
- (cdr '(1 2 3))
- => (2 3)
-
-may be read as "`(cdr '(1 2 3))' evaluates to `(2 3)'".
-
-
-File: texi.info, Node: expansion, Next: Print Glyph, Prev: result, Up: Glyphs
-
-==>: Indicating an Expansion
-============================
-
- When an expression is a macro call, it expands into a new expression.
-You can indicate the result of the expansion with the `@expansion{}'
-command.
-
- The `@expansion{}' command is displayed as `==>' in Info and as a
-long arrow with a flat base in the printed output.
-
- For example, the following
-
- @lisp
- (third '(a b c))
- @expansion{} (car (cdr (cdr '(a b c))))
- @result{} c
- @end lisp
-
-produces
-
- (third '(a b c))
- ==> (car (cdr (cdr '(a b c))))
- => c
-
-which may be read as:
-
- `(third '(a b c))' expands to `(car (cdr (cdr '(a b c))))'; the
- result of evaluating the expression is `c'.
-
-Often, as in this case, an example looks better if the `@expansion{}'
-and `@result{}' commands are indented five spaces.
-
-
-File: texi.info, Node: Print Glyph, Next: Error Glyph, Prev: expansion, Up: Glyphs
-
--|: Indicating Printed Output
-=============================
-
- Sometimes an expression will print output during its execution. You
-can indicate the printed output with the `@print{}' command.
-
- The `@print{}' command is displayed as `-|' in Info and similarly,
-as a horizontal dash butting against a vertical bar, in the printed
-output.
-
- In the following example, the printed text is indicated with `-|',
-and the value of the expression follows on the last line.
-
- (progn (print 'foo) (print 'bar))
- -| foo
- -| bar
- => bar
-
-In a Texinfo source file, this example is written as follows:
-
- @lisp
- (progn (print 'foo) (print 'bar))
- @print{} foo
- @print{} bar
- @result{} bar
- @end lisp
-
-
-File: texi.info, Node: Error Glyph, Next: Equivalence, Prev: Print Glyph, Up: Glyphs
-
-error-->: Indicating an Error Message
-=====================================
-
- A piece of code may cause an error when you evaluate it. You can
-designate the error message with the `@error{}' command.
-
- The `@error{}' command is displayed as `error-->' in Info and as the
-word `error' in a box in the printed output.
-
- Thus,
-
- @lisp
- (+ 23 'x)
- @error{} Wrong type argument: integer-or-marker-p, x
- @end lisp
-
-produces
-
- (+ 23 'x)
- error--> Wrong type argument: integer-or-marker-p, x
-
-This indicates that the following error message is printed when you
-evaluate the expression:
-
- Wrong type argument: integer-or-marker-p, x
-
- Note that `error-->' itself is not part of the error message.
-
-
-File: texi.info, Node: Equivalence, Next: Point Glyph, Prev: Error Glyph, Up: Glyphs
-
-==: Indicating Equivalence
-==========================
-
- Sometimes two expressions produce identical results. You can
-indicate the exact equivalence of two forms with the `@equiv{}' command.
-
- The `@equiv{}' command is displayed as `==' in Info and as a three
-parallel horizontal lines in the printed output.
-
- Thus,
-
- @lisp
- (make-sparse-keymap) @equiv{} (list 'keymap)
- @end lisp
-
-produces
-
- (make-sparse-keymap) == (list 'keymap)
-
-This indicates that evaluating `(make-sparse-keymap)' produces
-identical results to evaluating `(list 'keymap)'.
-
-
-File: texi.info, Node: Point Glyph, Prev: Equivalence, Up: Glyphs
-
-Indicating Point in a Buffer
-============================
-
- Sometimes you need to show an example of text in an Emacs buffer. In
-such examples, the convention is to include the entire contents of the
-buffer in question between two lines of dashes containing the buffer
-name.
-
- You can use the `@point{}' command to show the location of point in
-the text in the buffer. (The symbol for point, of course, is not part
-of the text in the buffer; it indicates the place *between* two
-characters where point is located.)
-
- The `@point{}' command is displayed as `-!-' in Info and as a small
-five pointed star in the printed output.
-
- The following example shows the contents of buffer `foo' before and
-after evaluating a Lisp command to insert the word `changed'.
-
- ---------- Buffer: foo ----------
- This is the -!-contents of foo.
- ---------- Buffer: foo ----------
-
- (insert "changed ")
- => nil
- ---------- Buffer: foo ----------
- This is the changed -!-contents of foo.
- ---------- Buffer: foo ----------
-
- In a Texinfo source file, the example is written like this:
-
- @example
- ---------- Buffer: foo ----------
- This is the @point{}contents of foo.
- ---------- Buffer: foo ----------
-
- (insert "changed ")
- @result{} nil
- ---------- Buffer: foo ----------
- This is the changed @point{}contents of foo.
- ---------- Buffer: foo ----------
- @end example
-
-
-File: texi.info, Node: Breaks, Next: Definition Commands, Prev: Glyphs, Up: Top
-
-Making and Preventing Breaks
-****************************
-
- Usually, a Texinfo file is processed both by TeX and by one of the
-Info formatting commands. Line, paragraph, or page breaks sometimes
-occur in the `wrong' place in one or other form of output. You must
-ensure that text looks right both in the printed manual and in the Info
-file.
-
- For example, in a printed manual, page breaks may occur awkwardly in
-the middle of an example; to prevent this, you can hold text together
-using a grouping command that keeps the text from being split across
-two pages. Conversely, you may want to force a page break where none
-would occur normally. Fortunately, problems like these do not often
-arise. When they do, use the break, break prevention, or pagination
-commands.
-
-* Menu:
-
-* Break Commands:: Cause and prevent splits.
-* Line Breaks:: How to force a single line to use two lines.
-* w:: How to prevent unwanted line breaks.
-* sp:: How to insert blank lines.
-* page:: How to force the start of a new page.
-* group:: How to prevent unwanted page breaks.
-* need:: Another way to prevent unwanted page breaks.
-
-
-File: texi.info, Node: Break Commands, Next: Line Breaks, Up: Breaks
-
-The Break Commands
-==================
-
- The break commands create line and paragraph breaks:
-
-`@*'
- Force a line break.
-
-`@sp N'
- Skip N blank lines.
-
- The line-break-prevention command holds text together all on one
-line:
-
-`@w{TEXT}'
- Prevent TEXT from being split and hyphenated across two lines.
-
- The pagination commands apply only to printed output, since Info
-files do not have pages.
-
-`@page'
- Start a new page in the printed manual.
-
-`@group'
- Hold text together that must appear on one printed page.
-
-`@need MILS'
- Start a new printed page if not enough space on this one.
-
-
-File: texi.info, Node: Line Breaks, Next: w, Prev: Break Commands, Up: Breaks
-
-`@*': Generate Line Breaks
-==========================
-
- The `@*' command forces a line break in both the printed manual and
-in Info.
-
- For example,
-
- This line @* is broken @*in two places.
-
-produces
-
- This line
- is broken
- in two places.
-
-(Note that the space after the first `@*' command is faithfully carried
-down to the next line.)
-
- The `@*' command is often used in a file's copyright page:
-
- This is edition 2.0 of the Texinfo documentation,@*
- and is for ...
-
-In this case, the `@*' command keeps TeX from stretching the line
-across the whole page in an ugly manner.
-
- *Please note:* Do not write braces after an `@*' command; they are
- not needed.
-
- Do not write an `@refill' command at the end of a paragraph
- containing an `@*' command; it will cause the paragraph to be
- refilled after the line break occurs, negating the effect of the
- line break.
-
-
-File: texi.info, Node: w, Next: sp, Prev: Line Breaks, Up: Breaks
-
-`@w'{TEXT}: Prevent Line Breaks
-===============================
-
- `@w{TEXT}' outputs TEXT and prohibits line breaks within TEXT.
-
- You can use the `@w' command to prevent TeX from automatically
-hyphenating a long name or phrase that accidentally falls near the end
-of a line.
-
- You can copy GNU software from @w{@file{prep.ai.mit.edu}}.
-
-produces
-
- You can copy GNU software from `prep.ai.mit.edu'.
-
- In the Texinfo file, you must write the `@w' command and its
-argument (all the affected text) all on one line.
-
- *Caution:* Do not write an `@refill' command at the end of a
- paragraph containing an `@w' command; it will cause the paragraph
- to be refilled and may thereby negate the effect of the `@w'
- command.
-
-
-File: texi.info, Node: sp, Next: page, Prev: w, Up: Breaks
-
-`@sp' N: Insert Blank Lines
-===========================
-
- A line beginning with and containing only `@sp N' generates N blank
-lines of space in both the printed manual and the Info file. `@sp'
-also forces a paragraph break. For example,
-
- @sp 2
-
-generates two blank lines.
-
- The `@sp' command is most often used in the title page.
-
-
-File: texi.info, Node: page, Next: group, Prev: sp, Up: Breaks
-
-`@page': Start a New Page
-=========================
-
- A line containing only `@page' starts a new page in a printed
-manual. The command has no effect on Info files since they are not
-paginated. An `@page' command is often used in the `@titlepage'
-section of a Texinfo file to start the copyright page.
-
-
-File: texi.info, Node: group, Next: need, Prev: page, Up: Breaks
-
-`@group': Prevent Page Breaks
-=============================
-
- The `@group' command (on a line by itself) is used inside an
-`@example' or similar construct to begin an unsplittable vertical
-group, which will appear entirely on one page in the printed output.
-The group is terminated by a line containing only `@end group'. These
-two lines produce no output of their own, and in the Info file output
-they have no effect at all.
-
- Although `@group' would make sense conceptually in a wide variety of
-contexts, its current implementation works reliably only within
-`@example' and variants, and within `@display', `@format', `@flushleft'
-and `@flushright'. *Note Quotations and Examples::. (What all these
-commands have in common is that each line of input produces a line of
-output.) In other contexts, `@group' can cause anomalous vertical
-spacing.
-
- This formatting requirement means that you should write:
-
- @example
- @group
- ...
- @end group
- @end example
-
-with the `@group' and `@end group' commands inside the `@example' and
-`@end example' commands.
-
- The `@group' command is most often used to hold an example together
-on one page. In this Texinfo manual, more than 100 examples contain
-text that is enclosed between `@group' and `@end group'.
-
- If you forget to end a group, you may get strange and unfathomable
-error messages when you run TeX. This is because TeX keeps trying to
-put the rest of the Texinfo file onto the one page and does not start
-to generate error messages until it has processed considerable text.
-It is a good rule of thumb to look for a missing `@end group' if you
-get incomprehensible error messages in TeX.
-
-
-File: texi.info, Node: need, Prev: group, Up: Breaks
-
-`@need MILS': Prevent Page Breaks
-=================================
-
- A line containing only `@need N' starts a new page in a printed
-manual if fewer than N mils (thousandths of an inch) remain on the
-current page. Do not use braces around the argument N. The `@need'
-command has no effect on Info files since they are not paginated.
-
- This paragraph is preceded by an `@need' command that tells TeX to
-start a new page if fewer than 800 mils (eight-tenths inch) remain on
-the page. It looks like this:
-
- @need 800
- This paragraph is preceded by ...
-
- The `@need' command is useful for preventing orphans (single lines
-at the bottoms of printed pages).
-
-
-File: texi.info, Node: Definition Commands, Next: Footnotes, Prev: Breaks, Up: Top
-
-Definition Commands
-*******************
-
- The `@deffn' command and the other "definition commands" enable you
-to describe functions, variables, macros, commands, user options,
-special forms and other such artifacts in a uniform format.
-
- In the Info file, a definition causes the entity
-category--`Function', `Variable', or whatever--to appear at the
-beginning of the first line of the definition, followed by the entity's
-name and arguments. In the printed manual, the command causes TeX to
-print the entity's name and its arguments on the left margin and print
-the category next to the right margin. In both output formats, the
-body of the definition is indented. Also, the name of the entity is
-entered into the appropriate index: `@deffn' enters the name into the
-index of functions, `@defvr' enters it into the index of variables, and
-so on.
-
- A manual need not and should not contain more than one definition for
-a given name. An appendix containing a summary should use `@table'
-rather than the definition commands.
-
-* Menu:
-
-* Def Cmd Template:: How to structure a description using a
- definition command.
-* Optional Arguments:: How to handle optional and repeated arguments.
-* deffnx:: How to group two or more `first' lines.
-* Def Cmds in Detail:: All the definition commands.
-* Def Cmd Conventions:: Conventions for writing definitions.
-* Sample Function Definition::
-
-
-File: texi.info, Node: Def Cmd Template, Next: Optional Arguments, Up: Definition Commands
-
-The Template for a Definition
-=============================
-
- The `@deffn' command is used for definitions of entities that
-resemble functions. To write a definition using the `@deffn' command,
-write the `@deffn' command at the beginning of a line and follow it on
-the same line by the category of the entity, the name of the entity
-itself, and its arguments (if any). Then write the body of the
-definition on succeeding lines. (You may embed examples in the body.)
-Finally, end the definition with an `@end deffn' command written on a
-line of its own. (The other definition commands follow the same
-format.)
-
- The template for a definition looks like this:
-
- @deffn CATEGORY NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end deffn
-
-For example,
-
- @deffn Command forward-word count
- This command moves point forward @var{count} words
- (or backward if @var{count} is negative). ...
- @end deffn
-
-produces
-
- - Command: forward-word COUNT
- This function moves point forward COUNT words (or backward if
- COUNT is negative). ...
-
- Capitalize the category name like a title. If the name of the
-category contains spaces, as in the phrase `Interactive Command', write
-braces around it. For example:
-
- @deffn {Interactive Command} isearch-forward
- ...
- @end deffn
-
-Otherwise, the second word will be mistaken for the name of the entity.
-
- Some of the definition commands are more general than others. The
-`@deffn' command, for example, is the general definition command for
-functions and the like--for entities that may take arguments. When you
-use this command, you specify the category to which the entity belongs.
-The `@deffn' command possesses three predefined, specialized
-variations, `@defun', `@defmac', and `@defspec', that specify the
-category for you: "Function", "Macro", and "Special Form" respectively.
-The `@defvr' command also is accompanied by several predefined,
-specialized variations for describing particular kinds of variables.
-
- The template for a specialized definition, such as `@defun', is
-similar to the template for a generalized definition, except that you
-do not need to specify the category:
-
- @defun NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end defun
-
-Thus,
-
- @defun buffer-end flag
- This function returns @code{(point-min)} if @var{flag}
- is less than 1, @code{(point-max)} otherwise.
- ...
- @end defun
-
-produces
-
- - Function: buffer-end FLAG
- This function returns `(point-min)' if FLAG is less than 1,
- `(point-max)' otherwise. ...
-
-*Note Sample Function Definition: Sample Function Definition, for a
-more detailed example of a function definition, including the use of
-`@example' inside the definition.
-
- The other specialized commands work like `@defun'.
-
-
-File: texi.info, Node: Optional Arguments, Next: deffnx, Prev: Def Cmd Template, Up: Definition Commands
-
-Optional and Repeated Arguments
-===============================
-
- Some entities take optional or repeated arguments, which may be
-specified by a distinctive glyph that uses square brackets and
-ellipses. For example, a special form often breaks its argument list
-into separate arguments in more complicated ways than a straightforward
-function.
-
- An argument enclosed within square brackets is optional. Thus,
-[OPTIONAL-ARG] means that OPTIONAL-ARG is optional. An argument
-followed by an ellipsis is optional and may be repeated more than once.
-Thus, REPEATED-ARGS... stands for zero or more arguments. Parentheses
-are used when several arguments are grouped into additional levels of
-list structure in Lisp.
-
- Here is the `@defspec' line of an example of an imaginary special
-form:
-
- - Special Form: foobar (VAR [FROM TO [INC]]) BODY...
-
-In this example, the arguments FROM and TO are optional, but must both
-be present or both absent. If they are present, INC may optionally be
-specified as well. These arguments are grouped with the argument VAR
-into a list, to distinguish them from BODY, which includes all
-remaining elements of the form.
-
- In a Texinfo source file, this `@defspec' line is written like this
-(except it would not be split over two lines, as it is in this example).
-
- @defspec foobar (@var{var} [@var{from} @var{to}
- [@var{inc}]]) @var{body}@dots{}
-
-The function is listed in the Command and Variable Index under `foobar'.
-
-
-File: texi.info, Node: deffnx, Next: Def Cmds in Detail, Prev: Optional Arguments, Up: Definition Commands
-
-Two or More `First' Lines
-=========================
-
- To create two or more `first' or header lines for a definition,
-follow the first `@deffn' line by a line beginning with `@deffnx'. The
-`@deffnx' command works exactly like `@deffn' except that it does not
-generate extra vertical white space between it and the preceding line.
-
- For example,
-
- @deffn {Interactive Command} isearch-forward
- @deffnx {Interactive Command} isearch-backward
- These two search commands are similar except ...
- @end deffn
-
-produces
-
- - Interactive Command: isearch-forward
- - Interactive Command: isearch-backward
- These two search commands are similar except ...
-
- Each of the other definition commands has an `x' form: `@defunx',
-`@defvrx', `@deftypefunx', etc.
-
- The `x' forms work just like `@itemx'; see *Note `@itemx': itemx.
-
-
-File: texi.info, Node: Def Cmds in Detail, Next: Def Cmd Conventions, Prev: deffnx, Up: Definition Commands
-
-The Definition Commands
-=======================
-
- Texinfo provides more than a dozen definition commands, all of which
-are described in this section.
-
- The definition commands automatically enter the name of the entity in
-the appropriate index: for example, `@deffn', `@defun', and `@defmac'
-enter function names in the index of functions; `@defvr' and `@defvar'
-enter variable names in the index of variables.
-
- Although the examples that follow mostly illustrate Lisp, the
-commands can be used for other programming languages.
-
-* Menu:
-
-* Functions Commands:: Commands for functions and similar entities.
-* Variables Commands:: Commands for variables and similar entities.
-* Typed Functions:: Commands for functions in typed languages.
-* Typed Variables:: Commands for variables in typed languages.
-* Abstract Objects:: Commands for object-oriented programming.
-* Data Types:: The definition command for data types.
-
-
-File: texi.info, Node: Functions Commands, Next: Variables Commands, Up: Def Cmds in Detail
-
-Functions and Similar Entities
-------------------------------
-
- This section describes the commands for describing functions and
-similar entities:
-
-`@deffn CATEGORY NAME ARGUMENTS...'
- The `@deffn' command is the general definition command for
- functions, interactive commands, and similar entities that may take
- arguments. You must choose a term to describe the category of
- entity being defined; for example, "Function" could be used if the
- entity is a function. The `@deffn' command is written at the
- beginning of a line and is followed on the same line by the
- category of entity being described, the name of this particular
- entity, and its arguments, if any. Terminate the definition with
- `@end deffn' on a line of its own.
-
- For example, here is a definition:
-
- @deffn Command forward-char nchars
- Move point forward @var{nchars} characters.
- @end deffn
-
- This shows a rather terse definition for a "command" named
- `forward-char' with one argument, NCHARS.
-
- `@deffn' prints argument names such as NCHARS in italics or upper
- case, as if `@var' had been used, because we think of these names
- as metasyntactic variables--they stand for the actual argument
- values. Within the text of the description, write an argument name
- explicitly with `@var' to refer to the value of the argument. In
- the example above, we used `@var{nchars}' in this way.
-
- The template for `@deffn' is:
-
- @deffn CATEGORY NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end deffn
-
-`@defun NAME ARGUMENTS...'
- The `@defun' command is the definition command for functions.
- `@defun' is equivalent to `@deffn Function ...'.
-
- For example,
-
- @defun set symbol new-value
- Change the value of the symbol @var{symbol}
- to @var{new-value}.
- @end defun
-
- shows a rather terse definition for a function `set' whose
- arguments are SYMBOL and NEW-VALUE. The argument names on the
- `@defun' line automatically appear in italics or upper case as if
- they were enclosed in `@var'. Terminate the definition with `@end
- defun' on a line of its own.
-
- The template is:
-
- @defun FUNCTION-NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end defun
-
- `@defun' creates an entry in the index of functions.
-
-`@defmac NAME ARGUMENTS...'
- The `@defmac' command is the definition command for macros.
- `@defmac' is equivalent to `@deffn Macro ...' and works like
- `@defun'.
-
-`@defspec NAME ARGUMENTS...'
- The `@defspec' command is the definition command for special
- forms. (In Lisp, a special form is an entity much like a
- function.) `@defspec' is equivalent to `@deffn {Special Form} ...'
- and works like `@defun'.
-
-
-File: texi.info, Node: Variables Commands, Next: Typed Functions, Prev: Functions Commands, Up: Def Cmds in Detail
-
-Variables and Similar Entities
-------------------------------
-
- Here are the commands for defining variables and similar entities:
-
-`@defvr CATEGORY NAME'
- The `@defvr' command is a general definition command for something
- like a variable--an entity that records a value. You must choose
- a term to describe the category of entity being defined; for
- example, "Variable" could be used if the entity is a variable.
- Write the `@defvr' command at the beginning of a line and followed
- it on the same line by the category of the entity and the name of
- the entity.
-
- Capitalize the category name like a title. If the name of the
- category contains spaces, as in the name `User Option', write
- braces around it. Otherwise, the second word will be mistaken for
- the name of the entity, for example:
-
- @defvr {User Option} fill-column
- This buffer-local variable specifies
- the maximum width of filled lines.
- ...
- @end defvr
-
- Terminate the definition with `@end defvr' on a line of its own.
-
- The template is:
-
- @defvr CATEGORY NAME
- BODY-OF-DEFINITION
- @end defvr
-
- `@defvr' creates an entry in the index of variables for NAME.
-
-`@defvar NAME'
- The `@defvar' command is the definition command for variables.
- `@defvar' is equivalent to `@defvr Variable ...'.
-
- For example:
-
- @defvar kill-ring
- ...
- @end defvar
-
- The template is:
-
- @defvar NAME
- BODY-OF-DEFINITION
- @end defvar
-
- `@defvar' creates an entry in the index of variables for NAME.
-
-`@defopt NAME'
- The `@defopt' command is the definition command for user options.
- `@defopt' is equivalent to `@defvr {User Option} ...' and works
- like `@defvar'.
-
-
-File: texi.info, Node: Typed Functions, Next: Typed Variables, Prev: Variables Commands, Up: Def Cmds in Detail
-
-Functions in Typed Languages
-----------------------------
-
- The `@deftypefn' command and its variations are for describing
-functions in C or any other language in which you must declare types of
-variables and functions.
-
-`@deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS...'
- The `@deftypefn' command is the general definition command for
- functions and similar entities that may take arguments and that are
- typed. The `@deftypefn' command is written at the beginning of a
- line and is followed on the same line by the category of entity
- being described, the type of the returned value, the name of this
- particular entity, and its arguments, if any.
-
- For example,
-
- @deftypefn {Library Function} int foobar
- (int @var{foo}, float @var{bar})
- ...
- @end deftypefn
-
- (where the text before the "...", shown above as two lines, would
- actually be a single line in a real Texinfo file) produces the
- following in Info:
-
- -- Library Function: int foobar (int FOO, float BAR)
- ...
-
- This means that `foobar' is a "library function" that returns an
- `int', and its arguments are FOO (an `int') and BAR (a `float').
-
- The argument names that you write in `@deftypefn' are not subject
- to an implicit `@var'--since the actual names of the arguments in
- `@deftypefn' are typically scattered among data type names and
- keywords, Texinfo cannot find them without help. Instead, you
- must write `@var' explicitly around the argument names. In the
- example above, the argument names are `foo' and `bar'.
-
- The template for `@deftypefn' is:
-
- @deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS ...
- BODY-OF-DESCRIPTION
- @end deftypefn
-
- Note that if the CATEGORY or DATA TYPE is more than one word then
- it must be enclosed in braces to make it a single argument.
-
- If you are describing a procedure in a language that has packages,
- such as Ada, you might consider using `@deftypefn' in a manner
- somewhat contrary to the convention described in the preceding
- paragraphs.
-
- For example:
-
- @deftypefn stacks private push
- (@var{s}:in out stack;
- @var{n}:in integer)
- ...
- @end deftypefn
-
- (The `@deftypefn' arguments are shown split into three lines, but
- would be a single line in a real Texinfo file.)
-
- In this instance, the procedure is classified as belonging to the
- package `stacks' rather than classified as a `procedure' and its
- data type is described as `private'. (The name of the procedure
- is `push', and its arguments are S and N.)
-
- `@deftypefn' creates an entry in the index of functions for NAME.
-
-`@deftypefun DATA-TYPE NAME ARGUMENTS...'
- The `@deftypefun' command is the specialized definition command
- for functions in typed languages. The command is equivalent to
- `@deftypefn Function ...'.
-
- Thus,
-
- @deftypefun int foobar (int @var{foo}, float @var{bar})
- ...
- @end deftypefun
-
- produces the following in Info:
-
- -- Function: int foobar (int FOO, float BAR)
- ...
-
- The template is:
-
- @deftypefun TYPE NAME ARGUMENTS...
- BODY-OF-DESCRIPTION
- @end deftypefun
-
- `@deftypefun' creates an entry in the index of functions for NAME.
-
-
-File: texi.info, Node: Typed Variables, Next: Abstract Objects, Prev: Typed Functions, Up: Def Cmds in Detail
-
-Variables in Typed Languages
-----------------------------
-
- Variables in typed languages are handled in a manner similar to
-functions in typed languages. *Note Typed Functions::. The general
-definition command `@deftypevr' corresponds to `@deftypefn' and the
-specialized definition command `@deftypevar' corresponds to
-`@deftypefun'.
-
-`@deftypevr CATEGORY DATA-TYPE NAME'
- The `@deftypevr' command is the general definition command for
- something like a variable in a typed language--an entity that
- records a value. You must choose a term to describe the category
- of the entity being defined; for example, "Variable" could be used
- if the entity is a variable.
-
- The `@deftypevr' command is written at the beginning of a line and
- is followed on the same line by the category of the entity being
- described, the data type, and the name of this particular entity.
-
- For example:
-
- @deftypevr {Global Flag} int enable
- ...
- @end deftypevr
-
- produces the following in Info:
-
- -- Global Flag: int enable
- ...
-
- The template is:
-
- @deftypevr CATEGORY DATA-TYPE NAME
- BODY-OF-DESCRIPTION
- @end deftypevr
-
- `@deftypevr' creates an entry in the index of variables for NAME.
-
-`@deftypevar DATA-TYPE NAME'
- The `@deftypevar' command is the specialized definition command
- for variables in typed languages. `@deftypevar' is equivalent to
- `@deftypevr Variable ...'.
-
- For example:
-
- @deftypevar int fubar
- ...
- @end deftypevar
-
- produces the following in Info:
-
- -- Variable: int fubar
- ...
-
- The template is:
-
- @deftypevar DATA-TYPE NAME
- BODY-OF-DESCRIPTION
- @end deftypevar
-
- `@deftypevar' creates an entry in the index of variables for NAME.
-
-
-File: texi.info, Node: Abstract Objects, Next: Data Types, Prev: Typed Variables, Up: Def Cmds in Detail
-
-Object-Oriented Programming
----------------------------
-
- Here are the commands for formatting descriptions about abstract
-objects, such as are used in object-oriented programming. A class is a
-defined type of abstract object. An instance of a class is a
-particular object that has the type of the class. An instance variable
-is a variable that belongs to the class but for which each instance has
-its own value.
-
- In a definition, if the name of a class is truly a name defined in
-the programming system for a class, then you should write an `@code'
-around it. Otherwise, it is printed in the usual text font.
-
-`@defcv CATEGORY CLASS NAME'
- The `@defcv' command is the general definition command for
- variables associated with classes in object-oriented programming.
- The `@defcv' command is followed by three arguments: the category
- of thing being defined, the class to which it belongs, and its
- name. Thus,
-
- @defcv {Class Option} Window border-pattern
- ...
- @end defcv
-
- illustrates how you would write the first line of a definition of
- the `border-pattern' class option of the class `Window'.
-
- The template is
-
- @defcv CATEGORY CLASS NAME
- ...
- @end defcv
-
- `@defcv' creates an entry in the index of variables.
-
-`@defivar CLASS NAME'
- The `@defivar' command is the definition command for instance
- variables in object-oriented programming. `@defivar' is
- equivalent to `@defcv {Instance Variable} ...'
-
- The template is:
-
- @defivar CLASS INSTANCE-VARIABLE-NAME
- BODY-OF-DEFINITION
- @end defivar
-
- `@defivar' creates an entry in the index of variables.
-
-`@defop CATEGORY CLASS NAME ARGUMENTS...'
- The `@defop' command is the general definition command for
- entities that may resemble methods in object-oriented programming.
- These entities take arguments, as functions do, but are associated
- with particular classes of objects.
-
- For example, some systems have constructs called "wrappers" that
- are associated with classes as methods are, but that act more like
- macros than like functions. You could use `@defop Wrapper' to
- describe one of these.
-
- Sometimes it is useful to distinguish methods and "operations".
- You can think of an operation as the specification for a method.
- Thus, a window system might specify that all window classes have a
- method named `expose'; we would say that this window system
- defines an `expose' operation on windows in general. Typically,
- the operation has a name and also specifies the pattern of
- arguments; all methods that implement the operation must accept
- the same arguments, since applications that use the operation do
- so without knowing which method will implement it.
-
- Often it makes more sense to document operations than methods. For
- example, window application developers need to know about the
- `expose' operation, but need not be concerned with whether a given
- class of windows has its own method to implement this operation.
- To describe this operation, you would write:
-
- @defop Operation windows expose
-
- The `@defop' command is written at the beginning of a line and is
- followed on the same line by the overall name of the category of
- operation, the name of the class of the operation, the name of the
- operation, and its arguments, if any.
-
- The template is:
-
- @defop CATEGORY CLASS NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end defop
-
- `@defop' creates an entry, such as ``expose' on `windows'', in the
- index of functions.
-
-`@defmethod CLASS NAME ARGUMENTS...'
- The `@defmethod' command is the definition command for methods in
- object-oriented programming. A method is a kind of function that
- implements an operation for a particular class of objects and its
- subclasses. In the Lisp Machine, methods actually were functions,
- but they were usually defined with `defmethod'.
-
- `@defmethod' is equivalent to `@defop Method ...'. The command is
- written at the beginning of a line and is followed by the name of
- the class of the method, the name of the method, and its
- arguments, if any.
-
- For example,
-
- @defmethod `bar-class' bar-method argument
- ...
- @end defmethod
-
- illustrates the definition for a method called `bar-method' of the
- class `bar-class'. The method takes an argument.
-
- The template is:
-
- @defmethod CLASS METHOD-NAME ARGUMENTS...
- BODY-OF-DEFINITION
- @end defmethod
-
- `@defmethod' creates an entry in the index of functions, such as
- ``bar-method' on `bar-class''.
-
-
-File: texi.info, Node: Data Types, Prev: Abstract Objects, Up: Def Cmds in Detail
-
-Data Types
-----------
-
- Here is the command for data types:
-
-`@deftp CATEGORY NAME ATTRIBUTES...'
- The `@deftp' command is the generic definition command for data
- types. The command is written at the beginning of a line and is
- followed on the same line by the category, by the name of the type
- (which is a word like `int' or `float'), and then by names of
- attributes of objects of that type. Thus, you could use this
- command for describing `int' or `float', in which case you could
- use `data type' as the category. (A data type is a category of
- certain objects for purposes of deciding which operations can be
- performed on them.)
-
- In Lisp, for example, "pair" names a particular data type, and an
- object of that type has two slots called the CAR and the CDR.
- Here is how you would write the first line of a definition of
- `pair'.
-
- @deftp {Data type} pair car cdr
- ...
- @end deftp
-
- The template is:
-
- @deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...
- BODY-OF-DEFINITION
- @end deftp
-
- `@deftp' creates an entry in the index of data types.
-
-
-File: texi.info, Node: Def Cmd Conventions, Next: Sample Function Definition, Prev: Def Cmds in Detail, Up: Definition Commands
-
-Conventions for Writing Definitions
-===================================
-
- When you write a definition using `@deffn', `@defun', or one of the
-other definition commands, please take care to use arguments that
-indicate the meaning, as with the COUNT argument to the `forward-word'
-function. Also, if the name of an argument contains the name of a
-type, such as INTEGER, take care that the argument actually is of that
-type.
-
-
-File: texi.info, Node: Sample Function Definition, Prev: Def Cmd Conventions, Up: Definition Commands
-
-A Sample Function Definition
-============================
-
- A function definition uses the `@defun' and `@end defun' commands.
-The name of the function follows immediately after the `@defun' command
-and it is followed, on the same line, by the parameter list.
-
- Here is a definition from `The GNU Emacs Lisp Reference Manual'.
-(*Note Calling Functions: (elisp)Calling Functions.)
-
- - Function: apply FUNCTION &rest ARGUMENTS
- `apply' calls FUNCTION with ARGUMENTS, just like `funcall'
- but with one difference: the last of ARGUMENTS is a list of
- arguments to give to FUNCTION, rather than a single argument.
- We also say that this list is "appended" to the other
- arguments.
-
- `apply' returns the result of calling FUNCTION. As with
- `funcall', FUNCTION must either be a Lisp function or a
- primitive function; special forms and macros do not make
- sense in `apply'.
-
- (setq f 'list)
- => list
- (apply f 'x 'y 'z)
- error--> Wrong type argument: listp, z
- (apply '+ 1 2 '(3 4))
- => 10
- (apply '+ '(1 2 3 4))
- => 10
-
- (apply 'append '((a b c) nil (x y z) nil))
- => (a b c x y z)
-
- An interesting example of using `apply' is found in the
- description of `mapcar'.
-
- In the Texinfo source file, this example looks like this:
-
- @defun apply function &rest arguments
-
- @code{apply} calls @var{function} with
- @var{arguments}, just like @code{funcall} but with one
- difference: the last of @var{arguments} is a list of
- arguments to give to @var{function}, rather than a single
- argument. We also say that this list is @dfn{appended}
- to the other arguments.
-
- @code{apply} returns the result of calling
- @var{function}. As with @code{funcall},
- @var{function} must either be a Lisp function or a
- primitive function; special forms and macros do not make
- sense in @code{apply}.
-
- @example
- (setq f 'list)
- @result{} list
- (apply f 'x 'y 'z)
- @error{} Wrong type argument: listp, z
- (apply '+ 1 2 '(3 4))
- @result{} 10
- (apply '+ '(1 2 3 4))
- @result{} 10
-
- (apply 'append '((a b c) nil (x y z) nil))
- @result{} (a b c x y z)
- @end example
-
- An interesting example of using @code{apply} is found
- in the description of @code{mapcar}.@refill
- @end defun
-
-In this manual, this function is listed in the Command and Variable
-Index under `apply'.
-
- Ordinary variables and user options are described using a format like
-that for functions except that variables do not take arguments.
-
OpenPOWER on IntegriCloud