Patch 8.1.0371
Problem: Argument types for select() may be wrong.
Solution: Use a configure macro. (Tobias Ulmer)
Files: src/config.h.in, src/configure.ac, src/auto/configure,
src/os_unix.c
*** ../vim-8.1.0370/src/config.h.in 2018-05-13 15:37:01.000000000 +0200
--- src/config.h.in 2018-09-12 20:25:27.109676243 +0200
***************
*** 113,118 ****
--- 113,121 ----
/* Define if you can safely include both <sys/time.h> and <sys/select.h>. */
#undef SYS_SELECT_WITH_SYS_TIME
+ /* Define to a typecast for select() arguments 2, 3 and 4. */
+ #undef SELECT_TYPE_ARG234
+
/* Define if you have /dev/ptc */
#undef HAVE_DEV_PTC
*** ../vim-8.1.0370/src/configure.ac 2018-08-04 15:13:31.026718187 +0200
--- src/configure.ac 2018-09-12 20:20:02.744871078 +0200
***************
*** 3721,3726 ****
--- 3721,3727 ----
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
usleep utime utimes mblen ftruncate unsetenv)
+ AC_FUNC_SELECT_ARGTYPES
AC_FUNC_FSEEKO
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
*** ../vim-8.1.0370/src/auto/configure 2018-08-04 15:13:31.034718130 +0200
--- src/auto/configure 2018-09-12 20:23:36.130733921 +0200
***************
*** 12630,12635 ****
--- 12630,12710 ----
fi
done
+ for ac_header in sys/select.h sys/socket.h
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header"
"$ac_includes_default"
+ if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+
+ fi
+
+ done
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for
select" >&5
+ $as_echo_n "checking types of arguments for select... " >&6; }
+ if ${ac_cv_func_select_args+:} false; then :
+ $as_echo_n "(cached) " >&6
+ else
+ for ac_arg234 in 'fd_set *' 'int *' 'void *'; do
+ for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do
+ for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ $ac_includes_default
+ #ifdef HAVE_SYS_SELECT_H
+ # include <sys/select.h>
+ #endif
+ #ifdef HAVE_SYS_SOCKET_H
+ # include <sys/socket.h>
+ #endif
+
+ int
+ main ()
+ {
+ extern int select ($ac_arg1,
+ $ac_arg234, $ac_arg234, $ac_arg234,
+ $ac_arg5);
+ ;
+ return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+ done
+ done
+ # Provide a safe default value.
+ : "${ac_cv_func_select_args=int,int *,struct timeval *}"
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5
+ $as_echo "$ac_cv_func_select_args" >&6; }
+ ac_save_IFS=$IFS; IFS=','
+ set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'`
+ IFS=$ac_save_IFS
+ shift
+
+ cat >>confdefs.h <<_ACEOF
+ #define SELECT_TYPE_ARG1 $1
+ _ACEOF
+
+
+ cat >>confdefs.h <<_ACEOF
+ #define SELECT_TYPE_ARG234 ($2)
+ _ACEOF
+
+
+ cat >>confdefs.h <<_ACEOF
+ #define SELECT_TYPE_ARG5 ($3)
+ _ACEOF
+
+ rm -f conftest*
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value
needed for large files" >&5
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... "
>&6; }
if ${ac_cv_sys_largefile_source+:} false; then :
*** ../vim-8.1.0370/src/os_unix.c 2018-09-06 13:14:39.140722555 +0200
--- src/os_unix.c 2018-09-12 20:28:52.939783579 +0200
***************
*** 18,34 ****
* changed beyond recognition.
*/
- /*
- * Some systems have a prototype for select() that has (int *) instead of
- * (fd_set *), which is wrong. This define removes that prototype. We define
- * our own prototype below.
- * Don't use it for the Mac, it causes a warning for precompiled headers.
- * TODO: use a configure check for precompiled headers?
- */
- #if !defined(__APPLE__) && !defined(__TANDEM)
- # define select select_declared_wrong
- #endif
-
#include "vim.h"
#ifdef FEAT_MZSCHEME
--- 18,23 ----
***************
*** 54,67 ****
# endif
#endif
! /*
! * Use this prototype for select, some include files have a wrong prototype
! */
! #ifndef __TANDEM
# undef select
! # ifdef __BEOS__
! # define select beos_select
! # endif
#endif
#ifdef __CYGWIN__
--- 43,51 ----
# endif
#endif
! #ifdef __BEOS__
# undef select
! # define select beos_select
#endif
#ifdef __CYGWIN__
***************
*** 77,86 ****
# endif
#endif
- #if defined(HAVE_SELECT)
- extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
- #endif
-
#ifdef FEAT_MOUSE_GPM
# include <gpm.h>
/* <linux/keyboard.h> contains defines conflicting with "keymap.h",
--- 61,66 ----
***************
*** 6316,6322 ****
if (interrupted != NULL)
*interrupted = FALSE;
! ret = select(maxfd + 1, &rfds, &wfds, &efds, tvp);
result = ret > 0 && FD_ISSET(fd, &rfds);
if (result)
--ret;
--- 6296,6303 ----
if (interrupted != NULL)
*interrupted = FALSE;
! ret = select(maxfd + 1, SELECT_TYPE_ARG234 &rfds,
! SELECT_TYPE_ARG234 &wfds, SELECT_TYPE_ARG234 &efds, tvp);
result = ret > 0 && FD_ISSET(fd, &rfds);
if (result)
--ret;
*** ../vim-8.1.0370/src/version.c 2018-09-12 18:00:08.937570191 +0200
--- src/version.c 2018-09-12 20:18:50.065639189 +0200
***************
*** 796,797 ****
--- 796,799 ----
{ /* Add new patch number below this line */
+ /**/
+ 371,
/**/
--
I wonder how much deeper the ocean would be without sponges.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
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
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.