2 * upas/unesc - interpret =?foo?bar?=char?= escapes
11 if('0' <= c && c <= '9')
13 if('a' <= c && c <= 'f')
15 if('A' <= c && c <= 'F')
26 Binit(&bin, 0, OREAD);
27 Binit(&bout, 1, OWRITE);
28 while((c = Bgetc(&bin)) != Beof)
31 else if((c = Bgetc(&bin)) != '?'){
35 while((c = Bgetc(&bin)) != Beof && c != '?')
36 continue; /* consume foo */
37 while((c = Bgetc(&bin)) != Beof && c != '?')
38 continue; /* consume bar */
39 while((c = Bgetc(&bin)) != Beof && c != '?'){
41 c = hex(Bgetc(&bin)) << 4;
42 c |= hex(Bgetc(&bin));
46 c = Bgetc(&bin); /* consume '=' */