aboutsummaryrefslogtreecommitdiffstats
path: root/src/blind-from-text.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2017-07-16 15:29:43 +0200
committerMattias Andrée <maandree@kth.se>2017-07-16 15:29:43 +0200
commitd05d162cb81664f292834fa5d48d623d2b6147a7 (patch)
tree9d4252fcdfa2210613188d5c965514cfab6a8ec2 /src/blind-from-text.c
parentUse #include instead of #define (diff)
downloadblind-d05d162cb81664f292834fa5d48d623d2b6147a7.tar.gz
blind-d05d162cb81664f292834fa5d48d623d2b6147a7.tar.bz2
blind-d05d162cb81664f292834fa5d48d623d2b6147a7.tar.xz
Misc code improvements
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/blind-from-text.c')
-rw-r--r--src/blind-from-text.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/blind-from-text.c b/src/blind-from-text.c
index 4bf41f7..2832a9a 100644
--- a/src/blind-from-text.c
+++ b/src/blind-from-text.c
@@ -1,27 +1,11 @@
/* See LICENSE file for copyright and license details. */
+#ifndef TYPE
#include "common.h"
USAGE("")
-#define PROCESS(TYPE, FMT)\
- do {\
- TYPE buf[BUFSIZ / sizeof(TYPE)];\
- size_t i;\
- int r, done = 0;\
- while (!done) {\
- for (i = 0; i < ELEMENTSOF(buf); i += (size_t)r) {\
- r = scanf("%"FMT, buf + i);\
- if (r == EOF) {\
- done = 1;\
- break;\
- }\
- }\
- ewriteall(STDOUT_FILENO, buf, i * sizeof(*buf), "<stdout>");\
- }\
- } while (0)
-
-static void process_lf(void) { PROCESS(double, "lf"); }
-static void process_f(void) { PROCESS(float, "f"); }
+#define FILE "blind-from-text.c"
+#include "define-functions.h"
int
main(int argc, char *argv[])
@@ -54,15 +38,31 @@ main(int argc, char *argv[])
ewriteall(STDOUT_FILENO, stream.buf, stream.ptr, "<stdout>");
einit_stream(&stream);
- if (stream.encoding == DOUBLE)
- process = process_lf;
- else if (stream.encoding == FLOAT)
- process = process_f;
- else
- eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt);
-
+ SELECT_PROCESS_FUNCTION(&stream);
process();
efshut(stdin, "<stdin>");
return 0;
}
+
+#else
+
+static void
+PROCESS(void)
+{
+ TYPE buf[BUFSIZ / sizeof(TYPE)];
+ size_t i;
+ int r, done = 0;
+ while (!done) {
+ for (i = 0; i < ELEMENTSOF(buf); i += (size_t)r) {
+ r = scanf("%"SCAN_TYPE, buf + i);
+ if (r == EOF) {
+ done = 1;
+ break;
+ }
+ }
+ ewriteall(STDOUT_FILENO, buf, i * sizeof(*buf), "<stdout>");
+ }
+}
+
+#endif