Changeset 20863 for lang/cplusplus

Show
Ignore:
Timestamp:
10/07/08 00:28:57 (2 months ago)
Author:
saturday06
Message:

whar_t support for libintl (wlibintl)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/i3/intl/wlibintl.h

    r20843 r20863  
    66#endif 
    77 
     8#define wgettext(msgid) wgettext_(msgid, L##msgid) 
     9inline static const wchar_t* wgettext_(const char* msgid, const wchar_t* wmsgid) { 
     10    const char* translated = gettext(msgid); 
     11    return translated != msgid ? (const wchar_t*)translated : wmsgid; 
     12} 
     13 
     14#define dwgettext(domainname, msgid) dwgettext_(domainname, msgid, L##msgid) 
     15inline static const wchar_t* dwgettext_(const char *domainname, const char* msgid, const wchar_t* wmsgid) { 
     16    const char* translated = dgettext(domainname, msgid); 
     17    return translated != msgid ? (const wchar_t*)translated : wmsgid; 
     18} 
     19 
     20#define dcwgettext(domainname, msgid, category) dwgettext_(domainname, msgid, category, L##msgid) 
     21inline static const wchar_t* dcwgettext_(const char *domainname, const char* msgid, int category,  const wchar_t* wmsgid) { 
     22    const char* translated = dcgettext(domainname, msgid, category); 
     23    return translated != msgid ? (const wchar_t*)translated : wmsgid; 
     24} 
     25 
     26#define nwgettext(msgid1, msgid2, n) nwgettext_(msgid1, msgid2, n, L##msgid1,  L##msgid2) 
     27inline static const wchar_t* nwgettext_(const char* msgid1,  
     28                                        const char* msgid2,  
     29                                        const char* n, 
     30                                        const wchar_t* wmsgid1,  
     31                                        const wchar_t* wmsgid2) { 
     32    const char* translated = ngettext(msgid1, msgid2, n); 
     33    return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) 
     34} 
     35 
     36#define dnwgettext(domainname, msgid1, msgid2, n) dnwgettext_(domainname, msgid1, msgid2, n, L##msgid1,  L##msgid2) 
     37inline static const wchar_t* dnwgettext_(const char* domainname, 
     38                                         const char* msgid1,  
     39                                         const char* msgid2,  
     40                                         const char* n, 
     41                                         const wchar_t* wmsgid1,  
     42                                         const wchar_t* wmsgid2) { 
     43    const char* translated = dngettext(domainname, msgid1, msgid2, n); 
     44    return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) 
     45} 
     46 
     47#define dcnwgettext(domainname, msgid1, msgid2, n, category) dnwgettext_(domainname, msgid1, msgid2, n, L##msgid1,  L##msgid2) 
     48inline static const wchar_t* dcnwgettext_(const char* domainname, 
     49                                          const char* msgid1,  
     50                                          const char* msgid2,  
     51                                          const char* n, 
     52                                          const wchar_t* wmsgid1,  
     53                                          const wchar_t* wmsgid2, 
     54                                          int category) { 
     55    const char* translated = dcnwgettext(domainname, msgid1, msgid2, n, category); 
     56    return translated == msgid1 ? wmsgid1 : (translated == msgid2 ? wmsgid2 : (const wchar_t*)translated) 
     57} 
     58 
    859#if (defined(WIN32) || defined(_WIN32) || defined(_WIN64) || defined(_WIN32_WCE)) && !defined(__CYGWIN__) 
    960 
    1061#include <windows.h> 
     62 
     63#undef bindtextdomain 
     64#define bindtextdomain windows_bindtextdomain 
     65#define wbindtextdomain windows_wbindtextdomain 
    1166 
    1267inline static const wchar_t* windows_wbindtextdomain(const char* domainname, const wchar_t* dirname16) { 
     
    55110} 
    56111 
    57 #undef bindtextdomain 
    58 #define bindtextdomain windows_bindtextdomain 
    59 #define wbindtextdomain windows_wbindtextdomain 
    60  
    61 #endif 
    62  
    63 #define wgettext(x) wgettext_(x, L##x) 
    64 inline static const wchar_t* wgettext_(const char* msgid, const wchar_t* wmsgid) { 
    65     const char* translated = gettext(msgid); 
    66     return translated != msgid ? (const wchar_t*)translated : wmsgid; 
    67 } 
     112#endif // (defined(WIN32) || defined(_WIN32) || defined(_WIN64) || defined(_WIN32_WCE)) && !defined(__CYGWIN__) 
    68113 
    69114#ifdef __cplusplus