rem: if (preserve_gid) {  list = gidlist;
add: if (preserve_gid && !numeric_ids) {
context: void recv_uid_list(int f, struct file_list *flist){	int id, i;	char *name;	struct idlist *list;	if (numeric_ids) return;	if (preserve_uid) {		/* read the uid list */		list = uidlist;		while ((id = read_int(f)) != 0) {			int len = read_byte(f);			name = new_array(char, len+1);			if (!name) out_of_memory("recv_uid_list");			read_sbuf(f, name, len);			if (!list) {				uidlist = add_list(id, name);				list = uidlist;			} else {				list->next = add_list(id, name);				list = list->next;			}			list->id2 = map_uid(id, name);			free(name);		}		if (verbose > 3) {			for (list = uidlist; list; list = list->next) {				rprintf(FINFO, "uid %ld (%s) maps to %ld\n",				    (long)list->id, list->name,				    (long)list->id2);			}		}	}	if (preserve_gid) {		/* and the gid list */		list = gidlist;		while ((id = read_int(f)) != 0) {			int len = read_byte(f);			name = new_array(char, len+1);			if (!name) out_of_memory("recv_uid_list");			read_sbuf(f, name, len);			if (!list) {				gidlist = add_list(id, name);				list = gidlist;			} else {				list->next = add_list(id, name);				list = list->next;			}			list->id2 = map_gid(id, name);			if (!am_root && !is_in_group(list->id2))				list->id2 = GID_NONE;			free(name);		}		if (verbose > 3) {			for (list = gidlist; list; list = list->next) {				rprintf(FINFO, "gid %ld (%s) maps to %ld\n",				    (long)list->id, list->name,				    (long)list->id2);			}		}	}	if (!(am_root && preserve_uid) && !preserve_gid) return;	/* now convert the uid/gid of all files in the list to the mapped	 * uid/gid */	for (i = 0; i < flist->count; i++) {		if (am_root && preserve_uid && flist->files[i]->uid != 0)			flist->files[i]->uid = match_uid(flist->files[i]->uid);		if (preserve_gid && (!am_root || flist->files[i]->gid != 0))			flist->files[i]->gid = match_gid(flist->files[i]->gid);	}}