version 1.1, 2001/10/02 11:17:00 |
version 1.2, 2002/09/11 07:26:47 |
Line 6 $src=$ARGV[0] || "$ENV{HOME}/PARI/src"; |
|
Line 6 $src=$ARGV[0] || "$ENV{HOME}/PARI/src"; |
|
$tmptags="$src/tags.tmp"; |
$tmptags="$src/tags.tmp"; |
$tags="$src/tags"; |
$tags="$src/tags"; |
|
|
|
@tags=""; $old=""; |
# assume ctags outputs sorted tags (e.g Exuberant Ctags) |
# assume ctags outputs sorted tags (e.g Exuberant Ctags) |
system("ctags -f $tmptags `find $src -name '*.[chs]' -type f -print`"); |
system("ctags -f $tmptags `find $src -name '*.[chs]' -type f -print`"); |
getnames("$src/gp/gp_init.c"); |
getnames("$src/gp/gp_init.c"); |
getnames("$src/language/init.c"); |
getnames("$src/language/init.c"); |
|
geterrs("$src/language/errmsg.c"); |
open(T,"$tmptags"); |
open(T,"$tmptags"); |
@tags=""; $old=""; |
|
for (sort(@gp)) |
for (sort(@gp)) |
{ |
{ |
($a, $b) = split(/#/); |
($a, $b) = split(/#/); |
|
|
} |
} |
} |
} |
while(<T>) { push(@tags,$_); } |
while(<T>) { push(@tags,$_); } |
|
close(T); |
|
|
open(OUT,">$tags"); |
open(OUT,">$tags"); |
print OUT sort(@tags); |
print OUT sort(@tags); |
unlink $tmptags; |
unlink $tmptags; |
|
|
if (/^entree functions_/../^$/) |
if (/^entree functions_/../^$/) |
{ |
{ |
push(@gp,"$2#$1") if (/[^"]*"([^"]*)".*\(void\*\) *([^,]*)/); |
push(@gp,"$2#$1") if (/[^"]*"([^"]*)".*\(void\*\) *([^,]*)/); |
|
} |
|
} |
|
close(A); |
|
} |
|
|
|
sub geterrs |
|
{ |
|
my $f = $_[0]; |
|
open(A,$f); |
|
while (<A>) |
|
{ |
|
if (m,^/(\*\s*\w+\s*\*)/,) |
|
{ |
|
$e = $pat = $1; |
|
$e =~ s/\W*(\w+)\W*/$1/; |
|
push(@tags, "$e\t$f\t/$pat\n"); |
} |
} |
} |
} |
close(A); |
close(A); |