From 15d0a8c77dad867b69822e2fd8f9f6bbcf765c48 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 6 Sep 2004 17:44:46 +0000 Subject: updated for version 7.0015 --- src/os_mswin.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/os_mswin.c') diff --git a/src/os_mswin.c b/src/os_mswin.c index 3ce61bc1d..7b5da8a4c 100644 --- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -443,6 +443,10 @@ vim_stat(const char *name, struct stat *stp) p = buf + strlen(buf); if (p > buf) --p; +#ifdef FEAT_MBYTE + if (p > buf && has_mbyte) + p -= (*mb_head_off)(buf, p); +#endif if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':') *p = NUL; #ifdef FEAT_MBYTE @@ -624,6 +628,23 @@ mch_chdir(char *path) if (*path == NUL) /* drive name only */ return 0; +#ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { + WCHAR *p = enc_to_ucs2(path, NULL); + int n; + + if (p != NULL) + { + n = _wchdir(p); + vim_free(p); + if (n == 0) + return 0; + /* Retry with non-wide function (for Windows 98). */ + } + } +#endif + return chdir(path); /* let the normal chdir() do the rest */ } -- cgit v1.2.1