[BACK]Return to tigers.patch CVS log [TXT][DIR] Up to [local] / OpenXM / src / tigers

Annotation of OpenXM/src/tigers/tigers.patch, Revision 1.5

1.4       ohara       1: diff -urN TiGERS_0.9.orig/Makefile TiGERS_0.9/Makefile
                      2: --- TiGERS_0.9.orig/Makefile   1999-06-12 07:05:52.000000000 +0900
1.5     ! noro        3: +++ TiGERS_0.9/Makefile        2020-11-01 10:49:33.000000000 +0900
1.4       ohara       4: @@ -2,7 +2,7 @@
                      5:
                      6:  # specify compiler and compiler flags
                      7:  # note to use profiling need -pg option for both compiling and linking
                      8: -CC = gcc
                      9: +#CC = gcc
                     10:  CFLAGS = -O3
                     11:
                     12:  Lib_Dirs =
1.1       maekawa    13: diff -urN TiGERS_0.9.orig/NOTE.txt TiGERS_0.9/NOTE.txt
1.5     ! noro       14: --- TiGERS_0.9.orig/NOTE.txt   1970-01-01 09:00:00.000000000 +0900
        !            15: +++ TiGERS_0.9/NOTE.txt        2020-11-01 10:49:33.000000000 +0900
1.1       maekawa    16: @@ -0,0 +1 @@
                     17: +This is a working directory by NT.  1999, 6/26.
                     18: diff -urN TiGERS_0.9.orig/README.change TiGERS_0.9/README.change
1.5     ! noro       19: --- TiGERS_0.9.orig/README.change      1970-01-01 09:00:00.000000000 +0900
        !            20: +++ TiGERS_0.9/README.change   2020-11-01 10:49:33.000000000 +0900
1.1       maekawa    21: @@ -0,0 +1 @@
                     22: +The original source code of TiGERS is in OpenXM_contib/TiGERS_0.9.
                     23: diff -urN TiGERS_0.9.orig/binomial.c TiGERS_0.9/binomial.c
1.5     ! noro       24: --- TiGERS_0.9.orig/binomial.c 1999-06-12 07:05:51.000000000 +0900
        !            25: +++ TiGERS_0.9/binomial.c      2020-11-01 10:49:33.000000000 +0900
1.1       maekawa    26: @@ -12,7 +12,7 @@
                     27:  #include<stdlib.h>
                     28:  #include "utils.h"
                     29:  #include "binomial.h"
                     30: -
                     31: +extern int NT;
                     32:
                     33:  /*
                     34:  **-------------ring defs-----------------------------------------------------
                     35: @@ -98,12 +98,21 @@
                     36:  */
                     37:  void print_monomial(FILE *of, int *exps){
                     38:    int i,jk=0;
                     39: -  for(i=0;i<ring_N;i++){
                     40: -    if (exps[i]!=0){
                     41: -       if (jk!=0) fprintf(of,"*");
                     42: -       else jk=1;
                     43: -       ring_putvar(of,i);
                     44: -       if (exps[i]>1) fprintf(of,"^%d",exps[i]);
                     45: +  if (NT == 1) {
                     46: +    fprintf(of,"[");
                     47: +    for (i=0; i<ring_N; i++) {
                     48: +      fprintf(of,"%d",exps[i]);
                     49: +      if (i != ring_N-1) fprintf(of," , ");
                     50: +    }
                     51: +    fprintf(of,"]");
                     52: +  }else{
                     53: +    for(i=0;i<ring_N;i++){
                     54: +      if (exps[i]!=0){
                     55: +      if (jk!=0) fprintf(of,"*");
                     56: +      else jk=1;
                     57: +      ring_putvar(of,i);
                     58: +      if (exps[i]>1) fprintf(of,"^%d",exps[i]);
                     59: +      }
                     60:      }
                     61:    }
                     62:  }
                     63: @@ -309,17 +318,33 @@
                     64:  **
                     65:  */
                     66:  void binomial_print(FILE *of, binomial b){
                     67: -   if (b==0) fprintf(of,"(NULL)");
                     68: -   else {
                     69: -     if (b->ff==FACET) fprintf(of,"# ");
                     70: -     else if (b->ff==NONFACET) fprintf(of,"! ");
                     71: -     /*else if (b->ff==UNKNOWN) fprintf(of,"? ");*/
                     72: -     print_monomial(of,b->exps1);
                     73: -     if (b->bf==BINOMIAL){
                     74: -      fprintf(of,"-");
                     75: -      print_monomial(of,b->exps2);
                     76: -     }
                     77: -   }
                     78: +  if (NT == 1) {
                     79: +    if (b==0) fprintf(of,"[ ]");
                     80: +    else {
                     81: +      /* if (b->ff==FACET) fprintf(of,"# ");
                     82: +       else if (b->ff==NONFACET) fprintf(of,"! "); */
                     83: +      /*else if (b->ff==UNKNOWN) fprintf(of,"? ");*/
                     84: +      fprintf(of,"[");
                     85: +      print_monomial(of,b->exps1);
                     86: +      if (b->bf==BINOMIAL){
                     87: +      fprintf(of," , ");
                     88: +      print_monomial(of,b->exps2);
                     89: +      fprintf(of,"]");
                     90: +      }
                     91: +    }
                     92: +  }else{
                     93: +    if (b==0) fprintf(of,"(NULL)");
                     94: +    else {
                     95: +      if (b->ff==FACET) fprintf(of,"# ");
                     96: +      else if (b->ff==NONFACET) fprintf(of,"! ");
                     97: +      /*else if (b->ff==UNKNOWN) fprintf(of,"? ");*/
                     98: +      print_monomial(of,b->exps1);
                     99: +      if (b->bf==BINOMIAL){
                    100: +      fprintf(of,"-");
                    101: +      print_monomial(of,b->exps2);
                    102: +      }
                    103: +    }
                    104: +  }
                    105:  }
                    106:
                    107:  /*
                    108: diff -urN TiGERS_0.9.orig/call.c TiGERS_0.9/call.c
1.5     ! noro      109: --- TiGERS_0.9.orig/call.c     1999-06-12 07:05:52.000000000 +0900
        !           110: +++ TiGERS_0.9/call.c  2020-11-01 10:49:33.000000000 +0900
1.1       maekawa   111: @@ -15,6 +15,8 @@
                    112:  #include "gset.h"
                    113:  #include "matrices.h"
                    114:
                    115: +int NT = 1;
                    116: +
                    117:  /*
                    118:  ** write a description of program usage to stderr
                    119:  */
1.3       ohara     120: @@ -68,7 +70,7 @@
                    121:    exit(-1);
                    122:  }
                    123:
                    124: -FILE *infile=stdin, *outfile=stdout;
                    125: +FILE *infile, *outfile;
                    126:  extern int rsearch_cache;
                    127:  extern int print_tree;
                    128:  extern int  print_init;
1.1       maekawa   129: @@ -87,7 +89,7 @@
                    130:
                    131:  #define MATFOUND 1
                    132:  #define GSETFOUND 2
                    133: -main(int argc, char **argv ){
                    134: +main2(int argc, char **argv ){
                    135:   char *c,cc, *prog=argv[0], *ifname=0, *ofname=0;
                    136:   int tmp,acnt,stat=0,counter;
                    137:   gset G1=0,gset_toric_ideal();
1.3       ohara     138: @@ -100,6 +102,10 @@
                    139:    print_tree=FALSE;
                    140:    print_init=FALSE;
                    141:
                    142: +  /* added by noro */
                    143: +  infile = stdin;
                    144: +  outfile = stdout;
                    145: +
                    146:    /* parse command line */
                    147:    while (--argc > 0 && (*++argv)[0] == '-'){
                    148:      acnt=0;
                    149: @@ -205,6 +211,29 @@
1.1       maekawa   150:     }
                    151:    }
                    152:
                    153: +  if (NT == 1) {
                    154: +
                    155: +    fprintf(outfile,"[\n");
                    156: +    /* perform reverse search if desired*/
                    157: +    if (root_only==FALSE){
                    158: +      if (use_exsearch==FALSE){
                    159: +      /* should double check we are at root */
                    160: +      tt=clock();
                    161: +      counter=rsearch(G1);
                    162: +      tt=(clock()-tt)/CLOCKS_PER_SEC;
                    163: +      fprintf(outfile,"\n");
                    164: +      } else {
                    165: +      tt=clock();
                    166: +      counter=exsearch(G1);
                    167: +      tt=(clock()-tt)/CLOCKS_PER_SEC;
                    168: +      fprintf(outfile,"\n");
                    169: +      }
                    170: +    }
                    171: +
                    172: +    fprintf(outfile,"]\n");
                    173: +    goto epilogue ;
                    174: +  }
                    175: +  /* if NT != 1, then start the followings. */
                    176:    /* output first GB if desired */
                    177:    fprintf(outfile,"%% starting GB:\n");
                    178:    fprintf(outfile,"R: %d\n",ring_N);
1.3       ohara     179: @@ -314,15 +343,119 @@
1.1       maekawa   180:      return 0;
                    181:      }
                    182:    }
                    183: +
                    184: + epilogue: ;
                    185:    /* clean up */
                    186:    LP_free_space();
                    187:    if (G1!=0) gset_free(G1);
                    188:  }
                    189:
                    190:
                    191: +/************************    NT ***************************/
                    192: +static int findNextToken(char *is, int start)
                    193: +{
                    194: +  if (start == -1) goto endtext ;
                    195: +  while ( is[start] <= ' ') {
                    196: +    if (is[start] == '\0' ) goto endtext ;
                    197: +    start++;
                    198: +  }
                    199: +  while ( is[start] > ' ') {
                    200: +    if (is[start] == '\0') goto endtext ;
                    201: +    start++;
                    202: +  }
                    203: +  while ( is[start] <= ' ') {
                    204: +    if (is[start] == '\0' ) goto endtext ;
                    205: +    start++;
                    206: +  }
                    207: +  return(start);
                    208: + endtext: ;
                    209: +  fprintf(stderr,"findNextToken: end of the text.\n");
                    210: +  return(-1);
                    211: +}
                    212: +int **imatrix_read_from_string(char *is,int *m, int *n) {
                    213: +  char c;
                    214: +  int i,j;
                    215: +  int **M;
                    216: +  int pt = 0;
                    217: +
                    218: +  /*  2 3 :
                    219: +      1 1 1
                    220: +      0 1 2
                    221: +  */
                    222: +  /* read in matrix dimensions and initialize matrix */
                    223: +  sscanf(is,"%d %d :",m,n);
                    224: +  M=new_imatrix(*m,*n);
                    225: +  pt = findNextToken(is,pt); /* n */
                    226: +  pt = findNextToken(is,pt); /* : */
                    227: +
                    228: +  /* read in matrix entrees */
                    229: +  for(i=0;i<*m;i++){
                    230: +    for(j=0;j<*n;j++){
                    231: +      pt = findNextToken(is,pt);
                    232: +      sscanf(&(is[pt]),"%d",&(IMref(M,i,j)));
                    233: +    }
                    234: +  }
                    235: +
                    236: +  return M;
                    237: +}
1.3       ohara     238: +
1.1       maekawa   239: +tiger_executeString_M(char *is) {
                    240: +  char *c,cc, *prog="tigers", *ifname=0, *ofname=0;
                    241: +  int tmp,acnt,stat=0,counter;
                    242: +  gset G1=0,gset_toric_ideal();
                    243: +  int **M=0,Mn,Mm;
                    244: +  double tt;
1.3       ohara     245: +
1.1       maekawa   246: +  /* initialize parameters */
                    247: +  root_only=FALSE;
                    248: +  rsearch_cache=TRUE;
                    249: +  print_tree=FALSE;
                    250: +  print_init=FALSE;
1.3       ohara     251: +
1.1       maekawa   252: +  if ((M=imatrix_read_from_string(is,&Mm,&Mn))==0){
                    253: +     fprintf(stderr,"%s: imatrix_read() failed\n",prog);
                    254: +     exit(1);
                    255: +  }
                    256: +  if (ring_N==0) ring_set(Mn);
                    257: +  else if (ring_N!=Mn) {
                    258: +    fprintf(stderr,"%s: Matrix collum and ring dimensions must agree\n",prog);
                    259: +    exit(1);
                    260: +  }
                    261: +  stat=MATFOUND;
                    262:
                    263:
                    264: +  /* ensure we have root */
                    265: +  if (stat==MATFOUND){
                    266: +   G1=gset_toric_ideal(M,Mm,Mn);
                    267: +  }
                    268:
                    269: +  fprintf(outfile,"[\n");
                    270: +  /* perform reverse search if desired*/
                    271: +  if (root_only==FALSE){
                    272: +    if (use_exsearch==FALSE){
                    273: +      /* should double check we are at root */
                    274: +      tt=clock();
                    275: +      counter=rsearch(G1);
                    276: +      tt=(clock()-tt)/CLOCKS_PER_SEC;
                    277: +      fprintf(outfile,"\n");
                    278: +    } else {
                    279: +      tt=clock();
                    280: +      counter=exsearch(G1);
                    281: +      tt=(clock()-tt)/CLOCKS_PER_SEC;
                    282: +      fprintf(outfile,"\n");
                    283: +    }
                    284: +  }
1.3       ohara     285:
1.1       maekawa   286: +  fprintf(outfile,"]\n");
                    287: +  LP_free_space();
                    288: +  if (G1!=0) gset_free(G1);
                    289: +}
1.3       ohara     290:
                    291:
1.2       takayama  292: +main(int argc, char *argv[]) { infile=stdin; outfile=stdout;
1.1       maekawa   293: +  if (argc > 1) {
                    294: +    tiger_executeString_M(argv[1]);
                    295: +  }else{
                    296: +    tiger_executeString_M("2 4 : 1 1 1 1    0 1 2 3");
                    297: +  }
                    298: +}
                    299: diff -urN TiGERS_0.9.orig/gset.c TiGERS_0.9/gset.c
1.5     ! noro      300: --- TiGERS_0.9.orig/gset.c     1999-06-12 07:05:51.000000000 +0900
        !           301: +++ TiGERS_0.9/gset.c  2020-11-01 10:49:33.000000000 +0900
1.1       maekawa   302: @@ -13,6 +13,7 @@
                    303:  #include "gset.h"
                    304:  #include "matrices.h"
                    305:  #include "Rsimp.h"
                    306: +extern int NT;
                    307:
                    308:  /* uncomment the following to cause use sainity checks (not fully tested)*/
                    309:  /*
                    310: @@ -81,12 +82,21 @@
                    311:  void gset_print(FILE *of,gset g){
                    312:    binomial b;
                    313:
                    314: -  fprintf(of,"{");
                    315: -  for(b=g->bottom;b!=0;b=b->next){
                    316: -    binomial_print(of,b);
                    317: -    if (b->next!=0) fprintf(of,", ");
                    318: +  if (NT == 1) {
                    319: +    fprintf(of,"[");
                    320: +    for(b=g->bottom;b!=0;b=b->next){
                    321: +      binomial_print(of,b);
                    322: +      if (b->next!=0) fprintf(of," , ");
                    323: +    }
                    324: +    fprintf(of,"]");
                    325: +  }else{
                    326: +    fprintf(of,"{");
                    327: +    for(b=g->bottom;b!=0;b=b->next){
                    328: +      binomial_print(of,b);
                    329: +      if (b->next!=0) fprintf(of,", ");
                    330: +    }
                    331: +    fprintf(of,"}");
                    332:    }
                    333: -  fprintf(of,"}");
                    334:  }
                    335:
                    336:  /*
1.5     ! noro      337: diff -urN TiGERS_0.9.orig/gset.h TiGERS_0.9/gset.h
        !           338: --- TiGERS_0.9.orig/gset.h     1999-06-12 07:05:52.000000000 +0900
        !           339: +++ TiGERS_0.9/gset.h  2020-11-01 10:59:44.000000000 +0900
        !           340: @@ -40,9 +40,17 @@
        !           341:  gset gset_toric_ideal(int **,int,int);
        !           342:  void gset_rgb(gset g, int (*comp)(monomial,monomial));
        !           343:
        !           344: -
        !           345: -
        !           346: -
        !           347: -
        !           348: -
        !           349: -
        !           350: +void binomial_copy(binomial src,binomial dest);
        !           351: +void vertex_print(gset g1);
        !           352: +int rsearch(gset g1);
        !           353: +int exsearch(gset g1);
        !           354: +void LP_free_space();
        !           355: +int ring_read(FILE *infile);
        !           356: +void print_monomial(FILE *of, int *exps);
        !           357: +int binomial_compair(binomial b1,binomial b2);
        !           358: +void reducetrail(binomial b1, binomial b2);
        !           359: +void binomial_bumpto(binomial b1, binomial b2);
        !           360: +int monomial_rel_prime(monomial m1, monomial m2);
        !           361: +int lp_isfacet(gset g,binomial b);
        !           362: +void gset_facet_print(FILE *of,gset g);
        !           363: +int ihermite(int **S,int **U,int m, int n);
1.1       maekawa   364: diff -urN TiGERS_0.9.orig/memo.txt TiGERS_0.9/memo.txt
1.5     ! noro      365: --- TiGERS_0.9.orig/memo.txt   1970-01-01 09:00:00.000000000 +0900
        !           366: +++ TiGERS_0.9/memo.txt        2020-11-01 10:49:33.000000000 +0900
1.1       maekawa   367: @@ -0,0 +1,33 @@
                    368: +Open XM $B2=$O#2$H$*$j$NJ}K!$,$"$j(B.  1999, 6/26
                    369: +$B0l$D$O(B, $B=PNO$r%Q!<%5$GM}2r$9$kJ}K!!#(B
                    370: +$B$b$&$R$H$D$O$Q$C$A$7$F$7$^$&J}K!(B.
                    371: +
                    372: +int NT = 1 ;
                    373: +
                    374: +yama2:S/Ti $B$,:n6H%G%#%l%/%H%j(B.
                    375: +
                    376: +print_monomial (binomial.c)  $B$r%j%9%H7A<0$KJQ99(B.
                    377: +$B:G=*E*$K$O(B fprintf $B$G$O$J$/(B, $B%j%9%H$r9=@.$7$FJV$9$h$&$KJQ99$G$-$k$H;W$&(B.
                    378: +$B$3$A$i$NJ}$,$$$$$+(B. $B$3$A$i$O(B NT = 2 $B$G$d$k$3$H$K$7$h$&(B.
                    379: +
                    380: +binomial_print
                    381: +
                    382: +gset_print   (gset.c)    Grobner basis $B$r%W%j%s%H$9$k(B.
                    383: +
                    384: +vertex_print  (tiger.c)  vertex $B$r%W%j%s%H$9$k(B.
                    385: +
                    386: +call.c $B$,(B top level.  main $B$b$"$k$h(B.
                    387: +
                    388: +imatrix_read $B$r(B, string $B$h$jFI$`$h$&$K$+$($F(B,
                    389: +$B<!$N%3%^%s%I$r<B9T$G$-$k$h$&$K$7$?!#(B
                    390: +main(int argc, char *argv[]) {
                    391: +  if (argc > 1) {
                    392: +    tiger_executeString_M(argv[1]);
                    393: +  }else{
                    394: +    tiger_executeString_M("2 4 : 1 1 1 1    0 1 2 3");
                    395: +  }
                    396: +}
                    397: +
                    398: +---  TiGER $B$N7P83$O(B, $B>.$5$$%=%U%H$r$$$+$K(B Open XM server $B2=$9$k$+$N(B
                    399: +---  $B$h$$7P83$K$J$k$H;W$&(B.  $B$3$N7P83$r%W%m%0%i%`:nK!$H$7$F5-O?$9$k$N$O(B
                    400: +---  $BBg;v$G$"$m$&(B. $B$N$3$j$OF|K\$G$d$k(B.  $B$"$H$O(B, $B5i?t2r$N9=@.%W%m%0%i%`(B.
                    401: diff -urN TiGERS_0.9.orig/tigers.c TiGERS_0.9/tigers.c
1.5     ! noro      402: --- TiGERS_0.9.orig/tigers.c   1999-06-12 07:05:51.000000000 +0900
        !           403: +++ TiGERS_0.9/tigers.c        2020-11-01 10:49:33.000000000 +0900
1.1       maekawa   404: @@ -12,6 +12,7 @@
                    405:  #include "utils.h"
                    406:  #include "gset.h"
                    407:  int rsearch_cache=TRUE;
                    408: +extern int NT;
                    409:
                    410:  /*
                    411:  ** Output initial ideals and numbers of facets at each stage.
                    412: @@ -32,27 +33,31 @@
                    413:  #define max(a,b) (((a)>(b))?(a):(b))
                    414:  #define min(a,b) (((a)<(b))?(a):(b))
                    415:  void vertex_print(gset g1){
                    416: -  stats_maxfacets=max(gset_nfacets(g1),stats_maxfacets);
                    417: -  stats_maxelts=max(gset_nelts(g1),stats_maxelts);
                    418: -  stats_maxdeg=max(gset_deg(g1),stats_maxdeg);
                    419: -  if (stats_minfacets<0) stats_minfacets=gset_nfacets(g1);
                    420: -  else stats_minfacets=min(stats_minfacets,gset_nfacets(g1));
                    421: -  if (stats_minelts<0) stats_minelts=gset_nelts(g1);
                    422: -  else stats_minelts=min(stats_minelts,gset_nelts(g1));
                    423: -  if (stats_mindeg<0) stats_mindeg=gset_deg(g1);
                    424: -  else stats_mindeg=min(stats_mindeg,gset_deg(g1));
                    425: -  fprintf(outfile,"Vtx: %d (%d facets/%d binomials/degree %d)\n",
                    426: -         gset_id(g1),gset_nfacets(g1),gset_nelts(g1),gset_deg(g1));
                    427: -   if (print_init==TRUE){
                    428: -        fprintf(outfile,"    Initial ideal:");gset_init_print(outfile,g1);
                    429: -        fprintf(outfile,"\n  Facet Binomials:");gset_facet_print(outfile,g1);
                    430: -   }
                    431: -   else  gset_print(outfile,g1);
                    432: -   if (print_tree==TRUE && rsearch_cache==TRUE && gset_cache_vtx(g1)!=0){
                    433: +  if (NT == 1) {
                    434: +    gset_print(outfile,g1); fprintf(outfile," ,\n");
                    435: +  }else{
                    436: +    stats_maxfacets=max(gset_nfacets(g1),stats_maxfacets);
                    437: +    stats_maxelts=max(gset_nelts(g1),stats_maxelts);
                    438: +    stats_maxdeg=max(gset_deg(g1),stats_maxdeg);
                    439: +    if (stats_minfacets<0) stats_minfacets=gset_nfacets(g1);
                    440: +    else stats_minfacets=min(stats_minfacets,gset_nfacets(g1));
                    441: +    if (stats_minelts<0) stats_minelts=gset_nelts(g1);
                    442: +    else stats_minelts=min(stats_minelts,gset_nelts(g1));
                    443: +    if (stats_mindeg<0) stats_mindeg=gset_deg(g1);
                    444: +    else stats_mindeg=min(stats_mindeg,gset_deg(g1));
                    445: +    fprintf(outfile,"Vtx: %d (%d facets/%d binomials/degree %d)\n",
                    446: +          gset_id(g1),gset_nfacets(g1),gset_nelts(g1),gset_deg(g1));
                    447: +    if (print_init==TRUE){
                    448: +      fprintf(outfile,"    Initial ideal:");gset_init_print(outfile,g1);
                    449: +      fprintf(outfile,"\n  Facet Binomials:");gset_facet_print(outfile,g1);
                    450: +    }
                    451: +    else  gset_print(outfile,g1);
                    452: +    if (print_tree==TRUE && rsearch_cache==TRUE && gset_cache_vtx(g1)!=0){
                    453:        fprintf(outfile,"\n  Reducing Edge: [%d,%d]",
                    454:                gset_id(g1),gset_id(gset_cache_vtx(g1)));
                    455: -   }
                    456: -   fprintf(outfile,"\n");
                    457: +    }
                    458: +    fprintf(outfile,"\n");
                    459: +  }
                    460:  }
                    461:
                    462:
                    463: diff -urN TiGERS_0.9.orig/toric.c TiGERS_0.9/toric.c
1.5     ! noro      464: --- TiGERS_0.9.orig/toric.c    1999-06-12 07:05:52.000000000 +0900
        !           465: +++ TiGERS_0.9/toric.c 2020-11-01 10:49:33.000000000 +0900
1.1       maekawa   466: @@ -15,7 +15,7 @@
                    467:  #include "gset.h"
                    468:  #include "matrices.h"
                    469:  #include "Rsimp.h"
                    470: -
                    471: +extern int NT;
                    472:
                    473:
                    474:
                    475: @@ -34,7 +34,10 @@
                    476:    int lold,jk;
                    477:
                    478:    /* progress report */
                    479: -  fprintf(stderr,"taking colon of J with %c:\n",'a'+lv);
                    480: +  if (NT == 1) {
                    481: +  }else{
                    482: +    fprintf(stderr,"taking colon of J with %c:\n",'a'+lv);
                    483: +  }
                    484:
                    485:    /* set lex last variable to be lv */
                    486:    lold=ring_lv;
1.5     ! noro      487: diff -urN TiGERS_0.9.orig/utils.c TiGERS_0.9/utils.c
        !           488: --- TiGERS_0.9.orig/utils.c    1999-06-12 07:05:52.000000000 +0900
        !           489: +++ TiGERS_0.9/utils.c 2020-11-01 10:59:09.000000000 +0900
        !           490: @@ -10,6 +10,7 @@
        !           491:  */
        !           492:  #include<stdio.h>
        !           493:  #include<stdlib.h>
        !           494: +#include<ctype.h>
        !           495:
        !           496:  int eatwhite(FILE *is){
        !           497:   int c;

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