summaryrefslogtreecommitdiff
path: root/substdio_copy.c
diff options
context:
space:
mode:
Diffstat (limited to 'substdio_copy.c')
-rw-r--r--substdio_copy.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/substdio_copy.c b/substdio_copy.c
new file mode 100644
index 0000000..71cf200
--- /dev/null
+++ b/substdio_copy.c
@@ -0,0 +1,18 @@
+#include "substdio.h"
+
+int substdio_copy(ssout,ssin)
+register substdio *ssout;
+register substdio *ssin;
+{
+ register int n;
+ register char *x;
+
+ for (;;) {
+ n = substdio_feed(ssin);
+ if (n < 0) return -2;
+ if (!n) return 0;
+ x = substdio_PEEK(ssin);
+ if (substdio_put(ssout,x,n) == -1) return -3;
+ substdio_SEEK(ssin,n);
+ }
+}