Subversion Repositories Kolibri OS

Rev

Rev 7746 | Rev 7755 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4719 leency 1
 
7750 leency 2
int opened_font=0;
3
int mode;
4
5
 
6
{
4718 leency 7
	dword font_found_pointer, src_orig = src;
7750 leency 8
4718 leency 9
 
7750 leency 10
7437 leency 11
 
7750 leency 12
	source_buf_end += strlen(source_buf_end);
13
7746 leency 14
 
7750 leency 15
		opened_font--;
16
		src = font_found_pointer+2;
17
	}
18
7746 leency 19
 
7750 leency 20
	if (font_found_pointer = strstr(src, "
21
		opened_font++;
22
		src = font_found_pointer+2;
23
	}
24
}
25
7437 leency 26
 
7750 leency 27
{
28
	while (opened_font) SourceBufAdd(_mode, "");
29
}
30
7437 leency 31
 
7750 leency 32
dword ShowSource()
33
{
7437 leency 34
	dword i, j;
7750 leency 35
	bool activate_script_mode = false;
36
7437 leency 37
 
7750 leency 38
	source_buf_start = source_buf_end = malloc(bufsize*5);
39
	header[strrchr(#header, '-')-2]=0;
40
7437 leency 41
 
7750 leency 42
	SourceBufAdd(TEXT, #header);
43
	SourceBufAdd(TEXT, "
");
44
45
 
46
	{
7437 leency 47
		case '<':
7750 leency 48
			if (!strncmp(i+1,"!--", 3)) SourceBufAdd(COMMENT, "<");
49
			else if (SCRIPT == mode) {
50
				if (!strncmp(i+1,"/script>", 8)) {
51
					CloseAllOpenedFonts(NULL);
52
					SourceBufAdd(TAG, "<");
53
				}
54
				else SourceBufAdd(NULL, "<");
55
			}
7437 leency 56
			else if (COMMENT == mode) {
7750 leency 57
				SourceBufAdd(NULL, "<");
58
			}
7437 leency 59
			else if (TEXT == mode) {
7750 leency 60
				if (!strncmp(i+1,"script", 6)) activate_script_mode = true;
61
				SourceBufAdd(TAG, "<");
62
			}
7437 leency 63
			break;
7750 leency 64
		case '>':
65
			if (TAG == mode) && (activate_script_mode) {
66
				activate_script_mode = false;
67
				SourceBufAdd(SCRIPT, ">");
68
			}
69
			else if (VALUE == mode) CloseAllOpenedFonts(TEXT);
70
			else if (COMMENT == mode) && (!strncmp(i-2,"--", 2)) {
71
				SourceBufAdd(TEXT, ">");
72
				CloseAllOpenedFonts(TEXT);
73
			}
74
			else if (COMMENT == mode) || (SCRIPT == mode) SourceBufAdd(NULL, ">");
75
			else if (TAG == mode) SourceBufAdd(TEXT, ">");
76
			break;
77
		case '&':
78
			SourceBufAdd(NULL, "&");
79
			break;
80
		case '\"':
81
		case '\'':
82
			if (TAG == mode) SourceBufAdd(VALUE, "'");
83
			else if (VALUE == mode) SourceBufAdd(TAG, "'");
84
			else SourceBufAdd(NULL, "'");
85
			break;
86
		default:
87
			ESBYTE[source_buf_end] = ESBYTE[i];
88
			source_buf_end++;
89
	}
7437 leency 90
	ESBYTE[source_buf_end] = 0;
7750 leency 91
	bufsize = source_buf_end - source_buf_start;
92
	free(bufpointer);
7437 leency 93
	bufpointer = source_buf_start;
7750 leency 94
}
7437 leency 95
>