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

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

$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);

