--- parser3/src/classes/table.C 2009/05/04 09:26:20 1.250 +++ parser3/src/classes/table.C 2009/05/14 08:10:09 1.256 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_TABLE_C="$Date: 2009/05/04 09:26:20 $"; +static const char * const IDENT_TABLE_C="$Date: 2009/05/14 08:10:09 $"; #ifndef NO_STRINGSTREAM #include @@ -130,7 +130,7 @@ struct TableSeparators { char encloser; const String* sencloser; TableSeparators(): - column('\t'), scolumn(new String("\t", false)), + column('\t'), scolumn(new String("\t")), encloser(0), sencloser(0) {} int load( HashStringValue& options ) { @@ -230,9 +230,9 @@ static void _create(Request& r, MethodPa Array_iterator i(rows); while(i.has_next()) { Table::element_type row(new ArrayString); - const String& string=*i.next(); + const String& string=*i.next(); // remove comment lines - if(!string.length()) + if(string.is_empty()) continue; size_t col_pos_after=0; @@ -359,7 +359,7 @@ static void _load(Request& r, MethodPara skip_empty_and_comment_lines(&data); while( lsplit_result sr=lsplit(&data, separators.column, '\n', separators.encloser) ) { - *columns+=new String(sr.piece, 0, true); + *columns+=new String(sr.piece, String::L_TAINTED); if(sr.delim=='\n') break; } @@ -374,7 +374,7 @@ static void _load(Request& r, MethodPara while( lsplit_result sr=lsplit(&data, separators.column, '\n', separators.encloser) ) { if(!*sr.piece && !sr.delim && !row->count()) // append last empty column [if without \n] break; - *row+=new String(sr.piece, 0, true); + *row+=new String(sr.piece, String::L_TAINTED); if(sr.delim=='\n') { table+=row; row=new ArrayString(columns_count); @@ -398,7 +398,7 @@ void maybe_enclose( String& to, const St size_t pos_after=0; for( size_t pos_before; (pos_before=from.pos( encloser, pos_after ))!=STRING_NOT_FOUND; pos_after=pos_before) { pos_before++; // including first encloser (and skipping it for next pos) - to<length()) { // delimiter set and we have body + if(s_processed && !s_processed->is_empty()) { // we have body if(need_delim) // need delim & iteration produced string? r.write_pass_lang(r.process(*delim_maybe_code)); else @@ -1047,9 +1047,9 @@ public: columns(*new ArrayString), row(0), table(0) { } - bool add_column(SQL_Error& error, const char *str, size_t length) { + bool add_column(SQL_Error& error, const char *str, size_t) { try { - columns+=new String(str, length, true); + columns+=new String(str, String::L_TAINTED); return false; } catch(...) { error=SQL_Error("exception occured in Table_sql_event_handlers::add_column"); @@ -1075,12 +1075,9 @@ public: return true; } } - bool add_row_cell(SQL_Error& error, const char* str, size_t length) { + bool add_row_cell(SQL_Error& error, const char* str, size_t) { try { - String& cell=*new String; - if(length) - cell.append_know_length(str, length, String::L_TAINTED); - *row+=&cell; + *row+=new String(str, String::L_TAINTED); return false; } catch(...) { error=SQL_Error("exception occured in Table_sql_event_handlers::add_row_cell"); @@ -1122,10 +1119,7 @@ void unmarshal_bind_updates(HashStringVa if(ph->is_null) value=VVoid::get(); else - if(ph->value) - value=new VString(*new String(ph->value, 0, true/*tainted*/)); - else - value=new VString(*new String()); + value=new VString(*new String(ph->value, String::L_TAINTED)); hash.put(ph->name, value); } }