*** empty log message ***
This commit is contained in:
parent
034a1fa1ae
commit
c65dcaf182
|
@ -0,0 +1,13 @@
|
|||
include GNUmakevars
|
||||
include GNUmakerules
|
||||
|
||||
base64: base64.o
|
||||
$(CC) $^ -lant -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.o base64 core foo bar
|
||||
|
||||
install: $(BINDIR)/base64
|
||||
|
||||
distclean: clean
|
||||
rm -f *.bak *.d
|
|
@ -0,0 +1,55 @@
|
|||
#include <ant/base64.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
char *cmnd;
|
||||
|
||||
static void usage(void) {
|
||||
fprintf(stderr, "Usage: %s [-d|-e]\n", cmnd);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
char buf1[1024+1];
|
||||
char buf2[1024+1];
|
||||
enum { NONE, ENCODE, DECODE} mode = NONE;
|
||||
int c;
|
||||
int r1, r2;
|
||||
cmnd = argv[0];
|
||||
while ((c = getopt(argc, argv, "de")) != EOF) {
|
||||
switch(c) {
|
||||
case 'd':
|
||||
mode = DECODE;
|
||||
break;
|
||||
case 'e':
|
||||
mode = ENCODE;
|
||||
break;
|
||||
case '?':
|
||||
usage();
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
switch(mode) {
|
||||
case NONE:
|
||||
usage();
|
||||
case ENCODE:
|
||||
while ((r1 = fread(buf1, 1, 57, stdin)) > 0) {
|
||||
r2 = base64_encode(buf2, sizeof(buf2), buf1, r1, 76);
|
||||
fwrite(buf2, 1, r2, stdout);
|
||||
putchar('\n');
|
||||
}
|
||||
break;
|
||||
case DECODE:
|
||||
while (fgets(buf1, sizeof(buf1), stdin)) {
|
||||
r1 = strlen(buf1);
|
||||
if (buf1[r1-1] == '\n') r1--;
|
||||
r2 = base64_decode(buf2, sizeof(buf2), buf1, r1);
|
||||
fwrite(buf2, 1, r2, stdout);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue