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