Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef js_utf_h
  2. #define js_utf_h
  3.  
  4. typedef int Rune;       /* 32 bits */
  5.  
  6. #define chartorune      jsU_chartorune
  7. #define runetochar      jsU_runetochar
  8. #define runelen         jsU_runelen
  9. #define utflen          jsU_utflen
  10.  
  11. #define isalpharune     jsU_isalpharune
  12. #define islowerrune     jsU_islowerrune
  13. #define isspacerune     jsU_isspacerune
  14. #define istitlerune     jsU_istitlerune
  15. #define isupperrune     jsU_isupperrune
  16. #define tolowerrune     jsU_tolowerrune
  17. #define totitlerune     jsU_totitlerune
  18. #define toupperrune     jsU_toupperrune
  19.  
  20. enum
  21. {
  22.         UTFmax          = 4,            /* maximum bytes per rune */
  23.         Runesync        = 0x80,         /* cannot represent part of a UTF sequence (<) */
  24.         Runeself        = 0x80,         /* rune and UTF sequences are the same (<) */
  25.         Runeerror       = 0xFFFD,       /* decoding error in UTF */
  26.         Runemax         = 0x10FFFF,     /* maximum rune value */
  27. };
  28.  
  29. int     chartorune(Rune *rune, const char *str);
  30. int     runetochar(char *str, const Rune *rune);
  31. int     runelen(int c);
  32. int     utflen(const char *s);
  33.  
  34. int             isalpharune(Rune c);
  35. int             islowerrune(Rune c);
  36. int             isspacerune(Rune c);
  37. int             istitlerune(Rune c);
  38. int             isupperrune(Rune c);
  39. Rune            tolowerrune(Rune c);
  40. Rune            totitlerune(Rune c);
  41. Rune            toupperrune(Rune c);
  42.  
  43. #endif
  44.