Rev 6986 | Rev 7746 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6986 | Rev 7437 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | enum { TAG, OPTION_VALUE, TEXT, COMMENT }; |
1 | enum { TAG, OPTION_VALUE, TEXT, COMMENT, INLINE_COMMENT, CODE }; |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | //you are butifull, you are butifull |
3 | //you are butifull, you are butifull |
4 | dword ShowSource() |
4 | dword ShowSource() |
5 | { |
5 | { |
6 | dword new_buf, new_buf_start, i; |
6 | dword new_buf, new_buf_start, i; |
Line 7... | Line 7... | ||
7 | byte ww, mode; |
7 | int mode; |
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); |
11 | new_buf = malloc(bufsize*5); |
12 | new_buf_start = new_buf; |
12 | new_buf_start = new_buf; |
13 | header[strrchr(#header, '-')-2]=0; |
13 | header[strrchr(#header, '-')-2]=0; |
14 | sprintf(new_buf," |
14 | sprintf(new_buf," |
15 | new_buf += strlen(new_buf); |
15 | new_buf += strlen(new_buf); |
16 | for (i=bufpointer; i |
16 | for (i=bufpointer; i |
17 | { |
- | |
18 | ww = ESBYTE[i]; |
17 | { |
19 | switch (ww) |
18 | switch (ESBYTE[i]) |
20 | { |
19 | { |
21 | case '<': |
20 | case '<': |
22 | if (mode == COMMENT) |
21 | if (mode == COMMENT) |
Line 84... | Line 83... | ||
84 | new_buf+=12; |
83 | new_buf+=12; |
85 | mode = TAG; |
84 | mode = TAG; |
86 | break; |
85 | break; |
87 | } |
86 | } |
88 | default: |
87 | default: |
89 | ESBYTE[new_buf] = ww; |
88 | ESBYTE[new_buf] = ESBYTE[i]; |
90 | new_buf++; |
89 | new_buf++; |
91 | } |
90 | } |
92 | } |
91 | } |
93 | ESBYTE[new_buf] = 0; |
92 | ESBYTE[new_buf] = 0; |
94 | bufsize = new_buf - new_buf_start; |
93 | bufsize = new_buf - new_buf_start; |
95 | free(bufpointer); |
94 | free(bufpointer); |
96 | bufpointer = new_buf_start; |
95 | bufpointer = new_buf_start; |
97 | }': |
96 | } |
98 | > |
97 | |
- | 98 | /* |
|
- | 99 | char* C_HL_keywords[] = { |
|
- | 100 | "switch", "if", "while", "for", "break", "continue", "return", "else", |
|
- | 101 | "union", "typedef", "static", "class", "case", "#include", |
|
- | 102 | "volatile", "register", "sizeof", "typedef", "union", "goto", "const", "auto", |
|
- | 103 | "#define", "#endif", "#error", "#ifdef", "#ifndef", "#undef", "#if", "#else", |
|
- | 104 | "inline", |
|
- | 105 | ||
- | 106 | "int ", "dword ", "long ", "double ", "float ", "char ", "unsigned ", "signed ", |
|
- | 107 | "void ", "bool ", "enum ", "byte ", "word ", "struct ", "NULL", "loop", "stdcall ", |
|
- | 108 | ":void ", ":int ", ":bool ", ":dword ", NULL |
|
- | 109 | }; |
|
- | 110 | ||
- | 111 | dword ShowCodeSource() |
|
- | 112 | { |
|
- | 113 | dword new_buf, new_buf_start, i; |
|
- | 114 | int mode = CODE; |
|
- | 115 | ||
- | 116 | char spstr[64]; |
|
- | 117 | dword keylen; |
|
- | 118 | dword keyn; |
|
- | 119 | dword keycolor; |
|
- | 120 | ||
- | 121 | new_buf = malloc(bufsize*10); |
|
- | 122 | new_buf_start = new_buf; |
|
- | 123 | sprintf(new_buf," |
|
- | 124 | new_buf += strlen(new_buf); |
|
- | 125 | for (i=bufpointer; i |
|
- | 126 | { |
|
- | 127 | if ('<' == ESBYTE[i]) { |
|
- | 128 | strcpy(new_buf, "<"); |
|
- | 129 | new_buf+=4; |
|
- | 130 | continue; |
|
- | 131 | } |
|
- | 132 | if ('>' == ESBYTE[i]) { |
|
- | 133 | strcpy(new_buf, ">"); |
|
- | 134 | new_buf+=4; |
|
- | 135 | continue; |
|
- | 136 | } |
|
- | 137 | if (ESBYTE[i] >= '0') && (ESBYTE[i] <= '9') && (CODE == mode) { |
|
- | 138 | strcpy(new_buf, "?"); |
|
- | 139 | ESBYTE[new_buf+20] = ESBYTE[i]; |
|
- | 140 | new_buf+=28; |
|
- | 141 | if (ESBYTE[i+1] == 'x') { |
|
- | 142 | strcpy(new_buf, "x"); |
|
- | 143 | new_buf+=28; |
|
- | 144 | i++; |
|
- | 145 | } |
|
- | 146 | continue; |
|
- | 147 | } |
|
- | 148 | ||
- | 149 | if (CODE == mode) && ('\"' == ESBYTE[i]) { |
|
- | 150 | mode = TEXT; |
|
- | 151 | strcpy(new_buf, "\""); |
|
- | 152 | new_buf+=18; |
|
- | 153 | continue; |
|
- | 154 | } |
|
- | 155 | if (TEXT == mode) && ('\"' == ESBYTE[i]) { |
|
- | 156 | mode = CODE; |
|
- | 157 | strcpy(new_buf, "\""); |
|
- | 158 | new_buf+=8; |
|
- | 159 | continue; |
|
- | 160 | } |
|
- | 161 | ||
- | 162 | if (! strncmp(i, "//", 2) ) && (mode == CODE) { |
|
- | 163 | mode = INLINE_COMMENT; |
|
- | 164 | strcpy(new_buf, "//"); |
|
- | 165 | new_buf+=19; |
|
- | 166 | i++; |
|
- | 167 | continue; |
|
- | 168 | } |
|
- | 169 | ||
- | 170 | if (INLINE_COMMENT == mode) { |
|
- | 171 | if (13 == ESBYTE[i]) { |
|
- | 172 | mode = CODE; |
|
- | 173 | strcpy(new_buf, "\13"); |
|
- | 174 | new_buf+=8; |
|
- | 175 | continue; |
|
- | 176 | } |
|
- | 177 | } |
|
- | 178 | ||
- | 179 | if (! strncmp(i, "/*", 2) ) { |
|
- | 180 | mode = COMMENT; |
|
- | 181 | strcpy(new_buf, "/*"); |
|
- | 182 | new_buf+=19; |
|
- | 183 | i++; |
|
- | 184 | continue; |
|
- | 185 | } |
|
- | 186 | if (! strncmp(i, "*/", 2) ) { |
|
- | 187 | mode = CODE; |
|
- | 188 | strcpy(new_buf, "*/"); |
|
- | 189 | new_buf+=9; |
|
- | 190 | i++; |
|
- | 191 | continue; |
|
- | 192 | } |
|
- | 193 | ||
- | 194 | if (CODE == mode) for (keyn=0; C_HL_keywords[keyn]!=NULL; keyn++) |
|
- | 195 | { |
|
- | 196 | keylen = strlen(C_HL_keywords[keyn]); |
|
- | 197 | if (! strncmp(i, C_HL_keywords[keyn], keylen) ) { |
|
- | 198 | ||
- | 199 | if (keyn<31) keycolor="#f00"; else keycolor="#00f"; |
|
- | 200 | sprintf(#spstr, "%s", keycolor, C_HL_keywords[keyn]); |
|
- | 201 | strcpy(new_buf, #spstr); |
|
- | 202 | ||
- | 203 | new_buf += keylen + 24; |
|
- | 204 | i += keylen-1; |
|
- | 205 | goto _CONTINUE; |
|
- | 206 | } |
|
- | 207 | } |
|
- | 208 | ESBYTE[new_buf] = ESBYTE[i]; |
|
- | 209 | new_buf++; |
|
- | 210 | _CONTINUE: |
|
- | 211 | } |
|
- | 212 | ESBYTE[new_buf] = 0; |
|
- | 213 | bufsize = new_buf - new_buf_start; |
|
- | 214 | free(bufpointer); |
|
- | 215 | bufpointer = new_buf_start; |
|
- | 216 | } |
|
- | 217 | */31)>=>'>': |
|
- | 218 | > |
|
99 | 219 |