alpm_pkg_t *load_pkg(const char *pkgname) { /* TODO pkgspec handling */ if(strncmp(pkgname, "local/", 6) == 0) { pkgname += 6; } alpm_pkg_t *p = alpm_db_get_pkg(localdb, pkgname); if(p == NULL) { fprintf(stderr, "error: could not find package '%s'\n", pkgname); } else { packages = list_add_unique(packages, p); } return p; }
static struct list_main *ldr_init_words(char *login, char *gecos, char *home) { struct list_main *words; char *pos; list_init(&words); list_add(words, login); ldr_split_string(words, gecos); ldr_split_string(words, login); if ((pos = strrchr(home, '/'))) list_add_unique(words, pos + 1); return words; }
static void ldr_split_string(struct list_main *dst, char *src) { char *word, *pos; pos = src; do { word = pos; while (*word && issep_map[ARCH_INDEX(*word)]) word++; if (!*word) break; pos = word; while (!issep_map[ARCH_INDEX(*pos)]) pos++; if (*pos) *pos++ = 0; list_add_unique(dst, word); } while (*pos && dst->count < LDR_WORDS_MAX); }
static void ldr_split_string(struct list_main *dst, char *src) { char *word, *pos; char c; pos = src; do { word = pos; while (*word && CP_isSeparator[ARCH_INDEX(*word)]) word++; if (!*word) break; pos = word; while (!CP_isSeparator[ARCH_INDEX(*pos)]) pos++; c = *pos; *pos = 0; list_add_unique(dst, word); *pos++ = c; } while (c && dst->count < LDR_WORDS_MAX); }
bool KDA_Attach_to(KDA_Neighbor* neighbor, struct list* contacts) { return list_add_unique(contacts, KDA_Neighbor_cmp, neighbor); }