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

File: [local] / OpenXM_contrib / pari / src / Attic / make_vi_tags (download)

Revision 1.1.1.1 (vendor branch), Sun Jan 9 17:35:30 2000 UTC (24 years, 5 months ago) by maekawa
Branch: PARI_GP
CVS Tags: maekawa-ipv6, VERSION_2_0_17_BETA, RELEASE_20000124, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2
Changes since 1.1: +0 -0 lines

Import PARI/GP 2.0.17 beta.

#!/usr/local/bin/perl
# Build a (sorted) VI(M) tags file including GP functions
#
$src=$ARGV[0] || "$ENV{HOME}/PARI/src";
$tmptags="$src/tags.tmp";
$tags="$src/tags";

# assume ctags outputs sorted tags (e.g Exuberant Ctags)
system("ctags -f $tmptags `find $src -name \*.[chs] -type f -print`");
getnames("$src/gp/gp_init.c");
getnames("$src/language/init.c");
open(T,"$tmptags");
for (sort(@gp))
{
  ($a, $b) = split(/#/);
  if ($a eq $old) { push(@tags,"$b$rest\n"); next; }
  $old = $a;
  while(<T>)
  {
    push(@tags,$_);
    if (/^$a(.*)/) { $rest="$1"; push(@tags,"$b$rest\n"); last; }
  }
}
while(<T>) { push(@tags,$_); }
open(OUT,">$tags");
print OUT sort(@tags);
unlink $tmptags;

sub getnames
{
  open(A,$_[0]);
  while (<A>)
  {
    if (/^entree functions_/../^$/)
    {
      push(@gp,"$2#$1") if (/[^"]*"([^"]*)".*\(void\*\) *([^,]*)/);
    }
  }
  close(A);
}