X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=doc%2Fman%2Fmkcvman;h=c185e3d29c9439718e0e38817bf40ade5ecf5734;hb=c8c6be241f782e0d3fecb0fbfb042fd28a3f5dad;hp=aea3503e0507769a2239d0a6d35928abff0931a3;hpb=e7e964564de02c1e2e73eb30fd72bf92a8526fd4;p=doldaconnect.git diff --git a/doc/man/mkcvman b/doc/man/mkcvman index aea3503..c185e3d 100755 --- a/doc/man/mkcvman +++ b/doc/man/mkcvman @@ -4,11 +4,15 @@ for $filename (@ARGV) { open(SRC, $filename) || die "$filename: $!"; $state = 0; delete @tvars{keys %tvars}; + $module = ""; while() { chomp; - if(/struct configvar/ && /\[\]/) { + if(($state == 0) && /struct configvar/ && /\[\]/) { $state = 1; } + if(($state == 0) && /struct module/ && /=/) { + $state = 3; + } if(($state == 1) && /^\s*\/\*\*/) { $curdoc = ""; $state = 2; @@ -47,15 +51,27 @@ for $filename (@ARGV) { } $curdoc .= $_; } + if(($state == 3) && /\.name\s*=\s*\"([^\"]+)\"/) { + $module = $1; + } + if(($state == 3) && /\s*\};$/) { + $state = 0; + } } close SRC; - $module = $filename; - $module =~ s/^.*\///; - $module =~ s/\..*$//; - for $var (keys %tvars) { - $vars{"$module.$var"} = $tvars{$var}; + #$module = $filename; + #$module =~ s/^.*\///; + #$module =~ s/\..*$//; + if($module eq "") { + print STDERR "$filename is not a module\n"; + } else { + print STDERR ("$filename is module $module and has " . scalar(keys %tvars) . " variables\n"); + for $var (keys %tvars) { + $vars{"$module.$var"} = $tvars{$var}; + } } } +print STDERR ("total number of variables: " . scalar(keys %vars) . "\n"); $types{"BOOL"} = "boolean"; $types{"INT"} = "integer";