Rev 7437 | Rev 7750 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7437 | Rev 7746 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | enum { TAG, OPTION_VALUE, TEXT, COMMENT, INLINE_COMMENT, CODE }; |
1 | enum { TAG, OPTION_VALUE, TEXT, COMMENT, SCRIPT}; |
Line 2... | Line -... | ||
2 | - | ||
3 | //you are butifull, you are butifull |
2 | |
4 | dword ShowSource() |
3 | dword ShowSource() |
5 | { |
4 | { |
- | 5 | dword new_buf, new_buf_start, i, j; |
|
6 | dword new_buf, new_buf_start, i; |
6 | int opened_font=0; |
Line 7... | Line 7... | ||
7 | int mode; |
7 | int mode = TEXT; |
8 | 8 | ||
9 | if (souce_mode) return; |
9 | if (souce_mode) return; |
10 | souce_mode = true; |
10 | souce_mode = true; |
Line 16... | Line 16... | ||
16 | for (i=bufpointer; i |
16 | for (i=bufpointer; i |
17 | { |
17 | { |
18 | switch (ESBYTE[i]) |
18 | switch (ESBYTE[i]) |
19 | { |
19 | { |
20 | case '<': |
20 | case '<': |
21 | if (mode == COMMENT) |
21 | if (mode == TEXT) && (!strncmp(i+1,"script", 6)) { |
22 | { |
22 | mode = SCRIPT; |
23 | strcpy(new_buf, "<"); |
23 | strcpy(new_buf, "<script"); opened_font++; |
24 | new_buf+=4; |
24 | new_buf+=54; |
- | 25 | i+=6; |
|
25 | break; |
26 | break; |
26 | } |
27 | } |
27 | if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-') |
28 | if (mode == COMMENT) || (mode == SCRIPT) && (!strncmp(i+1,"/script>", 8)) { |
- | 29 | mode = TEXT; |
|
- | 30 | while (opened_font) { |
|
- | 31 | strcpy(new_buf, ""); opened_font--; |
|
- | 32 | new_buf+=7; |
|
28 | { |
33 | } |
29 | strcpy(new_buf, "<"); |
34 | strcpy(new_buf, "</script>"); |
30 | new_buf+=21; |
35 | new_buf+=39; |
31 | mode = COMMENT; |
36 | i+=8; |
32 | break; |
37 | break; |
33 | } |
38 | } |
- | 39 | if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-') { |
|
34 | if (mode != COMMENT) |
40 | mode = COMMENT; |
35 | { |
- | |
36 | strcpy(new_buf, "<"); |
41 | strcpy(new_buf, "<"); opened_font++; |
37 | new_buf+=21; |
42 | new_buf+=21; |
- | 43 | break; |
|
- | 44 | } |
|
- | 45 | if (mode == TEXT) { |
|
38 | mode = TAG; |
46 | mode = TAG; |
- | 47 | strcpy(new_buf, "<"); opened_font++; |
|
- | 48 | new_buf+=21; |
|
- | 49 | break; |
|
- | 50 | } |
|
- | 51 | if (mode == COMMENT) || (mode == SCRIPT) { |
|
- | 52 | strcpy(new_buf, "<"); |
|
- | 53 | new_buf+=4; |
|
39 | break; |
54 | break; |
40 | } |
55 | } |
41 | break; |
56 | break; |
42 | case '>': |
57 | case '>': |
43 | if (mode == OPTION_VALUE) //fix non-closed quote in TAG |
58 | if (mode == OPTION_VALUE) { //fix non-closed quote in TAG |
44 | { |
59 | mode = TEXT; |
- | 60 | while (opened_font) { |
|
45 | strcpy(new_buf, """); |
61 | strcpy(new_buf, """); opened_font--; |
46 | new_buf+=13; |
62 | new_buf+=13; |
47 | mode = TAG; |
63 | } |
48 | break; |
64 | break; |
49 | } |
65 | } |
50 | if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-') |
66 | if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-') { |
51 | { |
- | |
52 | strcpy(new_buf, ">"); |
- | |
53 | new_buf+=11; |
- | |
54 | mode = TEXT; |
67 | mode = TEXT; |
- | 68 | strcpy(new_buf, ">"); opened_font--; |
|
- | 69 | new_buf+=11; |
|
55 | break; |
70 | break; |
56 | } |
71 | } |
57 | if (mode == COMMENT) |
72 | if (mode == COMMENT) || (mode == SCRIPT) { |
58 | { |
- | |
59 | strcpy(new_buf, ">"); |
73 | strcpy(new_buf, ">"); |
60 | new_buf+=4; |
74 | new_buf+=4; |
61 | break; |
75 | break; |
62 | } |
76 | } |
63 | if (mode == TAG) |
77 | if (mode == TAG) { |
64 | { |
- | |
65 | strcpy(new_buf, ">"); |
- | |
66 | new_buf+=11; |
- | |
67 | mode = TEXT; |
78 | mode = TEXT; |
- | 79 | strcpy(new_buf, ">"); opened_font--; |
|
- | 80 | new_buf+=11; |
|
68 | break; |
81 | break; |
69 | } |
82 | } |
70 | break; |
83 | break; |
71 | case '\"': |
84 | case '\"': |
72 | case '\'': |
85 | case '\'': |
73 | if (mode == TAG) |
86 | if (mode == TAG) { |
74 | { |
- | |
75 | strcpy(new_buf, "'"); |
- | |
76 | new_buf+=22; |
- | |
77 | mode = OPTION_VALUE; |
87 | mode = OPTION_VALUE; |
- | 88 | strcpy(new_buf, "'"); opened_font++; |
|
- | 89 | new_buf+=25; |
|
78 | break; |
90 | break; |
79 | } |
91 | } |
80 | if (mode == OPTION_VALUE) |
92 | if (mode == OPTION_VALUE) { |
81 | { |
- | |
82 | strcpy(new_buf, "'"); |
- | |
83 | new_buf+=12; |
- | |
84 | mode = TAG; |
93 | mode = TAG; |
- | 94 | strcpy(new_buf, "'"); opened_font--; |
|
- | 95 | new_buf+=12; |
|
85 | break; |
96 | break; |
86 | } |
97 | } |
87 | default: |
98 | default: |
88 | ESBYTE[new_buf] = ESBYTE[i]; |
99 | ESBYTE[new_buf] = ESBYTE[i]; |
89 | new_buf++; |
100 | new_buf++; |
Line 94... | Line 105... | ||
94 | free(bufpointer); |
105 | free(bufpointer); |
95 | bufpointer = new_buf_start; |
106 | bufpointer = new_buf_start; |
96 | } |
107 | } |
Line 97... | Line 108... | ||
97 | 108 | ||
- | 109 | /* |
|
- | 110 | ||
- | 111 | enum { TAG, OPTION_VALUE, TEXT, COMMENT, INLINE_COMMENT, CODE }; |
|
98 | /* |
112 | |
99 | char* C_HL_keywords[] = { |
113 | char* C_HL_keywords[] = { |
100 | "switch", "if", "while", "for", "break", "continue", "return", "else", |
114 | "switch", "if", "while", "for", "break", "continue", "return", "else", |
101 | "union", "typedef", "static", "class", "case", "#include", |
115 | "union", "typedef", "static", "class", "case", "#include", |
102 | "volatile", "register", "sizeof", "typedef", "union", "goto", "const", "auto", |
116 | "volatile", "register", "sizeof", "typedef", "union", "goto", "const", "auto", |