diff --git a/Makefile b/Makefile index b66cfcc..ff2a3f4 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,13 @@ -CC = gcc -CFLAGS = -Og -Wall -Wextra -Werror +CFLAGS = -g -Wall -Wextra -Werror objects = main.o input.o output.o encode.o b64 : $(objects) - $(CC) -o b64 $(objects) + cc -o b64 $(objects) main.o input.o : input.h -main.o encode.o : encode.h main.o output.o : output.h +main.o encode.o : encode.h .PHONY : clean clean : diff --git a/main.c b/main.c index 44b9a71..c2017bf 100644 --- a/main.c +++ b/main.c @@ -13,12 +13,11 @@ unsigned char sbuf[SXTETBUF]; int main(int argc, char *argv[]) { - int c, n, last; + int c, n, l; int dec, url, hlp, wrp; + char *prog = *argv; FILE *in, *out; - char *prog; - prog = *argv; dec = url = hlp = wrp = 0; while (--argc > 0 && (*++argv)[0] == '-') while ((c = *++argv[0])) @@ -43,7 +42,6 @@ main(int argc, char *argv[]) if (hlp) { fprintf(stdout, "Usage: %s -duhw infile outfile\n", prog); } else { - in = out = NULL; if (argc >= 1 && (in = fopen(*argv, "r")) == NULL) { fprintf(stderr, "%s: can't open %s\n", prog, *argv); exit(EXIT_FAILURE); @@ -53,23 +51,22 @@ main(int argc, char *argv[]) exit(EXIT_FAILURE); } if (dec) { - while ((n = getsxts((in) ? in : stdin, sbuf))) { + while ((n = getsxts((argc >= 1) ? in : stdin, sbuf))) { n = decode(sbuf, n, obuf, url); - fwrite(obuf, sizeof(*obuf), n, (out) ? out : stdout); + fwrite(obuf, sizeof(*obuf), n, (argc == 2) ? out : stdout); } - } else if (wrp) { - last = 0; - while ((n = getocts((in) ? in : stdin, obuf))) { - n = encode(obuf, n, sbuf, url); - last = printw((out) ? out : stdout, sbuf, n); - } - if (last != '\n') - fprintf((out) ? out : stdout, "\n"); } else { - while ((n = getocts((in) ? in : stdin, obuf))) { - encode(obuf, n, sbuf, url); - fprintf((out) ? out : stdout, "%s", sbuf); + while ((n = getocts((argc >= 1) ? in : stdin, obuf))) { + if (wrp) { + n = encode(obuf, n, sbuf, url); + l = printw((argc == 2) ? out : stdout, sbuf, n); + } else { + encode(obuf, n, sbuf, url); + fprintf((argc == 2) ? out : stdout, "%s", sbuf); + } } + if (wrp && l != '\n') + fprintf((argc == 2) ? out : stdout, "\n"); } if (in) fclose(in); diff --git a/output.c b/output.c index b48713e..d5c1a3a 100644 --- a/output.c +++ b/output.c @@ -8,7 +8,6 @@ printw(FILE *fp, unsigned char *s, int slen) static int col; int c; - c = '\n'; while (slen--) { fputc((c = *s++), fp); ++col;