int MySQL_Data_Stream::read_pkts() { int rc=0; int r=0; while((r=buffer2array())) rc+=r; return rc; }
int main() { char *a[4] = { NULL }; char *b; int max; b = strdup("lsinfo \"/some/dir/name \\\"test\\\"\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("/some/dir/name \"test\"", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"/some/dir/name \\\"test\\\" something else\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("/some/dir/name \"test\" something else", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"/some/dir\\\\name\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("/some/dir\\name", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"/some/dir name\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("/some/dir name", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"\\\"/some/dir\\\"\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("\"/some/dir\"", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"\\\"/some/dir\\\" x\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("\"/some/dir\" x", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"single quote\\'d from php magicquotes\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("single quote\'d from php magicquotes", a[1]) ); assert( !a[2] ); b = strdup("lsinfo \"double quote\\\"d from php magicquotes\""); assert(b); max = buffer2array(b, a, 4); assert( !strcmp("lsinfo", a[0]) ); assert( !strcmp("double quote\"d from php magicquotes", a[1]) ); assert( !a[2] ); return 0; }