]>
Commit | Line | Data |
---|---|---|
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$ | |
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 |