updated for version 7.4.197
Problem:    Various problems on VMS.
Solution:   Fix several VMS problems. (Zoltan Arpadffy)
diff --git a/src/os_unix.c b/src/os_unix.c
index 784c5a3..48f45b0 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -2965,7 +2965,26 @@
 
     if (stat((char *)name, &st))
 	return 0;
+#ifdef VMS
+    /* Like on Unix system file can have executable rights but not necessarily
+     * be an executable, but on Unix is not a default for an ordianry file to
+     * have an executable flag - on VMS it is in most cases.
+     * Therefore, this check does not have any sense - let keep us to the
+     * conventions instead:
+     * *.COM and *.EXE files are the executables - the rest are not. This is
+     * not ideal but better then it was.
+     */
+    int vms_executable = 0;
+    if (S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0)
+    {
+	if (strstr(vms_tolower((char*)name),".exe") != NULL
+		|| strstr(vms_tolower((char*)name),".com")!= NULL)
+	    vms_executable = 1;
+    }
+    return vms_executable;
+#else
     return S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0;
+#endif
 }
 
 /*
@@ -2983,7 +3002,9 @@
     /* If it's an absolute or relative path don't need to use $PATH. */
     if (mch_isFullName(name) || (name[0] == '.' && (name[1] == '/'
 				      || (name[1] == '.' && name[2] == '/'))))
+    {
 	return executable_file(name);
+    }
 
     p = (char_u *)getenv("PATH");
     if (p == NULL || *p == NUL)