]> granicus.if.org Git - vim/commitdiff
patch 8.2.0155: warnings from MinGW compiler; tests fail without +float v8.2.0155
authorBram Moolenaar <Bram@vim.org>
Sun, 26 Jan 2020 20:42:03 +0000 (21:42 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 26 Jan 2020 20:42:03 +0000 (21:42 +0100)
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.

src/if_py_both.h
src/json.c
src/testdir/test_method.vim
src/version.c
src/vim9compile.c
src/vim9execute.c
src/vim9script.c

index 45bfeec593f067ef99bd932f89c65e60e9e281ae..3da87ccc3677eb3e2e58854e9ebb140c4e57a2e5 100644 (file)
@@ -6357,8 +6357,8 @@ ConvertToPyObject(typval_T *tv)
                                            ? "" : (char *)tv->vval.v_string);
        case VAR_NUMBER:
            return PyLong_FromLong((long) tv->vval.v_number);
-#ifdef FEAT_FLOAT
        case VAR_FLOAT:
+#ifdef FEAT_FLOAT
            return PyFloat_FromDouble((double) tv->vval.v_float);
 #endif
        case VAR_LIST:
index 6d7b1939e0ea5535874ce43be7e7b42a616e9973..da0ba4bb2a4c1431f19b27d7b32d936ac18623ef 100644 (file)
@@ -761,9 +761,9 @@ json_decode_item(js_read_T *reader, typval_T *res, int options)
                    break;
 
                default:
-                   if (VIM_ISDIGIT(*p) || (*p == '-' && VIM_ISDIGIT(p[1])))
+                   if (VIM_ISDIGIT(*p) || (*p == '-'
+                                       && (VIM_ISDIGIT(p[1]) || p[1] == NUL)))
                    {
-#ifdef FEAT_FLOAT
                        char_u  *sp = p;
 
                        if (*sp == '-')
@@ -782,6 +782,7 @@ json_decode_item(js_read_T *reader, typval_T *res, int options)
                            }
                        }
                        sp = skipdigits(sp);
+#ifdef FEAT_FLOAT
                        if (*sp == '.' || *sp == 'e' || *sp == 'E')
                        {
                            if (cur_item == NULL)
@@ -889,7 +890,8 @@ json_decode_item(js_read_T *reader, typval_T *res, int options)
                    }
 #endif
                    // check for truncated name
-                   len = (int)(reader->js_end - (reader->js_buf + reader->js_used));
+                   len = (int)(reader->js_end
+                                        - (reader->js_buf + reader->js_used));
                    if (
                            (len < 5 && STRNICMP((char *)p, "false", len) == 0)
 #ifdef FEAT_FLOAT
index b82dbb4948760f85e55e709c61792a3c2a2bcf37..978e5f5b3d2b7340431c647758ac1cbe0196b0ac 100644 (file)
@@ -1,5 +1,7 @@
 " Tests for ->method()
 
+source check.vim
+
 func Test_list_method()
   let l = [1, 2, 3]
   call assert_equal([1, 2, 3, 4], [1, 2, 3]->add(4))
@@ -118,6 +120,7 @@ func Test_method_funcref()
 endfunc
 
 func Test_method_float()
+  CheckFeature float
   eval 1.234->string()->assert_equal('1.234')
   eval -1.234->string()->assert_equal('-1.234')
 endfunc
index 19a5c0d10ac9be9fc637d76f8ef286650a381887..dc531be7df74bfc78ac4e51a9bd1f2ffac97ae11 100644 (file)
@@ -742,6 +742,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    155,
 /**/
     154,
 /**/
index 66906221c43f740d361c685723a7c9c6f4a93686..29595cca4ebc1b4e1ad984df886ec12af135e611 100644 (file)
@@ -1217,8 +1217,13 @@ parse_type(char_u **arg, garray_T *type_list)
        case 'f':
            if (len == 5 && STRNCMP(*arg, "float", len) == 0)
            {
+#ifdef FEAT_FLOAT
                *arg += len;
                return &t_float;
+#else
+               emsg(_("E1055: This Vim is not compiled with float support"));
+               return &t_any;
+#endif
            }
            if (len == 4 && STRNCMP(*arg, "func", len) == 0)
            {
index a738aa1e52edea99471ff15cf70a3fce6b8e0bf9..f8efa1d6ca4a1ac4d610d1b321bf9db0d4406b11 100644 (file)
@@ -1095,6 +1095,7 @@ call_def_function(
            // Computation with two float arguments
            case ISN_OPFLOAT:
            case ISN_COMPAREFLOAT:
+#ifdef FEAT_FLOAT
                {
                    typval_T    *tv1 = STACK_TV_BOT(-2);
                    typval_T    *tv2 = STACK_TV_BOT(-1);
@@ -1127,6 +1128,7 @@ call_def_function(
                    else
                        tv1->vval.v_float = res;
                }
+#endif
                break;
 
            case ISN_COMPARELIST:
@@ -1618,7 +1620,9 @@ ex_disassemble(exarg_T *eap)
                                   get_var_special_name(iptr->isn_arg.number));
                break;
            case ISN_PUSHF:
+#ifdef FEAT_FLOAT
                smsg("%4d PUSHF %g", current, iptr->isn_arg.fnumber);
+#endif
                break;
            case ISN_PUSHS:
                smsg("%4d PUSHS \"%s\"", current, iptr->isn_arg.string);
index fb1925835a69788f9153dac8c0e42297f152f850..9aa33d0ab8adf230aae8bc7cee3afc53e8172ad2 100644 (file)
@@ -323,6 +323,7 @@ handle_import(char_u *arg_start, garray_T *gap, int import_sid)
                    *arg = cc;
                    return NULL;
                }
+               ufunc = NULL;
            }
            else
            {
@@ -355,6 +356,7 @@ handle_import(char_u *arg_start, garray_T *gap, int import_sid)
                    *arg = cc;
                    return NULL;
                }
+               sv = NULL;
            }
 
            imported = new_imported(gap != NULL ? gap