diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 20 |
1 files changed, 17 insertions, 3 deletions
| @@ -2265,7 +2265,8 @@ xs_val *list_maint(snac *user, const char *list, int op) | |||
| 2265 | xs *l2 = xs_split(v2, "/"); | 2265 | xs *l2 = xs_split(v2, "/"); |
| 2266 | 2266 | ||
| 2267 | /* return [ list_id, list_title ] */ | 2267 | /* return [ list_id, list_title ] */ |
| 2268 | l = xs_list_append(l, xs_list_append(xs_list_new(), xs_list_get(l2, -1), title)); | 2268 | xs *tmp_list = xs_list_append(xs_list_new(), xs_list_get(l2, -1), title); |
| 2269 | l = xs_list_append(l, tmp_list); | ||
| 2269 | } | 2270 | } |
| 2270 | } | 2271 | } |
| 2271 | } | 2272 | } |
| @@ -2340,6 +2341,19 @@ xs_val *list_maint(snac *user, const char *list, int op) | |||
| 2340 | } | 2341 | } |
| 2341 | 2342 | ||
| 2342 | break; | 2343 | break; |
| 2344 | |||
| 2345 | case 4: /** find list id by name **/ | ||
| 2346 | if (xs_is_string(list)) { | ||
| 2347 | xs *lol = list_maint(user, NULL, 0); | ||
| 2348 | const xs_list *li; | ||
| 2349 | |||
| 2350 | xs_list_foreach(lol, li) { | ||
| 2351 | if (strcmp(list, xs_list_get(li, 1)) == 0) { | ||
| 2352 | l = xs_dup(xs_list_get(li, 0)); | ||
| 2353 | break; | ||
| 2354 | } | ||
| 2355 | } | ||
| 2356 | } | ||
| 2343 | } | 2357 | } |
| 2344 | 2358 | ||
| 2345 | return l; | 2359 | return l; |
| @@ -2391,7 +2405,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op | |||
| 2391 | break; | 2405 | break; |
| 2392 | 2406 | ||
| 2393 | case 1: /** append actor to list **/ | 2407 | case 1: /** append actor to list **/ |
| 2394 | if (actor_md5 != NULL) { | 2408 | if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) { |
| 2395 | if (!index_in_md5(fn, actor_md5)) | 2409 | if (!index_in_md5(fn, actor_md5)) |
| 2396 | index_add_md5(fn, actor_md5); | 2410 | index_add_md5(fn, actor_md5); |
| 2397 | } | 2411 | } |
| @@ -2399,7 +2413,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op | |||
| 2399 | break; | 2413 | break; |
| 2400 | 2414 | ||
| 2401 | case 2: /** delete actor from list **/ | 2415 | case 2: /** delete actor from list **/ |
| 2402 | if (actor_md5 != NULL) | 2416 | if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) |
| 2403 | index_del_md5(fn, actor_md5); | 2417 | index_del_md5(fn, actor_md5); |
| 2404 | 2418 | ||
| 2405 | break; | 2419 | break; |