updated for version 7.3.177
Problem: MS-Windows: mkdir() doesn't work properly when 'encoding' is
"utf-8".
Solution: Convert to utf-16. (Yukihiro Nakadaira)
diff --git a/src/os_win32.c b/src/os_win32.c
index bf51d24..179ee64 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2640,6 +2640,30 @@
}
/*
+ * Create directory "name".
+ * Return 0 on success, -1 on error.
+ */
+ int
+mch_mkdir(char_u *name)
+{
+#ifdef FEAT_MBYTE
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ {
+ WCHAR *p;
+ int retval;
+
+ p = enc_to_utf16(name, NULL);
+ if (p == NULL)
+ return -1;
+ retval = _wmkdir(p);
+ vim_free(p);
+ return retval;
+ }
+#endif
+ return _mkdir(name);
+}
+
+/*
* Return TRUE if file "fname" has more than one link.
*/
int
diff --git a/src/os_win32.h b/src/os_win32.h
index 527d8c7..41a44bf 100644
--- a/src/os_win32.h
+++ b/src/os_win32.h
@@ -191,5 +191,5 @@
#ifdef __BORLANDC__
# define vim_mkdir(x, y) mkdir(x)
#else
-# define vim_mkdir(x, y) _mkdir(x)
+# define vim_mkdir(x, y) mch_mkdir(x)
#endif
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index a3f5b3e..68d4ee2 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -20,6 +20,7 @@
int mch_setperm __ARGS((char_u *name, long perm));
void mch_hide __ARGS((char_u *name));
int mch_isdir __ARGS((char_u *name));
+int mch_mkdir __ARGS((char_u *name));
int mch_is_linked __ARGS((char_u *fname));
int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
int mch_writable __ARGS((char_u *name));
diff --git a/src/version.c b/src/version.c
index 94c21dd..0c24bd2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 177,
+/**/
176,
/**/
175,