2 * sparse/smatch_string_list.c
4 * Copyright (C) 2013 Oracle.
6 * Licensed under the Open Software License version 1.1
12 int list_has_string(struct string_list
*str_list
, char *str
)
16 FOR_EACH_PTR(str_list
, tmp
) {
17 if (strcmp(tmp
, str
) < 0)
19 if (strcmp(tmp
, str
) == 0)
22 } END_FOR_EACH_PTR(tmp
);
26 void insert_string(struct string_list
**str_list
, char *new)
30 FOR_EACH_PTR(*str_list
, tmp
) {
31 if (strcmp(tmp
, new) < 0)
33 else if (strcmp(tmp
, new) == 0) {
36 INSERT_CURRENT(new, tmp
);
39 } END_FOR_EACH_PTR(tmp
);
40 add_ptr_list(str_list
, new);
43 struct string_list
*clone_str_list(struct string_list
*orig
)
46 struct string_list
*ret
= NULL
;
48 FOR_EACH_PTR(orig
, tmp
) {
49 add_ptr_list(&ret
, tmp
);
50 } END_FOR_EACH_PTR(tmp
);
54 struct string_list
*combine_string_lists(struct string_list
*one
, struct string_list
*two
)
56 struct string_list
*ret
;
59 ret
= clone_str_list(one
);
60 FOR_EACH_PTR(two
, tmp
) {
61 insert_string(&ret
, tmp
);
62 } END_FOR_EACH_PTR(tmp
);