home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / UUDECODE.C < prev    next >
C/C++ Source or Header  |  1997-07-05  |  1KB  |  44 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. ** by: John Lots
  5. ** patched up for BC++ 3.1 by Alan Eldridge 10/12/92
  6. **     (UUCP: alane@wozzle.linet.org, FIDO: 1:272/38.473)
  7. */
  8.  
  9. #include        <stdio.h>
  10. #include        <stdlib.h>
  11. #define         DEC(c)  (char)(((c)-' ')&077)
  12.  
  13. int main()
  14. {
  15.       int     n;
  16.       char    buf[128],a,b,c,d;
  17.  
  18.       scanf("begin %o ", &n);
  19.       gets(buf);                              /* filename */
  20.       if (!freopen(buf, "wb", stdout))         /* oops.. */
  21.       {
  22.             perror(buf);
  23.             exit(1);
  24.       }
  25.       while ((n=getchar())!=EOF&&((n=DEC(n))!=0))
  26.       {
  27.             while (n>0)
  28.             {
  29.                   a=DEC(getchar());
  30.                   b=DEC(getchar());
  31.                   c=DEC(getchar());
  32.                   d=DEC(getchar());
  33.                   if (n-->0)
  34.                         putchar((a<<2)|(b>>4));
  35.                   if (n-->0)
  36.                         putchar((b<<4)|(c>>2));
  37.                   if (n-->0)
  38.                         putchar((c<<6)|d);
  39.             }
  40.             n=getchar();                    /* skip \n */
  41.       }
  42.       return 0;
  43. }
  44.