| 833 | } |
| 834 | |
| 835 | int md_json_iterkey(md_json_iterkey_cb *cb, void *baton, md_json_t *json, ...) |
| 836 | { |
| 837 | json_t *j; |
| 838 | va_list ap; |
| 839 | const char *key; |
| 840 | json_t *val; |
| 841 | md_json_t wrap; |
| 842 | |
| 843 | va_start(ap, json); |
| 844 | j = jselect(json, ap); |
| 845 | va_end(ap); |
| 846 | |
| 847 | if (!j || !json_is_object(j)) { |
| 848 | return 0; |
| 849 | } |
| 850 | |
| 851 | wrap.p = json->p; |
| 852 | json_object_foreach(j, key, val) { |
| 853 | wrap.j = val; |
| 854 | if (!cb(baton, key, &wrap)) { |
| 855 | return 0; |
| 856 | } |
| 857 | } |
| 858 | return 1; |
| 859 | } |
| 860 | |
| 861 | /**************************************************************************************************/ |
| 862 | /* array strings */ |
no test coverage detected