From: Bram Moolenaar Date: Tue, 19 Jan 2010 15:22:03 +0000 (+0100) Subject: updated for version 7.2.338 X-Git-Tag: v7.2.338 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6b29b0e809b14e41def8976190d24f0babddd95c;p=vim updated for version 7.2.338 Problem: Part of FD_CLOEXEC change is missing. Solution: Include source file skipped because of typo. --- diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 39ed496fc..6adb07188 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -2802,20 +2802,35 @@ source_level(cookie) static char_u *get_one_sourceline __ARGS((struct source_cookie *sp)); -#if defined(WIN32) && defined(FEAT_CSCOPE) +#if (defined(WIN32) && defined(FEAT_CSCOPE)) || defined(HAVE_FD_CLOEXEC) +# define USE_FOPEN_NOINH static FILE *fopen_noinh_readbin __ARGS((char *filename)); /* * Special function to open a file without handle inheritance. + * When possible the handle is closed on exec(). */ static FILE * fopen_noinh_readbin(filename) char *filename; { - int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | O_NOINHERIT, 0); + int fd_tmp = mch_open(filename, O_RDONLY +# ifdef WIN32 + O_BINARY | O_NOINHERIT +# endif + , 0); if (fd_tmp == -1) return NULL; + +# ifdef HAVE_FD_CLOEXEC + { + int fdflags = fcntl(fd_tmp, F_GETFD); + if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) + fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); + } +# endif + return fdopen(fd_tmp, READBIN); } #endif @@ -2895,7 +2910,7 @@ do_source(fname, check_other, is_vimrc) apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf); #endif -#if defined(WIN32) && defined(FEAT_CSCOPE) +#ifdef USE_FOPEN_NOINH cookie.fp = fopen_noinh_readbin((char *)fname_exp); #else cookie.fp = mch_fopen((char *)fname_exp, READBIN); @@ -2916,7 +2931,7 @@ do_source(fname, check_other, is_vimrc) *p = '.'; else *p = '_'; -#if defined(WIN32) && defined(FEAT_CSCOPE) +#ifdef USE_FOPEN_NOINH cookie.fp = fopen_noinh_readbin((char *)fname_exp); #else cookie.fp = mch_fopen((char *)fname_exp, READBIN); diff --git a/src/version.c b/src/version.c index 636a56dba..1fa9dbeb6 100644 --- a/src/version.c +++ b/src/version.c @@ -681,6 +681,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 338, /**/ 337, /**/