home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FILUTL / REBUILD2.ZIP / REBUILD.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-08  |  3.6 KB  |  114 lines

  1. /* rebuild.c    Merges the splitted files arrived from SIMTEL 20.
  2.  *        You can easily improve it, passing the INPUT_FILE
  3.  *        and OUTPUT_FILE names in *argv and adding a system(2) 
  4.  *        command to call "uudecode OUTPUT_FILE (in argv)". 
  5.  *        If you do that let me know.
  6.  *
  7.  * MARIO A. Nascimento,     21/06/90,     10:11 hs.
  8.  * mario@ntiaa.embrapa.ansp.br     NTIA-EMBRAPA     CAMPINAS - SP - BRAZIL
  9.  *
  10.  * Public Domain. Just maintain this note as part of this source program.
  11.  * No warranties. You are on your own, being the only responsible for 
  12.  * using this piece of software.
  13.  * Works fine with MSC 5.0 under DOS 3.3 (and problably others !).
  14.  *
  15.  * Usage: rebuild < INPUT_FILE > OUTPUT_FILE
  16.  */
  17.  
  18.  /*Usage changed to: rebuild INPUT_FILE OUTPUT_FILE
  19.  * program then does system call to "uudecode" with parameter
  20.  * OUTPUT_FILE. Fixed bug where "end" did not get written to the
  21.  * OUTPUT_FILE when "end" was read by buffer1.
  22.  *
  23.  * Depending on your compiler, you may need to change:
  24.  *      main (int argc, char *argv[])
  25.  *      {
  26.  *            char    decode[80];
  27.  *  to:
  28.  *      main (argc, *argv[])
  29.  *      {
  30.  *              int     argc;
  31.  *              char    *argv[];
  32.  *            char    decode[80];
  33.  *
  34.  * Dwight H. Southwick   11/8/90
  35.  * dsouthwick%lynx@helios.northeastern.edu           */
  36.  
  37. #include    <stdio.h>
  38.  
  39. main (int argc, char *argv[])
  40. {
  41.     char    decode[80];
  42.     char    buffer1[80], buffer2[80];
  43.     FILE    *input, *output;
  44.  
  45. /*    if (argc != 1) {
  46.         fprintf(stderr,"Usage: rebuild < INPUT_FILE > OUTPUT_FILE\n");
  47.         fprintf(stderr,"MARIO A. Nascimento,\t\t21/06/90,\t10:11 hs\n");
  48.         fprintf(stderr,"mario@ntiaa.embrapa.ansp.br\tNTIA-EMBRAPA\t");
  49.         fprintf(stderr,"CAMPINAS - SP - BRAZIL\n");
  50.         exit(1);
  51.     }
  52. */
  53.     if (argc != 3) {
  54.         fprintf(stderr,"Usage: rebuild  INPUT_FILE  OUTPUT_FILE\n");
  55.         fprintf(stderr,"Original code by:\n");
  56.         fprintf(stderr,"MARIO A. Nascimento,\t\t21/06/90,\t10:11 hs\n");
  57.         fprintf(stderr,"mario@ntiaa.embrapa.ansp.br\tNTIA-EMBRAPA\t");
  58.         fprintf(stderr,"CAMPINAS - SP - BRAZIL\n");
  59.         fprintf(stderr,"This revision by:\n");
  60.         fprintf(stderr,"Dwight H. Southwick,\t\t06/10/90,\t10:19 hs\n");
  61.         fprintf(stderr,"dsouthwick%lynx@helios.northeastern.edu\n");
  62.         exit(1);
  63.     }
  64.  
  65.  
  66.     input = fopen(argv[1],"r");
  67.     output = fopen(argv[2],"w");
  68.     for(; strcmp(buffer1,"begin"); )
  69.         fscanf(input,"%s",buffer1);
  70.  
  71.     strcat(buffer1," "); fprintf(output,"%s",buffer1);
  72.     fscanf(input,"%s",buffer1); strcat(buffer1," ");
  73.     fprintf(output,"%s",buffer1); fscanf(input,"%s",buffer1);
  74.     strcat(buffer1,"\n"); fprintf(output,"%s",buffer1);
  75.  
  76.     fscanf(input,"%s",buffer1); fscanf(input,"%s",buffer2);
  77.     for (; ; ) {
  78.         if (strcmp(buffer1,"----------") && 
  79.             strcmp(buffer2,"----------")) {
  80.             strcat(buffer1,"\n"); fprintf(output,"%s",buffer1);
  81.             strcat(buffer2,"\n"); fprintf(output,"%s",buffer2);
  82.         }
  83.         else {
  84.             if (!strcmp(buffer2,"----------")) {
  85.                 strcat(buffer1,"\n");
  86.                 fprintf(output,"%s",buffer1);
  87.             }
  88.             for (fscanf(input,"%s",buffer1);
  89.                  strcmp(buffer1,"--------------");
  90.                  fscanf(input,"%s",buffer1))
  91.                 ;
  92.             fscanf(input,"%s",buffer2);
  93.             fscanf(input,"%s",buffer2);
  94.             fscanf(input,"%s",buffer2);
  95.             fscanf(input,"%s",buffer2);
  96.             fscanf(input,"%s",buffer2);
  97.         }
  98.         fscanf(input,"%s",buffer1); fscanf(input,"%s",buffer2);
  99.         if (!strcmp(buffer1,"end") || !strcmp(buffer2,"end")) {
  100.             if (strcmp(buffer1,"end"))
  101.                 fprintf(output,"%s\nend\n",buffer1);
  102.             else
  103.                 fprintf(output,"end\n");
  104.             break;
  105.         }
  106.     }
  107.     fclose(input);
  108.     fclose(output);
  109.     strcpy(decode,"uudecode ");
  110.     strcat(decode,argv[2]);
  111.     system(decode);
  112.     return(0);
  113. }
  114.