summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-08-02 22:07:12 +0200
committerBram Moolenaar <Bram@vim.org>2017-08-02 22:07:12 +0200
commitb6843a007da9c06bd8f9491cc12e5e0afd858f33 (patch)
tree2199b430eb6cc5d9800ea9e82a43c9d527d0d148
parentfae428354213b54626ff9e29faa5fd86161da942 (diff)
downloadvim-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.h7
-rw-r--r--src/os_win32.c4
-rw-r--r--src/proto/os_win32.pro6
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h5
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,
diff --git a/src/vim.h b/src/vim.h
index 8b6337e23..2562d9e8b 100644
--- 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 */