summaryrefslogtreecommitdiff
path: root/streams.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2021-07-16 14:19:24 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2021-07-16 14:19:24 +0000
commitee65a81ee5b0112ba4480619ca672c569fb28b45 (patch)
tree974d03d92ef1b0d1f0badcf2986382236b5d905e /streams.c
parent1c8789198373a52da9e80dc9b2b1ee2b67af61c4 (diff)
Add character input/output
Diffstat (limited to 'streams.c')
-rw-r--r--streams.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/streams.c b/streams.c
index e090cdb..63a7099 100644
--- a/streams.c
+++ b/streams.c
@@ -283,3 +283,26 @@ getstream(Term *t)
return s;
}
+Rune
+getchar(Term *t)
+{
+ Stream *s = getstream(t);
+ return Bgetrune(s->bio);
+}
+
+Rune
+peekchar(Term *t)
+{
+ Stream *s = getstream(t);
+ Rune r = Bgetrune(s->bio);
+ Bungetrune(s->bio);
+ return r;
+}
+
+void
+putchar(Term *t, Rune r)
+{
+ Stream *s = getstream(t);
+ Bprint(s->bio, "%C", r);
+ Bflush(s->bio);
+} \ No newline at end of file