From 1e2e2f2a4ae153c56391d741ab0df1202c4ff040 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Wed, 2 Nov 2016 18:25:18 +0100 Subject: [PATCH] core: Support switching of input stream. * mes.c (g_stdin): New global. (getchar): New function, use g_stdin. (ungetchar): Use g_stdin. (main): Initialize g_stdin to stdin. --- mes.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mes.c b/mes.c index ca099aaa..74980c7e 100644 --- a/mes.c +++ b/mes.c @@ -893,10 +893,17 @@ display_helper (FILE* f, scm *x, bool cont, char const *sep, bool quote) // READ +FILE *g_stdin; +int +getchar () +{ + return getc (g_stdin); +} + int ungetchar (int c) { - return ungetc (c, stdin); + return ungetc (c, g_stdin); } int @@ -1179,6 +1186,7 @@ main (int argc, char *argv[]) { if (argc > 1 && !strcmp (argv[1], "--help")) return puts ("Usage: mes < FILE\n"); if (argc > 1 && !strcmp (argv[1], "--version")) return puts ("Mes 0.1\n"); + g_stdin = stdin; scm *a = mes_environment (); display_ (stderr, load_file_env (a)); fputs ("", stderr);