X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=doc%2Fman%2Fmkcvman;h=d2297bf36d3fb64b62b6699251b1aa801a7461a8;hb=aba46e776023b411cdf5f586a0ca81464a1cf319;hp=aea3503e0507769a2239d0a6d35928abff0931a3;hpb=e2d498ab79e7211521ef80608803a8f2a8d4111c;p=doldaconnect.git diff --git a/doc/man/mkcvman b/doc/man/mkcvman index aea3503..d2297bf 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,13 +51,24 @@ 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}; + } } }