aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xC.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/xC.c b/xC.c
index 200d159..fdf1325 100644
--- a/xC.c
+++ b/xC.c
@@ -16004,14 +16004,29 @@ show_logo (struct app_context *ctx)
static void
format_input_and_die (struct app_context *ctx)
{
- char buf[513];
- while (fgets (buf, sizeof buf, stdin))
+ // XXX: it might make sense to allow for redirection, using FLUSH_OPT_RAW
+ struct str s = str_make ();
+ int c = 0;
+ while ((c = fgetc (stdin)) != EOF)
{
+ if (c != '\n')
+ {
+ str_append_c (&s, c);
+ continue;
+ }
+
struct formatter f = formatter_make (ctx, NULL);
- formatter_add (&f, "#m", buf);
+ formatter_add (&f, "#m\n", s.str);
formatter_flush (&f, stdout, FLUSH_OPT_NOWRAP);
formatter_free (&f);
+ str_reset (&s);
}
+
+ struct formatter f = formatter_make (ctx, NULL);
+ formatter_add (&f, "#m", s.str);
+ formatter_flush (&f, stdout, FLUSH_OPT_NOWRAP);
+ formatter_free (&f);
+ str_free (&s);
exit (EXIT_SUCCESS);
}