Skip to content

Commit

Permalink
docs-rst: parse-headers.pl: cleanup the documentation
Browse files Browse the repository at this point in the history
Keeping both rst and in-file documentation in sync can be harsh.

So, simplify the script's internal documntation to a bare minimum,
and add a mention to the ReST file with its full documentation.

This way, a quick help is still available at the command line,
while the complete one is maintained at the ReST format.

As we won't be using pad2rst anymore, do a cleanup at the ReST
file.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Signed-off-by: Jonathan Corbet <[email protected]>
  • Loading branch information
mchehab authored and Jonathan Corbet committed Dec 1, 2016
1 parent 293fbd4 commit c339665
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 126 deletions.
22 changes: 3 additions & 19 deletions Documentation/doc-guide/parse-headers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,6 @@ about how to use it inside the Kernel tree.
parse_headers.pl
^^^^^^^^^^^^^^^^

.. NOTE: the man pages below were generated using pod2rst tool:
.. http://search.cpan.org/~dowens/Pod-POM-View-Restructured-0.02/bin/pod2rst
.. If you need to change anything below this point, please do the changes
.. at parse-headers.pl directly, re-run the script and paste the output of
.. the script here.
****
NAME
****

Expand All @@ -33,7 +26,6 @@ parse_headers.pl - parse a C file, in order to identify functions, structs,
enums and defines and create cross-references to a Sphinx book.


********
SYNOPSIS
********

Expand All @@ -43,7 +35,6 @@ SYNOPSIS
Where <options> can be: --debug, --help or --man.


*******
OPTIONS
*******

Expand All @@ -55,20 +46,17 @@ OPTIONS



\ **--help**\
\ **--usage**\

Prints a brief help message and exits.



\ **--man**\

Prints the manual page and exits.

\ **--help**\

Prints a more detailed help message and exits.


***********
DESCRIPTION
***********

Expand Down Expand Up @@ -155,8 +143,6 @@ For both statements, \ **type**\ can be either one of the following:




********
EXAMPLES
********

Expand Down Expand Up @@ -187,15 +173,13 @@ It will make the BAR1 and BAR2 enum symbols to cross reference the foo
symbol at the C domain.


****
BUGS
****


Report bugs to Mauro Carvalho Chehab <[email protected]>


*********
COPYRIGHT
*********

Expand Down
116 changes: 9 additions & 107 deletions Documentation/sphinx/parse-headers.pl
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

GetOptions(
"debug" => \$debug,
'help|?' => \$help,
man => \$man
'usage|?' => \$help,
'help' => \$man
) or pod2usage(2);

pod2usage(1) if $help;
Expand Down Expand Up @@ -354,13 +354,13 @@ =head1 OPTIONS
Put the script in verbose mode, useful for debugging.
=item B<--help>
=item B<--usage>
Prints a brief help message and exits.
=item B<--man>
=item B<--help>
Prints the manual page and exits.
Prints a more detailed help message and exits.
=back
Expand All @@ -379,109 +379,11 @@ =head1 DESCRIPTION
It is also capable of distinguish #define used for specifying a Linux
ioctl.
The EXCEPTIONS_FILE contain two types of statements: B<ignore> or B<replace>.
The syntax for the ignore tag is:
=over 8
ignore B<type> B<name>
=back
The B<ignore> means that it won't generate cross references for a
B<name> symbol of type B<type>.
The syntax for the replace tag is:
=over 8
replace B<type> B<name> B<new_value>
=back
The B<replace> means that it will generate cross references for a
B<name> symbol of type B<type>, but, instead of using the default
replacement rule, it will use B<new_value>.
For both statements, B<type> can be either one of the following:
=over 8
=item B<ioctl>
The ignore or replace statement will apply to ioctl definitions like:
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
=item B<define>
The ignore or replace statement will apply to any other #define found
at C_FILE.
=item B<typedef>
The ignore or replace statement will apply to typedef statements at C_FILE.
=item B<struct>
The ignore or replace statement will apply to the name of struct statements
at C_FILE.
=item B<enum>
The ignore or replace statement will apply to the name of enum statements
at C_FILE.
The EXCEPTIONS_FILE contain two rules to allow ignoring a symbol or
to replace the default references by a custom one.
=item B<symbol>
The ignore or replace statement will apply to the name of enum statements
at C_FILE.
For replace statements, B<new_value> will automatically use :c:type:
references for B<typedef>, B<enum> and B<struct> types. It will use :ref:
for B<ioctl>, B<define> and B<symbol> types. The type of reference can
also be explicitly defined at the replace statement.
=back
=head1 EXAMPLES
ignore define _VIDEODEV2_H
=over 8
Ignore a #define _VIDEODEV2_H at the C_FILE.
=back
ignore symbol PRIVATE
=over 8
On a struct like:
enum foo { BAR1, BAR2, PRIVATE };
It won't generate cross-references for B<PRIVATE>.
=back
replace symbol BAR1 :c:type:`foo`
replace symbol BAR2 :c:type:`foo`
=over 8
On a struct like:
enum foo { BAR1, BAR2, PRIVATE };
It will make the BAR1 and BAR2 enum symbols to cross reference the foo
symbol at the C domain.
=back
Please read Documentation/doc-guide/parse-headers.rst at the Kernel's
tree for more details.
=head1 BUGS
Expand Down

0 comments on commit c339665

Please sign in to comment.