@ -17,28 +17,38 @@
/* Percent-encoding of each character, except: a-zA-Z0-9!$()*,./:;@- */
static const char * url_escape_table [ 256 ] = {
" %00 " , " %01 " , " %02 " , " %03 " , " %04 " , " %05 " , " %06 " , " %07 " , " %08 " , " %09 " ,
" %0a " , " %0b " , " %0c " , " %0d " , " %0e " , " %0f " , " %10 " , " %11 " , " %12 " , " %13 " ,
" %14 " , " %15 " , " %16 " , " %17 " , " %18 " , " %19 " , " %1a " , " %1b " , " %1c " , " %1d " ,
" %1e " , " %1f " , " %20 " , 0 , " %22 " , " %23 " , 0 , " %25 " , " %26 " , " %27 " , 0 , 0 , 0 ,
" %2b " , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , " %3c " , " %3d " ,
" %3e " , " %3f " , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , " %5c " , 0 , " %5e " , 0 , " %60 " , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , " %7b " ,
" %7c " , " %7d " , 0 , " %7f " , " %80 " , " %81 " , " %82 " , " %83 " , " %84 " , " %85 " ,
" %86 " , " %87 " , " %88 " , " %89 " , " %8a " , " %8b " , " %8c " , " %8d " , " %8e " , " %8f " ,
" %90 " , " %91 " , " %92 " , " %93 " , " %94 " , " %95 " , " %96 " , " %97 " , " %98 " , " %99 " ,
" %9a " , " %9b " , " %9c " , " %9d " , " %9e " , " %9f " , " %a0 " , " %a1 " , " %a2 " , " %a3 " ,
" %a4 " , " %a5 " , " %a6 " , " %a7 " , " %a8 " , " %a9 " , " %aa " , " %ab " , " %ac " , " %ad " ,
" %ae " , " %af " , " %b0 " , " %b1 " , " %b2 " , " %b3 " , " %b4 " , " %b5 " , " %b6 " , " %b7 " ,
" %b8 " , " %b9 " , " %ba " , " %bb " , " %bc " , " %bd " , " %be " , " %bf " , " %c0 " , " %c1 " ,
" %c2 " , " %c3 " , " %c4 " , " %c5 " , " %c6 " , " %c7 " , " %c8 " , " %c9 " , " %ca " , " %cb " ,
" %cc " , " %cd " , " %ce " , " %cf " , " %d0 " , " %d1 " , " %d2 " , " %d3 " , " %d4 " , " %d5 " ,
" %d6 " , " %d7 " , " %d8 " , " %d9 " , " %da " , " %db " , " %dc " , " %dd " , " %de " , " %df " ,
" %e0 " , " %e1 " , " %e2 " , " %e3 " , " %e4 " , " %e5 " , " %e6 " , " %e7 " , " %e8 " , " %e9 " ,
" %ea " , " %eb " , " %ec " , " %ed " , " %ee " , " %ef " , " %f0 " , " %f1 " , " %f2 " , " %f3 " ,
" %f4 " , " %f5 " , " %f6 " , " %f7 " , " %f8 " , " %f9 " , " %fa " , " %fb " , " %fc " , " %fd " ,
" %fe " , " %ff "
" %00 " , " %01 " , " %02 " , " %03 " , " %04 " , " %05 " , " %06 " , " %07 " ,
" %08 " , " %09 " , " %0a " , " %0b " , " %0c " , " %0d " , " %0e " , " %0f " ,
" %10 " , " %11 " , " %12 " , " %13 " , " %14 " , " %15 " , " %16 " , " %17 " ,
" %18 " , " %19 " , " %1a " , " %1b " , " %1c " , " %1d " , " %1e " , " %1f " ,
" %20 " , NULL , " %22 " , " %23 " , NULL , " %25 " , " %26 " , " %27 " ,
NULL , NULL , NULL , " %2b " , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , " %3c " , " %3d " , " %3e " , " %3f " ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , " %5c " , NULL , " %5e " , NULL ,
" %60 " , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL ,
NULL , NULL , NULL , " %7b " , " %7c " , " %7d " , NULL , " %7f " ,
" %80 " , " %81 " , " %82 " , " %83 " , " %84 " , " %85 " , " %86 " , " %87 " ,
" %88 " , " %89 " , " %8a " , " %8b " , " %8c " , " %8d " , " %8e " , " %8f " ,
" %90 " , " %91 " , " %92 " , " %93 " , " %94 " , " %95 " , " %96 " , " %97 " ,
" %98 " , " %99 " , " %9a " , " %9b " , " %9c " , " %9d " , " %9e " , " %9f " ,
" %a0 " , " %a1 " , " %a2 " , " %a3 " , " %a4 " , " %a5 " , " %a6 " , " %a7 " ,
" %a8 " , " %a9 " , " %aa " , " %ab " , " %ac " , " %ad " , " %ae " , " %af " ,
" %b0 " , " %b1 " , " %b2 " , " %b3 " , " %b4 " , " %b5 " , " %b6 " , " %b7 " ,
" %b8 " , " %b9 " , " %ba " , " %bb " , " %bc " , " %bd " , " %be " , " %bf " ,
" %c0 " , " %c1 " , " %c2 " , " %c3 " , " %c4 " , " %c5 " , " %c6 " , " %c7 " ,
" %c8 " , " %c9 " , " %ca " , " %cb " , " %cc " , " %cd " , " %ce " , " %cf " ,
" %d0 " , " %d1 " , " %d2 " , " %d3 " , " %d4 " , " %d5 " , " %d6 " , " %d7 " ,
" %d8 " , " %d9 " , " %da " , " %db " , " %dc " , " %dd " , " %de " , " %df " ,
" %e0 " , " %e1 " , " %e2 " , " %e3 " , " %e4 " , " %e5 " , " %e6 " , " %e7 " ,
" %e8 " , " %e9 " , " %ea " , " %eb " , " %ec " , " %ed " , " %ee " , " %ef " ,
" %f0 " , " %f1 " , " %f2 " , " %f3 " , " %f4 " , " %f5 " , " %f6 " , " %f7 " ,
" %f8 " , " %f9 " , " %fa " , " %fb " , " %fc " , " %fd " , " %fe " , " %ff "
} ;
char * fmt ( const char * format , . . . )