Branch: Tag:

1996-02-10

1996-02-10 22:06:25 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

fixed sscanf to accept %x %o and %D

Rev: src/opcodes.c:1.4

338:    char * t;       if(eye>=input_len) return matches; +  sval.u.integer=STRTOL(input+eye,&t,10); +  if(input + eye == t) return matches; +  eye=t-input; +  sval.type=T_INT; +  sval.subtype=NUMBER_NUMBER; +  break; +  } +  +  case 'x': +  { +  char * t; +  +  if(eye>=input_len) return matches; +  sval.u.integer=STRTOL(input+eye,&t,16); +  if(input + eye == t) return matches; +  eye=t-input; +  sval.type=T_INT; +  sval.subtype=NUMBER_NUMBER; +  break; +  } +  +  case 'o': +  { +  char * t; +  +  if(eye>=input_len) return matches; +  sval.u.integer=STRTOL(input+eye,&t,8); +  if(input + eye == t) return matches; +  eye=t-input; +  sval.type=T_INT; +  sval.subtype=NUMBER_NUMBER; +  break; +  } +  +  case 'D': +  { +  char * t; +  +  if(eye>=input_len) return matches;    sval.u.integer=STRTOL(input+eye,&t,0);    if(input + eye == t) return matches;    eye=t-input;
403:    set['-']=0;    goto match_set;    +  case 'o': +  for(e=0;e<256;e++) set[e]=1; +  for(e='0';e<='7';e++) set[e]=0; +  goto match_set; +  +  case 'x': +  for(e=0;e<256;e++) set[e]=1; +  for(e='0';e<='9';e++) set[e]=0; +  for(e='a';e<='f';e++) set[e]=0; +  goto match_set; +  +  case 'D': +  for(e=0;e<256;e++) set[e]=1; +  for(e='0';e<='9';e++) set[e]=0; +  set['-']=0; +  set['x']=0; +  goto match_set; +     case 'f':    for(e=0;e<256;e++) set[e]=1;    for(e='0';e<='9';e++) set[e]=0;