home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume4 / xmodem / addlf.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  935 b   |  53 lines

  1. #
  2. # define CR    13
  3. # define NL    10
  4.  
  5. main(argc,argv)
  6. int argc;
  7. char *argv[]; {
  8.     int id, oid;
  9.     char buf[512];
  10.     char *temp, *index();
  11.     char *end = "\r\n";
  12.     int ln, cnt;
  13.     register char *ptr, *od;
  14.     register i, count;
  15.  
  16.     for (i = 1; i < argc; i++) {
  17.         if ((id = open(argv[i],0)) < 0) {
  18.             printf("CAN NOT OPEN FILE `%s'. . . . .\n",argv[i]);
  19.             break;
  20.         } else {
  21.             temp = "tempXXXXXX";
  22.             mktemp(temp);
  23.             oid = creat(temp,0644);
  24.             
  25.             ptr = buf;
  26.             while (ln = read(id,ptr,512)) {
  27.                 count = 0;
  28.                 while ( od = index(ptr,CR) ) {
  29.                     if (od > &buf[ln]) break;
  30.                     *od = '\0';
  31.                     cnt = strlen(ptr);
  32.                     count += cnt;
  33.                     write(oid, ptr, cnt);
  34.                     write(oid, end, 2);
  35.                     ptr = ++od;
  36.                     count++;
  37.                 }
  38.                 if (count = ln - count)
  39.                     write(oid,ptr,count);
  40.                 ptr = buf;
  41.             }
  42.  
  43.             close(oid); close(id);
  44.             strcpy(buf,"mv ");
  45.             strcat(buf,temp);
  46.             strcat(buf," ");
  47.             strcat(buf,argv[i]);
  48.             system(buf);
  49.             unlink(temp);
  50.         }
  51.     }
  52. }
  53.