jv.h (jq-1.5) | : | jv.h (jq-1.6) | ||
---|---|---|---|---|
skipping to change at line 94 | skipping to change at line 94 | |||
#define JV_ARRAY_2(e1,e2) (jv_array_append(JV_ARRAY_1(e1),e2)) | #define JV_ARRAY_2(e1,e2) (jv_array_append(JV_ARRAY_1(e1),e2)) | |||
#define JV_ARRAY_3(e1,e2,e3) (jv_array_append(JV_ARRAY_2(e1,e2),e3)) | #define JV_ARRAY_3(e1,e2,e3) (jv_array_append(JV_ARRAY_2(e1,e2),e3)) | |||
#define JV_ARRAY_4(e1,e2,e3,e4) (jv_array_append(JV_ARRAY_3(e1,e2,e3),e4)) | #define JV_ARRAY_4(e1,e2,e3,e4) (jv_array_append(JV_ARRAY_3(e1,e2,e3),e4)) | |||
#define JV_ARRAY_5(e1,e2,e3,e4,e5) (jv_array_append(JV_ARRAY_4(e1,e2,e3,e4),e5)) | #define JV_ARRAY_5(e1,e2,e3,e4,e5) (jv_array_append(JV_ARRAY_4(e1,e2,e3,e4),e5)) | |||
#define JV_ARRAY_6(e1,e2,e3,e4,e5,e6) (jv_array_append(JV_ARRAY_5(e1,e2,e3,e4,e5 ),e6)) | #define JV_ARRAY_6(e1,e2,e3,e4,e5,e6) (jv_array_append(JV_ARRAY_5(e1,e2,e3,e4,e5 ),e6)) | |||
#define JV_ARRAY_7(e1,e2,e3,e4,e5,e6,e7) (jv_array_append(JV_ARRAY_6(e1,e2,e3,e4 ,e5,e6),e7)) | #define JV_ARRAY_7(e1,e2,e3,e4,e5,e6,e7) (jv_array_append(JV_ARRAY_6(e1,e2,e3,e4 ,e5,e6),e7)) | |||
#define JV_ARRAY_8(e1,e2,e3,e4,e5,e6,e7,e8) (jv_array_append(JV_ARRAY_7(e1,e2,e3 ,e4,e5,e6,e7),e8)) | #define JV_ARRAY_8(e1,e2,e3,e4,e5,e6,e7,e8) (jv_array_append(JV_ARRAY_7(e1,e2,e3 ,e4,e5,e6,e7),e8)) | |||
#define JV_ARRAY_9(e1,e2,e3,e4,e5,e6,e7,e8,e9) (jv_array_append(JV_ARRAY_8(e1,e2 ,e3,e4,e5,e6,e7,e8),e9)) | #define JV_ARRAY_9(e1,e2,e3,e4,e5,e6,e7,e8,e9) (jv_array_append(JV_ARRAY_8(e1,e2 ,e3,e4,e5,e6,e7,e8),e9)) | |||
#define JV_ARRAY_IDX(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME | #define JV_ARRAY_IDX(_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME | |||
#define JV_ARRAY(...) \ | #define JV_ARRAY(...) \ | |||
JV_ARRAY_IDX(__VA_ARGS__, JV_ARRAY_9, JV_ARRAY_8, JV_ARRAY_7, JV_ARRAY_6, JV_A RRAY_5, JV_ARRAY_4, JV_ARRAY_3, JV_ARRAY_2, JV_ARRAY_1)(__VA_ARGS__) | JV_ARRAY_IDX(__VA_ARGS__, JV_ARRAY_9, JV_ARRAY_8, JV_ARRAY_7, JV_ARRAY_6, JV_A RRAY_5, JV_ARRAY_4, JV_ARRAY_3, JV_ARRAY_2, JV_ARRAY_1, dummy)(__VA_ARGS__) | |||
#ifdef __GNUC__ | #ifdef __GNUC__ | |||
#define JV_PRINTF_LIKE(fmt_arg_num, args_num) \ | #define JV_PRINTF_LIKE(fmt_arg_num, args_num) \ | |||
__attribute__ ((__format__( __printf__, fmt_arg_num, args_num))) | __attribute__ ((__format__( __printf__, fmt_arg_num, args_num))) | |||
#define JV_VPRINTF_LIKE(fmt_arg_num) \ | #define JV_VPRINTF_LIKE(fmt_arg_num) \ | |||
__attribute__ ((__format__( __printf__, fmt_arg_num, 0))) | __attribute__ ((__format__( __printf__, fmt_arg_num, 0))) | |||
#endif | #endif | |||
jv jv_string(const char*); | jv jv_string(const char*); | |||
jv jv_string_sized(const char*, int); | jv jv_string_sized(const char*, int); | |||
skipping to change at line 124 | skipping to change at line 124 | |||
jv jv_string_fmt(const char*, ...) JV_PRINTF_LIKE(1, 2); | jv jv_string_fmt(const char*, ...) JV_PRINTF_LIKE(1, 2); | |||
jv jv_string_append_codepoint(jv a, uint32_t c); | jv jv_string_append_codepoint(jv a, uint32_t c); | |||
jv jv_string_append_buf(jv a, const char* buf, int len); | jv jv_string_append_buf(jv a, const char* buf, int len); | |||
jv jv_string_append_str(jv a, const char* str); | jv jv_string_append_str(jv a, const char* str); | |||
jv jv_string_split(jv j, jv sep); | jv jv_string_split(jv j, jv sep); | |||
jv jv_string_explode(jv j); | jv jv_string_explode(jv j); | |||
jv jv_string_implode(jv j); | jv jv_string_implode(jv j); | |||
jv jv_object(void); | jv jv_object(void); | |||
jv jv_object_get(jv object, jv key); | jv jv_object_get(jv object, jv key); | |||
int jv_object_has(jv object, jv key); | ||||
jv jv_object_set(jv object, jv key, jv value); | jv jv_object_set(jv object, jv key, jv value); | |||
jv jv_object_delete(jv object, jv key); | jv jv_object_delete(jv object, jv key); | |||
int jv_object_length(jv object); | int jv_object_length(jv object); | |||
jv jv_object_merge(jv, jv); | jv jv_object_merge(jv, jv); | |||
jv jv_object_merge_recursive(jv, jv); | jv jv_object_merge_recursive(jv, jv); | |||
int jv_object_iter(jv); | int jv_object_iter(jv); | |||
int jv_object_iter_next(jv, int); | int jv_object_iter_next(jv, int); | |||
int jv_object_iter_valid(jv, int); | int jv_object_iter_valid(jv, int); | |||
jv jv_object_iter_key(jv, int); | jv jv_object_iter_key(jv, int); | |||
skipping to change at line 145 | skipping to change at line 146 | |||
#define jv_object_foreach(t, k, v) \ | #define jv_object_foreach(t, k, v) \ | |||
for (int jv_i__ = jv_object_iter(t), jv_j__ = 1; jv_j__; jv_j__ = 0) \ | for (int jv_i__ = jv_object_iter(t), jv_j__ = 1; jv_j__; jv_j__ = 0) \ | |||
for (jv k, v; \ | for (jv k, v; \ | |||
jv_object_iter_valid((t), jv_i__) ? \ | jv_object_iter_valid((t), jv_i__) ? \ | |||
(k = jv_object_iter_key(t, jv_i__), \ | (k = jv_object_iter_key(t, jv_i__), \ | |||
v = jv_object_iter_value(t, jv_i__), \ | v = jv_object_iter_value(t, jv_i__), \ | |||
1) \ | 1) \ | |||
: 0; \ | : 0; \ | |||
jv_i__ = jv_object_iter_next(t, jv_i__)) \ | jv_i__ = jv_object_iter_next(t, jv_i__)) \ | |||
#define JV_OBJECT_1(k) (jv_object_set(jv_object(),(k),jv_null())) | #define jv_object_keys_foreach(t, k) \ | |||
for (int jv_i__ = jv_object_iter(t), jv_j__ = 1; jv_j__; jv_j__ = 0) \ | ||||
for (jv k; \ | ||||
jv_object_iter_valid((t), jv_i__) ? \ | ||||
(k = jv_object_iter_key(t, jv_i__), \ | ||||
1) \ | ||||
: 0; \ | ||||
jv_i__ = jv_object_iter_next(t, jv_i__)) | ||||
#define JV_OBJECT_1(k1) (jv_object_set(jv_object(),(k1),jv_null())) | ||||
#define JV_OBJECT_2(k1,v1) (jv_object_set(jv_object(),(k1),(v1))) | #define JV_OBJECT_2(k1,v1) (jv_object_set(jv_object(),(k1),(v1))) | |||
#define JV_OBJECT_3(k1,v1,k2) (jv_object_set(JV_OBJECT_2(k1,v1),k2,jv_null())) | #define JV_OBJECT_3(k1,v1,k2) (jv_object_set(JV_OBJECT_2((k1),(v1)),(k2),jv_null | |||
#define JV_OBJECT_4(k1,v1,k2,v2) (jv_object_set(JV_OBJECT_2(k1,v1),k2,v2)) | ())) | |||
#define JV_OBJECT_5(k1,v1,k2,v2,k3) (jv_object_set(JV_OBJECT_4(k1,v1,k2,v2),k3,j | #define JV_OBJECT_4(k1,v1,k2,v2) (jv_object_set(JV_OBJECT_2((k1),(v1)),(k2),(v2) | |||
v_null)) | )) | |||
#define JV_OBJECT_6(k1,v1,k2,v2,k3,v3) (jv_object_set(JV_OBJECT_4(k1,v1,k2,v2),k | #define JV_OBJECT_5(k1,v1,k2,v2,k3) (jv_object_set(JV_OBJECT_4((k1),(v1),(k2),(v | |||
3,v3)) | 2)),(k3),jv_null())) | |||
#define JV_OBJECT_7(k1,v1,k2,v2,k3,v3,k4) (jv_object_set(JV_OBJECT_6(k1,v1,k2,v2 | #define JV_OBJECT_6(k1,v1,k2,v2,k3,v3) (jv_object_set(JV_OBJECT_4((k1),(v1),(k2) | |||
,k3,v3),k4,jv_null())) | ,(v2)),(k3),(v3))) | |||
#define JV_OBJECT_8(k1,v1,k2,v2,k3,v3,k4,v4) (jv_object_set(JV_OBJECT_6(k1,v1,k2 | #define JV_OBJECT_7(k1,v1,k2,v2,k3,v3,k4) (jv_object_set(JV_OBJECT_6((k1),(v1),( | |||
,v2,k3,v3),k4,v4)) | k2),(v2),(k3),(v3)),(k4),jv_null())) | |||
#define JV_OBJECT_IDX(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME | #define JV_OBJECT_8(k1,v1,k2,v2,k3,v3,k4,v4) (jv_object_set(JV_OBJECT_6((k1),(v1 | |||
),(k2),(v2),(k3),(v3)),(k4),(v4))) | ||||
#define JV_OBJECT_9(k1,v1,k2,v2,k3,v3,k4,v4,k5) \ | ||||
(jv_object_set(JV_OBJECT_8((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4)),(k5),jv_ | ||||
null())) | ||||
#define JV_OBJECT_10(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5) \ | ||||
(jv_object_set(JV_OBJECT_8((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4)),(k5),(v5 | ||||
))) | ||||
#define JV_OBJECT_11(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6) \ | ||||
(jv_object_set(JV_OBJECT_10((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
)),(k6),jv_null())) | ||||
#define JV_OBJECT_12(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6) \ | ||||
(jv_object_set(JV_OBJECT_10((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
)),(k6),(v6))) | ||||
#define JV_OBJECT_13(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7) \ | ||||
(jv_object_set(JV_OBJECT_12((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6)),(k7),jv_null())) | ||||
#define JV_OBJECT_14(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7,v7) \ | ||||
(jv_object_set(JV_OBJECT_12((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6)),(k7),(v7))) | ||||
#define JV_OBJECT_15(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7,v7,k8) \ | ||||
(jv_object_set(JV_OBJECT_14((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6),(k7),(v7)),(k8),jv_null())) | ||||
#define JV_OBJECT_16(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7,v7,k8,v8) \ | ||||
(jv_object_set(JV_OBJECT_14((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6),(k7),(v7)),(k8),(v8))) | ||||
#define JV_OBJECT_17(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7,v7,k8,v8,k9) \ | ||||
(jv_object_set(JV_OBJECT_16((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6),(k7),(v7),(k8),(v8)),(k9),jv_null())) | ||||
#define JV_OBJECT_18(k1,v1,k2,v2,k3,v3,k4,v4,k5,v5,k6,v6,k7,v7,k8,v8,k9,v9) \ | ||||
(jv_object_set(JV_OBJECT_16((k1),(v1),(k2),(v2),(k3),(v3),(k4),(v4),(k5),(v5 | ||||
),(k6),(v6),(k7),(v7),(k8),(v8)),(k9),(v9))) | ||||
#define JV_OBJECT_IDX(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17 | ||||
,_18,NAME,...) NAME | ||||
#define JV_OBJECT(...) \ | #define JV_OBJECT(...) \ | |||
JV_OBJECT_IDX(__VA_ARGS__, JV_OBJECT_8, JV_OBJECT_7, JV_OBJECT_6, JV_OBJECT_5, | JV_OBJECT_IDX(__VA_ARGS__, \ | |||
JV_OBJECT_4, JV_OBJECT_3, JV_OBJECT_2, JV_OBJECT_1)(__VA_ARGS__) | JV_OBJECT_18, JV_OBJECT_17, JV_OBJECT_16, JV_OBJECT_15, \ | |||
JV_OBJECT_14, JV_OBJECT_13, JV_OBJECT_12, JV_OBJECT_11, \ | ||||
JV_OBJECT_10, JV_OBJECT_9, JV_OBJECT_8, JV_OBJECT_7, \ | ||||
JV_OBJECT_6, JV_OBJECT_5, JV_OBJECT_4, JV_OBJECT_3, \ | ||||
JV_OBJECT_2, JV_OBJECT_1)(__VA_ARGS__) | ||||
int jv_get_refcnt(jv); | int jv_get_refcnt(jv); | |||
enum jv_print_flags { | enum jv_print_flags { | |||
JV_PRINT_PRETTY = 1, | JV_PRINT_PRETTY = 1, | |||
JV_PRINT_ASCII = 2, | JV_PRINT_ASCII = 2, | |||
JV_PRINT_COLOUR = 4, | JV_PRINT_COLOR = 4, JV_PRINT_COLOUR = 4, | |||
JV_PRINT_SORTED = 8, | JV_PRINT_SORTED = 8, | |||
JV_PRINT_INVALID = 16, | JV_PRINT_INVALID = 16, | |||
JV_PRINT_REFCOUNT = 32, | JV_PRINT_REFCOUNT = 32, | |||
JV_PRINT_TAB = 64, | JV_PRINT_TAB = 64, | |||
JV_PRINT_ISATTY = 128, | JV_PRINT_ISATTY = 128, | |||
JV_PRINT_SPACE0 = 256, | JV_PRINT_SPACE0 = 256, | |||
JV_PRINT_SPACE1 = 512, | JV_PRINT_SPACE1 = 512, | |||
JV_PRINT_SPACE2 = 1024, | JV_PRINT_SPACE2 = 1024, | |||
}; | }; | |||
#define JV_PRINT_INDENT_FLAGS(n) \ | #define JV_PRINT_INDENT_FLAGS(n) \ | |||
End of changes. 6 change blocks. | ||||
16 lines changed or deleted | 63 lines changed or added |