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

Diff for /src/usr.bin/diff/diffreg.c between version 1.34 and 1.35

version 1.34, 2003/07/16 21:39:06 version 1.35, 2003/07/17 21:54:28
Line 1066 
Line 1066 
         }          }
 }  }
   
 #define POW2                    /* define only if HALFLONG is 2**n */  #define HASHMASK (16 - 1)       /* for masking out 16 bytes */
 #define HALFLONG 16  
 #define low(x)  (x&((1L<<HALFLONG)-1))  
 #define high(x) (x>>HALFLONG)  
   
 /*  /*
  * hashing has the effect of   * hashing has the effect of
Line 1093 
Line 1090 
                                                 return (0);                                                  return (0);
                                         break;                                          break;
                                 }                                  }
                                 sum += (long)chrtran[t] << (shift                                  sum += (long)chrtran[t] << (shift &= HASHMASK);
 #ifdef POW2  
                                     &= HALFLONG - 1);  
 #else  
                                     %= HALFLONG);  
 #endif  
                         }                          }
                 else                  else
                         for (shift = 0; (t = getc(f)) != '\n'; shift += 7) {                          for (shift = 0; (t = getc(f)) != '\n'; shift += 7) {
Line 1107 
Line 1099 
                                                 return (0);                                                  return (0);
                                         break;                                          break;
                                 }                                  }
                                 sum += (long)t << (shift                                  sum += (long)t << (shift &= HASHMASK);
 #ifdef POW2  
                                     &= HALFLONG - 1);  
 #else  
                                     %= HALFLONG);  
 #endif  
                         }                          }
         } else {          } else {
                 for (shift = 0;;) {                  for (shift = 0;;) {
Line 1126 
Line 1113 
                                         shift += 7;                                          shift += 7;
                                         space = 0;                                          space = 0;
                                 }                                  }
                                 sum += (long)chrtran[t] << (shift                                  sum += (long)chrtran[t] << (shift &= HASHMASK);
 #ifdef POW2  
                                     &= HALFLONG - 1);  
 #else  
                                     %= HALFLONG);  
 #endif  
                                 shift += 7;                                  shift += 7;
                                 continue;                                  continue;
                         case EOF:                          case EOF:
Line 1144 
Line 1126 
                         break;                          break;
                 }                  }
         }          }
         sum = low(sum) + high(sum);          return (sum);
         return ((short) low(sum) + (short) high(sum));  
 }  }
   
 int  int

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35