patch 8.1.1111: it is not easy to check for infinity

Problem:    It is not easy to check for infinity.
Solution:   Add isinf(). (Ozaki Kiichi, closes #3787)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 2eafe14..4a54d6d 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -237,6 +237,7 @@
 static void f_isdirectory(typval_T *argvars, typval_T *rettv);
 static void f_islocked(typval_T *argvars, typval_T *rettv);
 #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
+static void f_isinf(typval_T *argvars, typval_T *rettv);
 static void f_isnan(typval_T *argvars, typval_T *rettv);
 #endif
 static void f_items(typval_T *argvars, typval_T *rettv);
@@ -721,6 +722,9 @@
     {"insert",		2, 3, f_insert},
     {"invert",		1, 1, f_invert},
     {"isdirectory",	1, 1, f_isdirectory},
+#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
+    {"isinf",		1, 1, f_isinf},
+#endif
     {"islocked",	1, 1, f_islocked},
 #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
     {"isnan",		1, 1, f_isnan},
@@ -6582,9 +6586,6 @@
 #ifdef FEAT_TAG_BINS
 	"tag_binary",
 #endif
-#ifdef FEAT_TAG_OLDSTATIC
-	"tag_old_static",
-#endif
 #ifdef FEAT_TCL
 # ifndef DYNAMIC_TCL
 	"tcl",
@@ -7443,6 +7444,16 @@
 
 #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
 /*
+ * "isinf()" function
+ */
+    static void
+f_isinf(typval_T *argvars, typval_T *rettv)
+{
+    if (argvars[0].v_type == VAR_FLOAT && isinf(argvars[0].vval.v_float))
+	rettv->vval.v_number = argvars[0].vval.v_float > 0.0 ? 1 : -1;
+}
+
+/*
  * "isnan()" function
  */
     static void
diff --git a/src/testdir/test_float_func.vim b/src/testdir/test_float_func.vim
index 32b985e..48fae74 100644
--- a/src/testdir/test_float_func.vim
+++ b/src/testdir/test_float_func.vim
@@ -288,13 +288,24 @@
   call assert_fails("call trunc('')", 'E808:')
 endfunc
 
+func Test_isinf()
+  call assert_equal(1, isinf(1.0/0.0))
+  call assert_equal(-1, isinf(-1.0/0.0))
+  call assert_false(isinf(1.0))
+  call assert_false(isinf(0.0/0.0))
+  call assert_false(isinf('a'))
+  call assert_false(isinf([]))
+  call assert_false(isinf({}))
+endfunc
+
 func Test_isnan()
-  call assert_equal(0, isnan(1.0))
-  call assert_equal(1, isnan(0.0/0.0))
-  call assert_equal(0, isnan(1.0/0.0))
-  call assert_equal(0, isnan('a'))
-  call assert_equal(0, isnan([]))
-  call assert_equal(0, isnan({}))
+  call assert_true(isnan(0.0/0.0))
+  call assert_false(isnan(1.0))
+  call assert_false(isnan(1.0/0.0))
+  call assert_false(isnan(-1.0/0.0))
+  call assert_false(isnan('a'))
+  call assert_false(isnan([]))
+  call assert_false(isnan({}))
 endfunc
 
 " This was converted from test65
diff --git a/src/version.c b/src/version.c
index 38a7683..9c237e5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1111,
+/**/
     1110,
 /**/
     1109,