/////////////////////////////////////////////////////////////////////////////// // Name: splitwise.cpp // Purpose: Use this to split wxwin2.wse in the distrib/msw directory // into wisetop.txt, wisebott.txt. This allows you to do the // following: // // 1) Edit the existing wxwin2.wse in WISE Install. // 2) Call splitwise.exe to split off the non-file bits (i.e. // preserve everything except the "item: Install File" lines). // 3) Call makewise.bat to generate a new wxwin2.wse from // wisetop.txt, wisebott.txt and the file list generated // from the files in deliver\wx (which themselves have been // put there by zipdist.bat). // // If you don't wish to change the WISE settings, then there's no // need to use splitwise, but it's very likely that settings will // be altered, e.g. to change the version number, what's installed, // etc. // // Author: Julian Smart // Modified by: // Created: 13/10/99 // RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWidgets licence /////////////////////////////////////////////////////////////////////////////// #include #include #include char g_Line[1024]; int ReadLine(FILE* fd, char* buf) { int ch; int i = 0; while (((ch = getc(fd)) != EOF) && (ch != '\n')) { buf[i] = ch; i ++; } buf[i] = 0; if (ch == EOF && (i == 0)) return 0; else return 1; } void WriteLine(FILE* fd, char* buf) { int len = strlen(buf); int i; for (i = 0; i < len; i++) putc(buf[i], fd); putc('\n', fd); } int main(int argc, char* argv[]) { FILE* wiseTop = fopen("wisetop.txt", "w"); if (!wiseTop) return 1; FILE* wiseBottom = fopen("wisebott.txt", "w"); if (!wiseBottom) return 1; FILE* wiseWhole = fopen("wxwin2.wse", "r"); if (!wiseWhole) return 1; // Write out the top of the file g_Line[0] = 0; while (ReadLine(wiseWhole, g_Line)) { if (strcmp(g_Line, "item: Install File") == 0) break; else WriteLine(wiseTop, g_Line); } // Skip to the end of the file items while (ReadLine(wiseWhole, g_Line)) { if ((strncmp(g_Line, "item:", 5) == 0) && (strcmp(g_Line, "item: Install File") != 0)) { WriteLine(wiseBottom, g_Line); break; } } // Write the rest of the bottom while (ReadLine(wiseWhole, g_Line)) { WriteLine(wiseBottom, g_Line); } fclose(wiseTop); fclose(wiseBottom); fclose(wiseWhole); return 0; }