patch 7.4.1889
Problem: When umask is set to 0177 Vim can't create temp files. (Lcd)
Solution: Also correct umask when using mkdtemp().
diff --git a/src/fileio.c b/src/fileio.c
index 5626712..c07accc 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -7389,10 +7389,20 @@
add_pathsep(itmp);
# ifdef HAVE_MKDTEMP
- /* Leave room for filename */
- STRCAT(itmp, "vXXXXXX");
- if (mkdtemp((char *)itmp) != NULL)
- vim_settempdir(itmp);
+ {
+# if defined(UNIX) || defined(VMS)
+ /* Make sure the umask doesn't remove the executable bit.
+ * "repl" has been reported to use "177". */
+ mode_t umask_save = umask(077);
+# endif
+ /* Leave room for filename */
+ STRCAT(itmp, "vXXXXXX");
+ if (mkdtemp((char *)itmp) != NULL)
+ vim_settempdir(itmp);
+# if defined(UNIX) || defined(VMS)
+ (void)umask(umask_save);
+# endif
+ }
# else
/* Get an arbitrary number of up to 6 digits. When it's
* unlikely that it already exists it will be faster,
diff --git a/src/version.c b/src/version.c
index e18515e..4ab1a25 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1889,
+/**/
1888,
/**/
1887,