--- np2/win9x/oemtext.h 2005/03/20 13:12:49 1.4 +++ np2/win9x/oemtext.h 2006/12/23 23:34:32 1.7 @@ -1,43 +1,61 @@ -#if defined(OSLANG_UTF8) -#include "codecnv.h" +#ifndef __GNUC__ +#include #endif +#include "codecnv.h" #ifdef __cplusplus extern "C" { #endif -#if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) -UINT oemtext_sjistooem(OEMCHAR *dst, UINT dcnt, const char *src, UINT scnt); -UINT oemtext_oemtosjis(char *dst, UINT dcnt, const OEMCHAR *src, UINT scnt); -#endif +UINT oemtext_mbtoucs2(UINT cp, wchar_t *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_ucs2tomb(UINT cp, char *dst, UINT dcnt, const wchar_t *src, UINT scnt); +UINT oemtext_mbtoutf8(UINT cp, char *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_utf8tomb(UINT cp, char *dst, UINT dcnt, const char *src, UINT scnt); + +UINT oemtext_chartoucs2(wchar_t *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_ucs2tochar(char *dst, UINT dcnt, const wchar_t *src, UINT scnt); +UINT oemtext_chartoutf8(char *dst, UINT dcnt, const char *src, UINT scnt); +UINT oemtext_utf8tochar(char *dst, UINT dcnt, const char *src, UINT scnt); #ifdef __cplusplus } #endif - -UINT tchartooem(OEMCHAR *dst, UINT dcnt, const TCHAR *src, UINT scnt); -UINT oemtotchar(TCHAR *dst, UINT dcnt, const OEMCHAR *src, UINT scnt); +#if defined(OSLANG_UTF8) +#define oemtext_sjistooem(a, b, c, d) oemtext_mbtoutf8(CP_932, a, b, c, d) +#define oemtext_oemtosjis(a, b, c, d) oemtext_utf8tomb(CP_932, a, b, c, d) +#elif defined(OSLANG_UCS2) +#define oemtext_sjistooem(a, b, c, d) oemtext_mbtoucs2(CP_932, a, b, c, d) +#define oemtext_oemtosjis(a, b, c, d) oemtext_ucs2tomb(CP_932, a, b, c, d) +#endif -// ---- strres +// ---- WindowsÍÑ TCHAR-OEMCHARÊÑ´¹ + +#undef OEMCHAR_SAME_TCHAR + +#if !defined(_UNICODE) && defined(OSLANG_UCS2) +#define tchartooem oemtext_chartoucs2 +#define oemtotchar oemtext_ucs2tochar +#elif !defined(_UNICODE) && defined(OSLANG_UTF8) +#define tchartooem oemtext_chartoutf8 +#define oemtotchar oemtext_utf8tochar +#elif defined(_UNICODE) && (defined(OSLANG_ANK) || defined(OSLANG_SJIS)) +#define tchartooem oemtext_ucs2tochar +#define oemtotchar oemtext_chartoucs2 +#elif defined(_UNICODE) && defined(OSLANG_UTF8) +#define tchartooem codecnv_ucs2toutf8 +#define oemtotchar codecnv_utf8toucs2 +#else +#define OEMCHAR_SAME_TCHAR +#endif -#if defined(OSLANG_UTF8) -extern const TCHAR tchar_null[]; -extern const TCHAR tchar_d[]; -extern const TCHAR tchar_u[]; -extern const TCHAR tchar_2x[]; -extern const TCHAR tchar_2d[]; -extern const TCHAR tchar_4X[]; -extern const TCHAR tchar_bmp[]; -extern const TCHAR tchar_d88[]; -extern const TCHAR tchar_thd[]; -extern const TCHAR tchar_hdd[]; +// ---- strres -#else +#if defined(OEMCHAR_SAME_TCHAR) #define tchar_null str_null #define tchar_d str_d @@ -50,20 +68,33 @@ extern const TCHAR tchar_hdd[]; #define tchar_thd str_thd #define tchar_hdd str_hdd +#else + +extern const TCHAR tchar_null[]; +extern const TCHAR tchar_d[]; +extern const TCHAR tchar_u[]; +extern const TCHAR tchar_2x[]; +extern const TCHAR tchar_2d[]; +extern const TCHAR tchar_4X[]; +extern const TCHAR tchar_bmp[]; +extern const TCHAR tchar_d88[]; +extern const TCHAR tchar_thd[]; +extern const TCHAR tchar_hdd[]; + #endif // ---- milstr -#if defined(OSLANG_UTF8) +#if defined(OEMCHAR_SAME_TCHAR) -long STRCALL miltchar_solveHEX(const TCHAR *str); -long STRCALL miltchar_solveINT(const TCHAR *str); +#define miltchar_solveHEX(s) milstr_solveHEX(s) +#define miltchar_solveINT(s) milstr_solveINT(s) #else -#define miltchar_solveHEX(s) milstr_solveHEX(s) -#define miltchar_solveINT(s) milstr_solveINT(s) +long STRCALL miltchar_solveHEX(const TCHAR *str); +long STRCALL miltchar_solveINT(const TCHAR *str); #endif