Subversion Repositories Kolibri OS

Rev

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",