1 /*
2 ******************************************************************
3 ******************************************************************
4 *******                                                   ********
5 ******  (C) 1988-2010 Tecplot, Inc.                        *******
6 *******                                                   ********
7 ******************************************************************
8 ******************************************************************
9 */
10 
11 
12 #if !defined Q_UNICODE_H_
13 # define Q_UNICODE_H_
14 
15 #if defined EXTERN
16 #undef EXTERN
17 #endif
18 #if defined Q_UNICODEMODULE
19 #define EXTERN
20 #else
21 #define EXTERN extern
22 #endif
23 
24 namespace tecplot
25 {
26 namespace strutil
27 {
28 
29 // functions
30 EXTERN Boolean_t IsValidUtf8LeadByte(Byte_t ch);
31 EXTERN Boolean_t IsValidUtf8ContinuingByte(Byte_t ch);
32 EXTERN Boolean_t IsValidUtf8Byte(Byte_t ch);
33 
34 EXTERN Boolean_t IsPrintable8BitAsciiChar(wchar_t wChar);
35 
36 EXTERN Boolean_t IsValidUtf8String(const char *str);
37 EXTERN Boolean_t ShouldConvertWideStringToUtf8String(const wchar_t *str);
38 EXTERN void InitTranslatedStrings();
39 EXTERN void CleanUpTranslatedStrings();
40 
41 EXTERN Boolean_t IsNullOrZeroLengthString(const char *S);
42 EXTERN Boolean_t IsNullOrZeroLengthString(tecplot::strutil::TranslatedString TS);
43 
44 EXTERN Boolean_t IsEmptyString(const char *S);
45 EXTERN Boolean_t IsEmptyString(tecplot::strutil::TranslatedString S);
46 EXTERN Boolean_t IsEmptyString(const wchar_t* S);
47 
48 EXTERN std::string AsciiToUtf8String(unsigned char asciiChar);
49 
50 #if defined MSWIN
51 
52 EXTERN std::string  LookUpTranslation(std::string& strEnglish);
53 EXTERN void MsWinInitTranslatedStrings();
54 
55 EXTERN std::string    WStringToString(std::wstring str);
56 EXTERN std::wstring   StringToWString(std::string str);
57 
58 EXTERN std::wstring   MultiByteToWideChar(const char*  Utf8Str,
59                                           unsigned int CodePage);
60 
61 EXTERN std::string    WideCharToMultiByte(const wchar_t* WideStr,
62                                           unsigned int   CodePage);
63 
64 // Conversion
65 EXTERN std::string    WideCharToUtf8(const wchar_t* str);
66 EXTERN std::wstring   Utf8ToWideChar(const char *str);
67 EXTERN char *getenv(const char *str);
68 
69 #endif
70 
71 }
72 }
73 
74 #endif
75