Blame


1 5cdb1798 2005-10-29 devnull /*
2 5cdb1798 2005-10-29 devnull * upas/unesc - interpret =?foo?bar?=char?= escapes
3 5cdb1798 2005-10-29 devnull */
4 5cdb1798 2005-10-29 devnull
5 5cdb1798 2005-10-29 devnull #include <stdio.h>
6 5cdb1798 2005-10-29 devnull #include <stdlib.h>
7 5cdb1798 2005-10-29 devnull
8 5cdb1798 2005-10-29 devnull int
9 5cdb1798 2005-10-29 devnull hex(int c)
10 5cdb1798 2005-10-29 devnull {
11 5cdb1798 2005-10-29 devnull if('0' <= c && c <= '9')
12 5cdb1798 2005-10-29 devnull return c - '0';
13 5cdb1798 2005-10-29 devnull if('A' <= c && c <= 'F')
14 5cdb1798 2005-10-29 devnull return c - 'A' + 10;
15 5cdb1798 2005-10-29 devnull if('a' <= c && c <= 'f')
16 5cdb1798 2005-10-29 devnull return c - 'a' + 10;
17 5cdb1798 2005-10-29 devnull return 0;
18 5cdb1798 2005-10-29 devnull }
19 5cdb1798 2005-10-29 devnull
20 b5f65921 2006-02-11 devnull int
21 5cdb1798 2005-10-29 devnull main(int argc, char **argv)
22 5cdb1798 2005-10-29 devnull {
23 5cdb1798 2005-10-29 devnull int c;
24 5cdb1798 2005-10-29 devnull
25 5cdb1798 2005-10-29 devnull while((c=getchar()) != EOF){
26 5cdb1798 2005-10-29 devnull if(c == '='){
27 5cdb1798 2005-10-29 devnull if((c=getchar()) == '?'){
28 5cdb1798 2005-10-29 devnull while((c=getchar()) != EOF && c != '?')
29 5cdb1798 2005-10-29 devnull continue;
30 5cdb1798 2005-10-29 devnull while((c=getchar()) != EOF && c != '?')
31 5cdb1798 2005-10-29 devnull continue;
32 5cdb1798 2005-10-29 devnull while((c=getchar()) != EOF && c != '?'){
33 5cdb1798 2005-10-29 devnull if(c == '='){
34 5cdb1798 2005-10-29 devnull c = hex(getchar()) << 4;
35 5cdb1798 2005-10-29 devnull c |= hex(getchar());
36 5cdb1798 2005-10-29 devnull }
37 5cdb1798 2005-10-29 devnull putchar(c);
38 5cdb1798 2005-10-29 devnull }
39 5cdb1798 2005-10-29 devnull (void) getchar(); /* consume '=' */
40 5cdb1798 2005-10-29 devnull }else{
41 5cdb1798 2005-10-29 devnull putchar('=');
42 5cdb1798 2005-10-29 devnull putchar(c);
43 5cdb1798 2005-10-29 devnull }
44 5cdb1798 2005-10-29 devnull }else
45 5cdb1798 2005-10-29 devnull putchar(c);
46 5cdb1798 2005-10-29 devnull }
47 5cdb1798 2005-10-29 devnull exit(0);
48 5cdb1798 2005-10-29 devnull }