Resorted; add some missing Morohashi's Daikanwa characters; add
[chise/xemacs-chise.git] / info / xemacs.info-11
index e114931..f4416a5 100644 (file)
@@ -1,5 +1,5 @@
-This is Info file ../info/xemacs.info, produced by Makeinfo version
-1.68 from the input file xemacs/xemacs.texi.
+This is ../info/xemacs.info, produced by makeinfo version 4.0 from
+xemacs/xemacs.texi.
 
 INFO-DIR-SECTION XEmacs Editor
 START-INFO-DIR-ENTRY
@@ -30,6 +30,230 @@ versions, except that the sections entitled "The GNU Manifesto",
 translation approved by the author instead of in the original English.
 
 \1f
+File: xemacs.info,  Node: Lisp Indent,  Next: C Indent,  Prev: Multi-line Indent,  Up: Grinding
+
+Customizing Lisp Indentation
+----------------------------
+
+   The indentation pattern for a Lisp expression can depend on the
+function called by the expression.  For each Lisp function, you can
+choose among several predefined patterns of indentation, or define an
+arbitrary one with a Lisp program.
+
+   The standard pattern of indentation is as follows: the second line
+of the expression is indented under the first argument, if that is on
+the same line as the beginning of the expression; otherwise, the second
+line is indented underneath the function name.  Each following line is
+indented under the previous line whose nesting depth is the same.
+
+   If the variable `lisp-indent-offset' is non-`nil', it overrides the
+usual indentation pattern for the second line of an expression, so that
+such lines are always indented `lisp-indent-offset' more columns than
+the containing list.
+
+   Certain functions override the standard pattern.  Functions whose
+names start with `def' always indent the second line by
+`lisp-body-indention' extra columns beyond the open-parenthesis
+starting the expression.
+
+   Individual functions can override the standard pattern in various
+ways, according to the `lisp-indent-function' property of the function
+name.  (Note: `lisp-indent-function' was formerly called
+`lisp-indent-hook').  There are four possibilities for this property:
+
+`nil'
+     This is the same as no property; the standard indentation pattern
+     is used.
+
+`defun'
+     The pattern used for function names that start with `def' is used
+     for this function also.
+
+a number, NUMBER
+     The first NUMBER arguments of the function are "distinguished"
+     arguments; the rest are considered the "body" of the expression.
+     A line in the expression is indented according to whether the
+     first argument on it is distinguished or not.  If the argument is
+     part of the body, the line is indented `lisp-body-indent' more
+     columns than the open-parenthesis starting the containing
+     expression.  If the argument is distinguished and is either the
+     first or second argument, it is indented twice that many extra
+     columns.  If the argument is distinguished and not the first or
+     second argument, the standard pattern is followed for that line.
+
+a symbol, SYMBOL
+     SYMBOL should be a function name; that function is called to
+     calculate the indentation of a line within this expression.  The
+     function receives two arguments:
+    STATE
+          The value returned by `parse-partial-sexp' (a Lisp primitive
+          for indentation and nesting computation) when it parses up to
+          the beginning of this line.
+
+    POS
+          The position at which the line being indented begins.
+
+     It should return either a number, which is the number of columns of
+     indentation for that line, or a list whose first element is such a
+     number.  The difference between returning a number and returning a
+     list is that a number says that all following lines at the same
+     nesting level should be indented just like this one; a list says
+     that following lines might call for different indentations.  This
+     makes a difference when the indentation is computed by `C-M-q'; if
+     the value is a number, `C-M-q' need not recalculate indentation
+     for the following lines until the end of the list.
+
+\1f
+File: xemacs.info,  Node: C Indent,  Prev: Lisp Indent,  Up: Grinding
+
+Customizing C Indentation
+-------------------------
+
+   Two variables control which commands perform C indentation and when.
+
+   If `c-auto-newline' is non-`nil', newlines are inserted both before
+and after braces that you insert and after colons and semicolons.
+Correct C indentation is done on all the lines that are made this way.
+
+   If `c-tab-always-indent' is non-`nil', the <TAB> command in C mode
+does indentation only if point is at the left margin or within the
+line's indentation.  If there is non-whitespace to the left of point,
+<TAB> just inserts a tab character in the buffer.  Normally, this
+variable is `nil', and <TAB> always reindents the current line.
+
+   C does not have anything analogous to particular function names for
+which special forms of indentation are desirable.  However, it has a
+different need for customization facilities: many different styles of C
+indentation are in common use.
+
+   There are six variables you can set to control the style that Emacs C
+mode will use.
+
+`c-indent-level'
+     Indentation of C statements within surrounding block.  The
+     surrounding block's indentation is the indentation of the line on
+     which the open-brace appears.
+
+`c-continued-statement-offset'
+     Extra indentation given to a substatement, such as the then-clause
+     of an `if' or body of a `while'.
+
+`c-brace-offset'
+     Extra indentation for lines that start with an open brace.
+
+`c-brace-imaginary-offset'
+     An open brace following other text is treated as if it were this
+     far to the right of the start of its line.
+
+`c-argdecl-indent'
+     Indentation level of declarations of C function arguments.
+
+`c-label-offset'
+     Extra indentation for a line that is a label, case, or default.
+
+   The variable `c-indent-level' controls the indentation for C
+statements with respect to the surrounding block.  In the example:
+
+         {
+           foo ();
+
+the difference in indentation between the lines is `c-indent-level'.
+Its standard value is 2.
+
+   If the open-brace beginning the compound statement is not at the
+beginning of its line, the `c-indent-level' is added to the indentation
+of the line, not the column of the open-brace.  For example,
+
+     if (losing) {
+       do_this ();
+
+One popular indentation style is that which results from setting
+`c-indent-level' to 8 and putting open-braces at the end of a line in
+this way.  Another popular style prefers to put the open-brace on a
+separate line.
+
+   In fact, the value of the variable `c-brace-imaginary-offset' is
+also added to the indentation of such a statement.  Normally this
+variable is zero.  Think of this variable as the imaginary position of
+the open brace, relative to the first non-blank character on the line.
+By setting the variable to 4 and `c-indent-level' to 0, you can get
+this style:
+
+     if (x == y) {
+         do_it ();
+         }
+
+   When `c-indent-level' is zero, the statements inside most braces
+line up exactly under the open brace.  An exception are braces in column
+zero, like those surrounding a function's body.  The statements inside
+those braces are not placed at column zero.  Instead, `c-brace-offset'
+and `c-continued-statement-offset' (see below) are added to produce a
+typical offset between brace levels, and the statements are indented
+that far.
+
+   `c-continued-statement-offset' controls the extra indentation for a
+line that starts within a statement (but not within parentheses or
+brackets).  These lines are usually statements inside other statements,
+like the then-clauses of `if' statements and the bodies of `while'
+statements.  The `c-continued-statement-offset' parameter determines
+the difference in indentation between the two lines in:
+
+     if (x == y)
+       do_it ();
+
+The default value for `c-continued-statement-offset' is 2.  Some
+popular indentation styles correspond to a value of zero for
+`c-continued-statement-offset'.
+
+   `c-brace-offset' is the extra indentation given to a line that
+starts with an open-brace.  Its standard value is zero; compare:
+
+     if (x == y)
+       {
+
+with:
+
+     if (x == y)
+       do_it ();
+
+If you set `c-brace-offset' to 4, the first example becomes:
+
+     if (x == y)
+           {
+
+   `c-argdecl-indent' controls the indentation of declarations of the
+arguments of a C function.  It is absolute: argument declarations
+receive exactly `c-argdecl-indent' spaces.  The standard value is 5 and
+results in code like this:
+
+     char *
+     index (string, char)
+          char *string;
+          int char;
+
+   `c-label-offset' is the extra indentation given to a line that
+contains a label, a case statement, or a `default:' statement.  Its
+standard value is -2 and results in code like this:
+
+     switch (c)
+       {
+       case 'x':
+
+If `c-label-offset' were zero, the same code would be indented as:
+
+     switch (c)
+       {
+         case 'x':
+
+This example assumes that the other variables above also have their
+default values.
+
+   Using the indentation style produced by the default settings of the
+variables just discussed and putting open braces on separate lines
+produces clear and readable files.  For an example, look at any of the C
+source files of XEmacs.
+
+\1f
 File: xemacs.info,  Node: Matching,  Next: Comments,  Prev: Grinding,  Up: Programs
 
 Automatic Display of Matching Parentheses
@@ -454,7 +678,7 @@ Source File Tag Syntax
      generate a tag.
 
    You can also generate tags based on regexp matching (*note Etags
-Regexps::.) to handle other formats and languages.
+Regexps::) to handle other formats and languages.
 
 \1f
 File: xemacs.info,  Node: Create Tags Table,  Next: Etags Regexps,  Prev: Tag Syntax,  Up: Tags
@@ -533,7 +757,7 @@ the file names that follow it.  Specify `--language=auto' to tell
 `etags' to resume guessing the language from the file names and file
 contents.  Specify `--language=none' to turn off language-specific
 processing entirely; then `etags' recognizes tags by regexp matching
-alone (*note Etags Regexps::.).
+alone (*note Etags Regexps::).
 
    `etags --help' prints the list of the languages `etags' knows, and
 the file name rules for guessing the language. It also prints a list of
@@ -680,11 +904,11 @@ strings, they are evaluated and must return an appropriate string.
    For example:
 
        (setq tag-table-alist
-       '(("/usr/src/public/perl/" . "/usr/src/public/perl/perl-3.0/")
-         ("\\.el$" . "/usr/local/emacs/src/")
-         ("/jbw/gnu/" . "/usr15/degree/stud/jbw/gnu/")
-         ("" . "/usr/local/emacs/src/")
-         ))
+             '(("/usr/src/public/perl/" . "/usr/src/public/perl/perl-3.0/")
+               ("\\.el$" . "/usr/local/emacs/src/")
+               ("/jbw/gnu/" . "/usr15/degree/stud/jbw/gnu/")
+               ("" . "/usr/local/emacs/src/")
+               ))
 
    The example defines the tags table alist in the following way:
 
@@ -817,7 +1041,7 @@ Searching and Replacing with Tags Tables
    The commands in this section visit and search all the files listed
 in the selected tags table, one by one.  For these commands, the tags
 table serves only to specify a sequence of files to search.  A related
-command is `M-x grep' (*note Compilation::.).
+command is `M-x grep' (*note Compilation::).
 
 `M-x tags-search <RET> REGEXP <RET>'
      Search for REGEXP through the files in the selected tags table.
@@ -970,214 +1194,3 @@ killing it or moving it.
      Move to beginning of current or previous statement (`fortran-
      previous-statement').
 
-\1f
-File: xemacs.info,  Node: Fortran Indent,  Next: Fortran Comments,  Prev: Fortran Motion,  Up: Fortran
-
-Fortran Indentation
--------------------
-
-   Special commands and features are available for indenting Fortran
-code.  They make sure various syntactic entities (line numbers, comment
-line indicators, and continuation line flags) appear in the columns
-that are required for standard Fortran.
-
-* Menu:
-
-* Commands: ForIndent Commands. Commands for indenting Fortran.
-* Numbers:  ForIndent Num.      How line numbers auto-indent.
-* Conv:     ForIndent Conv.     Conventions you must obey to avoid trouble.
-* Vars:     ForIndent Vars.     Variables controlling Fortran indent style.
-
-\1f
-File: xemacs.info,  Node: ForIndent Commands,  Next: ForIndent Num,  Prev: Fortran Indent,  Up: Fortran Indent
-
-Fortran Indentation Commands
-............................
-
-`<TAB>'
-     Indent the current line (`fortran-indent-line').
-
-`M-<LFD>'
-     Break the current line and set up a continuation line.
-
-`C-M-q'
-     Indent all the lines of the subprogram point is in
-     (`fortran-indent-subprogram').
-
-   <TAB> is redefined by Fortran mode to reindent the current line for
-Fortran (`fortran-indent-line').  Line numbers and continuation markers
-are indented to their required columns, and the body of the statement
-is independently indented, based on its nesting in the program.
-
-   The key `C-M-q' is redefined as `fortran-indent-subprogram', a
-command that reindents all the lines of the Fortran subprogram
-(function or subroutine) containing point.
-
-   The key `M-<LFD>' is redefined as `fortran-split-line', a command to
-split a line in the appropriate fashion for Fortran.  In a non-comment
-line, the second half becomes a continuation line and is indented
-accordingly.  In a comment line, both halves become separate comment
-lines.
-
-\1f
-File: xemacs.info,  Node: ForIndent Num,  Next: ForIndent Conv,  Prev: ForIndent Commands,  Up: Fortran Indent
-
-Line Numbers and Continuation
-.............................
-
-   If a number is the first non-whitespace in the line, it is assumed
-to be a line number and is moved to columns 0 through 4.  (Columns are
-always counted from 0 in XEmacs.)  If the text on the line starts with
-the conventional Fortran continuation marker `$', it is moved to column
-5.  If the text begins with any non whitespace character in column 5,
-it is assumed to be an unconventional continuation marker and remains
-in column 5.
-
-   Line numbers of four digits or less are normally indented one space.
-This amount is controlled by the variable `fortran-line-number-indent',
-which is the maximum indentation a line number can have.  Line numbers
-are indented to right-justify them to end in column 4 unless that would
-require more than the maximum indentation.  The default value of the
-variable is 1.
-
-   Simply inserting a line number is enough to indent it according to
-these rules.  As each digit is inserted, the indentation is recomputed.
-To turn off this feature, set the variable
-`fortran-electric-line-number' to `nil'.  Then inserting line numbers
-is like inserting anything else.
-
-\1f
-File: xemacs.info,  Node: ForIndent Conv,  Next: ForIndent Vars,  Prev: ForIndent Num,  Up: Fortran Indent
-
-Syntactic Conventions
-.....................
-
-   Fortran mode assumes that you follow certain conventions that
-simplify the task of understanding a Fortran program well enough to
-indent it properly:
-
-   * Two nested `do' loops never share a `continue' statement.
-
-   * The same character appears in column 5 of all continuation lines.
-     It is the value of the variable `fortran-continuation-char'.  By
-     default, this character is `$'.
-
-If you fail to follow these conventions, the indentation commands may
-indent some lines unaesthetically.  However, a correct Fortran program
-will retain its meaning when reindented even if the conventions are not
-followed.
-
-\1f
-File: xemacs.info,  Node: ForIndent Vars,  Prev: ForIndent Conv,  Up: Fortran Indent
-
-Variables for Fortran Indentation
-.................................
-
-   Several additional variables control how Fortran indentation works.
-
-`fortran-do-indent'
-     Extra indentation within each level of `do' statement (the default
-     is 3).
-
-`fortran-if-indent'
-     Extra indentation within each level of `if' statement (the default
-     is 3).
-
-`fortran-continuation-indent'
-     Extra indentation for bodies of continuation lines (the default is
-     5).
-
-`fortran-check-all-num-for-matching-do'
-     If this is `nil', indentation assumes that each `do' statement
-     ends on a `continue' statement.  Therefore, when computing
-     indentation for a statement other than `continue', it can save
-     time by not checking for a `do' statement ending there.  If this
-     is non-`nil', indenting any numbered statement must check for a
-     `do' that ends there.  The default is `nil'.
-
-`fortran-minimum-statement-indent'
-     Minimum indentation for Fortran statements.  For standard Fortran,
-     this is 6.  Statement bodies are always indented at least this
-     much.
-
-\1f
-File: xemacs.info,  Node: Fortran Comments,  Next: Fortran Columns,  Prev: Fortran Indent,  Up: Fortran
-
-Comments
---------
-
-   The usual Emacs comment commands assume that a comment can follow a
-line of code.  In Fortran, the standard comment syntax requires an
-entire line to be just a comment.  Therefore, Fortran mode replaces the
-standard Emacs comment commands and defines some new variables.
-
-   Fortran mode can also handle a non-standard comment syntax where
-comments start with `!' and can follow other text.  Because only some
-Fortran compilers accept this syntax, Fortran mode will not insert such
-comments unless you have specified to do so in advance by setting the
-variable `comment-start' to `"!"' (*note Variables::.).
-
-`M-;'
-     Align comment or insert new comment (`fortran-comment-indent').
-
-`C-x ;'
-     Applies to nonstandard `!' comments only.
-
-`C-c ;'
-     Turn all lines of the region into comments, or (with arg) turn
-     them back into real code (`fortran-comment-region').
-
-   `M-;' in Fortran mode is redefined as the command
-`fortran-comment-indent'.  Like the usual `M-;' command, it recognizes
-an existing comment and aligns its text appropriately.  If there is no
-existing comment, a comment is inserted and aligned.
-
-   Inserting and aligning comments is not the same in Fortran mode as in
-other modes.  When a new comment must be inserted, a full-line comment
-is inserted if the current line is blank.  On a non-blank line, a
-non-standard `!' comment is inserted if you previously specified you
-wanted to use them.  Otherwise a full-line comment is inserted on a new
-line before the current line.
-
-   Non-standard `!' comments are aligned like comments in other
-languages, but full-line comments are aligned differently.  In a
-standard full-line comment, the comment delimiter itself must always
-appear in column zero.  What can be aligned is the text within the
-comment.  You can choose from three styles of alignment by setting the
-variable `fortran-comment-indent-style' to one of these values:
-
-`fixed'
-     The text is aligned at a fixed column, which is the value of
-     `fortran-comment-line-column'.  This is the default.
-
-`relative'
-     The text is aligned as if it were a line of code, but with an
-     additional `fortran-comment-line-column' columns of indentation.
-
-`nil'
-     Text in full-line columns is not moved automatically.
-
-   You can also specify the character to be used to indent within
-full-line comments by setting the variable `fortran-comment-indent-char'
-to the character you want to use.
-
-   Fortran mode introduces two variables `comment-line-start' and
-`comment-line-start-skip', which do for full-line comments what
-`comment-start' and `comment-start-skip' do for ordinary text-following
-comments.  Normally these are set properly by Fortran mode, so you do
-not need to change them.
-
-   The normal Emacs comment command `C-x ;' has not been redefined.  It
-can therefore be used if you use `!' comments, but is useless in
-Fortran mode otherwise.
-
-   The command `C-c ;' (`fortran-comment-region') turns all the lines
-of the region into comments by inserting the string `C$$$' at the front
-of each one.  With a numeric arg, the region is turned back into live
-code by deleting `C$$$' from the front of each line.  You can control
-the string used for the comments by setting the variable
-`fortran-comment-region'.  Note that here we have an example of a
-command and a variable with the same name; the two uses of the name
-never conflict because in Lisp and in Emacs it is always clear from the
-context which one is referred to.
-