/* uriescape.c - URI Escape Arguments Build: gcc -Wall -o uriescape uriescape.c */ #include #include void usage(char *prog) { printf("uriescape - URI Escape Arguments\n"); printf("Usage: %s \n", prog); printf("Author: Sean B. Palmer, inamidst.com\n"); } void escape(char *arg) { int i; char c; for (i = 0; (c = arg[i]) != '\0'; i++) { if ((c == 0x2D) || (c == 0x2E) || // Hyphen-Minus, Full Stop ((0x30 <= c) && (c <= 0x39)) || // Digits [0-9] ((0x41 <= c) && (c <= 0x5A)) || // Uppercase [A-Z] ((0x61 <= c) && (c <= 0x7A))) { // Lowercase [a-z] putchar(c); } else { printf("%%%02X", c); } } } int main(int argc, char *argv[]) { int i; if (argc == 1) { usage(argv[0]); exit(0); } for (i = 1; argc > 1; argc--) { escape(argv[i]); if (argc > 2) printf("%%20"); i++; } printf("\n"); exit(0); } /* EOF */