Commits

Bram Moolenaar  committed 66f2d62

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)

  • Participants
  • Parent commits 4988f55
  • Tags v7-3-177

Comments (0)

Files changed (4)

File src/os_win32.c

 }
 
 /*
+ * 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

File src/os_win32.h

 #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

File src/proto/os_win32.pro

 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));

File src/version.c

 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    177,
+/**/
     176,
 /**/
     175,