[BACK]Return to run.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / awk

Diff for /src/usr.bin/awk/run.c between version 1.36 and 1.37

version 1.36, 2014/12/01 03:18:50 version 1.37, 2014/12/08 21:50:09
Line 66 
Line 66 
 /* #endif */  /* #endif */
   
 jmp_buf env;  jmp_buf env;
 int use_srandom;  
 extern  int     pairstack[];  extern  int     pairstack[];
 extern  Awkfloat        srand_seed;  extern  Awkfloat        srand_seed;
   
Line 1582 
Line 1581 
                 u = (Awkfloat) system(getsval(x)) / 256;   /* 256 is unix-dep */                  u = (Awkfloat) system(getsval(x)) / 256;   /* 256 is unix-dep */
                 break;                  break;
         case FRAND:          case FRAND:
                 if (use_srandom)                  u = (Awkfloat) (random() % RAND_MAX) / RAND_MAX;
                         u = (Awkfloat) (random() % RAND_MAX) / RAND_MAX;  
                 else  
                         u = (Awkfloat)arc4random() / 0xffffffff;  
                 break;                  break;
         case FSRAND:          case FSRAND:
                 if (isrec(x))   /* no argument provided, want arc4random() */                  if (!isrec(x)) {
                         use_srandom = 0;  
                 else {  
                         use_srandom = 1;  
                         u = getfval(x);                          u = getfval(x);
                         tmp = u;                          tmp = u;
                         srandom((unsigned int) u);                          srandom_deterministic((unsigned int) u);
                         u = srand_seed;                          u = srand_seed;
                         srand_seed = tmp;                          srand_seed = tmp;
                 }                  }

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37