> (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