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