[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     ! 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>