From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/uudecode.c | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/uudecode.c (limited to 'reference/C/CONTRIB/SNIP/uudecode.c') diff --git a/reference/C/CONTRIB/SNIP/uudecode.c b/reference/C/CONTRIB/SNIP/uudecode.c new file mode 100755 index 0000000..01a8518 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/uudecode.c @@ -0,0 +1,41 @@ +/* +** by: John Lots +** patched up for BC++ 3.1 by Alan Eldridge 10/12/92 +** (UUCP: alane@wozzle.linet.org, FIDO: 1:272/38.473) +*/ + +#include +#include +#define DEC(c) (char)(((c)-' ')&077) + +int main() +{ + int n; + char buf[128],a,b,c,d; + + scanf("begin %o ", &n); + gets(buf); /* filename */ + if (!freopen(buf, "wb", stdout)) /* oops.. */ + { + perror(buf); + exit(1); + } + while ((n=getchar())!=EOF&&((n=DEC(n))!=0)) + { + while (n>0) + { + a=DEC(getchar()); + b=DEC(getchar()); + c=DEC(getchar()); + d=DEC(getchar()); + if (n-->0) + putchar((a<<2)|(b>>4)); + if (n-->0) + putchar((b<<4)|(c>>2)); + if (n-->0) + putchar((c<<6)|d); + } + n=getchar(); /* skip \n */ + } + return 0; +} -- cgit v1.2.3-54-g00ecf