home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / libg++-2.6-fsf.lha / libg++-2.6 / libio / dbz / byteflip.c < prev    next >
C/C++ Source or Header  |  1993-10-25  |  652b  |  38 lines

  1. #include <stdio.h>
  2.  
  3. #define    MAXWORD    32
  4.  
  5. main(argc, argv)
  6. int argc;
  7. char *argv[];
  8. {
  9.     register int len;
  10.     int inmap[MAXWORD];
  11.     int outmap[MAXWORD];
  12.     char in[MAXWORD];
  13.     char out[MAXWORD];
  14.     register int i;
  15.     register int a;
  16.  
  17.     a = 1;
  18.     len = atoi(argv[a++]);
  19.     if (len > MAXWORD)
  20.         abort();    /* kind of drastic... */
  21.     for (i = 0; i < len; i++)
  22.         inmap[i] = atoi(argv[a++]);
  23.     if (atoi(argv[a++]) != len)
  24.         abort();
  25.     for (i = 0; i < len; i++)
  26.         outmap[i] = atoi(argv[a++]);
  27.  
  28.     while (fread(in, 1, len, stdin) == len) {
  29.         for (i = 0; i < len; i++)
  30.             out[outmap[i]] = in[inmap[i]];
  31.         fwrite(out, 1, len, stdout);
  32.     }
  33. #ifdef DBZ_FINISH
  34.     DBZ_FINISH;
  35. #endif
  36.     exit(0);
  37. }
  38.