#!/usr/bin/perl
# vim: set ts=4:

$manvolnum="3";
$header="#include &lt;comedilib.h&gt;";

$end = "";
$refentry_end = "";

print
"<!--This file is autogenerated.  Do not edit-->
<section id=\"functionreference\">
  <title>
    Comedi Function Reference
  </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>
  </refmeta>

  <refnamediv>
    <refname>$funcname</refname>
    <refpurpose>$refpurpose</refpurpose>
  </refnamediv>
";
		$end = "";
	}elsif($s =~ m/^Retval: (.*)/){
		print
"  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>$header</funcsynopsisinfo>
      <funcprototype>
        <funcdef>$1 <function>$funcname</function></funcdef>
";
		$end =
"      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
";
	}elsif($s =~ m/^Param: (.*)/){
		$p = $1;
		$p =~ m/(.*) (.*)/;
		print
"        <paramdef>$1 <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/^ (.*)/){
		print "$1\n";
	}
}

print $end;
print $refentry_end;
print
"</section>
";

exit(0);

