]> granicus.if.org Git - vim/commitdiff
patch 8.0.0840: MS-Windows: fopen() and open() prototypes are wrong v8.0.0840
authorBram Moolenaar <Bram@vim.org>
Wed, 2 Aug 2017 20:07:12 +0000 (22:07 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 2 Aug 2017 20:07:12 +0000 (22:07 +0200)
Problem:    MS-Windows: fopen() and open() prototypes do not match the ones in
            the system header file.  Can't build without FEAT_MBYTE.
Solution:   Add "const".  Move macro to after including protoo.h.

src/macros.h
src/os_win32.c
src/proto/os_win32.pro
src/version.c
src/vim.h

index d75d190723026968fb8e0ee16160998076b38fb0..c320a3f7d3ef720fb50c4e919a37443b1ba632bf 100644 (file)
 # ifndef WIN32
 #   define mch_access(n, p)    access((n), (p))
 # endif
-# if !(defined(FEAT_MBYTE) && defined(WIN3264))
-#  define mch_fopen(n, p)      fopen((n), (p))
-# endif
 # define mch_fstat(n, p)       fstat((n), (p))
 # ifdef MSWIN  /* has it's own mch_stat() function */
 #  define mch_stat(n, p)       vim_stat((n), (p))
  * but it is not recommended, because it can destroy indexes etc.
  */
 #  define mch_open(n, m, p)    open(vms_fixfilename(n), (m), (p))
-# else
-#  if !(defined(FEAT_MBYTE) && defined(WIN3264))
-#   define mch_open(n, m, p)   open((n), (m), (p))
-#  endif
 # endif
 #endif
 
index 8a38bcc56c28e576e8abd44dd8e1dcd131a153b5..4921b50f3986abf1e5fa2316979d2833ff35a919 100644 (file)
@@ -6503,7 +6503,7 @@ getout:
  * Version of open() that may use UTF-16 file name.
  */
     int
-mch_open(char *name, int flags, int mode)
+mch_open(const char *name, int flags, int mode)
 {
     /* _wopen() does not work with Borland C 5.5: creates a read-only file. */
 # ifndef __BORLANDC__
@@ -6536,7 +6536,7 @@ mch_open(char *name, int flags, int mode)
  * Version of fopen() that may use UTF-16 file name.
  */
     FILE *
-mch_fopen(char *name, char *mode)
+mch_fopen(const char *name, const char *mode)
 {
     WCHAR      *wn, *wm;
     FILE       *f = NULL;
index 6c5dc4fc01ef71af78ef53528c0add736d794175..754df4f97534509c42f204f0997b0656cbc58d02 100644 (file)
@@ -4,6 +4,8 @@ HINSTANCE find_imported_module_by_funcname(HINSTANCE hInst, const char *funcname
 void *get_dll_import_func(HINSTANCE hInst, const char *funcname);
 int dyn_libintl_init(void);
 void dyn_libintl_end(void);
+int null_libintl_putenv(const char *envstring);
+int null_libintl_wputenv(const wchar_t *envstring);
 void PlatformId(void);
 void mch_setmouse(int on);
 void mch_update_cursor(void);
@@ -56,8 +58,8 @@ int mch_wrename(WCHAR *wold, WCHAR *wnew);
 int mch_rename(const char *pszOldFile, const char *pszNewFile);
 char *default_shell(void);
 int mch_access(char *n, int p);
-int mch_open(char *name, int flags, int mode);
-FILE *mch_fopen(char *name, char *mode);
+int mch_open(const char *name, int flags, int mode);
+FILE *mch_fopen(const char *name, const char *mode);
 int mch_copy_file_attribute(char_u *from, char_u *to);
 int myresetstkoflw(void);
 int get_cmd_argsW(char ***argvp);
index 19228375eb55b8dcae6b855e6e2ca2511232eba4..d4a334dedeeef54a3ed9999f5f3e18e39868e556 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    840,
 /**/
     839,
 /**/
index 8b6337e23235ce410b8b35facf3b48540214127f..2562d9e8b0c323349dbbb5894fa100465b48b417 100644 (file)
--- a/src/vim.h
+++ b/src/vim.h
@@ -2141,6 +2141,11 @@ typedef enum {
 # define number_width(x) 7
 #endif
 
+/* This must come after including proto.h */
+#if !(defined(FEAT_MBYTE) && defined(WIN3264))
+# define mch_open(n, m, p)     open((n), (m), (p))
+# define mch_fopen(n, p)       fopen((n), (p))
+#endif
 
 #include "globals.h"       /* global variables and messages */