7 %byref = ( 'e-popup.xml' =>
8 { 'files' => [ 'e-popup.h', 'e-popup.c' ],
9 'module' => 'e-util' },
12 { 'files' => [ 'e-menu.h', 'e-menu.c' ],
13 'module' => 'e-util' },
16 { 'files' => [ 'e-event.h', 'e-event.c' ],
17 'module' => 'e-util' },
20 { 'files' => [ 'e-config.h', 'e-config.c' ],
21 'module' => 'e-util' },
24 { 'files' => [ 'e-plugin.h', 'e-plugin.c' ],
25 'module' => 'e-util' },
28 { 'files' => [ 'e-import.h', 'e-import.c' ],
29 'module' => 'e-util' },
32 { 'files' => [ 'em-popup.h', 'em-popup.c' ],
36 { 'files' => [ 'em-format-hook.h' , 'em-format-hook.c',
37 'em-format.h', 'em-format.c',
38 'em-format-html.h', 'em-format-html.c' ],
42 foreach $out (keys %byref) {
44 %data = %{$byref{$out}};
45 @files = @
{$data{'files'}};
46 $module = $data{'module'};
48 foreach $file (@files) {
49 $files .= " ../../".$module."/".$file;
51 system("kernel-doc -docbook $files > $out");
58 # %events = ( 'em-events.xml' =>
59 # { 'files' => [ 'em-folder-view.c', 'em-composer-utils.c', 'mail-folder-cache.c' ],
60 # 'module' => 'mail' },
63 # foreach $out (keys %events) {
64 # print "generating events doc $out\n";
65 # %data = %{$events{$out}};
66 # @files = @{$data{'files'}};
67 # $module = $data{'module'};
69 # foreach $file (@files) {
70 # open IN,"<../../$module/$file";
72 # if (m/\@Event: (.*)/) {
77 # if (m/\@Title: (.*)/) {
79 # } elsif (m/\@Target: (.*)/) {
81 # } elsif (m/\* (.*)/) {
86 # if ($target eq "") {
87 # print "Warning: No target defined for event $name ($title)\n";
91 # <title>$title</title>
94 # <colspec colnum="1" colname="field" colwidth="1*"/>
95 # <colspec colnum="2" colname="value" colwidth="4*"/>
96 # <tbody valign="top">
99 # <entry><constant>$name</constant></entry>
102 # <entry>Target</entry>
105 # linkend="$module-hooks-event-$target">$target</link>
109 # <entry>Description</entry>
129 # Generic table builder, still experimental.
139 print "generating doc $out for $type\n";
140 @files = @
{$data{'files'}};
141 $module = $data{'module'};
143 foreach $file (@files) {
146 open IN
,"<../../$module/$file" || die ("Cannot open \"$module/$file\"");
148 if (m/\/\
*\
* \@
$type: (.*)/) {
158 if (m/\@(.*): (.*)/) {
165 } elsif (m/\* (.+)/) {
185 <title>$title</title>
188 $val =~ s/[\n]+$//gos;
189 $val =~ s/\n\n/\<\/simpara\
>\n\
<simpara\
>/g
;
190 print OUT
"<simpara>$val</simpara>\n";
195 <colspec colnum="1" colname="field" colwidth="1*"/>
196 <colspec colnum="2" colname="value" colwidth="4*"/>
200 foreach $key (@blobs) {
204 <entry>$blob{$key}</entry>
210 <entry>Defined</entry>
211 <entry>$module/$file:$line</entry>
227 %hooks = ( 'es-hooks.xml' =>
228 { 'type' => 'HookClass',
229 'files' => [ 'es-menu.c', 'es-event.c' ],
230 'module' => 'shell' },
232 { 'type' => 'HookPoint',
233 'files' => [ 'e-shell-window.c' ],
234 'module' => 'shell' },
235 'es-importers.xml' =>
236 { 'type' => 'HookClass',
237 'files' => [ 'e-import.c' ],
238 'module' => 'e-util' },
241 'files' => [ 'e-shell.c' ],
242 'module' => 'shell' },
245 'files' => [ 'em-folder-view.c', 'em-composer-utils.c', 'mail-folder-cache.c' ],
246 'module' => 'mail' },
248 { 'type' => 'HookPoint-EMPopup',
249 'files' => [ 'em-folder-tree.c', 'em-folder-view.c', 'em-format-html-display.c', '../composer/e-msg-composer-attachment-bar.c' ],
250 'module' => 'mail' },
252 { 'type' => 'HookPoint-ECalPopup',
253 'files' => [ 'gui/e-calendar-view.c', 'gui/calendar-component.c', 'gui/e-calendar-view.c', 'gui/tasks-component.c' ],
254 'module' => 'calendar' },
256 { 'type' => 'HookPoint-EMConfig',
257 'files' => [ 'em-mailer-prefs.c', 'em-account-editor.c', 'em-folder-properties.c', 'em-composer-prefs.c' ],
258 'module' => 'mail' },
260 { 'type' => 'HookPoint-EMMenu',
261 'files' => [ 'em-folder-browser.c', 'em-message-browser.c' ],
262 'module' => 'mail' },
265 foreach $out (keys %hooks) {
266 %data = %{$hooks{$out}};
268 &buildxml
($data{'type'}, $out, \
%data);
271 # this works on my system; you need the docbook-xsl-stylesheets package and xsltproc
272 system("xsltproc /usr/share/xml/docbook/stylesheet/nwalsh/current/html/tldp-sections.xsl evolution-plugin-manual.xml");