Rev 4719 | Rev 4728 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4719 | Rev 4725 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | dword new_buf, new_buf_start, i; |
6 | dword new_buf, new_buf_start, i; |
7 | byte ww, mode; |
7 | byte ww, mode; |
Line 8... | Line 8... | ||
8 | 8 | ||
9 | if (souce_mode) return; |
9 | if (souce_mode) return; |
10 | souce_mode = true; |
10 | souce_mode = true; |
- | 11 | new_buf = malloc(bufsize*5); |
|
- | 12 | new_buf_start = new_buf; |
|
- | 13 | strcpy(new_buf, " |
|
11 | new_buf_start = new_buf = malloc(bufsize*5); |
14 | if (strlen(#header)-strlen(#version)>0) header[strlen(#header)-strlen(#version)-2] = 0; else strcpy(#header, "Source"); |
- | 15 | strcat(new_buf, #header); |
|
- | 16 | strcat(new_buf, ""); |
|
12 | strcat(new_buf, ""); |
17 | new_buf += strlen(new_buf); |
13 | for (i=bufpointer; i |
18 | for (i=bufpointer; i |
14 | { |
19 | { |
15 | ww = ESBYTE[i]; |
- | |
16 | new_buf++; |
20 | ww = ESBYTE[i]; |
17 | switch (ww) |
21 | switch (ww) |
18 | { |
22 | { |
19 | case '<': |
23 | case '<': |
20 | if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-') |
24 | if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-') |
21 | { |
25 | { |
22 | strcat(new_buf, "<"); |
26 | strcpy(new_buf, "<"); |
23 | new_buf+=20; |
27 | new_buf+=21; |
24 | mode = COMMENT; |
28 | mode = COMMENT; |
25 | } |
29 | } |
26 | else |
30 | else |
27 | { |
31 | { |
28 | strcat(new_buf, "<"); |
32 | strcpy(new_buf, "<"); |
29 | new_buf+=20; |
33 | new_buf+=21; |
30 | mode = TAG; |
34 | mode = TAG; |
31 | } |
35 | } |
32 | break; |
36 | break; |
33 | case '>': |
37 | case '>': |
34 | if (mode == OPTION_VALUE) //fix non-closed quote in TAG |
38 | if (mode == OPTION_VALUE) //fix non-closed quote in TAG |
35 | { |
39 | { |
36 | strcat(new_buf, """); |
40 | strcpy(new_buf, """); |
37 | new_buf+=12; |
41 | new_buf+=13; |
38 | mode = TAG; |
42 | mode = TAG; |
39 | } |
43 | } |
40 | if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-') |
44 | if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-') |
41 | { |
45 | { |
42 | strcat(new_buf, ">"); |
46 | strcpy(new_buf, ">"); |
43 | new_buf+=10; |
47 | new_buf+=11; |
44 | mode = TEXT; |
48 | mode = TEXT; |
45 | } |
49 | } |
46 | if (mode == TAG) |
50 | if (mode == TAG) |
47 | { |
51 | { |
48 | strcat(new_buf, ">"); |
52 | strcpy(new_buf, ">"); |
49 | new_buf+=10; |
53 | new_buf+=11; |
50 | mode = TEXT; |
54 | mode = TEXT; |
51 | } |
55 | } |
52 | break; |
56 | break; |
53 | case '\"': |
57 | case '\"': |
54 | case '\'': |
58 | case '\'': |
55 | if (mode == TAG) |
59 | if (mode == TAG) |
56 | { |
60 | { |
57 | strcat(new_buf, """); |
61 | strcpy(new_buf, "'"); |
58 | new_buf+=22; |
62 | new_buf+=22; |
59 | mode = OPTION_VALUE; |
63 | mode = OPTION_VALUE; |
60 | break; |
64 | break; |
61 | } |
65 | } |
62 | if (mode == OPTION_VALUE) |
66 | if (mode == OPTION_VALUE) |
63 | { |
67 | { |
64 | strcat(new_buf, """); |
68 | strcpy(new_buf, "'"); |
65 | new_buf+=12; |
69 | new_buf+=12; |
66 | mode = TAG; |
70 | mode = TAG; |
67 | break; |
71 | break; |
68 | } |
72 | } |
69 | default: |
73 | default: |
- | 74 | ESBYTE[new_buf] = ww; |
|
70 | chrcat(new_buf, ww); |
75 | new_buf++; |
71 | } |
76 | } |
- | 77 | } |
|
72 | } |
78 | ESBYTE[new_buf] = 0; |
73 | bufsize = new_buf; |
79 | bufsize = new_buf - new_buf_start; |
74 | free(bufpointer); |
80 | free(bufpointer); |
75 | bufpointer = new_buf_start; |
81 | bufpointer = new_buf_start; |
76 | }': |
82 | }': |