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

Raspunde prin e-mail lui