# HG changeset patch # User Francesco Potort # Date 1023970200 0 # Node ID 0cbd872ef18bc54ca40c32e5a3b1da7db7bea196 # Parent d11816fe2c5970e1a8bb203e953c4feb59d296d1 New multi-line regexp and new regexp syntax. New {language} and @regexp features. diff -r d11816fe2c59 -r 0cbd872ef18b man/maintaining.texi --- a/man/maintaining.texi Thu Jun 13 11:15:46 2002 +0000 +++ b/man/maintaining.texi Thu Jun 13 12:10:00 2002 +0000 @@ -477,11 +477,17 @@ to the following files. The syntax is: @smallexample ---regex=/@var{tagregexp}[/@var{nameregexp}]/ +--regex=[@var{@{language@}}]/@var{tagregexp}/[@var{nameregexp}/]@var{modifiers} +@end smallexample + + or else: + +@smallexample +--regex=@@@var{regexfile} @end smallexample @noindent -where @var{tagregexp} is used to match the lines to tag. It is always +where @var{tagregexp} is used to find the tags. It is always anchored, that is, it behaves as if preceded by @samp{^}. If you want to account for indentation, just match any initial number of blanks by beginning your regular expression with @samp{[ \t]*}. In the regular @@ -516,14 +522,35 @@ You should not match more characters with @var{tagregexp} than that needed to recognize what you want to tag. If the match is such that more characters than needed are unavoidably matched by @var{tagregexp} -(as will usually be the case), you should add a @var{nameregexp}, to +(as will sometimes be the case), you should add a @var{nameregexp}, to pick out just the tag. This will enable Emacs to find tags more accurately and to do completion on tag names more reliably. You can find some examples below. - The option @samp{--ignore-case-regex} (or @samp{-c}) works like -@samp{--regex}, except that matching ignores case. This is -appropriate for certain programming languages. + A @samp{--regex} option can be restricted to match only files of a +given language using the optional prefix @var{@{language@}}. This is +particularly useful when storing many predefined regular expressions +for @code{etags} in a file. + + The @var{modifiers} are a sequence of 0 or more characters that +modify the way @code{etags} does the matching. Without modifiers, +each regexp is applied sequentially to each line of the input file, in +a case-sensitive way. The modifiers and their meanings are: + +@table @samp +@item i +ignore case when matching. +@item m +do not match line by line; rather, match the whole file, so that +multi-line matches are possible. +@item s +implies @samp{m}, and causes dots in @var{tagregexp} to match newlines +as well. +@end table + + A @var{regexfile} is the name of a file where regular expressions +are stored, one per line. Lines beginning with space or tab are +ignored, and can be used for adding comments. The @samp{-R} option deletes all the regexps defined with @samp{--regex} options. It applies to the file names following it, as