comparison src/json.c @ 15470:55ccc2d353bd v8.1.0743

patch 8.1.0743: giving error messages is not flexible commit https://github.com/vim/vim/commit/f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 13 23:38:42 2019 +0100 patch 8.1.0743: giving error messages is not flexible Problem: Giving error messages is not flexible. Solution: Add semsg(). Change argument from "char_u *" to "char *", also for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes #3302) Also make emsg() accept a "char *" argument. Get rid of an enormous number of type casts.
author Bram Moolenaar <Bram@vim.org>
date Sun, 13 Jan 2019 23:45:08 +0100
parents 1d2b5c016f17
children 2ad5f0ffaa2e
comparison
equal deleted inserted replaced
15469:bc9b5261ed01 15470:55ccc2d353bd
230 case VAR_FUNC: 230 case VAR_FUNC:
231 case VAR_PARTIAL: 231 case VAR_PARTIAL:
232 case VAR_JOB: 232 case VAR_JOB:
233 case VAR_CHANNEL: 233 case VAR_CHANNEL:
234 /* no JSON equivalent TODO: better error */ 234 /* no JSON equivalent TODO: better error */
235 EMSG(_(e_invarg)); 235 emsg(_(e_invarg));
236 return FAIL; 236 return FAIL;
237 237
238 case VAR_BLOB: 238 case VAR_BLOB:
239 b = val->vval.v_blob; 239 b = val->vval.v_blob;
240 if (b == NULL || b->bv_ga.ga_len == 0) 240 if (b == NULL || b->bv_ga.ga_len == 0)
737 case '\'': 737 case '\'':
738 if (options & JSON_JS) 738 if (options & JSON_JS)
739 retval = json_decode_string(reader, cur_item, *p); 739 retval = json_decode_string(reader, cur_item, *p);
740 else 740 else
741 { 741 {
742 EMSG(_(e_invarg)); 742 emsg(_(e_invarg));
743 retval = FAIL; 743 retval = FAIL;
744 } 744 }
745 break; 745 break;
746 746
747 case ',': /* comma: empty item */ 747 case ',': /* comma: empty item */
748 if ((options & JSON_JS) == 0) 748 if ((options & JSON_JS) == 0)
749 { 749 {
750 EMSG(_(e_invarg)); 750 emsg(_(e_invarg));
751 retval = FAIL; 751 retval = FAIL;
752 break; 752 break;
753 } 753 }
754 /* FALLTHROUGH */ 754 /* FALLTHROUGH */
755 case NUL: /* empty */ 755 case NUL: /* empty */
775 retval = MAYBE; 775 retval = MAYBE;
776 break; 776 break;
777 } 777 }
778 if (!VIM_ISDIGIT(*sp)) 778 if (!VIM_ISDIGIT(*sp))
779 { 779 {
780 EMSG(_(e_invarg)); 780 emsg(_(e_invarg));
781 retval = FAIL; 781 retval = FAIL;
782 break; 782 break;
783 } 783 }
784 } 784 }
785 sp = skipdigits(sp); 785 sp = skipdigits(sp);
913 { 913 {
914 top_item->jd_key = tv_get_string_buf_chk(cur_item, key_buf); 914 top_item->jd_key = tv_get_string_buf_chk(cur_item, key_buf);
915 if (top_item->jd_key == NULL) 915 if (top_item->jd_key == NULL)
916 { 916 {
917 clear_tv(cur_item); 917 clear_tv(cur_item);
918 EMSG(_(e_invarg)); 918 emsg(_(e_invarg));
919 retval = FAIL; 919 retval = FAIL;
920 goto theend; 920 goto theend;
921 } 921 }
922 } 922 }
923 } 923 }
951 { 951 {
952 if (*p == NUL) 952 if (*p == NUL)
953 retval = MAYBE; 953 retval = MAYBE;
954 else 954 else
955 { 955 {
956 EMSG(_(e_invarg)); 956 emsg(_(e_invarg));
957 retval = FAIL; 957 retval = FAIL;
958 } 958 }
959 goto theend; 959 goto theend;
960 } 960 }
961 break; 961 break;
969 clear_tv(cur_item); 969 clear_tv(cur_item);
970 if (*p == NUL) 970 if (*p == NUL)
971 retval = MAYBE; 971 retval = MAYBE;
972 else 972 else
973 { 973 {
974 EMSG(_(e_invarg)); 974 emsg(_(e_invarg));
975 retval = FAIL; 975 retval = FAIL;
976 } 976 }
977 goto theend; 977 goto theend;
978 } 978 }
979 ++reader->js_used; 979 ++reader->js_used;
986 case JSON_OBJECT: 986 case JSON_OBJECT:
987 if (cur_item != NULL 987 if (cur_item != NULL
988 && dict_find(top_item->jd_tv.vval.v_dict, 988 && dict_find(top_item->jd_tv.vval.v_dict,
989 top_item->jd_key, -1) != NULL) 989 top_item->jd_key, -1) != NULL)
990 { 990 {
991 EMSG2(_("E938: Duplicate key in JSON: \"%s\""), 991 semsg(_("E938: Duplicate key in JSON: \"%s\""),
992 top_item->jd_key); 992 top_item->jd_key);
993 clear_tv(&top_item->jd_key_tv); 993 clear_tv(&top_item->jd_key_tv);
994 clear_tv(cur_item); 994 clear_tv(cur_item);
995 retval = FAIL; 995 retval = FAIL;
996 goto theend; 996 goto theend;
1025 { 1025 {
1026 if (*p == NUL) 1026 if (*p == NUL)
1027 retval = MAYBE; 1027 retval = MAYBE;
1028 else 1028 else
1029 { 1029 {
1030 EMSG(_(e_invarg)); 1030 emsg(_(e_invarg));
1031 retval = FAIL; 1031 retval = FAIL;
1032 } 1032 }
1033 goto theend; 1033 goto theend;
1034 } 1034 }
1035 top_item->jd_type = JSON_OBJECT_KEY; 1035 top_item->jd_type = JSON_OBJECT_KEY;
1044 { 1044 {
1045 clear_tv(res); 1045 clear_tv(res);
1046 res->v_type = VAR_SPECIAL; 1046 res->v_type = VAR_SPECIAL;
1047 res->vval.v_number = VVAL_NONE; 1047 res->vval.v_number = VVAL_NONE;
1048 } 1048 }
1049 EMSG(_(e_invarg)); 1049 emsg(_(e_invarg));
1050 1050
1051 theend: 1051 theend:
1052 ga_clear(&stack); 1052 ga_clear(&stack);
1053 return retval; 1053 return retval;
1054 } 1054 }
1068 json_skip_white(reader); 1068 json_skip_white(reader);
1069 ret = json_decode_item(reader, res, options); 1069 ret = json_decode_item(reader, res, options);
1070 if (ret != OK) 1070 if (ret != OK)
1071 { 1071 {
1072 if (ret == MAYBE) 1072 if (ret == MAYBE)
1073 EMSG(_(e_invarg)); 1073 emsg(_(e_invarg));
1074 return FAIL; 1074 return FAIL;
1075 } 1075 }
1076 json_skip_white(reader); 1076 json_skip_white(reader);
1077 if (reader->js_buf[reader->js_used] != NUL) 1077 if (reader->js_buf[reader->js_used] != NUL)
1078 { 1078 {
1079 EMSG(_(e_trailing)); 1079 emsg(_(e_trailing));
1080 return FAIL; 1080 return FAIL;
1081 } 1081 }
1082 return OK; 1082 return OK;
1083 } 1083 }
1084 1084