This doesn't compile.

> Patch 7.3.296
> Problem:    When writing to an external command a zombie process may be left
>           behind.
> Solution:   Wait on the process. (James Vega)
> Files:            src/os_unix.c
> 
> 
> *** ../vim-7.3.295/src/os_unix.c      2011-09-07 14:06:38.000000000 +0200
> --- src/os_unix.c     2011-09-07 14:54:11.000000000 +0200
> ***************
> *** 154,159 ****
> --- 154,166 ----
>   
>   static void may_core_dump __ARGS((void));
>   
> + #ifdef HAVE_UNION_WAIT
> + typedef union wait waitstatus;
> + #else
> + typedef int waitstatus;
> + #endif
> + static int  wait4pid __ARGS((pid_t, waitstatus *));

wait4pid is declared as returning int here, but ...

>   static int  WaitForChar __ARGS((long));
>   #if defined(__BEOS__)
>   int  RealWaitForChar __ARGS((int, long, int *));
> ***************
> *** 3660,3665 ****
> --- 3667,3713 ----
>       /* Nothing to do. */
>   }
>   
> + /*
> +  * Wait for process "child" to end.
> +  * Return "child" if it exited properly, <= 0 on error.
> +  */
> +     static pid_t
> + wait4pid(child, status)
> +     pid_t   child;
> +     waitstatus      *status;

... defined as returning pid_t here.  At least with Sun Studio, this is a
redeclaration error.

Changing the declaration to return pid_t lets it compile.

Thanks,
Danek

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui