2010/1/19 Bram Moolenaar <[email protected]>: > > Patch 7.2.338 (after 7.2.300) > Problem: Part of FD_CLOEXEC change is missing. > Solution: Include source file skipped because of typo. > Files: src/ex_cmds2.c > > > *** ../vim-7.2.337/src/ex_cmds2.c 2010-01-19 16:12:53.000000000 +0100 > --- src/ex_cmds2.c 2010-01-19 16:02:53.000000000 +0100 > *************** > *** 2802,2821 **** > > static char_u *get_one_sourceline __ARGS((struct source_cookie *sp)); > > ! #if defined(WIN32) && defined(FEAT_CSCOPE) > static FILE *fopen_noinh_readbin __ARGS((char *filename)); > > /* > * Special function to open a file without handle inheritance. > */ > static FILE * > fopen_noinh_readbin(filename) > char *filename; > { > ! int fd_tmp = mch_open(filename, O_RDONLY | O_BINARY | > O_NOINHERIT, 0); > > if (fd_tmp == -1) > return NULL; > return fdopen(fd_tmp, READBIN); > } > #endif > --- 2802,2836 ---- > > static char_u *get_one_sourceline __ARGS((struct source_cookie *sp)); > > ! #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 > ! # 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 > ***************
Isn't bitwise or operator missing before O_BINARY in the modified fopen_noinh_readbin()? -- Cheers, Lech Lorens
-- You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php
