home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 024 / psi110g.zip / DOS2UNIX.C < prev    next >
C/C++ Source or Header  |  1994-04-17  |  1KB  |  53 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.   
  4. /* A very simple dos-to-unix text file translator.
  5.  * Johan. K. Reinalda, WG7J 930625
  6.  */
  7.   
  8. void main(int argc,char *argv[]) {
  9.     int i;
  10.   
  11.     if(argc == 1)
  12.         return;
  13.     for(i=1;i<argc;i++) {
  14.         FILE *fpo,*fpn;
  15.         char *cp;
  16.         char back[128];
  17.         char buf[128];
  18.   
  19.         strcpy(back,argv[i]);
  20.         if((cp=strchr(back,'.')) != NULL)
  21.             *cp = '\0';
  22.         strcat(back,".&&&");
  23.         unlink(back);
  24.         if(rename(argv[i],back) != 0) {
  25.             printf("Cannot rename %s to %s\n",argv[i],back);
  26.             continue;
  27.         }
  28.         if((fpo=fopen(back,"rb")) == NULL) {
  29.             printf("Cannot open %s\n",back);
  30.             continue;
  31.         }
  32.         if((fpn=fopen(argv[i],"wb")) == NULL) {
  33.             printf("Cannot write %s\n",argv[i]);
  34.             continue;
  35.         }
  36.         while(fgets(buf,sizeof(buf),fpo) != NULL) {
  37.             cp = buf;
  38.             while(*cp) {
  39.                 if(*cp == 0xd || *cp == 0xa) {
  40.                     *cp = '\0';
  41.                     break;
  42.                 }
  43.                 cp++;
  44.             }
  45.             fprintf(fpn,"%s\n",buf);
  46.         }
  47.         fclose(fpo);
  48.         fclose(fpn);
  49.         unlink(back);
  50.     }
  51.     return;
  52. }
  53.