_dle void unshiftcase2__(char* buf,long siz,int argc,...) { int i1=0; _for_args( argc ) case__(buf,s,&i1,0x10|0x20); _next_args buf[i1]=0; }
_dle void shiftcase__(char* buf,long siz,int argc,...) { int i1=0; _for_args( argc ) case__(buf,s,&i1,1); _next_args buf[i1]=0; }
dlle___ void dlln___(for_array__)(int*err,char**addr_ret,void*ce,void* qu,bool no,bool desc,const char*code,int argc,...){ string ret; _for_args( argc ) array_cb__(err,ce,qu,code,s,no,desc,ret); if(*err) break; _next_args *addr_ret=dup__(ret.c_str()); }
const char* cb__(void* jsq,void* shangji,int* err,void*ce,const char* src,bool src_is_file,const char* src2,int argc,...){ dir___* d=(dir___*)jsq; _for_args( argc ) d->list_.push_back(s); //printf("{%s|%d}",s,d->list_.size()); break; _next_args return NULL; }
const char* callback2__(void* jsq,void* shangji,int* err, const char* src,bool src_is_file,int argc,...) { std::string* buf=(std::string*)src; _for_args( argc ) *buf+=s; _next_args return 0; }
dlle___ int i__(char*cmd,int argc,...){ std::string out; _for_args( argc ) out+=s; _next_args redireconsoi___ roi; roi.out_=out.c_str(); roi.out_len_=out.size(); return roi.my_system(cmd, 2); }
dlle___ void find_and_get__(int*err,char**addr_ret,const char*src1,int from, const char*tag1,void*ce,void*shangji,const char*code,int argc,...){ string buf; if(src1){ const char*src=src1; for(;--from>=0;) src++; list<const char*> lst; _for_args( argc ) lst.push_back(s); _next_args if(tag1){ for(;*src;src++){ if(startswith__(src,tag1)){ src+=strlen(tag1); break; } } } bool b=false; for(;*src;src++){ for(list<const char*>::iterator li=lst.begin();li!=lst.end();li++){ const char*sp=*li; if(startswith__(src,sp)){ src+=strlen(sp); b=true; break; } } if(b) break; buf+=*src; } if(code){ char i[8]="-1"; if(*src) sprintf(i,"%d",src-src1); callback_(jsq_,shangji,err,ce,code,false,NULL,1,i); } } *addr_ret=dup__(buf.c_str()); }