void list_cmds_by_config(struct string_list *list) { const char *cmd_list; /* * There's no actual repository setup at this point (and even * if there is, we don't really care; only global config * matters). If we accidentally set up a repository, it's ok * too since the caller (git --list-cmds=) should exit shortly * anyway. */ if (git_config_get_string_const("completion.commands", &cmd_list)) return; string_list_sort(list); string_list_remove_duplicates(list, 0); while (*cmd_list) { struct strbuf sb = STRBUF_INIT; const char *p = strchrnul(cmd_list, ' '); strbuf_add(&sb, cmd_list, p - cmd_list); if (*cmd_list == '-') string_list_remove(list, cmd_list + 1, 0); else string_list_insert(list, sb.buf); strbuf_release(&sb); while (*p == ' ') p++; cmd_list = p; } }
void list_cmds_by_config(struct string_list *list) { const char *cmd_list; if (git_config_get_string_const("completion.commands", &cmd_list)) return; string_list_sort(list); string_list_remove_duplicates(list, 0); while (*cmd_list) { struct strbuf sb = STRBUF_INIT; const char *p = strchrnul(cmd_list, ' '); strbuf_add(&sb, cmd_list, p - cmd_list); if (sb.buf[0] == '-') string_list_remove(list, sb.buf + 1, 0); else string_list_insert(list, sb.buf); strbuf_release(&sb); while (*p == ' ') p++; cmd_list = p; } }
void ccnet_peer_remove_role (CcnetPeer *peer, const char *role) { g_return_if_fail (role != NULL); if (!string_list_is_exists(peer->role_list, role)) return; peer->role_list = string_list_remove (peer->role_list, role); }
static int do_plain_rerere(struct repository *r, struct string_list *rr, int fd) { struct string_list conflict = STRING_LIST_INIT_DUP; struct string_list update = STRING_LIST_INIT_DUP; int i; find_conflict(r, &conflict); /* * MERGE_RR records paths with conflicts immediately after * merge failed. Some of the conflicted paths might have been * hand resolved in the working tree since then, but the * initial run would catch all and register their preimages. */ for (i = 0; i < conflict.nr; i++) { struct rerere_id *id; unsigned char hash[GIT_MAX_RAWSZ]; const char *path = conflict.items[i].string; int ret; /* * Ask handle_file() to scan and assign a * conflict ID. No need to write anything out * yet. */ ret = handle_file(r->index, path, hash, NULL); if (ret != 0 && string_list_has_string(rr, path)) { remove_variant(string_list_lookup(rr, path)->util); string_list_remove(rr, path, 1); } if (ret < 1) continue; id = new_rerere_id(hash); string_list_insert(rr, path)->util = id; /* Ensure that the directory exists. */ mkdir_in_gitdir(rerere_path(id, NULL)); } for (i = 0; i < rr->nr; i++) do_rerere_one_path(r->index, &rr->items[i], &update); if (update.nr) update_paths(r, &update); return write_rr(rr, fd); }