pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:196:    return s;   }            static void internal_parse_typeA(char **s)   {    char buf[80];    unsigned int len;    -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;       len=0;    for(len=0;isidchar(s[0][len]);len++)    {    if(len>=sizeof(buf)) error("Buffer overflow in parse_type\n");    buf[len] = s[0][len];    }    buf[len]=0;    *s += len;       if(!strcmp(buf,"int")) push_type(T_INT);    else if(!strcmp(buf,"float")) push_type(T_FLOAT);    else if(!strcmp(buf,"object")) push_type(T_OBJECT);    else if(!strcmp(buf,"program")) push_type(T_PROGRAM);    else if(!strcmp(buf,"string")) push_type(T_STRING);    else if(!strcmp(buf,"void")) push_type(T_VOID);    else if(!strcmp(buf,"mixed")) push_type(T_MIXED);    else if(!strcmp(buf,"unknown")) push_type(T_UNKNOWN);    else if(!strcmp(buf,"function"))    { -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s == '(')    {    ++*s; -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    type_stack_mark();    while(1)    {    if(**s == ':')    {    push_type(T_MANY);    push_type(T_VOID);    break;    }       type_stack_mark();    type_stack_mark();    type_stack_mark();    internal_parse_type(s);    type_stack_reverse();    if(**s==',')    {    ++*s; -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    }    else if(s[0][0]=='.' && s[0][1]=='.' && s[0][2]=='.')    {    type_stack_reverse();    push_type(T_MANY);    type_stack_reverse();    *s+=3; -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s != ':') error("Missing ':' after ... in function type.\n");    break;    }    pop_stack_mark();    pop_stack_mark();    }    ++*s;    type_stack_mark();    internal_parse_type(s); /* return type */    type_stack_reverse();
pike.git/src/pike_types.c:271:    type_stack_reverse();    }else{    push_type(T_MIXED);    push_type(T_MIXED);    push_type(T_MANY);    }    push_type(T_FUNCTION);    }    else if(!strcmp(buf,"mapping"))    { -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s == '(')    {    type_stack_mark();    ++*s;    type_stack_mark();    internal_parse_type(s);    type_stack_reverse();    if(**s != ':') error("Expecting ':'.\n");    ++*s;    type_stack_mark();
pike.git/src/pike_types.c:295:    ++*s;    type_stack_reverse();    }else{    push_type(T_MIXED);    push_type(T_MIXED);    }    push_type(T_MAPPING);    }    else if(!strcmp(buf,"array"))    { -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s == '(')    {    ++*s;    internal_parse_type(s);    if(**s != ')') error("Expecting ')'.\n");    ++*s;    }else{    push_type(T_MIXED);    }    push_type(T_ARRAY);    }    else if(!strcmp(buf,"multiset"))    { -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s == '(')    {    ++*s;    internal_parse_type(s);    if(**s != ')') error("Expecting ')'.\n");    ++*s;    }else{    push_type(T_MIXED);    }    push_type(T_MULTISET);    }    else    error("Couldn't parse type. (%s)\n",buf);    -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;   }         static void internal_parse_typeB(char **s)   { -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    switch(**s)    {    case '!':    ++*s;    internal_parse_typeB(s);    push_type(T_NOT);    break;       case '(':    ++*s;    internal_parse_typeB(s); -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    if(**s != ')') error("Expecting ')'.\n");    break;       default:       internal_parse_typeA(s);    }   }      static void internal_parse_typeCC(char **s)   {    internal_parse_typeB(s);    -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;       while(**s == '*')    {    ++*s; -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;    push_type(T_ARRAY);    }   }      static void internal_parse_typeC(char **s)   {    type_stack_mark();       type_stack_mark();    internal_parse_typeCC(s);    type_stack_reverse();    -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;       if(**s == '&')    {    ++*s;    type_stack_mark();    internal_parse_typeC(s);    type_stack_reverse();    type_stack_reverse();    push_type(T_AND);    }else{    type_stack_reverse();    }   }      static void internal_parse_type(char **s)   {    internal_parse_typeC(s);    -  while(isspace(**s)) ++*s; +  while(ISSPACE(**s)) ++*s;       while(**s == '|')    {    ++*s;    internal_parse_typeC(s);    push_type(T_OR);    }   }      /* This function is used when adding simul efuns so that
pike.git/src/pike_types.c:943:   {    push_type(T_MIXED);   }      struct pike_string *get_type_of_svalue(struct svalue *s)   {    struct pike_string *ret;    switch(s->type)    {    case T_FUNCTION: -  if(s->subtype == -1) +  if(s->subtype == FUNCTION_BUILTIN)    {    ret=s->u.efun->type;    }else{    struct program *p;       p=s->u.object->prog;    if(!p)    {    ret=int_type_string;    }else{