Mercurial > vim
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 |