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