comedilib/doc/mkref
Ian Abbott cc82998ec7 doc/mkref: Add some refmiscinfo for man pages
Make the man pages a bit neater.
2012-05-01 16:54:39 +01:00

135 lines
2.3 KiB
Perl
Executable file

#!/usr/bin/perl
# vim: set ts=4:
$manvolnum="3";
$header="#include <comedilib.h>";
$end = "";
$refentry_end = "";
$s = <>;
chomp $s;
print
'<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % comedilib_entities SYSTEM "comedilib.ent">
%comedilib_entities;
]>
<!--This file is autogenerated. Do not edit-->
<section>
<title>';
print $s;
print '</title>
';
while($s = <>){
chomp $s;
if($s =~ m/^Function: (.*)/){
$funcname = $1;
$refpurpose = "";
if($s =~ m/^Function: (.*) -- (.*)/){
$funcname = $1;
$refpurpose = $2;
}
$refname = $funcname;
$refname =~ s/_/-/g;
$refname = "func-ref-" . $refname;
print $end;
print $refentry_end;
$refentry_end =
"</refentry>
";
print
"<refentry id=\"$refname\">
<refmeta>
<refentrytitle>$funcname</refentrytitle>
<manvolnum>$manvolnum</manvolnum>
<refmiscinfo class=\"source\">Comedi</refmiscinfo>
<refmiscinfo class=\"manual\">Comedi reference</refmiscinfo>
</refmeta>
<refnamediv>
<refname>$funcname</refname>
<refpurpose>$refpurpose</refpurpose>
</refnamediv>
";
$end = "";
}elsif($s =~ m/^Retval: (.*)/){
print
" <refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>$header</funcsynopsisinfo>
<funcprototype>
<funcdef><type>$1</type> <function>$funcname</function></funcdef>
";
$end =
" </funcprototype>
</funcsynopsis>
</refsynopsisdiv>
";
}elsif($s =~ m/^Param:[[:space:]]*void/){
print
" <void/>
"
}elsif($s =~ m/^Param: (.*)/){
$p = $1;
$p =~ m/(.*) (.*)/;
print
" <paramdef><type>$1</type> <parameter>$2</parameter></paramdef>
"
}elsif($s =~ m/^Description:/){
print $end;
print
" <refsect1>
<title>
Description
</title>
<para>
";
$end =
" </para>
</refsect1>
";
}elsif($s =~ m/^Returns:/){
print $end;
print
" <refsect1>
<title>
Return value
</title>
<para>
";
$end =
" </para>
</refsect1>
";
}elsif($s =~ m/^Status: (.*)/){
print $end;
print
" <refsect1>
<title>
Status
</title>
<para>
$1
";
$end =
" </para>
</refsect1>
";
}elsif($s eq ""){
print "</para><para>\n";
}elsif($s =~ m/^[\s](.*)/){
print "$1\n";
}
}
print $end;
print $refentry_end;
print "</section>";
exit(0);