From 1a41ae3e030c467416a075667dd404ea3e650bc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= <john@ankarstrom.se>
Date: Wed, 14 Jul 2021 09:49:06 +0200
Subject: Add rin.c

---
 rin.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 rin.c

(limited to 'rin.c')

diff --git a/rin.c b/rin.c
new file mode 100644
index 0000000..72463d8
--- /dev/null
+++ b/rin.c
@@ -0,0 +1,34 @@
+#include <err.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <unistd.h>
+
+int
+main()
+{
+	int c, n, o, t;
+	struct termios orig, term;
+
+	t = 0;
+
+	if((o = open("/var/tmp/r.in", O_RDWR)) == -1)
+		err(1, "/var/tmp/r.in");
+
+        /* Enter "raw" terminal mode. */
+        tcgetattr(t, &orig);
+        tcgetattr(t, &term);
+        term.c_lflag &= ~(ICANON|ECHO|ISIG);
+        tcsetattr(t, TCSANOW, &term);
+
+	while((n = read(t, &c, 1)) > 0){
+		if(c == 26) /* ^Z */
+			break;
+		if(c != '\n')
+			write(t, &c, 1);
+		write(o, &c, 1);
+	}
+
+	/* Restore original terminal mode. */
+	tcsetattr(t, TCSANOW, &orig);
+}
-- 
cgit v1.2.3