Subversion Repositories Kolibri OS

Rev

Rev 7752 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. char *unicode_symbols[]={
  2. "quot","\"",
  3. "amp", "&",
  4. "lt",  "<",
  5. "gt",  ">",
  6. "#183","\31",   "middot", "\31",
  7. "#149","-",
  8. "#151","-",
  9. "#160"," ",     "nbsp", " ",
  10. "#169","(c)",   "copy", "(c)",
  11. "#171","<<",    "laquo","<<",
  12. "#174","(r)",   "reg",  "(r)",
  13. "#187",">>",    "raquo",">>",
  14.  
  15. "trade", "[TM]",
  16. "bdquo", ",,",
  17.  
  18. "minus", "-",
  19. "ndash", "-",
  20. "mdash", "-", //--
  21.  
  22. "rsquo", "'",
  23.  
  24. "#1028", "\242",
  25. "#1030", "I",
  26. "#1031", "\244",
  27.  
  28. "#8211", "-",
  29. "#8217", "'",
  30. "#8220", "\"",
  31. "#8222", "\"", "ldquo", "\"",
  32. "#8221", "\"", "rdquo", "\"",
  33. "#8470", "N",
  34. "#8722", "-",
  35. "#9642", "-", //square in the middle of the line
  36. "#65122", "+",
  37.  
  38. "uarr",  "\24",
  39. "darr",  "\25",
  40. "rarr",  "\26",
  41. "larr",  "\27",
  42.  
  43. "bull",  "\31",
  44. "percnt","%",
  45.  
  46. "#xfeff", "",
  47.  
  48. 0};
  49.  
  50.  
  51. unsigned char unicode_chars[] = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЁёhг\243i\105\244\0";
  52.  
  53. bool GetUnicodeSymbol(dword _line, in_tag, size)
  54. {
  55.         int j;
  56.         int code;
  57.        
  58.         for (j=0; unicode_symbols[j]!=0; j+=2;)
  59.         {
  60.                 if (!strcmp(in_tag, unicode_symbols[j]))
  61.                 {
  62.                         strncat(_line, unicode_symbols[j+1], size);
  63.                         return true;
  64.                 }
  65.         }
  66.  
  67.         if (ESBYTE[in_tag]=='#')
  68.         {
  69.                 code = atoi(in_tag + 1);
  70.                 if (code>=0) && (code<=255)     {
  71.                         chrncat(_line, code, size); //NOT ALL ASCII CODES IN KOLIBRI ARE COMPATABLE WITH STANDARDS
  72.                         return true;
  73.                 }
  74.                 if (code>=1040) && (code<=1040+72) {
  75.                         chrncat(_line, unicode_chars[code-1040], size);
  76.                         return true;
  77.                 }
  78.         }
  79.  
  80.         return false;
  81. }
  82.