home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / distrib / msw / splitwise.cpp < prev    next >
C/C++ Source or Header  |  1999-10-13  |  3KB  |  107 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name:        splitwise.cpp
  3. // Purpose:     Use this to split wxwin2.wse in the distrib/msw directory
  4. //              into wisetop.txt, wisebott.txt. This allows you to do the
  5. //              following:
  6. //
  7. //              1) Edit the existing wxwin2.wse in WISE Install.
  8. //              2) Call splitwise.exe to split off the non-file bits (i.e.
  9. //                 preserve everything except the "item: Install File" lines).
  10. //              3) Call makewise.bat to generate a new wxwin2.wse from
  11. //                 wisetop.txt, wisebott.txt and the file list generated
  12. //                 from the files in deliver\wx (which themselves have been
  13. //                 put there by zipdist.bat).
  14. //
  15. //              If you don't wish to change the WISE settings, then there's no
  16. //              need to use splitwise, but it's very likely that settings will
  17. //              be altered, e.g. to change the version number, what's installed,
  18. //              etc.
  19. //
  20. // Author:      Julian Smart
  21. // Modified by:
  22. // Created:     13/10/99
  23. // RCS-ID:      $Id: splitwise.cpp,v 1.1 1999/10/13 16:30:45 JS Exp $
  24. // Copyright:   (c) Julian Smart
  25. // Licence:     wxWindows licence
  26. ///////////////////////////////////////////////////////////////////////////////
  27.  
  28.  
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31. #include <string.h>
  32.  
  33. char g_Line[1024];
  34.  
  35. int ReadLine(FILE* fd, char* buf)
  36. {
  37.     int ch;
  38.     int i = 0;
  39.     while (((ch = getc(fd)) != EOF) && (ch != '\n'))
  40.     {
  41.         buf[i] = ch;
  42.         i ++;
  43.     }
  44.     buf[i] = 0;
  45.  
  46.     if (ch == EOF && (i == 0))
  47.         return 0;
  48.     else
  49.         return 1;
  50. }
  51.  
  52. void WriteLine(FILE* fd, char* buf)
  53. {
  54.     int len = strlen(buf);
  55.     int i;
  56.     for (i = 0; i < len; i++)
  57.         putc(buf[i], fd);
  58.     putc('\n', fd);
  59. }
  60.  
  61. int main(int argc, char* argv[])
  62. {
  63.     FILE* wiseTop = fopen("wisetop.txt", "w");
  64.     if (!wiseTop)
  65.         return 1;
  66.  
  67.     FILE* wiseBottom = fopen("wisebott.txt", "w");
  68.     if (!wiseBottom)
  69.         return 1;
  70.  
  71.     FILE* wiseWhole = fopen("wxwin2.wse", "r");
  72.     if (!wiseWhole)
  73.         return 1;
  74.  
  75.     // Write out the top of the file
  76.     g_Line[0] = 0;
  77.     while (ReadLine(wiseWhole, g_Line))
  78.     {
  79.         if (strcmp(g_Line, "item: Install File") == 0)
  80.             break;
  81.         else
  82.             WriteLine(wiseTop, g_Line);
  83.     }
  84.     // Skip to the end of the file items
  85.     while (ReadLine(wiseWhole, g_Line))
  86.     {
  87.         if ((strncmp(g_Line, "item:", 5) == 0) && (strcmp(g_Line, "item: Install File") != 0))
  88.         {
  89.             WriteLine(wiseBottom, g_Line);
  90.             break;
  91.         }
  92.     }
  93.     // Write the rest of the bottom
  94.     while (ReadLine(wiseWhole, g_Line))
  95.     {
  96.         WriteLine(wiseBottom, g_Line);
  97.     }
  98.  
  99.     fclose(wiseTop);
  100.     fclose(wiseBottom);
  101.     fclose(wiseWhole);
  102.  
  103.     return 0;
  104. }
  105.  
  106.  
  107.