Rev 8499 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7752 | leency | 1 | char *unicode_symbols[]={ |
7757 | leency | 2 | "quot","\"", |
3 | "amp", "&", |
||
4 | "lt", "<", |
||
5 | "gt", ">", |
||
6 | "#183","\31", "middot", "\31", |
||
7752 | leency | 7 | "#149","-", |
8 | "#151","-", |
||
8499 | leency | 9 | "#160"," ", "nbsp", "\t", "emsp", " ", |
7752 | leency | 10 | "#169","(c)", "copy", "(c)", |
11 | "#171","<<", "laquo","<<", |
||
12 | "#174","(r)", "reg", "(r)", |
||
13 | "#187",">>", "raquo",">>", |
||
9089 | leency | 14 | "hellip", "...", |
4411 | leency | 15 | |
16 | "trade", "[TM]", |
||
17 | "bdquo", ",,", |
||
18 | |||
19 | "minus", "-", |
||
20 | "ndash", "-", |
||
21 | "mdash", "-", //-- |
||
22 | |||
8499 | leency | 23 | "rsquo", "'", "apos", "'", |
7758 | leency | 24 | "sect", "#", |
4411 | leency | 25 | |
7758 | leency | 26 | "ensp", " ", |
27 | "emsp13", " ", |
||
28 | "emsp14", " ", |
||
29 | "numsp", " ", |
||
30 | "puncsp", " ", |
||
31 | "thinsp", " ", |
||
32 | |||
7752 | leency | 33 | "#1028", "\242", |
34 | "#1030", "I", |
||
35 | "#1031", "\244", |
||
4411 | leency | 36 | |
7752 | leency | 37 | "#8211", "-", |
8350 | leency | 38 | "#8212", "-", |
7752 | leency | 39 | "#8217", "'", |
7757 | leency | 40 | "#8220", "\"", |
7752 | leency | 41 | "#8222", "\"", "ldquo", "\"", |
42 | "#8221", "\"", "rdquo", "\"", |
||
43 | "#8470", "N", |
||
44 | "#8722", "-", |
||
45 | "#9642", "-", //square in the middle of the line |
||
7758 | leency | 46 | "#9658", ">", |
47 | "#9660", "v", |
||
8439 | leency | 48 | "#10094", "<", |
49 | "#10095", ">", |
||
7757 | leency | 50 | "#65122", "+", |
4411 | leency | 51 | |
8365 | leency | 52 | "#8594", "->", |
53 | |||
8381 | leency | 54 | "uarr", "^", |
55 | "darr", "v", |
||
56 | "rarr", "->", |
||
57 | "larr", "<-", |
||
4411 | leency | 58 | |
7752 | leency | 59 | "bull", "\31", |
4411 | leency | 60 | "percnt","%", |
61 | |||
7752 | leency | 62 | "#xfeff", "", |
63 | |||
7758 | leency | 64 | "times", "x", |
65 | "lowast","*", |
||
66 | |||
4411 | leency | 67 | 0}; |
68 | |||
69 | |||
7750 | leency | 70 | unsigned char unicode_chars[] = " กขฃคฅฆงจฉชซฌญฎฏเแโใไๅๆ็่้๊๋์ํ๎๏๐๑hฃ\243i\105\244\0"; |
4411 | leency | 71 | |
8491 | leency | 72 | bool GetUnicodeSymbol(dword _line, line_size, bufpos, buf_end) |
4411 | leency | 73 | { |
8491 | leency | 74 | int i; |
7757 | leency | 75 | int code; |
8491 | leency | 76 | char special_code[10]; |
77 | bool white_end = false; |
||
78 | dword bufstart = bufpos; |
||
79 | |||
80 | for (i=0; i<9; i++, bufpos++) |
||
81 | { |
||
82 | if (__isWhite(ESBYTE[bufpos])) {bufpos--; break;} |
||
83 | if (ESBYTE[bufpos] == ';') || (bufpos >= buf_end) break; |
||
9089 | leency | 84 | if (!strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", ESBYTE[bufpos])) {bufpos--; break;} |
8491 | leency | 85 | special_code[i] = ESBYTE[bufpos]; |
86 | } |
||
87 | special_code[i] = '\0'; |
||
4411 | leency | 88 | |
8491 | leency | 89 | for (i=0; unicode_symbols[i]!=0; i+=2;) |
4411 | leency | 90 | { |
8491 | leency | 91 | if (!strcmp(#special_code, unicode_symbols[i])) |
4411 | leency | 92 | { |
8491 | leency | 93 | strncat(_line, unicode_symbols[i+1], line_size); |
94 | return bufpos; |
||
4411 | leency | 95 | } |
96 | } |
||
7749 | leency | 97 | |
8491 | leency | 98 | if (special_code[0]=='#') |
4411 | leency | 99 | { |
8491 | leency | 100 | code = atoi(#special_code + 1); |
7757 | leency | 101 | if (code>=0) && (code<=255) { |
8491 | leency | 102 | chrncat(_line, code, line_size); //NOT ALL ASCII CODES IN KOLIBRI ARE COMPATABLE WITH STANDARDS |
103 | return bufpos; |
||
7750 | leency | 104 | } |
7757 | leency | 105 | if (code>=1040) && (code<=1040+72) { |
8491 | leency | 106 | chrncat(_line, unicode_chars[code-1040], line_size); |
107 | return bufpos; |
||
7757 | leency | 108 | } |
4411 | leency | 109 | } |
7749 | leency | 110 | |
8491 | leency | 111 | chrncat(_line, '&', line_size); |
112 | return bufstart; |
||
4411 | leency | 113 | }=1040+72)>=255)>9;>-",>", |