|
|
| version 1.13, 2005/02/12 12:13:57 | version 1.15, 2005/03/18 09:23:10 |
|---|---|
| Line 2 | Line 2 |
| #if defined(SUPPORT_HOSTDRV) | #if defined(SUPPORT_HOSTDRV) |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) | #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) |
| #include "oemtext.h" | #include "oemtext.h" |
| #endif | #endif |
| #include "dosio.h" | #include "dosio.h" |
| Line 21 static const UINT8 dospathchr[] = { | Line 21 static const UINT8 dospathchr[] = { |
| 0x01, 0x00, // gfedcba` onmlkjih | 0x01, 0x00, // gfedcba` onmlkjih |
| 0x00, 0x40}; // wvutsrqp ~}|{zyx | 0x00, 0x40}; // wvutsrqp ~}|{zyx |
| static void rcnvfcb(char *dst, UINT dlen, char *src, UINT slen) { | |
| static void rcnvfcb(char *dst, UINT dlen, const char *src) { | |
| REG8 c; | REG8 c; |
| while((slen) && (dlen)) { | while(dlen) { |
| slen--; | |
| c = (UINT8)*src++; | c = (UINT8)*src++; |
| if (c == 0) { | if (c == 0) { |
| break; | break; |
| } | } |
| #if defined(OSLANG_SJIS) || defined(OSLANG_EUC) || defined(OSLANG_UTF8) | #if defined(OSLANG_SJIS) || defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) |
| if ((((c ^ 0x20) - 0xa1) & 0xff) < 0x3c) { | if ((((c ^ 0x20) - 0xa1) & 0xff) < 0x3c) { |
| if ((!slen) || (src[0] == '\0')) { | if (src[0] == '\0') { |
| break; | break; |
| } | } |
| if (dlen < 2) { | if (dlen < 2) { |
| Line 75 static void rcnvfcb(char *dst, UINT dlen | Line 75 static void rcnvfcb(char *dst, UINT dlen |
| } | } |
| } | } |
| static BOOL realname2fcb(char *fcbname, FLINFO *fli) { | static BRESULT realname2fcb(char *fcbname, FLINFO *fli) { |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) | OEMCHAR *ext; |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) | |
| char sjis[MAX_PATH]; | char sjis[MAX_PATH]; |
| #endif | #endif |
| char *realname; | |
| char *ext; | |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) | FillMemory(fcbname, 11, ' '); |
| oemtext_oemtosjis(sjis, sizeof(sjis), fli->path, NELEMENTS(fli->path)); | |
| realname = sjis; | ext = file_getext(fli->path); |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) | |
| oemtext_oemtosjis(sjis, sizeof(sjis), ext, (UINT)-1); | |
| rcnvfcb(fcbname+8, 3, sjis); | |
| #else | #else |
| realname = fli->path; | rcnvfcb(fcbname+8, 3, ext); |
| #endif | #endif |
| FillMemory(fcbname, 11, ' '); | |
| // ToDo: SJISに変換済みなのに OEM依存してる | file_cutext(fli->path); |
| ext = file_getext(realname); | #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) |
| rcnvfcb(fcbname+0, 8, realname, ext - realname); | oemtext_oemtosjis(sjis, sizeof(sjis), fli->path, (UINT)-1); |
| rcnvfcb(fcbname+8, 3, ext, (UINT)-1); | rcnvfcb(fcbname+0, 8, sjis); |
| #else | |
| rcnvfcb(fcbname+0, 8, fli->path); | |
| #endif | |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| Line 300 BOOL hostdrvs_newrealpath(HDRVPATH *hdp, | Line 306 BOOL hostdrvs_newrealpath(HDRVPATH *hdp, |
| char dosname[16]; | char dosname[16]; |
| UINT i; | UINT i; |
| char *p; | char *p; |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) | #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) |
| OEMCHAR oemname[64]; | OEMCHAR oemname[64]; |
| #endif | #endif |
| Line 331 BOOL hostdrvs_newrealpath(HDRVPATH *hdp, | Line 337 BOOL hostdrvs_newrealpath(HDRVPATH *hdp, |
| } | } |
| *p = '\0'; | *p = '\0'; |
| // ここで SJIS->OEMコードに未変換! | // ここで SJIS->OEMコードに未変換! |
| #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) | #if defined(OSLANG_EUC) || defined(OSLANG_UTF8) || defined(OSLANG_UCS2) |
| oemtext_sjistooem(oemname, NELEMENTS(oemname), dosname, (UINT)-1); | oemtext_sjistooem(oemname, NELEMENTS(oemname), dosname, (UINT)-1); |
| file_catname(path, oemname, NELEMENTS(path)); | file_catname(path, oemname, NELEMENTS(path)); |
| #else | #else |