]> git.draconx.ca Git - cdecl99.git/commitdiff
Use .Pp for paragraph breaks in man pages.
authorNick Bowler <nbowler@draconx.ca>
Sun, 11 Sep 2011 23:29:12 +0000 (19:29 -0400)
committerNick Bowler <nbowler@draconx.ca>
Sun, 11 Sep 2011 23:29:12 +0000 (19:29 -0400)
Blank lines are apparently invalid.

doc/man/cdecl99.1
doc/man/libcdecl.3

index 419b908eaf21763f1806014e1f575f009e8b8663..086e772a3b7d08a82e43453fbf5d5990ceabb4b2 100644 (file)
@@ -39,7 +39,7 @@ Suppress the welcome message when starting
 Run in batch (non-interactive) mode.  Execute the commands provided on standard
 input as usual, but do not print any prompts.  Exit with status 0 if and only
 if all commands complete successfully.
-
+.Pp
 This option implies
 .Fl -quiet .
 .It Fl i , -interactive
@@ -50,7 +50,7 @@ Execute
 as if it were entered at the prompt, then exit.  This option can be specified
 multiple times; all commands are run in the same order as specified on the
 command line.
-
+.Pp
 This option implies
 .Fl -batch .
 .It Fl f , -file Ar file
@@ -63,7 +63,7 @@ and
 are specified, any
 .Fl -file
 option is ignored.
-
+.Pp
 This option implies
 .Fl -batch .
 .It Fl V , -version
@@ -136,7 +136,7 @@ are defined as in C.
 The C context-free grammar has many ambiguities regarding declarations.
 Ordinarily, these ambiguities are resolved by the context in which the
 declaration appears, such as which typedef names are currently in scope.
-
+.Pp
 For example, the meaning of the declaration
 .Ic int f(int (foo))
 depends on whether or not a typedef named
@@ -150,7 +150,7 @@ and returns an int, returning an int.  If there is no such typedef, then this
 declares
 .Va f
 as a function that takes an int and returns an int.
-
+.Pp
 Since
 .Nm
 isn't a C compiler, on several occasions it has to arbitrarily pick one of two
@@ -162,7 +162,7 @@ interpreted as a function which takes an int and returns an int.
 Nick Bowler <nbowler@draconx.ca>
 .Sh COPYRIGHT
 Copyright \(co 2011 Nick Bowler
-
+.Pp
 Permission is granted to copy, distribute and/or modify this manual under the
 terms of the Do What The Fuck You Want To Public License, version 2.
 .Sh SEE ALSO
index 0bb7f9335a3188e5f735793b854d1b9abaa79161..7b6c791da7df8a50e44b80e80cddfc26a26a41d0 100644 (file)
@@ -6,14 +6,14 @@
 .Nd C library for making sense of C declarations
 .Sh SYNOPSIS
 .Fd #include <cdecl.h>
-
+.Pp
 .Fd struct cdecl *cdecl_parse_decl(const char *declstr);
 .Fd struct cdecl *cdecl_parse_english(const char *english);
 .Fd void cdecl_free(struct cdecl *decl);
-
+.Pp
 .Fd size_t cdecl_explain(char *buf, size_t n, struct cdecl *decl);
 .Fd size_t cdecl_declare(char *buf, size_t n, struct cdecl *decl);
-
+.Pp
 .Fd int cdecl_spec_kind(struct cdecl_declspec *spec);
 .Sh DESCRIPTION
 .Nm
@@ -23,7 +23,7 @@ interface only; for details such as what C language features are supported or
 the syntax of English declarations, please see the
 .Xr cdecl99 1
 manual page.
-
+.Pp
 .Nm
 is intended to be portable to any system with a working C implementation that
 at least makes an effort to support C99.  The library maintains no global state
@@ -44,7 +44,7 @@ struct cdecl {
        struct cdecl_declarator *declarators;
 };
 .Ed
-
+.Pp
 At the top level, every declaration consists of one or more declaration
 specifiers followed by one or more full declarators; hence, the
 .Va specifiers
@@ -58,7 +58,7 @@ In the case of the toplevel declaration, the declaration specifiers will be
 identical for all elements of the list.  But when the same kind of list is used
 to represent function parameters, the specifiers may be different for each
 element.
-
+.Pp
 There are four kinds of declaration specifiers: storage-class, function and
 type specifiers, as well as type qualifiers.  All are represented by the
 structure:
@@ -69,13 +69,13 @@ struct cdecl_declspec {
        char *ident;
 };
 .Ed
-
+.Pp
 When multiple declaration specifiers are present, they are represented as
 a singly-linked list, one element for each specifier.  Specifiers can appear
 in any order.  The function
-
+.Pp
 .Fd int cdecl_spec_kind(struct cdecl_declspec *spec);
-
+.Pp
 can be used to determine what kind of specifier
 .Fa spec
 is.  The result is one of the following values:
@@ -86,7 +86,7 @@ is.  The result is one of the following values:
 .It Dv CDECL_SPEC_QUAL Ta Type qualifier.
 .It Dv CDECL_SPEC_FUNC Ta Function specifier.
 .El
-
+.Pp
 The following table describes all the possible types of declaration specifiers.
 .Bl -column ".Dv CDECL_TYPE_IMAGINARY"
 .It Em Em Type              Ta Em Description
@@ -124,7 +124,7 @@ member points to a C string containing the identifier.
 .It Dv CDECL_QUAL_CONST     Ta Fa const      No type qualifier.
 .It Dv CDECL_FUNC_INLINE    Ta Fa inline     No function specifier.
 .El
-
+.Pp
 Declarators are represented by the structure:
 .Bd -literal -offset indent
 struct cdecl_declarator {
@@ -138,7 +138,7 @@ struct cdecl_declarator {
        } u;
 };
 .Ed
-
+.Pp
 There are five types of declarators, distinguished by the
 .Va type
 struct member.  The union
@@ -177,7 +177,7 @@ struct cdecl_pointer {
        struct cdecl_declspec *qualifiers;
 };
 .Ed
-
+.Pp
 If the
 .Va qualifiers
 member is non-null, then it points to the first element of a singly-linked list
@@ -189,7 +189,7 @@ struct cdecl_array {
        uintmax_t length;
 };
 .Ed
-
+.Pp
 If the
 .Va vla
 member is non-null, then this declarator is a variable-length array declarator.
@@ -208,7 +208,7 @@ struct cdecl_function {
        _Bool variadic;
 };
 .Ed
-
+.Pp
 If
 .Va parameters
 is null, then this is a non-prototype function declarator.  Otherwise,
@@ -221,27 +221,27 @@ otherwise).   If
 is true, then the function is variadic.
 .Sh PARSING DECLARATIONS
 To parse a declaration, the function
-
+.Pp
 .Fd struct cdecl *cdecl_parse_decl(const char *declstr);
-
+.Pp
 can be used.  The provided string is parsed as a C declaration.  If successful,
 this function returns a pointer to an abstract syntax tree representing the
 declaration.  If the parse fails for any reason, the function returns NULL.
-
+.Pp
 Similarly, English declarations can be parsed by using the function
-
+.Pp
 .Fd struct cdecl *cdecl_parse_english(const char *english);
-
+.Pp
 When the AST is no longer needed, it must be freed by passing it to the
 function
-
+.Pp
 .Fd void cdecl_free(struct cdecl *decl);
 .Sh RENDERING DECLARATIONS
 On the other hand, the abstract syntax tree can be rendered to a string for
 output.  One can use the function
-
+.Pp
 .Fd size_t cdecl_explain(char *buf, size_t n, struct cdecl *decl);
-
+.Pp
 to format the AST pointed to by
 .Fa decl
 into something resembling English.  At most one full declarator is rendered
@@ -249,7 +249,7 @@ in this way; for declarations with more than one full declarator, this function
 should be called on each
 .Dv struct cdecl
 in the singly-linked list.
-
+.Pp
 In a manner similar to that of
 .Xr snprintf 3 ,
 at most
@@ -269,11 +269,11 @@ were long enough, not including the '\\0' terminator.  Thus, the entire string
 was written if a value less than
 .Fa n
 is returned.
-
+.Pp
 Similarly, the function
-
+.Pp
 .Fd size_t cdecl_declare(char *buf, size_t n, struct cdecl *decl);
-
+.Pp
 will render the AST pointed to by
 .Fa decl
 into C code.
@@ -281,7 +281,7 @@ into C code.
 Nick Bowler <nbowler@draconx.ca>
 .Sh COPYRIGHT
 Copyright \(co 2011 Nick Bowler
-
+.Pp
 Permission is granted to copy, distribute and/or modify this manual under the
 terms of the Do What The Fuck You Want To Public License, version 2.
 .Sh SEE ALSO