--- parser3/src/classes/table.C 2016/09/08 20:41:47 1.326 +++ parser3/src/classes/table.C 2016/09/21 00:44:50 1.329 @@ -22,7 +22,7 @@ #define USE_STRINGSTREAM #endif -volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.326 2016/09/08 20:41:47 moko Exp $"; +volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.329 2016/09/21 00:44:50 moko Exp $"; // class @@ -171,15 +171,15 @@ public: inline lsplit_sresult lsplit(char* *string_ref, const char* delims, StringSplitHelper& helper) { lsplit_sresult result; if(char *pos=*string_ref) { - while(char* v=strpbrk(pos, delims)) { - if(helper.check_lang(v)){ - result.delim=*v; - *v=0; + while(pos=strpbrk(pos, delims)) { + if(helper.check_lang(pos)){ + result.delim=*pos; + *pos=0; result.piece=helper.extract(*string_ref); - *string_ref=v+1; + *string_ref=pos+1; return result; } - pos=v+1; + pos++; } result.piece=helper.extract(*string_ref); *string_ref=0; @@ -196,19 +196,18 @@ static lsplit_sresult lsplit(char** stri // we are enclosed, searching for second encloser while(1) { - if(char* v=strchr(pos, encloser)){ - if(helper.check_lang(v)){ - *(v++)=0; + if(pos=strchr(pos, encloser)){ + if(helper.check_lang(pos)){ + *(pos++)=0; result.append(helper.extract(*string_ref)); - if(*v==encloser && helper.check_lang(v)){ // double-encloser stands for encloser - *string_ref=v+1; + if(*pos==encloser && helper.check_lang(pos)){ // double-encloser stands for encloser + *string_ref=++pos; } else { - *string_ref=pos=v; + *string_ref=pos; break; } } - pos=v+1; - }{ + } else { result.append(helper.extract(*string_ref)); *string_ref=0; return result; @@ -216,17 +215,17 @@ static lsplit_sresult lsplit(char** stri } // we are no longer enclosed, searching for delimiter - while(char* v=strpbrk(pos, delims)) { - if(helper.check_lang(v)){ - result.delim=*v; - if(v>*string_ref){ - *v=0; + while(pos=strpbrk(pos, delims)) { + if(helper.check_lang(pos)){ + result.delim=*pos; + if(pos>*string_ref){ + *pos=0; result.append(helper.extract(*string_ref)); } - *string_ref=v+1; + *string_ref=pos+1; return result; } - pos=v+1; + pos++; } result.append(helper.extract(*string_ref)); *string_ref=0; @@ -362,12 +361,12 @@ static lsplit_result lsplit(char** strin *write++=c; } - // we are no longer enclosed, searching for delimiter, skipping extra enclosers + // we are no longer enclosed, searching for delimiter while(c=*read++) { if(c==delims[0] || c==delims[1]) { result.delim=c; break; - } else if(c!=encloser) + } else *write++=c; }