Rev 6794 | Rev 7746 | 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; |
||
4725 | leency | 11 | new_buf = malloc(bufsize*5); |
12 | new_buf_start = new_buf; |
||
5773 | leency | 13 | header[strrchr(#header, '-')-2]=0; |
6794 | leency | 14 | sprintf(new_buf," |
15 | new_buf += strlen(new_buf); |
||
4718 | leency | 16 | for (i=bufpointer; i |
17 | { |
||
18 | ww = ESBYTE[i]; |
||
19 | switch (ww) |
||
20 | { |
||
21 | case '<': |
||
6986 | leency | 22 | if (mode == COMMENT) |
23 | { |
||
24 | strcpy(new_buf, "<"); |
||
25 | new_buf+=4; |
||
26 | break; |
||
27 | } |
||
4718 | leency | 28 | if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-') |
29 | { |
||
4728 | leency | 30 | strcpy(new_buf, "<"); |
4725 | leency | 31 | new_buf+=21; |
4719 | leency | 32 | mode = COMMENT; |
6986 | leency | 33 | break; |
4718 | leency | 34 | } |
4728 | leency | 35 | if (mode != COMMENT) |
4718 | leency | 36 | { |
4725 | leency | 37 | strcpy(new_buf, "<"); |
38 | new_buf+=21; |
||
4719 | leency | 39 | mode = TAG; |
6986 | leency | 40 | break; |
4718 | leency | 41 | } |
42 | break; |
||
43 | case '>': |
||
4719 | leency | 44 | if (mode == OPTION_VALUE) //fix non-closed quote in TAG |
4718 | leency | 45 | { |
4725 | leency | 46 | strcpy(new_buf, """); |
47 | new_buf+=13; |
||
4719 | leency | 48 | mode = TAG; |
6986 | leency | 49 | break; |
4718 | leency | 50 | } |
4719 | leency | 51 | if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-') |
4718 | leency | 52 | { |
4725 | leency | 53 | strcpy(new_buf, ">"); |
54 | new_buf+=11; |
||
4719 | leency | 55 | mode = TEXT; |
6986 | leency | 56 | break; |
4718 | leency | 57 | } |
6986 | leency | 58 | if (mode == COMMENT) |
59 | { |
||
60 | strcpy(new_buf, ">"); |
||
61 | new_buf+=4; |
||
62 | break; |
||
63 | } |
||
4719 | leency | 64 | if (mode == TAG) |
4718 | leency | 65 | { |
4725 | leency | 66 | strcpy(new_buf, ">"); |
67 | new_buf+=11; |
||
4719 | leency | 68 | mode = TEXT; |
6986 | leency | 69 | break; |
4718 | leency | 70 | } |
71 | break; |
||
72 | case '\"': |
||
73 | case '\'': |
||
4719 | leency | 74 | if (mode == TAG) |
4718 | leency | 75 | { |
4725 | leency | 76 | strcpy(new_buf, "'"); |
4718 | leency | 77 | new_buf+=22; |
4719 | leency | 78 | mode = OPTION_VALUE; |
79 | break; |
||
4718 | leency | 80 | } |
4719 | leency | 81 | if (mode == OPTION_VALUE) |
4718 | leency | 82 | { |
4725 | leency | 83 | strcpy(new_buf, "'"); |
4718 | leency | 84 | new_buf+=12; |
4719 | leency | 85 | mode = TAG; |
86 | break; |
||
4718 | leency | 87 | } |
88 | default: |
||
4725 | leency | 89 | ESBYTE[new_buf] = ww; |
90 | new_buf++; |
||
4718 | leency | 91 | } |
92 | } |
||
4725 | leency | 93 | ESBYTE[new_buf] = 0; |
94 | bufsize = new_buf - new_buf_start; |
||
4718 | leency | 95 | free(bufpointer); |
96 | bufpointer = new_buf_start; |
||
97 | }': |