> (1) The build fails with
> 
> extern.h:149: error: conflicting types for 'execvpe'
> 
> Indeed Cygwin's /usr/include/unistd.h has
> 
> int _EXFUN(execvpe, (const char *__file, char * const __argv[], char *const
> __envp[] ));
> 
> while extern.h has
> 
> extern void  execvpe __P((char *, char **, char **));
> 
> execvpe() is defined in window.c:1387, so screen has its own private
> implementation, apparently now incompatible with Cygwin's.

I developed a patch (attached) to address this in Cygwin.  The patch isn't
written generally at all; it just uses #ifdef __CYGWIN__ to remove the
private implementation of execvpe().  There's probably an autoconf test
that should be used for this instead, but I don't know autoconf well enough
to do that.  If there is one, it should probably be incorporated upstream.

> (2) 
> 
> Similarly, I get warnings about incompatible implicit declarations of
> strlen, strcpy, and strncpy, e.g.
> 
> screen.c: In function 'main':
> screen.c:473: warning: incompatible implicit declaration of built-in
> function 'strcpy'
> screen.c:642: warning: incompatible implicit declaration of built-in
> function 'strlen'

Thanks to Joe Zbiciak who replied off-list with a suggestion about this.
Again I ended up just adding an #ifdef __CYGWIN__ in os.h to force
inclusion of string.h, which solved the problem.  As Joe says, the logic
there for inclusion of string.h looks "pretty crufty", so I'm not sure that
there's necessarily a better approach to solve this one, short of
overhauling that whole section.

Andrew.




_______________________________________________
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users

Reply via email to