Subversion Repositories Kolibri OS

Rev

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

Rev 8439 Rev 8491
Line 66... Line 66...
66
0}; 
66
0}; 
Line 67... Line 67...
67
 
67
 
Line 68... Line 68...
68
 
68
 
69
unsigned char unicode_chars[] = "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯àáâãäåæçèéêëìíîïðñh£\243i\105\244\0";
69
unsigned char unicode_chars[] = "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯àáâãäåæçèéêëìíîïðñh£\243i\105\244\0";
70
 
70
 
71
bool GetUnicodeSymbol(dword _line, in_tag, size)
71
bool GetUnicodeSymbol(dword _line, line_size, bufpos, buf_end)
-
 
72
{
-
 
73
	int i;
-
 
74
	int code;
Line 72... Line 75...
72
{
75
	char special_code[10];
73
	int j;
76
	bool white_end = false;
-
 
77
	dword bufstart = bufpos;
-
 
78
 
-
 
79
	for (i=0; i<9; i++, bufpos++)
-
 
80
	{
-
 
81
		if (__isWhite(ESBYTE[bufpos])) {bufpos--; break;}
-
 
82
		if (ESBYTE[bufpos] == ';') || (bufpos >= buf_end) break;
-
 
83
		special_code[i] = ESBYTE[bufpos];
-
 
84
	}
74
	int code;
85
	special_code[i] = '\0';
75
	
86
	
76
	for (j=0; unicode_symbols[j]!=0; j+=2;) 
87
	for (i=0; unicode_symbols[i]!=0; i+=2;) 
77
	{
88
	{
78
		if (!strcmp(in_tag, unicode_symbols[j]))
89
		if (!strcmp(#special_code, unicode_symbols[i]))
79
		{
90
		{
Line 80... Line 91...
80
			strncat(_line, unicode_symbols[j+1], size);
91
			strncat(_line, unicode_symbols[i+1], line_size);
81
			return true;
92
			return bufpos;
82
		}
93
		}
83
	}
94
	}
84
 
95
 
85
	if (ESBYTE[in_tag]=='#') 
96
	if (special_code[0]=='#') 
86
	{
97
	{
87
		code = atoi(in_tag + 1);
98
		code = atoi(#special_code + 1);
88
		if (code>=0) && (code<=255)	{
99
		if (code>=0) && (code<=255)	{
89
			chrncat(_line, code, size); //NOT ALL ASCII CODES IN KOLIBRI ARE COMPATABLE WITH STANDARDS
100
			chrncat(_line, code, line_size); //NOT ALL ASCII CODES IN KOLIBRI ARE COMPATABLE WITH STANDARDS
90
			return true;
101
			return bufpos;
91
		}
102
		}
Line -... Line 103...
-
 
103
		if (code>=1040) && (code<=1040+72) {
92
		if (code>=1040) && (code<=1040+72) {
104
			chrncat(_line, unicode_chars[code-1040], line_size);
93
			chrncat(_line, unicode_chars[code-1040], size);
105
			return bufpos;