Patch 7.2.338

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Patch 7.2.338

Bram Moolenaar

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
***************
*** 2895,2901 ****
      apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
  #endif
 
! #if defined(WIN32) && defined(FEAT_CSCOPE)
      cookie.fp = fopen_noinh_readbin((char *)fname_exp);
  #else
      cookie.fp = mch_fopen((char *)fname_exp, READBIN);
--- 2910,2916 ----
      apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
  #endif
 
! #ifdef USE_FOPEN_NOINH
      cookie.fp = fopen_noinh_readbin((char *)fname_exp);
  #else
      cookie.fp = mch_fopen((char *)fname_exp, READBIN);
***************
*** 2916,2922 ****
  *p = '.';
     else
  *p = '_';
! #if defined(WIN32) && defined(FEAT_CSCOPE)
     cookie.fp = fopen_noinh_readbin((char *)fname_exp);
  #else
     cookie.fp = mch_fopen((char *)fname_exp, READBIN);
--- 2931,2937 ----
  *p = '.';
     else
  *p = '_';
! #ifdef USE_FOPEN_NOINH
     cookie.fp = fopen_noinh_readbin((char *)fname_exp);
  #else
     cookie.fp = mch_fopen((char *)fname_exp, READBIN);
*** ../vim-7.2.337/src/version.c 2010-01-19 16:12:53.000000000 +0100
--- src/version.c 2010-01-19 16:20:08.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
  {   /* Add new patch number below this line */
+ /**/
+     338,
  /**/

--
~
~
~
".signature" 4 lines, 50 characters written

 /// Bram Moolenaar -- [hidden email] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
Reply | Threaded
Open this post in threaded view
|

Re: Patch 7.2.338

Lech Lorens
2010/1/19 Bram Moolenaar <[hidden email]>:

>
> 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
Reply | Threaded
Open this post in threaded view
|

Re: Patch 7.2.338

Patrick Texier-2
Le Tue, 19 Jan 2010 16:43:29 +0100, Lech Lorens a écrit dans le message
<[hidden email]> :

> Isn't bitwise or operator missing before O_BINARY in the modified
> fopen_noinh_readbin()?

Yes, this patch doesn't compile on Windows.

================= errors =========
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
.\ex_cmds2.c:
Error E2121 .\ex_cmds2.c 2819: Function call missing ) in function
fopen_noinh_readbin
*** 1 errors in Compile ****
=================================
--
Patrick Texier

--
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
Reply | Threaded
Open this post in threaded view
|

Re: Patch 7.2.338

Bram Moolenaar
In reply to this post by Lech Lorens

Lech Lorens wrote:

> 2010/1/19 Bram Moolenaar <[hidden email]>:
> >
> > 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

[...]

> Isn't bitwise or operator missing before O_BINARY in the modified
> fopen_noinh_readbin()?

Yep.  One more patch...

--
The difference between theory and practice, is that in theory, there
is no difference between theory and practice.

 /// Bram Moolenaar -- [hidden email] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php