[BACK]Return to tokenizer.l CVS log [TXT][DIR] Up to [local] / src / usr.bin / m4

Diff for /src/usr.bin/m4/tokenizer.l between version 1.6 and 1.7

version 1.6, 2008/08/21 21:00:14 version 1.7, 2010/03/22 20:40:44
Line 16 
Line 16 
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
 #include "parser.h"  #include "parser.h"
   #include <assert.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <errno.h>  #include <errno.h>
 #include <stdint.h>  #include <stdint.h>
Line 75 
Line 76 
         long base;          long base;
         char *next;          char *next;
         long l;          long l;
           int d;
   
         l = 0;          l = 0;
         base = strtol(yytext+2, &next, 0);          base = strtol(yytext+2, &next, 0);
Line 84 
Line 86 
                 next++;                  next++;
                 while (*next != 0) {                  while (*next != 0) {
                         if (*next >= '0' && *next <= '9')                          if (*next >= '0' && *next <= '9')
                                 l = base * l + *next - '0';                                  d = *next - '0';
                         else if (*next >= 'a' && *next <= 'z')                          else if (*next >= 'a' && *next <= 'z')
                                 l = base * l + *next - 'a' + 10;                                  d = *next - 'a' + 10;
                         else if (*next >= 'A' && *next <= 'Z')                          else {
                                 l = base * l + *next - 'A' + 10;                                  assert(*next >= 'A' && *next <= 'Z');
                                   d = *next - 'A' + 10;
                           }
                           if (d >= base) {
                                   fprintf(stderr,
                                       "m4: error in number %s\n", yytext);
                                   return 0;
                           }
                           l = base * l + d;
                         next++;                          next++;
                 }                  }
         }          }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7