forked from aniani/vim
patch 7.4.1437
Problem: Old system doesn't have isinf() and NAN. (Ben Fritz) Solution: Adjust #ifdefs. Detect isnan() and isinf() functions with configure. Use a replacement when missing. (Kazunobu Kuriyama)
This commit is contained in:
44
src/auto/configure
vendored
44
src/auto/configure
vendored
@@ -10978,6 +10978,48 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
|
|||||||
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
|
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
|
||||||
|
$as_echo_n "checking for inline... " >&6; }
|
||||||
|
if ${ac_cv_c_inline+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_cv_c_inline=no
|
||||||
|
for ac_kw in inline __inline__ __inline; do
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#ifndef __cplusplus
|
||||||
|
typedef int foo_t;
|
||||||
|
static $ac_kw foo_t static_foo () {return 0; }
|
||||||
|
$ac_kw foo_t foo () {return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
ac_cv_c_inline=$ac_kw
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
test "$ac_cv_c_inline" != no && break
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
|
||||||
|
$as_echo "$ac_cv_c_inline" >&6; }
|
||||||
|
|
||||||
|
case $ac_cv_c_inline in
|
||||||
|
inline | yes) ;;
|
||||||
|
*)
|
||||||
|
case $ac_cv_c_inline in
|
||||||
|
no) ac_val=;;
|
||||||
|
*) ac_val=$ac_cv_c_inline;;
|
||||||
|
esac
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#define inline $ac_val
|
||||||
|
#endif
|
||||||
|
_ACEOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rlim_t" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rlim_t" >&5
|
||||||
$as_echo_n "checking for rlim_t... " >&6; }
|
$as_echo_n "checking for rlim_t... " >&6; }
|
||||||
@@ -11816,7 +11858,7 @@ for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
|
|||||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||||
usleep utime utimes
|
usleep utime utimes isnan isinf
|
||||||
do :
|
do :
|
||||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||||
|
@@ -460,3 +460,12 @@
|
|||||||
|
|
||||||
/* Define if GTK+ GUI is to be linked against GTK+ 3 */
|
/* Define if GTK+ GUI is to be linked against GTK+ 3 */
|
||||||
#undef USE_GTK3
|
#undef USE_GTK3
|
||||||
|
|
||||||
|
/* Define if we have isinf() */
|
||||||
|
#undef HAVE_ISINF
|
||||||
|
|
||||||
|
/* Define if we have isnan() */
|
||||||
|
#undef HAVE_ISNAN
|
||||||
|
|
||||||
|
/* Define to inline symbol or empty */
|
||||||
|
#undef inline
|
||||||
|
@@ -3146,6 +3146,7 @@ AC_HEADER_TIME
|
|||||||
AC_CHECK_TYPE(ino_t, long)
|
AC_CHECK_TYPE(ino_t, long)
|
||||||
AC_CHECK_TYPE(dev_t, unsigned)
|
AC_CHECK_TYPE(dev_t, unsigned)
|
||||||
AC_C_BIGENDIAN(,,,)
|
AC_C_BIGENDIAN(,,,)
|
||||||
|
AC_C_INLINE
|
||||||
|
|
||||||
AC_MSG_CHECKING(for rlim_t)
|
AC_MSG_CHECKING(for rlim_t)
|
||||||
if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
|
||||||
@@ -3564,7 +3565,7 @@ AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
|
|||||||
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||||
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||||
usleep utime utimes)
|
usleep utime utimes isnan isinf)
|
||||||
AC_FUNC_FSEEKO
|
AC_FUNC_FSEEKO
|
||||||
|
|
||||||
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
||||||
|
10
src/eval.c
10
src/eval.c
@@ -27,16 +27,6 @@
|
|||||||
# include <time.h> /* for time_t */
|
# include <time.h> /* for time_t */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FEAT_FLOAT)
|
|
||||||
# include <float.h>
|
|
||||||
# if defined(HAVE_MATH_H)
|
|
||||||
# include <math.h>
|
|
||||||
# endif
|
|
||||||
# if defined(WIN32) && !defined(isnan)
|
|
||||||
# define isnan(x) _isnan(x)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define DICT_MAXNEST 100 /* maximum nesting of lists and dicts */
|
#define DICT_MAXNEST 100 /* maximum nesting of lists and dicts */
|
||||||
|
|
||||||
#define DO_NOT_FREE_CNT 99999 /* refcount for dict or list that should not
|
#define DO_NOT_FREE_CNT 99999 /* refcount for dict or list that should not
|
||||||
|
18
src/json.c
18
src/json.c
@@ -17,24 +17,6 @@
|
|||||||
|
|
||||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||||
|
|
||||||
#if defined(FEAT_FLOAT)
|
|
||||||
# include <float.h>
|
|
||||||
# if defined(HAVE_MATH_H)
|
|
||||||
/* for isnan() and isinf() */
|
|
||||||
# include <math.h>
|
|
||||||
# endif
|
|
||||||
# if defined(WIN32) && !defined(isnan)
|
|
||||||
# define isnan(x) _isnan(x)
|
|
||||||
# define isinf(x) (!_finite(x) && !_isnan(x))
|
|
||||||
# endif
|
|
||||||
# if !defined(INFINITY) && defined(DBL_MAX)
|
|
||||||
# define INFINITY (DBL_MAX+DBL_MAX)
|
|
||||||
# endif
|
|
||||||
# if !defined(NAN) && defined(INFINITY)
|
|
||||||
# define NAN (INFINITY-INFINITY)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int json_encode_item(garray_T *gap, typval_T *val, int copyID, int options);
|
static int json_encode_item(garray_T *gap, typval_T *val, int copyID, int options);
|
||||||
static int json_decode_item(js_read_T *reader, typval_T *res, int options);
|
static int json_decode_item(js_read_T *reader, typval_T *res, int options);
|
||||||
|
|
||||||
|
29
src/macros.h
29
src/macros.h
@@ -320,3 +320,32 @@
|
|||||||
#if defined(FEAT_CHANNEL) || defined(FEAT_JOB) || defined(FEAT_CLIENTSERVER)
|
#if defined(FEAT_CHANNEL) || defined(FEAT_JOB) || defined(FEAT_CLIENTSERVER)
|
||||||
# define MESSAGE_QUEUE
|
# define MESSAGE_QUEUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(FEAT_EVAL) && defined(FEAT_FLOAT)
|
||||||
|
# include <float.h>
|
||||||
|
# if defined(HAVE_MATH_H)
|
||||||
|
/* for isnan() and isinf() */
|
||||||
|
# include <math.h>
|
||||||
|
# endif
|
||||||
|
# if defined(WIN32) && !defined(isnan)
|
||||||
|
# define isnan(x) _isnan(x)
|
||||||
|
# define isinf(x) (!_finite(x) && !_isnan(x))
|
||||||
|
# else
|
||||||
|
# ifndef HAVE_ISNAN
|
||||||
|
static inline int isnan(double x) { return x != x; }
|
||||||
|
# endif
|
||||||
|
# ifndef HAVE_ISINF
|
||||||
|
static inline int isinf(double x) { return !isnan(x) && isnan(x - x); }
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# if !defined(INFINITY)
|
||||||
|
# if defined(DBL_MAX)
|
||||||
|
# define INFINITY (DBL_MAX+DBL_MAX)
|
||||||
|
# else
|
||||||
|
# define INFINITY (1.0 / 0.0)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# if !defined(NAN)
|
||||||
|
# define NAN (INFINITY-INFINITY)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
@@ -15,10 +15,6 @@
|
|||||||
|
|
||||||
#include "vim.h"
|
#include "vim.h"
|
||||||
|
|
||||||
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
|
||||||
# include <math.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int other_sourcing_name(void);
|
static int other_sourcing_name(void);
|
||||||
static char_u *get_emsg_source(void);
|
static char_u *get_emsg_source(void);
|
||||||
static char_u *get_emsg_lnum(void);
|
static char_u *get_emsg_lnum(void);
|
||||||
|
@@ -743,6 +743,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1437,
|
||||||
/**/
|
/**/
|
||||||
1436,
|
1436,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user