pike.git / src / opcodes.c

version» Context lines:

pike.git/src/opcodes.c:331:    sval.subtype=NUMBER_NUMBER;    sval.u.integer=EXTRACT_UCHAR(input+eye);    eye++;    break;       case 'd':    {    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;    sval.type=T_INT;    sval.subtype=NUMBER_NUMBER;    break;    }       case 'f':    {
pike.git/src/opcodes.c:396:    error("Illigal to have two adjecent %%s.\n");    return 0; /* make gcc happy */       /* sscanf("foo-bar","%s%d",a,b) might not work as expected */    case 'd':    for(e=0;e<256;e++) set[e]=1;    for(e='0';e<='9';e++) set[e]=0;    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;    set['.']=set['-']=0;    goto match_set;       case '[': /* oh dear */    read_set(match,s-match+1,set,match_len);    for(e=0;e<256;e++) set[e]=!set[e];    goto match_set;