Mercurial > vim
diff src/os_mswin.c @ 23:3f44e9abe4ec v7.0015
updated for version 7.0015
author | vimboss |
---|---|
date | Mon, 06 Sep 2004 17:44:46 +0000 |
parents | db5102f7e29f |
children | 404aac550f35 |
line wrap: on
line diff
--- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -443,6 +443,10 @@ vim_stat(const char *name, struct stat * 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 */ }