Subversion Repositories Kolibri OS

Rev

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

Rev 4719 Rev 4725
Line 6... Line 6...
6
	dword new_buf, new_buf_start, i;
6
	dword new_buf, new_buf_start, i;
7
	byte ww, mode;
7
	byte ww, mode;
Line 8... Line 8...
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);
-
 
12
	new_buf_start = new_buf;
-
 
13
	strcpy(new_buf, "");</pre></td>
          </tr>
          <tr>
            <td class="lineno">11</td>
            <td class="diffchanged"><pre>	new_buf_start = new_buf = malloc(bufsize*5);</pre></td>
            <td class="lineno">14</td>
            <td class="diffchanged"><pre>	if (strlen(#header)-strlen(#version)>0) header[strlen(#header)-strlen(#version)-2] = 0; else strcpy(#header, "Source");</pre></td>
          </tr>
          <tr>
            <td class="lineno">-</td>
            <td class="diffempty"><pre> </pre></td>
            <td class="lineno">15</td>
            <td class="diffadded"><pre>	strcat(new_buf, #header);</pre></td>
          </tr>
          <tr>
            <td class="lineno">-</td>
            <td class="diffempty"><pre> </pre></td>
            <td class="lineno">16</td>
            <td class="diffadded"><pre>	strcat(new_buf, "
");
12
	strcat(new_buf, "
");
17
	new_buf += strlen(new_buf);
13
	for (i=bufpointer; i
18
	for (i=bufpointer; i
14
	{
19
	{
15
		ww = ESBYTE[i];
-
 
16
		new_buf++;
20
		ww = ESBYTE[i];
17
		switch (ww)
21
		switch (ww)
18
		{
22
		{
19
			case '<':
23
			case '<':
20
				if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-')
24
				if (ESBYTE[i+1]=='!') && (ESBYTE[i+2]=='-') && (ESBYTE[i+3]=='-')
21
				{
25
				{
22
					strcat(new_buf, "<");
26
					strcpy(new_buf, "<");
23
					new_buf+=20;
27
					new_buf+=21;
24
					mode = COMMENT;
28
					mode = COMMENT;
25
				}
29
				}
26
				else
30
				else
27
				{
31
				{
28
					strcat(new_buf, "<");
32
					strcpy(new_buf, "<");
29
					new_buf+=20;
33
					new_buf+=21;
30
					mode = TAG;
34
					mode = TAG;
31
				}
35
				}
32
				break;
36
				break;
33
			case '>':
37
			case '>':
34
				if (mode == OPTION_VALUE) //fix non-closed quote in TAG
38
				if (mode == OPTION_VALUE) //fix non-closed quote in TAG
35
				{
39
				{
36
					strcat(new_buf, """);
40
					strcpy(new_buf, """);
37
					new_buf+=12;					
41
					new_buf+=13;					
38
					mode = TAG;
42
					mode = TAG;
39
				}
43
				}
40
				if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-')
44
				if (mode == COMMENT) && (ESBYTE[i-1]=='-') && (ESBYTE[i-2]=='-')
41
				{
45
				{
42
					strcat(new_buf, ">");
46
					strcpy(new_buf, ">");
43
					new_buf+=10;
47
					new_buf+=11;
44
					mode = TEXT;
48
					mode = TEXT;
45
				}
49
				}
46
				if (mode == TAG)
50
				if (mode == TAG)
47
				{
51
				{
48
					strcat(new_buf, ">");
52
					strcpy(new_buf, ">");
49
					new_buf+=10;
53
					new_buf+=11;
50
					mode = TEXT;
54
					mode = TEXT;
51
				}
55
				}
52
				break;
56
				break;
53
			case '\"':
57
			case '\"':
54
			case '\'':
58
			case '\'':
55
				if (mode == TAG)
59
				if (mode == TAG)
56
				{
60
				{
57
					strcat(new_buf, """);
61
					strcpy(new_buf, "'");
58
					new_buf+=22;
62
					new_buf+=22;
59
					mode = OPTION_VALUE;
63
					mode = OPTION_VALUE;
60
					break;
64
					break;
61
				}
65
				}
62
				if (mode == OPTION_VALUE)
66
				if (mode == OPTION_VALUE)
63
				{
67
				{
64
					strcat(new_buf, """);
68
					strcpy(new_buf, "'");
65
					new_buf+=12;
69
					new_buf+=12;
66
					mode = TAG;
70
					mode = TAG;
67
					break;
71
					break;
68
				}
72
				}
69
			default:
73
			default:
-
 
74
				ESBYTE[new_buf] = ww;
70
				chrcat(new_buf, ww);
75
				new_buf++;
71
		}
76
		}
-
 
77
	}
72
	}
78
	ESBYTE[new_buf] = 0;
73
	bufsize = new_buf;
79
	bufsize = new_buf - new_buf_start;
74
	free(bufpointer);
80
	free(bufpointer);
75
	bufpointer = new_buf_start;
81
	bufpointer = new_buf_start;
76
}
82
}