print "<i>".$args{'functiontype'}."</i>\n"; print "<b>".$args{'function'}."</b>\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print "<i>$1</i><b>$parameter</b>) <i>($2)</i>"; } else { print "<i>".$type."</i> <b>".$parameter."</b>"; } if ($count != $#{$args{'parameterlist'}}) { $count++; print ",\n"; } } print ")\n"; print "<h3>Arguments</h3>\n"; print "<dl>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; print "<dt><b>".$parameter."</b>\n"; print "<dd>"; output_highlight($args{'parameterdescs'}{$parameter_name}); } print "</dl>\n"; output_section_html(@_); print "<hr>\n";} # output intro in htmlsub output_intro_html(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; foreach $section (@{$args{'sectionlist'}}) { print "<h3>$section</h3>\n"; print "<ul>\n"; output_highlight($args{'sections'}{$section}); print "</ul>\n"; } print "<hr>\n";} sub output_section_xml(%) { my %args = %{$_[0]}; my $section; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<refsect1>\n"; print "<title>$section</title>\n"; if ($section =~ m/EXAMPLE/i) { print "<informalexample><programlisting>\n"; } else { print "<para>\n"; } output_highlight($args{'sections'}{$section}); if ($section =~ m/EXAMPLE/i) { print "</programlisting></informalexample>\n"; } else { print "</para>\n"; } print "</refsect1>\n"; }} # output function in XML DocBooksub output_function_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = "API-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>".$args{'function'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <funcsynopsis><funcprototype>\n"; print " <funcdef>".$args{'functiontype'}." "; print "<function>".$args{'function'}." </function></funcdef>\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " <paramdef>$1<parameter>$parameter</parameter>)\n"; print " <funcparams>$2</funcparams></paramdef>\n"; } else { print " <paramdef>".$type; print " <parameter>$parameter</parameter></paramdef>\n"; } } } else { print " <void/>\n"; } print " </funcprototype></funcsynopsis>\n"; print "</refsynopsisdiv>\n"; # print parameters print "<refsect1>\n <title>Arguments</title>\n"; if ($#{$args{'parameterlist'}} >= 0) { print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <varlistentry>\n <term><parameter>$parameter</parameter></term>\n"; print " <listitem>\n <para>\n"; $lineprefix=" "; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para>\n </listitem>\n </varlistentry>\n"; } print " </variablelist>\n"; } else { print " <para>\n None\n </para>\n"; } print "</refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n";} # output struct in XML DocBooksub output_struct_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $id; $id = "API-struct-".$args{'struct'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>".$args{'type'}." ".$args{'struct'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <programlisting>\n"; print $args{'type'}." ".$args{'struct'}." {\n"; foreach $parameter (@{$args{'parameterlist'}}) { if ($parameter =~ /^#/) { print "$parameter\n"; next; } my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; defined($args{'parameterdescs'}{$parameter_name}) || next; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " $1 $parameter) ($2);\n"; } elsif ($type =~ m/^(.*?)\s*(:.*)/) { print " $1 $parameter$2;\n"; } else { print " ".$type." ".$parameter.";\n"; } } print "};"; print " </programlisting>\n"; print "</refsynopsisdiv>\n"; print " <refsect1>\n"; print " <title>Members</title>\n"; print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { ($parameter =~ /^#/) && next; my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; defined($args{'parameterdescs'}{$parameter_name}) || next; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; print " <varlistentry>"; print " <term>$parameter</term>\n"; print " <listitem><para>\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para></listitem>\n"; print " </varlistentry>\n"; } print " </variablelist>\n"; print " </refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n";} # output enum in XML DocBooksub output_enum_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = "API-enum-".$args{'enum'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">enum ".$args{'enum'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>enum ".$args{'enum'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <programlisting>\n"; print "enum ".$args{'enum'}." {\n"; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print " $parameter"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ","; } print "\n"; } print "};"; print " </programlisting>\n"; print "</refsynopsisdiv>\n"; print "<refsect1>\n"; print " <title>Constants</title>\n"; print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <varlistentry>"; print " <term>$parameter</term>\n"; print " <listitem><para>\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para></listitem>\n"; print " </varlistentry>\n"; } print " </variablelist>\n"; print "</refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n";} # output typedef in XML DocBooksub output_typedef_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $id; $id = "API-typedef-".$args{'typedef'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">typedef ".$args{'typedef'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>typedef ".$args{'typedef'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <synopsis>typedef ".$args{'typedef'}.";</synopsis>\n"; print "</refsynopsisdiv>\n"; output_section_xml(@_); print "</refentry>\n\n";} # output in XML DocBooksub output_intro_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id = $args{'module'}; $id =~ s/[^A-Za-z0-9]/-/g; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<refsect1>\n <title>$section</title>\n <para>\n"; if ($section =~ m/EXAMPLE/i) { print "<example><para>\n"; } output_highlight($args{'sections'}{$section}); if ($section =~ m/EXAMPLE/i) { print "</para></example>\n"; } print " </para>\n</refsect1>\n"; } print "\n\n";} # output in XML DocBooksub output_function_gnome { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = $args{'module'}."-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<sect2>\n"; print " <title id=\"$id\">".$args{'function'}."</title>\n"; print " <funcsynopsis>\n"; print " <funcdef>".$args{'functiontype'}." "; print "<function>".$args{'function'}." "; print "</function></funcdef>\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " <paramdef>$1 <parameter>$parameter</parameter>)\n"; print " <funcparams>$2</funcparams></paramdef>\n"; } else { print " <paramdef>".$type; print " <parameter>$parameter</parameter></paramdef>\n"; } } } else { print " <void>\n"; } print " </funcsynopsis>\n"; if ($#{$args{'parameterlist'}} >= 0) { print " <informaltable pgwide=\"1\" frame=\"none\" role=\"params\">\n"; print "<tgroup cols=\"2\">\n"; print "<colspec colwidth=\"2*\">\n"; print "<colspec colwidth=\"8*\">\n"; print "<tbody>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <row><entry align=\"right\"><parameter>$parameter</parameter></entry>\n"; print " <entry>\n"; $lineprefix=" "; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </entry></row>\n"; } print " </tbody></tgroup></informaltable>\n"; } else { print " <para>\n None\n </para>\n"; } # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<simplesect>\n <title>$section</title>\n"; if ($section =~ m/EXAMPLE/i) { print "<example><programlisting>\n"; } else { } print "<para>\n"; output_highlight($args{'sections'}{$section}); print "</para>\n"; if ($section =~ m/EXAMPLE/i) { print "</programlisting></example>\n"; } else { } print " </simplesect>\n"; } print "</sect2>\n\n";} ### output function in mansub output_function_man(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".TH \"$args{'function'}\" 9 \"$args{'function'}\" \"$man_date\" \"Kernel Hacker's Manual\" LINUX\n"; print ".SH NAME\n"; print $args{'function'}." \\- ".$args{'purpose'}."\n"; print ".SH SYNOPSIS\n"; print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n"; $count = 0; my $parenth = "("; my $post = ","; foreach my $parameter (@{$args{'parameterlist'}}) { if ($count == $#{$args{'parameterlist'}}) { $post = ");"; } $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print ".BI \"".$parenth.$1."\" ".$parameter." \") (".$2.")".$post."\"\n"; } else { $type =~ s/([^\*])$/$1 /; print ".BI \"".$parenth.$type."\" ".$parameter." \"".$post."\"\n"; } $count++; $parenth = ""; } print ".SH ARGUMENTS\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print ".IP \"".$parameter."\" 12\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); } foreach $section (@{$args{'sectionlist'}}) { print ".SH \"", uc $section, "\"\n"; output_highlight($args{'sections'}{$section}); }} ### output enum in mansub output_enum_man(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".TH \"$args{'module'}\" 9 \"enum $args{'enum'}\" \"$man_date\" \"API Manual\" LINUX\n"; print ".SH NAME\n"; print "enum ".$args{'enum'}." \\- ".$args{'purpose'}."\n"; Lines 501–1000 of 1883. Previous lines Load more
print "<i>".$args{'functiontype'}."</i>\n"; print "<b>".$args{'function'}."</b>\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print "<i>$1</i><b>$parameter</b>) <i>($2)</i>"; } else { print "<i>".$type."</i> <b>".$parameter."</b>"; } if ($count != $#{$args{'parameterlist'}}) { $count++; print ",\n"; } } print ")\n"; print "<h3>Arguments</h3>\n"; print "<dl>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; print "<dt><b>".$parameter."</b>\n"; print "<dd>"; output_highlight($args{'parameterdescs'}{$parameter_name}); } print "</dl>\n"; output_section_html(@_); print "<hr>\n"; } # output intro in html sub output_intro_html(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; foreach $section (@{$args{'sectionlist'}}) { print "<h3>$section</h3>\n"; print "<ul>\n"; output_highlight($args{'sections'}{$section}); print "</ul>\n"; } print "<hr>\n"; } sub output_section_xml(%) { my %args = %{$_[0]}; my $section; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<refsect1>\n"; print "<title>$section</title>\n"; if ($section =~ m/EXAMPLE/i) { print "<informalexample><programlisting>\n"; } else { print "<para>\n"; } output_highlight($args{'sections'}{$section}); if ($section =~ m/EXAMPLE/i) { print "</programlisting></informalexample>\n"; } else { print "</para>\n"; } print "</refsect1>\n"; } } # output function in XML DocBook sub output_function_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = "API-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>".$args{'function'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <funcsynopsis><funcprototype>\n"; print " <funcdef>".$args{'functiontype'}." "; print "<function>".$args{'function'}." </function></funcdef>\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " <paramdef>$1<parameter>$parameter</parameter>)\n"; print " <funcparams>$2</funcparams></paramdef>\n"; } else { print " <paramdef>".$type; print " <parameter>$parameter</parameter></paramdef>\n"; } } } else { print " <void/>\n"; } print " </funcprototype></funcsynopsis>\n"; print "</refsynopsisdiv>\n"; # print parameters print "<refsect1>\n <title>Arguments</title>\n"; if ($#{$args{'parameterlist'}} >= 0) { print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <varlistentry>\n <term><parameter>$parameter</parameter></term>\n"; print " <listitem>\n <para>\n"; $lineprefix=" "; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para>\n </listitem>\n </varlistentry>\n"; } print " </variablelist>\n"; } else { print " <para>\n None\n </para>\n"; } print "</refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n"; } # output struct in XML DocBook sub output_struct_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $id; $id = "API-struct-".$args{'struct'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>".$args{'type'}." ".$args{'struct'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <programlisting>\n"; print $args{'type'}." ".$args{'struct'}." {\n"; foreach $parameter (@{$args{'parameterlist'}}) { if ($parameter =~ /^#/) { print "$parameter\n"; next; } my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; defined($args{'parameterdescs'}{$parameter_name}) || next; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " $1 $parameter) ($2);\n"; } elsif ($type =~ m/^(.*?)\s*(:.*)/) { print " $1 $parameter$2;\n"; } else { print " ".$type." ".$parameter.";\n"; } } print "};"; print " </programlisting>\n"; print "</refsynopsisdiv>\n"; print " <refsect1>\n"; print " <title>Members</title>\n"; print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { ($parameter =~ /^#/) && next; my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; defined($args{'parameterdescs'}{$parameter_name}) || next; ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; print " <varlistentry>"; print " <term>$parameter</term>\n"; print " <listitem><para>\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para></listitem>\n"; print " </varlistentry>\n"; } print " </variablelist>\n"; print " </refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n"; } # output enum in XML DocBook sub output_enum_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = "API-enum-".$args{'enum'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">enum ".$args{'enum'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>enum ".$args{'enum'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <programlisting>\n"; print "enum ".$args{'enum'}." {\n"; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print " $parameter"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ","; } print "\n"; } print "};"; print " </programlisting>\n"; print "</refsynopsisdiv>\n"; print "<refsect1>\n"; print " <title>Constants</title>\n"; print " <variablelist>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <varlistentry>"; print " <term>$parameter</term>\n"; print " <listitem><para>\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </para></listitem>\n"; print " </varlistentry>\n"; } print " </variablelist>\n"; print "</refsect1>\n"; output_section_xml(@_); print "</refentry>\n\n"; } # output typedef in XML DocBook sub output_typedef_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $id; $id = "API-typedef-".$args{'typedef'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<refentry>\n"; print "<refentryinfo>\n"; print " <title>LINUX</title>\n"; print " <productname>Kernel Hackers Manual</productname>\n"; print " <date>$man_date</date>\n"; print "</refentryinfo>\n"; print "<refmeta>\n"; print " <refentrytitle><phrase id=\"$id\">typedef ".$args{'typedef'}."</phrase></refentrytitle>\n"; print " <manvolnum>9</manvolnum>\n"; print "</refmeta>\n"; print "<refnamediv>\n"; print " <refname>typedef ".$args{'typedef'}."</refname>\n"; print " <refpurpose>\n"; print " "; output_highlight ($args{'purpose'}); print " </refpurpose>\n"; print "</refnamediv>\n"; print "<refsynopsisdiv>\n"; print " <title>Synopsis</title>\n"; print " <synopsis>typedef ".$args{'typedef'}.";</synopsis>\n"; print "</refsynopsisdiv>\n"; output_section_xml(@_); print "</refentry>\n\n"; } # output in XML DocBook sub output_intro_xml(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id = $args{'module'}; $id =~ s/[^A-Za-z0-9]/-/g; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<refsect1>\n <title>$section</title>\n <para>\n"; if ($section =~ m/EXAMPLE/i) { print "<example><para>\n"; } output_highlight($args{'sections'}{$section}); if ($section =~ m/EXAMPLE/i) { print "</para></example>\n"; } print " </para>\n</refsect1>\n"; } print "\n\n"; } # output in XML DocBook sub output_function_gnome { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = $args{'module'}."-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "<sect2>\n"; print " <title id=\"$id\">".$args{'function'}."</title>\n"; print " <funcsynopsis>\n"; print " <funcdef>".$args{'functiontype'}." "; print "<function>".$args{'function'}." "; print "</function></funcdef>\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print " <paramdef>$1 <parameter>$parameter</parameter>)\n"; print " <funcparams>$2</funcparams></paramdef>\n"; } else { print " <paramdef>".$type; print " <parameter>$parameter</parameter></paramdef>\n"; } } } else { print " <void>\n"; } print " </funcsynopsis>\n"; if ($#{$args{'parameterlist'}} >= 0) { print " <informaltable pgwide=\"1\" frame=\"none\" role=\"params\">\n"; print "<tgroup cols=\"2\">\n"; print "<colspec colwidth=\"2*\">\n"; print "<colspec colwidth=\"8*\">\n"; print "<tbody>\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print " <row><entry align=\"right\"><parameter>$parameter</parameter></entry>\n"; print " <entry>\n"; $lineprefix=" "; output_highlight($args{'parameterdescs'}{$parameter_name}); print " </entry></row>\n"; } print " </tbody></tgroup></informaltable>\n"; } else { print " <para>\n None\n </para>\n"; } # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "<simplesect>\n <title>$section</title>\n"; if ($section =~ m/EXAMPLE/i) { print "<example><programlisting>\n"; } else { } print "<para>\n"; output_highlight($args{'sections'}{$section}); print "</para>\n"; if ($section =~ m/EXAMPLE/i) { print "</programlisting></example>\n"; } else { } print " </simplesect>\n"; } print "</sect2>\n\n"; } ## # output function in man sub output_function_man(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".TH \"$args{'function'}\" 9 \"$args{'function'}\" \"$man_date\" \"Kernel Hacker's Manual\" LINUX\n"; print ".SH NAME\n"; print $args{'function'}." \\- ".$args{'purpose'}."\n"; print ".SH SYNOPSIS\n"; print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n"; $count = 0; my $parenth = "("; my $post = ","; foreach my $parameter (@{$args{'parameterlist'}}) { if ($count == $#{$args{'parameterlist'}}) { $post = ");"; } $type = $args{'parametertypes'}{$parameter}; if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { # pointer-to-function print ".BI \"".$parenth.$1."\" ".$parameter." \") (".$2.")".$post."\"\n"; } else { $type =~ s/([^\*])$/$1 /; print ".BI \"".$parenth.$type."\" ".$parameter." \"".$post."\"\n"; } $count++; $parenth = ""; } print ".SH ARGUMENTS\n"; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; $parameter_name =~ s/\[.*//; print ".IP \"".$parameter."\" 12\n"; output_highlight($args{'parameterdescs'}{$parameter_name}); } foreach $section (@{$args{'sectionlist'}}) { print ".SH \"", uc $section, "\"\n"; output_highlight($args{'sections'}{$section}); } } ## # output enum in man sub output_enum_man(%) { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".TH \"$args{'module'}\" 9 \"enum $args{'enum'}\" \"$man_date\" \"API Manual\" LINUX\n"; print ".SH NAME\n"; print "enum ".$args{'enum'}." \\- ".$args{'purpose'}."\n";