#include <stdio.h>
#include <string.h>
#include <ctype.h>
char *argv0;
int
e(FILE *fp)
{
int c;
c = fgetc(fp);
for (;;) {
if (c == EOF)
break;
if (c == '\n') {
c = fgetc(fp);
if (c == EOF) {
putchar('\n');
break;
}
if (ungetc(c, fp) == EOF) {
perror(argv0);
return 1;
}
c = '\n';
}
if (isalnum(c) ||
c == '-' | c == '.' | c == '_' | c == '~') {
putchar(c);
goto l;
}
printf("%%%02X", c);
l:
c = fgetc(fp);
}
if (ferror(fp) != 0) {
perror(argv0);
return 1;
}
return 0;
}
int
main(int argc, char *argv[])
{
FILE *fp;
int i;
argv0 = argv[0];
if (argc == 1) return e(stdin);
for (i = 1; i < argc; i++) {
fp = fopen(argv[i], "r");
if (!fp) {
perror(argv[0]);
return 1;
}
e(fp);
}
}