diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-02 22:07:12 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-02 22:07:12 +0200 |
commit | b6843a007da9c06bd8f9491cc12e5e0afd858f33 (patch) | |
tree | 2199b430eb6cc5d9800ea9e82a43c9d527d0d148 | |
parent | fae428354213b54626ff9e29faa5fd86161da942 (diff) | |
download | vim-git-b6843a007da9c06bd8f9491cc12e5e0afd858f33.tar.gz |
patch 8.0.0840: MS-Windows: fopen() and open() prototypes are wrongv8.0.0840
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.
-rw-r--r-- | src/macros.h | 7 | ||||
-rw-r--r-- | src/os_win32.c | 4 | ||||
-rw-r--r-- | src/proto/os_win32.pro | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 5 |
5 files changed, 13 insertions, 11 deletions
diff --git a/src/macros.h b/src/macros.h index d75d19072..c320a3f7d 100644 --- a/src/macros.h +++ b/src/macros.h @@ -191,9 +191,6 @@ # 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)) @@ -223,10 +220,6 @@ * 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 diff --git a/src/os_win32.c b/src/os_win32.c index 8a38bcc56..4921b50f3 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -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; diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro index 6c5dc4fc0..754df4f97 100644 --- a/src/proto/os_win32.pro +++ b/src/proto/os_win32.pro @@ -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); diff --git a/src/version.c b/src/version.c index 19228375e..d4a334ded 100644 --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 840, +/**/ 839, /**/ 838, @@ -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 */ |