X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Firssi%2Fsyntax.pl;fp=apps%2Firssi%2Fsyntax.pl;h=bf10451fe68263b8467c95df875d6d312aebabb2;hb=18d69a0a1fec438e241bb4f431506ed59a34066b;hp=f0ec779b3e31fc57f5c9e98ece8114bfc330a6d8;hpb=f7be6adec0248118cddde9b04522c13cd90568cd;p=silc.git diff --git a/apps/irssi/syntax.pl b/apps/irssi/syntax.pl index f0ec779b..bf10451f 100755 --- a/apps/irssi/syntax.pl +++ b/apps/irssi/syntax.pl @@ -10,8 +10,33 @@ # Remember to include the asterisk ('*'). $SRC_PATH='src'; -$FOO = `find src -name '*.c' -exec perl findsyntax.pl \{\} \\; | sed 's/.*SYNTAX: //' > irssi_syntax`; +@files = `find src -name '*.c'`; +foreach $file (@files) { + open (FILE, "$file"); + while () { + chomp; + if (m!/\*.SYNTAX\:! || $state) { + s/^\s+/ /; + s/.*SYNTAX: //; + if (/^ [A-Z]+/) { + push @lines, $line; + $line = ""; + s/^ //; + } + $line .= $_; + if (m!\*/!) { + $line =~ s!\*/!!; + push @lines, $line; + $line = ""; + $state = 0; + } else { + $state = 1; + } + } + } + close (FILE); +} while () { next if (/Makefile/); @@ -21,9 +46,8 @@ while () { $count = 0; foreach $DATARIVI (@data) { if ($DATARIVI =~ /\@SYNTAX\:(.+)\@/) { - $etsittava = "\U$1 "; - $SYNTAX = `grep \'^$etsittava\' irssi_syntax`; - $SYNTAX =~ s/\*\///g; + $SYNTAX = join "\n", (grep /^\U$1 /, @lines); + $SYNTAX .= "\n" if $SYNTAX; $SYNTAX =~ s/ *$//; $SYNTAX =~ s/ *\n/\n/g; # add %| after "COMMAND SUB " so parameters will indent correctly @@ -54,4 +78,3 @@ while () { print NEWFILE @data; close (NEWFILE); } -unlink "irssi_syntax";