comparison src/debugger.c @ 23788:d12ef361d9de v8.2.2435

patch 8.2.2435: setline() gives an error for some types Commit: https://github.com/vim/vim/commit/3445320839a38b3b0c253513b125da8298ec27d6 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 31 13:08:38 2021 +0100 patch 8.2.2435: setline() gives an error for some types Problem: setline() gives an error for some types. Solution: Allow any type, convert each item to a string.
author Bram Moolenaar <Bram@vim.org>
date Sun, 31 Jan 2021 13:15:04 +0100
parents e3720756acdc
children fdc6a7769045
comparison
equal deleted inserted replaced
23787:7b30bc27e54b 23788:d12ef361d9de
938 tv = eval_expr(bp->dbg_name, NULL); 938 tv = eval_expr(bp->dbg_name, NULL);
939 if (tv != NULL) 939 if (tv != NULL)
940 { 940 {
941 if (bp->dbg_val == NULL) 941 if (bp->dbg_val == NULL)
942 { 942 {
943 debug_oldval = typval_tostring(NULL); 943 debug_oldval = typval_tostring(NULL, TRUE);
944 bp->dbg_val = tv; 944 bp->dbg_val = tv;
945 debug_newval = typval_tostring(bp->dbg_val); 945 debug_newval = typval_tostring(bp->dbg_val, TRUE);
946 line = TRUE; 946 line = TRUE;
947 } 947 }
948 else 948 else
949 { 949 {
950 if (typval_compare(tv, bp->dbg_val, EXPR_IS, FALSE) == OK 950 if (typval_compare(tv, bp->dbg_val, EXPR_IS, FALSE) == OK
951 && tv->vval.v_number == FALSE) 951 && tv->vval.v_number == FALSE)
952 { 952 {
953 typval_T *v; 953 typval_T *v;
954 954
955 line = TRUE; 955 line = TRUE;
956 debug_oldval = typval_tostring(bp->dbg_val); 956 debug_oldval = typval_tostring(bp->dbg_val, TRUE);
957 // Need to evaluate again, typval_compare() overwrites 957 // Need to evaluate again, typval_compare() overwrites
958 // "tv". 958 // "tv".
959 v = eval_expr(bp->dbg_name, NULL); 959 v = eval_expr(bp->dbg_name, NULL);
960 debug_newval = typval_tostring(v); 960 debug_newval = typval_tostring(v, TRUE);
961 free_tv(bp->dbg_val); 961 free_tv(bp->dbg_val);
962 bp->dbg_val = v; 962 bp->dbg_val = v;
963 } 963 }
964 free_tv(tv); 964 free_tv(tv);
965 } 965 }
966 } 966 }
967 else if (bp->dbg_val != NULL) 967 else if (bp->dbg_val != NULL)
968 { 968 {
969 debug_oldval = typval_tostring(bp->dbg_val); 969 debug_oldval = typval_tostring(bp->dbg_val, TRUE);
970 debug_newval = typval_tostring(NULL); 970 debug_newval = typval_tostring(NULL, TRUE);
971 free_tv(bp->dbg_val); 971 free_tv(bp->dbg_val);
972 bp->dbg_val = NULL; 972 bp->dbg_val = NULL;
973 line = TRUE; 973 line = TRUE;
974 } 974 }
975 975