diff options
Diffstat (limited to 'xs.h')
| -rw-r--r-- | xs.h | 34 |
1 files changed, 17 insertions, 17 deletions
| @@ -94,8 +94,8 @@ xs_list *xs_list_new(void); | |||
| 94 | xs_list *xs_list_append_m(xs_list *list, const char *mem, int dsz); | 94 | xs_list *xs_list_append_m(xs_list *list, const char *mem, int dsz); |
| 95 | xs_list *_xs_list_append(xs_list *list, const xs_val *vals[]); | 95 | xs_list *_xs_list_append(xs_list *list, const xs_val *vals[]); |
| 96 | #define xs_list_append(list, ...) _xs_list_append(list, (const xs_val *[]){ __VA_ARGS__, NULL }) | 96 | #define xs_list_append(list, ...) _xs_list_append(list, (const xs_val *[]){ __VA_ARGS__, NULL }) |
| 97 | int xs_list_iter(xs_list **list, xs_val **value); | 97 | int xs_list_iter(xs_list **list, const xs_val **value); |
| 98 | int xs_list_next(const xs_list *list, xs_val **value, int *ctxt); | 98 | int xs_list_next(const xs_list *list, const xs_val **value, int *ctxt); |
| 99 | int xs_list_len(const xs_list *list); | 99 | int xs_list_len(const xs_list *list); |
| 100 | const xs_val *xs_list_get(const xs_list *list, int num); | 100 | const xs_val *xs_list_get(const xs_list *list, int num); |
| 101 | xs_list *xs_list_del(xs_list *list, int num); | 101 | xs_list *xs_list_del(xs_list *list, int num); |
| @@ -118,7 +118,7 @@ xs_keyval *xs_keyval_make(xs_keyval *keyval, const xs_str *key, const xs_val *va | |||
| 118 | xs_dict *xs_dict_new(void); | 118 | xs_dict *xs_dict_new(void); |
| 119 | xs_dict *xs_dict_append(xs_dict *dict, const xs_str *key, const xs_val *value); | 119 | xs_dict *xs_dict_append(xs_dict *dict, const xs_str *key, const xs_val *value); |
| 120 | xs_dict *xs_dict_prepend(xs_dict *dict, const xs_str *key, const xs_val *value); | 120 | xs_dict *xs_dict_prepend(xs_dict *dict, const xs_str *key, const xs_val *value); |
| 121 | int xs_dict_next(const xs_dict *dict, xs_str **key, xs_val **value, int *ctxt); | 121 | int xs_dict_next(const xs_dict *dict, const xs_str **key, const xs_val **value, int *ctxt); |
| 122 | const xs_val *xs_dict_get_def(const xs_dict *dict, const xs_str *key, const xs_val *def); | 122 | const xs_val *xs_dict_get_def(const xs_dict *dict, const xs_str *key, const xs_val *def); |
| 123 | #define xs_dict_get(dict, key) xs_dict_get_def(dict, key, NULL) | 123 | #define xs_dict_get(dict, key) xs_dict_get_def(dict, key, NULL) |
| 124 | xs_dict *xs_dict_del(xs_dict *dict, const xs_str *key); | 124 | xs_dict *xs_dict_del(xs_dict *dict, const xs_str *key); |
| @@ -726,7 +726,7 @@ xs_list *_xs_list_append(xs_list *list, const xs_val *vals[]) | |||
| 726 | } | 726 | } |
| 727 | 727 | ||
| 728 | 728 | ||
| 729 | int xs_list_iter(xs_list **list, xs_val **value) | 729 | int xs_list_iter(xs_list **list, const xs_val **value) |
| 730 | /* iterates a list value */ | 730 | /* iterates a list value */ |
| 731 | { | 731 | { |
| 732 | int goon = 1; | 732 | int goon = 1; |
| @@ -757,7 +757,7 @@ int xs_list_iter(xs_list **list, xs_val **value) | |||
| 757 | } | 757 | } |
| 758 | 758 | ||
| 759 | 759 | ||
| 760 | int xs_list_next(const xs_list *list, xs_val **value, int *ctxt) | 760 | int xs_list_next(const xs_list *list, const xs_val **value, int *ctxt) |
| 761 | /* iterates a list, with context */ | 761 | /* iterates a list, with context */ |
| 762 | { | 762 | { |
| 763 | if (xs_type(list) != XSTYPE_LIST) | 763 | if (xs_type(list) != XSTYPE_LIST) |
| @@ -765,7 +765,7 @@ int xs_list_next(const xs_list *list, xs_val **value, int *ctxt) | |||
| 765 | 765 | ||
| 766 | int goon = 1; | 766 | int goon = 1; |
| 767 | 767 | ||
| 768 | char *p = (char *)list; | 768 | const char *p = list; |
| 769 | 769 | ||
| 770 | /* skip the start of the list */ | 770 | /* skip the start of the list */ |
| 771 | if (*ctxt == 0) | 771 | if (*ctxt == 0) |
| @@ -800,7 +800,7 @@ int xs_list_len(const xs_list *list) | |||
| 800 | 800 | ||
| 801 | int c = 0; | 801 | int c = 0; |
| 802 | xs_list *p = (xs_list *)list; | 802 | xs_list *p = (xs_list *)list; |
| 803 | xs_val *v; | 803 | const xs_val *v; |
| 804 | 804 | ||
| 805 | while (xs_list_iter(&p, &v)) | 805 | while (xs_list_iter(&p, &v)) |
| 806 | c++; | 806 | c++; |
| @@ -819,7 +819,7 @@ const xs_val *xs_list_get(const xs_list *list, int num) | |||
| 819 | 819 | ||
| 820 | int c = 0; | 820 | int c = 0; |
| 821 | xs_list *p = (xs_list *)list; | 821 | xs_list *p = (xs_list *)list; |
| 822 | xs_val *v; | 822 | const xs_val *v; |
| 823 | 823 | ||
| 824 | while (xs_list_iter(&p, &v)) { | 824 | while (xs_list_iter(&p, &v)) { |
| 825 | if (c == num) | 825 | if (c == num) |
| @@ -881,7 +881,7 @@ xs_list *xs_list_dequeue(xs_list *list, xs_val **data, int last) | |||
| 881 | XS_ASSERT_TYPE(list, XSTYPE_LIST); | 881 | XS_ASSERT_TYPE(list, XSTYPE_LIST); |
| 882 | 882 | ||
| 883 | xs_list *p = list; | 883 | xs_list *p = list; |
| 884 | xs_val *v = NULL; | 884 | const xs_val *v = NULL; |
| 885 | 885 | ||
| 886 | if (!last) { | 886 | if (!last) { |
| 887 | /* get the first */ | 887 | /* get the first */ |
| @@ -910,7 +910,7 @@ int xs_list_in(const xs_list *list, const xs_val *val) | |||
| 910 | 910 | ||
| 911 | int n = 0; | 911 | int n = 0; |
| 912 | xs_list *p = (xs_list *)list; | 912 | xs_list *p = (xs_list *)list; |
| 913 | xs_val *v; | 913 | const xs_val *v; |
| 914 | int sz = xs_size(val); | 914 | int sz = xs_size(val); |
| 915 | 915 | ||
| 916 | while (xs_list_iter(&p, &v)) { | 916 | while (xs_list_iter(&p, &v)) { |
| @@ -931,7 +931,7 @@ xs_str *xs_join(const xs_list *list, const char *sep) | |||
| 931 | 931 | ||
| 932 | xs_str *s = NULL; | 932 | xs_str *s = NULL; |
| 933 | xs_list *p = (xs_list *)list; | 933 | xs_list *p = (xs_list *)list; |
| 934 | xs_val *v; | 934 | const xs_val *v; |
| 935 | int c = 0; | 935 | int c = 0; |
| 936 | int offset = 0; | 936 | int offset = 0; |
| 937 | int ssz = strlen(sep); | 937 | int ssz = strlen(sep); |
| @@ -1087,7 +1087,7 @@ xs_dict *xs_dict_prepend(xs_dict *dict, const xs_str *key, const xs_val *value) | |||
| 1087 | } | 1087 | } |
| 1088 | 1088 | ||
| 1089 | 1089 | ||
| 1090 | int xs_dict_next(const xs_dict *dict, xs_str **key, xs_val **value, int *ctxt) | 1090 | int xs_dict_next(const xs_dict *dict, const xs_str **key, const xs_val **value, int *ctxt) |
| 1091 | /* iterates a dict, with context */ | 1091 | /* iterates a dict, with context */ |
| 1092 | { | 1092 | { |
| 1093 | if (xs_type(dict) != XSTYPE_DICT) | 1093 | if (xs_type(dict) != XSTYPE_DICT) |
| @@ -1131,8 +1131,8 @@ const xs_val *xs_dict_get_def(const xs_dict *dict, const xs_str *key, const xs_v | |||
| 1131 | XS_ASSERT_TYPE(dict, XSTYPE_DICT); | 1131 | XS_ASSERT_TYPE(dict, XSTYPE_DICT); |
| 1132 | XS_ASSERT_TYPE(key, XSTYPE_STRING); | 1132 | XS_ASSERT_TYPE(key, XSTYPE_STRING); |
| 1133 | 1133 | ||
| 1134 | xs_str *k; | 1134 | const xs_str *k; |
| 1135 | xs_val *v; | 1135 | const xs_val *v; |
| 1136 | int c = 0; | 1136 | int c = 0; |
| 1137 | 1137 | ||
| 1138 | while (xs_dict_next(dict, &k, &v, &c)) { | 1138 | while (xs_dict_next(dict, &k, &v, &c)) { |
| @@ -1150,14 +1150,14 @@ xs_dict *xs_dict_del(xs_dict *dict, const xs_str *key) | |||
| 1150 | XS_ASSERT_TYPE(dict, XSTYPE_DICT); | 1150 | XS_ASSERT_TYPE(dict, XSTYPE_DICT); |
| 1151 | XS_ASSERT_TYPE(key, XSTYPE_STRING); | 1151 | XS_ASSERT_TYPE(key, XSTYPE_STRING); |
| 1152 | 1152 | ||
| 1153 | xs_str *k; | 1153 | const xs_str *k; |
| 1154 | xs_val *v; | 1154 | const xs_val *v; |
| 1155 | int c = 0; | 1155 | int c = 0; |
| 1156 | 1156 | ||
| 1157 | while (xs_dict_next(dict, &k, &v, &c)) { | 1157 | while (xs_dict_next(dict, &k, &v, &c)) { |
| 1158 | if (strcmp(k, key) == 0) { | 1158 | if (strcmp(k, key) == 0) { |
| 1159 | /* the address of the item is just behind the key */ | 1159 | /* the address of the item is just behind the key */ |
| 1160 | char *i = k - 1; | 1160 | char *i = (char *)k - 1; |
| 1161 | 1161 | ||
| 1162 | dict = xs_collapse(dict, i - dict, xs_size(i)); | 1162 | dict = xs_collapse(dict, i - dict, xs_size(i)); |
| 1163 | break; | 1163 | break; |