13
void numlist_add(struct numlist **list, long num) {
14
struct numlist *tmp = (struct numlist *)malloc(sizeof(*tmp));
17
rl_fatal(EX_SOFTWARE, "ABORT - Can't allocate memory");
23
void numlist_copy(struct numlist **to, struct numlist *from) {
25
numlist_add(to, from->num);
30
void numlist_free(struct numlist *n) {
40
void stringlist_add(struct stringlist **list, char *str) {
41
struct stringlist *tmp = (struct stringlist *)malloc(sizeof(*tmp));
44
rl_fatal(EX_SOFTWARE, "ABORT - Can't allocate memory");
50
void stringlist_copy(struct stringlist **to, struct stringlist *from) {
52
stringlist_add(to, strdup(from->str));
57
void stringlist_free(struct stringlist *n) {
69
void builduserdata(struct userdata **dest, char *name) {
80
(*dest)->uid = pp->pw_uid;
81
(*dest)->gid = pp->pw_gid;
84
void clearuserdata(struct userdata **dest) {
89
memset(*dest, 0, sizeof(**dest));
94
void newuserdata(struct userdata **dest) {
96
*dest = (struct userdata *)malloc(sizeof(**dest));
98
rl_fatal(EX_SOFTWARE, "ABORT - Can't allocate memory");
99
memset(*dest, 0, sizeof(**dest));
104
void userdata_copy(struct userdata **to, struct userdata *from) {
108
memcpy(*to, from, sizeof(**to));
109
(*to)->name = from->name ? strdup(from->name) : NULL;