if(start) return str; else return str + (i - x);
if(start) { if(*str) return str; else return str+move; } else { if(str[i-x]) return str + (i-x); else return str + (move+i-x); }
char* xstrtok(char *str, const char *tok, int *pos, int start) {    int i, x;    unsigned int match;        if(blankstr(tok))        return str;        if(start) {        i = 0;    }    else {        if(pos != NULL)            i = *pos;    }        for(x = 0, match = 0;str[i];i++, x++) {        if(str[i] == tok[match]) {            if(!tok[++match]) {                while(match--) str[i - match] = 0;                i++;                x++;                                if(pos != NULL)                    *pos = i;                                if(start)                    return str;                else                    return str + (i - x);            }        }    }    if(pos != NULL)        *pos = i;        if(start) {        return str;    }    else {        if(x) {            return str + (i - x);        }        else            return NULL;    }}