Subversion Repositories Kolibri OS

Rev

Rev 4718 | Rev 4725 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4718 Rev 4719
Line -... Line 1...
-
 
1
enum { TAG, OPTION_VALUE, TEXT, COMMENT };
-
 
2
 
1
//you are butifull, you are butifull
3
//you are butifull, you are butifull
2
dword ShowSource()
4
dword ShowSource()
3
{
5
{
4
	dword new_buf, new_buf_start, i;
6
	dword new_buf, new_buf_start, i;
5
	byte ww, param, comment;
7
	byte ww, mode;
Line 6... Line 8...
6
 
8
 
7
	if (souce_mode) return;
9
	if (souce_mode) return;
8
	souce_mode = true;
10
	souce_mode = true;
9
	new_buf_start = new_buf = malloc(bufsize*5);
11
	new_buf_start = new_buf = malloc(bufsize*5);
Line 17... Line 19...
17
			case '<':
19
			case '<':
18
				if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-')
20
				if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-')
19
				{
21
				{
20
					strcat(new_buf, "<");
22
					strcat(new_buf, "<");
21
					new_buf+=20;
23
					new_buf+=20;
-
 
24
					mode = COMMENT;
22
				}
25
				}
23
				else
26
				else
24
				{
27
				{
25
					strcat(new_buf, "<");
28
					strcat(new_buf, "<");
26
					new_buf+=20;					
29
					new_buf+=20;
-
 
30
					mode = TAG;
27
				}
31
				}
28
				break;
32
				break;
29
			case '>':
33
			case '>':
30
				if (!param) //fix non-closed quote
34
				if (mode == OPTION_VALUE) //fix non-closed quote in TAG
31
				{
35
				{
32
					param = 1;
-
 
33
					strcat(new_buf, """);
36
					strcat(new_buf, """);
34
					new_buf+=12;					
37
					new_buf+=12;					
-
 
38
					mode = TAG;
35
				}
39
				}
36
				if (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-')
40
				if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-')
37
				{
41
				{
38
					strcat(new_buf, ">");
42
					strcat(new_buf, ">");
39
					new_buf+=10;
43
					new_buf+=10;
-
 
44
					mode = TEXT;
40
				}
45
				}
41
				else
46
				if (mode == TAG)
42
				{
47
				{
43
					strcat(new_buf, ">");
48
					strcat(new_buf, ">");
44
					new_buf+=10;					
49
					new_buf+=10;
-
 
50
					mode = TEXT;
45
				}
51
				}
46
				break;
52
				break;
47
			case '\"':
53
			case '\"':
48
			case '\'':
54
			case '\'':
49
				if (param)
55
				if (mode == TAG)
50
				{
56
				{
51
					param = 0;
-
 
52
					strcat(new_buf, """);
57
					strcat(new_buf, """);
53
					new_buf+=22;
58
					new_buf+=22;
-
 
59
					mode = OPTION_VALUE;
-
 
60
					break;
54
				}
61
				}
55
				else
62
				if (mode == OPTION_VALUE)
56
				{
63
				{
57
					param = 1;
-
 
58
					strcat(new_buf, """);
64
					strcat(new_buf, """);
59
					new_buf+=12;
65
					new_buf+=12;
60
				}
66
					mode = TAG;
61
				break;
67
					break;
-
 
68
				}
62
			default:
69
			default:
63
				chrcat(new_buf, ww);
70
				chrcat(new_buf, ww);
64
		}
71
		}
65
	}
72
	}
66
	bufsize = new_buf;
73
	bufsize = new_buf;