--- parser3/src/classes/table.C 2016/09/21 15:14:39 1.331 +++ parser3/src/classes/table.C 2016/09/29 18:49:43 1.334 @@ -22,7 +22,7 @@ #define USE_STRINGSTREAM #endif -volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.331 2016/09/21 15:14:39 moko Exp $"; +volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.334 2016/09/29 18:49:43 moko Exp $"; // class @@ -203,12 +203,13 @@ static lsplit_sresult lsplit(char** stri *(pos++)=0; result.append(helper.extract(*string_ref)); if(*pos==encloser && helper.check_lang(pos)){ // double-encloser stands for encloser - *string_ref=pos++; + *string_ref=pos; } else { *string_ref=pos; break; } } + pos++; } else { result.append(helper.extract(*string_ref)); *string_ref=0; @@ -780,7 +781,7 @@ static void _menu(Request& r, MethodPara for(size_t row=0; rowkey_code) { info->table->set_current(info->row++); // change context row - StringOrValue sv_processed=info->r->process(*info->key_code); + Value& sv_processed=info->r->process(*info->key_code); key=&sv_processed.as_string(); } else { key=info->key_fieldcount()?row->get(info->key_field):0; @@ -883,7 +884,7 @@ static void table_row_to_hash(Table::ele case C_CODE: { if(!info->key_code) info->table->set_current(info->row++); // change context row - exist=info->hash->put_dont_replace(*key, &info->r->process(*info->value_code).as_value()); + exist=info->hash->put_dont_replace(*key, &info->r->process(*info->value_code)); break; } } @@ -1075,7 +1076,7 @@ static void _sort(Request& r, MethodPara if(r.charsets.source().NAME()=="KOI8-R" && key_values_are_strings) { for(i=0; i