--- parser3/src/classes/file.C 2023/11/16 00:00:53 1.277 +++ parser3/src/classes/file.C 2024/09/13 04:01:22 1.279 @@ -26,7 +26,7 @@ #include "pa_vregex.h" #include "pa_version.h" -volatile const char * IDENT_FILE_C="$Id: file.C,v 1.277 2023/11/16 00:00:53 moko Exp $"; +volatile const char * IDENT_FILE_C="$Id: file.C,v 1.279 2024/09/13 04:01:22 moko Exp $"; // defines @@ -528,7 +528,7 @@ static void _exec_cgi(Request& r, Method // untaint stdin in = String::C(sstdin->cstr_to_string_body_untaint(String::L_AS_IS, r.connection(false), &r.charsets)); } else - if(VFile* vfile=static_cast(info.vstdin->as("file"))){ + if(VFile* vfile=dynamic_cast(info.vstdin)){ in = String::C((const char* )vfile->value_ptr(), vfile->value_size()); in_is_text_mode = vfile->is_text_mode(); } else @@ -706,8 +706,8 @@ static void _list(Request& r, MethodPara vfilter=&voption; } if(vfilter) { - if(Value* value=vfilter->as(VREGEX_TYPE)) { - vregex=static_cast(value); + if(VRegex* value=dynamic_cast(vfilter)) { + vregex=value; } else if(vfilter->is_string()) { if(!vfilter->get_string()->trim().is_empty()) { vregex=new VRegex(r.charsets.source(), &vfilter->as_string(), 0/*options*/); @@ -736,12 +736,12 @@ static void _list(Request& r, MethodPara if(!vregex || vregex->exec(file_name_cstr, file_name_size, ovector, ovector_size)>=0) { Table::element_type row(new ArrayString); *row+=new String(pa_strdup(file_name_cstr, file_name_size), String::L_TAINTED); - *row+=new String(String::Body::Format(ffblk.is_dir(stat) ? 1 : 0), String::L_CLEAN); + *row+=new String(ffblk.is_dir(stat) ? "1" : "0", String::L_CLEAN); if(stat) { *row+=VDouble(ffblk.size()).get_string(); - *row+=new String(String::Body::Format((int)ffblk.c_timestamp()), String::L_CLEAN); - *row+=new String(String::Body::Format((int)ffblk.m_timestamp()), String::L_CLEAN); - *row+=new String(String::Body::Format((int)ffblk.a_timestamp()), String::L_CLEAN); + *row+=new String(pa_uitoa(ffblk.c_timestamp()), String::L_CLEAN); + *row+=new String(pa_uitoa(ffblk.m_timestamp()), String::L_CLEAN); + *row+=new String(pa_uitoa(ffblk.a_timestamp()), String::L_CLEAN); } table+=row; }