[BACK]Return to make_vi_tags CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / src

Annotation of OpenXM_contrib/pari/src/make_vi_tags, Revision 1.1.1.1

1.1       maekawa     1: #!/usr/local/bin/perl
                      2: # Build a (sorted) VI(M) tags file including GP functions
                      3: #
                      4: $src=$ARGV[0] || "$ENV{HOME}/PARI/src";
                      5: $tmptags="$src/tags.tmp";
                      6: $tags="$src/tags";
                      7:
                      8: # assume ctags outputs sorted tags (e.g Exuberant Ctags)
                      9: system("ctags -f $tmptags `find $src -name \*.[chs] -type f -print`");
                     10: getnames("$src/gp/gp_init.c");
                     11: getnames("$src/language/init.c");
                     12: open(T,"$tmptags");
                     13: for (sort(@gp))
                     14: {
                     15:   ($a, $b) = split(/#/);
                     16:   if ($a eq $old) { push(@tags,"$b$rest\n"); next; }
                     17:   $old = $a;
                     18:   while(<T>)
                     19:   {
                     20:     push(@tags,$_);
                     21:     if (/^$a(.*)/) { $rest="$1"; push(@tags,"$b$rest\n"); last; }
                     22:   }
                     23: }
                     24: while(<T>) { push(@tags,$_); }
                     25: open(OUT,">$tags");
                     26: print OUT sort(@tags);
                     27: unlink $tmptags;
                     28:
                     29: sub getnames
                     30: {
                     31:   open(A,$_[0]);
                     32:   while (<A>)
                     33:   {
                     34:     if (/^entree functions_/../^$/)
                     35:     {
                     36:       push(@gp,"$2#$1") if (/[^"]*"([^"]*)".*\(void\*\) *([^,]*)/);
                     37:     }
                     38:   }
                     39:   close(A);
                     40: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>