[BACK]Return to mandoc.1 CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mandoc.1 between version 1.201 and 1.220

version 1.201, 2017/06/17 23:07:00 version 1.220, 2017/11/10 23:32:40
Line 75  and for the
Line 75  and for the
 .Xr man 7  .Xr man 7
 .Ic \&TH  .Ic \&TH
 macro.  macro.
 This can also be used to perform style checks according to the  
 conventions of one operating system while running on a different  
 operating system; see  
 .Sx Style messages  
 for details.  
 .It Fl K Ar encoding  .It Fl K Ar encoding
 Specify the input encoding.  Specify the input encoding.
 The supported  The supported
Line 151  to be reported on the standard error output and to aff
Line 146  to be reported on the standard error output and to aff
 The  The
 .Ar level  .Ar level
 can be  can be
   .Cm base ,
 .Cm style ,  .Cm style ,
 .Cm warning ,  .Cm warning ,
 .Cm error ,  .Cm error ,
 or  or
 .Cm unsupp ;  .Cm unsupp .
   The
   .Cm base
   level automatically derives the operating system from the contents of the
   .Ic \&Os
   macro, from the
   .Fl Ios
   command line option, or from the
   .Xr uname 3
   return value.
   The levels
   .Cm openbsd
   and
   .Cm netbsd
   are variants of
   .Cm base
   that bypass autodetection and request validation of base system
   conventions for a particular operating system.
   The level
 .Cm all  .Cm all
 is an alias for  is an alias for
 .Cm style .  .Cm base .
 By default,  By default,
 .Nm  .Nm
 is silent.  is silent.
Line 224  See
Line 238  See
 .It Fl T Cm lint  .It Fl T Cm lint
 Parse only: produce no output.  Parse only: produce no output.
 Implies  Implies
 .Fl W Cm style .  .Fl W Cm all
   and redirects parser messages, which usually appear
   on standard error output, to standard output.
 .It Fl T Cm locale  .It Fl T Cm locale
 Encode output using the current locale.  Encode output using the current locale.
 This is the default.  This is the default.
Line 299  and seven for
Line 315  and seven for
 .Xr man 7 .  .Xr man 7 .
 Increasing this is not recommended; it may result in degraded formatting,  Increasing this is not recommended; it may result in degraded formatting,
 for example overfull lines or ugly line breaks.  for example overfull lines or ugly line breaks.
   .It Cm mdoc
   Format
   .Xr man 7
   input files in
   .Xr mdoc 7
   output style.
   Specifically, this suppresses the two additional blank lines near the
   top and the bottom of each page, and it implies
   .Fl O Cm indent Ns =5 .
   One useful application is for checking that
   .Fl T Cm man
   output formats in the same way as the
   .Xr mdoc 7
   source it was generated from.
 .It Cm width Ns = Ns Ar width  .It Cm width Ns = Ns Ar width
 The output width is set to  The output width is set to
 .Ar width .  .Ar width .
Line 596  option:
Line 626  option:
 .Pp  .Pp
 .Bl -tag -width Ds -compact  .Bl -tag -width Ds -compact
 .It 0  .It 0
 No style suggestions, warnings or errors occurred, or those that  No base system convention violations, style suggestions, warnings,
 did were ignored because they were lower than the requested  or errors occurred, or those that did were ignored because they
   were lower than the requested
 .Ar level .  .Ar level .
 .It 1  .It 1
 At least one style suggestion occurred, but no warning or error, and  At least one base system convention violation or style suggestion
   occurred, but no warning or error, and
   .Fl W Cm base
   or
 .Fl W Cm style  .Fl W Cm style
 was specified.  was specified.
 .It 2  .It 2
 At least one warning occurred, but no error, and  At least one warning occurred, but no error, and
 .Fl W Cm warning  .Fl W Cm warning
 or  or a lower
 .Fl W Cm style  .Ar level
 was specified.  was requested.
 .It 3  .It 3
 At least one parsing error occurred,  At least one parsing error occurred,
 but no unsupported feature was encountered, and  but no unsupported feature was encountered, and
Line 636  to exit at once, possibly in the middle of parsing or 
Line 670  to exit at once, possibly in the middle of parsing or 
 Note that selecting  Note that selecting
 .Fl T Cm lint  .Fl T Cm lint
 output mode implies  output mode implies
 .Fl W Cm style .  .Fl W Cm all .
 .Sh EXAMPLES  .Sh EXAMPLES
 To page manuals to the terminal:  To page manuals to the terminal:
 .Pp  .Pp
Line 669  parser:
Line 703  parser:
 Messages displayed by  Messages displayed by
 .Nm  .Nm
 follow this format:  follow this format:
   .Bd -ragged -offset indent
   .Nm :
   .Ar file : Ns Ar line : Ns Ar column : level : message : macro args
   .Pq Ar os
   .Ed
 .Pp  .Pp
 .D1 Nm Ns : Ar file : Ns Ar line : Ns Ar column : level : message : macro args  
 .Pp  
 Line and column numbers start at 1.  Line and column numbers start at 1.
 Both are omitted for messages referring to an input file as a whole.  Both are omitted for messages referring to an input file as a whole.
 Macro names and arguments are omitted where meaningless.  Macro names and arguments are omitted where meaningless.
   The
   .Ar os
   operating system specifier is omitted for messages that are relevant
   for all operating systems.
 Fatal messages about invalid command line arguments  Fatal messages about invalid command line arguments
 or operating system errors, for example when memory is exhausted,  or operating system errors, for example when memory is exhausted,
 may also omit the  may also omit the
Line 694  so using GNU troff instead of
Line 735  so using GNU troff instead of
 .Nm  .Nm
 to process the file may be preferable.  to process the file may be preferable.
 .It Cm error  .It Cm error
 An input file contains invalid syntax that cannot be safely interpreted.  Indicates a risk of information loss or severe misformatting,
 By discarding part of the input or inserting missing tokens,  in most cases caused by serious syntax errors.
 the parser is able to continue, and the error does not prevent  
 generation of formatted output, but typically, preparing that  
 output involves information loss, broken document structure  
 or unintended formatting, no matter whether  
 .Nm  
 or GNU troff is used.  
 In many cases, the output of  
 .Nm  
 and GNU troff is identical, but in some,  
 .Nm  
 is more resilient than GNU troff with respect to malformed input.  
 .Pp  
 Non-existent or unreadable input files are also reported on the  
 .Cm error  
 level.  
 In that case, the parser cannot even be started and no output  
 is produced from those input files.  
 .It Cm warning  .It Cm warning
 An input file uses obsolete, discouraged or non-portable syntax.  Indicates a risk that the information shown or its formatting
 All the same, the meaning of the input is unambiguous and a correct  may mismatch the author's intent in minor ways.
 rendering can be produced.  Additionally, syntax errors are classified at least as warnings,
 Documents causing warnings may render poorly when using other  even if they do not usually cause misformatting.
 formatting tools instead of  
 .Nm .  
 .It Cm style  .It Cm style
 An input file uses dubious or discouraged style.  An input file uses dubious or discouraged style.
 This is not a complaint about the syntax, and probably neither  This is not a complaint about the syntax, and probably neither
Line 732  so it may occasionally issue bogus suggestions.
Line 754  so it may occasionally issue bogus suggestions.
 Please use your good judgement to decide whether any particular  Please use your good judgement to decide whether any particular
 .Cm style  .Cm style
 suggestion really justifies a change to the input file.  suggestion really justifies a change to the input file.
   .It Cm base
   A convention used in the base system of a specific operating system
   is not adhered to.
   These are not markup mistakes, and neither the quality of formatting
   nor portability are in danger.
   Messages of the
   .Cm base
   level are printed with the more intuitive
   .Cm style
   .Ar level
   tag.
 .El  .El
 .Pp  .Pp
 Messages of the  Messages of the
   .Cm base ,
 .Cm style ,  .Cm style ,
 .Cm warning ,  .Cm warning ,
 .Cm error ,  .Cm error ,
Line 746  are hidden unless their level, or a lower level, is re
Line 780  are hidden unless their level, or a lower level, is re
 option or  option or
 .Fl T Cm lint  .Fl T Cm lint
 output mode.  output mode.
 .Ss Style messages  .Pp
 As indicated below, some style checks are only performed if a  As indicated below, all
 specific operating system name occurs in the arguments of the  .Cm base
   and some
   .Cm style
   checks are only performed if a specific operating system name occurs
   in the arguments of the
   .Fl W
   command line option, of the
 .Ic \&Os  .Ic \&Os
 macro, of the  macro, of the
 .Fl Ios  .Fl Ios
Line 756  command line option, or, if neither are present, in th
Line 796  command line option, or, if neither are present, in th
 of the  of the
 .Xr uname 3  .Xr uname 3
 function.  function.
   .Ss Conventions for base system manuals
 .Bl -ohang  .Bl -ohang
 .It Sy "Mdocdate found"  .It Sy "Mdocdate found"
 .Pq mdoc , Nx  .Pq mdoc , Nx
Line 778  macro does not use CVS
Line 819  macro does not use CVS
 keyword substitution, but using it is conventionally expected in the  keyword substitution, but using it is conventionally expected in the
 .Ox  .Ox
 base system.  base system.
   .It Sy "unknown architecture"
   .Pq mdoc , Ox , Nx
   The third argument of the
   .Ic \&Dt
   macro does not match any of the architectures this operating system
   is running on.
   .It Sy "operating system explicitly specified"
   .Pq mdoc , Ox , Nx
   The
   .Ic \&Os
   macro has an argument.
   In the base system, it is conventionally left blank.
   .It Sy "RCS id missing"
   .Pq Ox , Nx
   The manual page lacks the comment line with the RCS identifier
   generated by CVS
   .Ic OpenBSD
   or
   .Ic NetBSD
   keyword substitution as conventionally used in these operating systems.
   .It Sy "referenced manual not found"
   .Pq mdoc
   An
   .Ic \&Xr
   macro references a manual page that is not found in the base system.
   The path to look for base system manuals is configurable at compile
   time and defaults to
   .Pa /usr/share/man : /usr/X11R6/man .
   .El
   .Ss Style suggestions
   .Bl -ohang
 .It Sy "legacy man(7) date format"  .It Sy "legacy man(7) date format"
 .Pq mdoc  .Pq mdoc
 The  The
Line 791  Consider using the conventional
Line 863  Consider using the conventional
 date format  date format
 .Dq "Month dd, yyyy"  .Dq "Month dd, yyyy"
 instead.  instead.
 .It Sy "RCS id missing"  .It Sy "lower case character in document title"
 .Pq Ox , Nx  .Pq mdoc , man
 The manual page lacks the comment line with the RCS identifier  The title is still used as given in the
 generated by CVS  .Ic \&Dt
 .Ic OpenBSD  
 or  or
 .Ic NetBSD  .Ic \&TH
 keyword substitution as conventionally used in these operating systems.  macro.
 .It Sy "duplicate RCS id"  .It Sy "duplicate RCS id"
 A single manual page contains two copies of the RCS identifier for  A single manual page contains two copies of the RCS identifier for
 the same operating system.  the same operating system.
 Consider deleting the later instance and moving the first one up  Consider deleting the later instance and moving the first one up
 to the top of the page.  to the top of the page.
   .It Sy "possible typo in section name"
   .Pq mdoc
   Fuzzy string matching revealed that the argument of an
   .Ic \&Sh
   macro is similar, but not identical to a standard section name.
   .It Sy "unterminated quoted argument"
   .Pq roff
   Macro arguments can be enclosed in double quote characters
   such that space characters and macro names contained in the quoted
   argument need not be escaped.
   The closing quote of the last argument of a macro can be omitted.
   However, omitting it is not recommended because it makes the code
   harder to read.
 .It Sy "useless macro"  .It Sy "useless macro"
 .Pq mdoc  .Pq mdoc
 A  A
Line 839  list contains two consecutive
Line 923  list contains two consecutive
 entries describing the same  entries describing the same
 .Ic \&Er  .Ic \&Er
 number.  number.
 .It Sy "description line ends with a full stop"  .It Sy "trailing delimiter"
 .Pq mdoc  .Pq mdoc
 Do not use punctuation at the end of an  The last argument of an
 .Ic \&Nd  .Ic \&Ex , \&Fo , \&Nd , \&Nm , \&Os , \&Sh , \&Ss , \&St ,
 block.  or
   .Ic \&Sx
   macro ends with a trailing delimiter.
   This is usually bad style and often indicates typos.
   Most likely, the delimiter can be removed.
 .It Sy "no blank before trailing delimiter"  .It Sy "no blank before trailing delimiter"
 .Pq mdoc  .Pq mdoc
 The last argument of a macro that supports trailing delimiter  The last argument of a macro that supports trailing delimiter
 arguments is longer than one byte and ends with a trailing delimiter.  arguments is longer than one byte and ends with a trailing delimiter.
 Consider inserting a blank such that the delimiter becomes a separate  Consider inserting a blank such that the delimiter becomes a separate
 argument, thus moving it out of the scope of the macro.  argument, thus moving it out of the scope of the macro.
   .It Sy "fill mode already enabled, skipping"
   .Pq man
   A
   .Ic \&fi
   request occurs even though the document is still in fill mode,
   or already switched back to fill mode.
   It has no effect.
   .It Sy "fill mode already disabled, skipping"
   .Pq man
   An
   .Ic \&nf
   request occurs even though the document already switched to no-fill mode
   and did not switch back to fill mode yet.
   It has no effect.
 .It Sy "function name without markup"  .It Sy "function name without markup"
 .Pq mdoc  .Pq mdoc
 A word followed by an empty pair of parentheses occurs on a text line.  A word followed by an empty pair of parentheses occurs on a text line.
Line 858  Consider using an
Line 960  Consider using an
 or  or
 .Ic \&Xr  .Ic \&Xr
 macro.  macro.
   .It Sy "whitespace at end of input line"
   .Pq mdoc , man , roff
   Whitespace at the end of input lines is almost never semantically
   significant \(em but in the odd case where it might be, it is
   extremely confusing when reviewing and maintaining documents.
   .It Sy "bad comment style"
   .Pq roff
   Comment lines start with a dot, a backslash, and a double-quote character.
   The
   .Nm
   utility treats the line as a comment line even without the backslash,
   but leaving out the backslash might not be portable.
 .El  .El
 .Ss Warnings related to the document prologue  .Ss Warnings related to the document prologue
 .Bl -ohang  .Bl -ohang
Line 873  macro before the first non-prologue macro.
Line 987  macro before the first non-prologue macro.
 There is no  There is no
 .Ic \&TH  .Ic \&TH
 macro, or it has no arguments.  macro, or it has no arguments.
 .It Sy "lower case character in document title"  
 .Pq mdoc , man  
 The title is still used as given in the  
 .Ic \&Dt  
 or  
 .Ic \&TH  
 macro.  
 .It Sy "missing manual section, using \(dq\(dq"  .It Sy "missing manual section, using \(dq\(dq"
 .Pq mdoc , man  .Pq mdoc , man
 A  A
Line 915  The date given in a
Line 1022  The date given in a
 or  or
 .Ic \&TH  .Ic \&TH
 macro does not follow the conventional format.  macro does not follow the conventional format.
   .It Sy "date in the future, using it anyway"
   .Pq mdoc , man
   The date given in a
   .Ic \&Dd
   or
   .Ic \&TH
   macro is more than a day ahead of the current system
   .Xr time 3 .
 .It Sy "missing Os macro, using \(dq\(dq"  .It Sy "missing Os macro, using \(dq\(dq"
 .Pq mdoc  .Pq mdoc
 The default or current system is not shown in this case.  The default or current system is not shown in this case.
 .It Sy "duplicate prologue macro"  
 .Pq mdoc  
 One of the prologue macros occurs more than once.  
 The last instance overrides all previous ones.  
 .It Sy "late prologue macro"  .It Sy "late prologue macro"
 .Pq mdoc  .Pq mdoc
 A  A
Line 929  A
Line 1040  A
 or  or
 .Ic \&Os  .Ic \&Os
 macro occurs after some non-prologue macro, but still takes effect.  macro occurs after some non-prologue macro, but still takes effect.
 .It Sy "skipping late title macro"  
 .Pq mdoc  
 The  
 .Ic \&Dt  
 macro appears after the first non-prologue macro.  
 Traditional formatters cannot handle this because  
 they write the page header before parsing the document body.  
 Even though this technical restriction does not apply to  
 .Nm ,  
 traditional semantics is preserved.  
 The late macro is discarded including its arguments.  
 .It Sy "prologue macros out of order"  .It Sy "prologue macros out of order"
 .Pq mdoc  .Pq mdoc
 The prologue macros are not given in the conventional order  The prologue macros are not given in the conventional order
Line 1031  The same standard section title occurs more than once.
Line 1131  The same standard section title occurs more than once.
 .Pq mdoc  .Pq mdoc
 A standard section header occurs in a section of the manual  A standard section header occurs in a section of the manual
 where it normally isn't useful.  where it normally isn't useful.
   .It Sy "cross reference to self"
   .Pq mdoc
   An
   .Ic \&Xr
   macro refers to a name and section matching the section of the present
   manual page and a name mentioned in an
   .Ic \&Nm
   macro in the NAME or SYNOPSIS section, or in an
   .Ic \&Fn
   or
   .Ic \&Fo
   macro in the SYNOPSIS.
   Consider using
   .Ic \&Nm
   or
   .Ic \&Fn
   instead of
   .Ic \&Xr .
 .It Sy "unusual Xr order"  .It Sy "unusual Xr order"
 .Pq mdoc  .Pq mdoc
 In the SEE ALSO section, an  In the SEE ALSO section, an
Line 1117  The paragraph macro is moved after the end of the list
Line 1235  The paragraph macro is moved after the end of the list
 .Pq mdoc  .Pq mdoc
 An input line begins with an  An input line begins with an
 .Ic \&Ns  .Ic \&Ns
 macro.  macro, or the next argument after an
   .Ic \&Ns
   macro is an isolated closing delimiter.
 The macro is ignored.  The macro is ignored.
 .It Sy "blocks badly nested"  .It Sy "blocks badly nested"
 .Pq mdoc  .Pq mdoc
Line 1158  list block contains text or macros before the first
Line 1278  list block contains text or macros before the first
 .Ic \&It  .Ic \&It
 macro.  macro.
 The offending children are moved before the beginning of the list.  The offending children are moved before the beginning of the list.
 .It Sy "fill mode already enabled, skipping"  .It Sy "first macro on line"
 .Pq man  Inside a
 A  .Ic \&Bl Fl column
 .Ic \&fi  list, a
 request occurs even though the document is still in fill mode,  .Ic \&Ta
 or already switched back to fill mode.  macro occurs as the first macro on a line, which is not portable.
 It has no effect.  
 .It Sy "fill mode already disabled, skipping"  
 .Pq man  
 An  
 .Ic \&nf  
 request occurs even though the document already switched to no-fill mode  
 and did not switch back to fill mode yet.  
 It has no effect.  
 .It Sy "line scope broken"  .It Sy "line scope broken"
 .Pq man  .Pq man
 While parsing the next-line scope of the previous macro,  While parsing the next-line scope of the previous macro,
Line 1225  A
Line 1337  A
 .Ic \&Bl ,  .Ic \&Bl ,
 .Ic \&D1 ,  .Ic \&D1 ,
 .Ic \&Dl ,  .Ic \&Dl ,
   .Ic \&MT ,
 .Ic \&RS ,  .Ic \&RS ,
 or  or
 .Ic \&UR  .Ic \&UR
Line 1302  list, an
Line 1415  list, an
 .Ic \&It  .Ic \&It
 block is empty.  block is empty.
 An empty list item is shown.  An empty list item is shown.
   .It Sy "missing argument, using next line"
   .Pq mdoc
   An
   .Ic \&It
   macro in a
   .Ic \&Bd Fl column
   list has no arguments.
   While
   .Nm
   uses the text or macros of the following line, if any, for the cell,
   other formatters may misformat the list.
 .It Sy "missing font type, using \efR"  .It Sy "missing font type, using \efR"
 .Pq mdoc  .Pq mdoc
 A  A
Line 1360  An empty pair of square brackets is shown.
Line 1484  An empty pair of square brackets is shown.
 .It Sy "missing resource identifier, using \(dq\(dq"  .It Sy "missing resource identifier, using \(dq\(dq"
 .Pq man  .Pq man
 The  The
   .Ic \&MT
   or
 .Ic \&UR  .Ic \&UR
 macro is invoked without any argument.  macro is invoked without any argument.
 An empty pair of angle brackets is shown.  An empty pair of angle brackets is shown.
Line 1371  An empty box is inserted.
Line 1497  An empty box is inserted.
 .El  .El
 .Ss "Warnings related to bad macro arguments"  .Ss "Warnings related to bad macro arguments"
 .Bl -ohang  .Bl -ohang
 .It Sy "unterminated quoted argument"  
 .Pq roff  
 Macro arguments can be enclosed in double quote characters  
 such that space characters and macro names contained in the quoted  
 argument need not be escaped.  
 The closing quote of the last argument of a macro can be omitted.  
 However, omitting it is not recommended because it makes the code  
 harder to read.  
 .It Sy "duplicate argument"  .It Sy "duplicate argument"
 .Pq mdoc  .Pq mdoc
 A  A
Line 1520  As an implementation dependent choice, tab characters 
Line 1638  As an implementation dependent choice, tab characters 
 are passed through to the formatters in any case.  are passed through to the formatters in any case.
 Given that the text before the tab character will be filled,  Given that the text before the tab character will be filled,
 it is hard to predict which tab stop position the tab will advance to.  it is hard to predict which tab stop position the tab will advance to.
 .It Sy "whitespace at end of input line"  
 .Pq mdoc , man , roff  
 Whitespace at the end of input lines is almost never semantically  
 significant \(em but in the odd case where it might be, it is  
 extremely confusing when reviewing and maintaining documents.  
 .It Sy "new sentence, new line"  .It Sy "new sentence, new line"
 .Pq mdoc  .Pq mdoc
 A new sentence starts in the middle of a text line.  A new sentence starts in the middle of a text line.
 Start it on a new input line to help formatters produce correct spacing.  Start it on a new input line to help formatters produce correct spacing.
 .It Sy "bad comment style"  
 .Pq roff  
 Comment lines start with a dot, a backslash, and a double-quote character.  
 The  
 .Nm  
 utility treats the line as a comment line even without the backslash,  
 but leaving out the backslash might not be portable.  
 .It Sy "invalid escape sequence"  .It Sy "invalid escape sequence"
 .Pq roff  .Pq roff
 An escape sequence has an invalid opening argument delimiter, lacks the  An escape sequence has an invalid opening argument delimiter, lacks the
Line 1642  and any remaining cells stay empty.
Line 1748  and any remaining cells stay empty.
 .El  .El
 .Ss "Errors related to roff, mdoc, and man code"  .Ss "Errors related to roff, mdoc, and man code"
 .Bl -ohang  .Bl -ohang
   .It Sy "duplicate prologue macro"
   .Pq mdoc
   One of the prologue macros occurs more than once.
   The last instance overrides all previous ones.
   .It Sy "skipping late title macro"
   .Pq mdoc
   The
   .Ic \&Dt
   macro appears after the first non-prologue macro.
   Traditional formatters cannot handle this because
   they write the page header before parsing the document body.
   Even though this technical restriction does not apply to
   .Nm ,
   traditional semantics is preserved.
   The late macro is discarded including its arguments.
 .It Sy "input stack limit exceeded, infinite loop?"  .It Sy "input stack limit exceeded, infinite loop?"
 .Pq roff  .Pq roff
 Explicit recursion limits are implemented for the following features,  Explicit recursion limits are implemented for the following features,
Line 1712  An
Line 1833  An
 .Xr mdoc 7  .Xr mdoc 7
 block closing macro, a  block closing macro, a
 .Xr man 7  .Xr man 7
 .Ic \&RE  .Ic \&ME , \&RE
 or  or
 .Ic \&UE  .Ic \&UE
 macro, an  macro, an
Line 1746  At the end of the document, an explicit
Line 1867  At the end of the document, an explicit
 block, a  block, a
 .Xr man 7  .Xr man 7
 next-line scope or  next-line scope or
 .Ic \&RS  .Ic \&MT , \&RS
 or  or
 .Ic \&UR  .Ic \&UR
 block, an equation, table, or  block, an equation, table, or
Line 1918  A macro or request is invoked with too many arguments:
Line 2039  A macro or request is invoked with too many arguments:
 .Bl -dash -offset 2n -width 2n -compact  .Bl -dash -offset 2n -width 2n -compact
 .It  .It
 .Ic \&Fo ,  .Ic \&Fo ,
   .Ic \&MT ,
 .Ic \&PD ,  .Ic \&PD ,
 .Ic \&RS ,  .Ic \&RS ,
 .Ic \&UR ,  .Ic \&UR ,

Legend:
Removed from v.1.201  
changed lines
  Added in v.1.220

CVSweb