+static int sortlist1(const struct dc_respline *l1, const struct dc_respline *l2)
+{
+ return(wcscmp(l1->argv[1], l2->argv[1]));
+}
+
+static int sortlist2(const struct dc_fnetpeer **p1, const struct dc_fnetpeer **p2)
+{
+ return(wcscmp((*p1)->id, (*p2)->id));
+}
+
+static void fillpeer(struct dc_fnetpeer *peer, struct dc_respline *r)
+{
+ int i;
+ struct dc_fnetpeerdatum *datum;
+
+ for(i = 3; i < r->argc; i += 2)
+ {
+ if((datum = finddatum(peer->fn, r->argv[i])) != NULL)
+ {
+ switch(datum->dt)
+ {
+ case DC_FNPD_INT:
+ peersetnum(peer, datum->id, wcstol(r->argv[i + 1], NULL, 10));
+ break;
+ case DC_FNPD_LL:
+ peersetlnum(peer, datum->id, wcstoll(r->argv[i + 1], NULL, 10));
+ break;
+ case DC_FNPD_STR:
+ peersetstr(peer, datum->id, r->argv[i + 1]);
+ break;
+ }
+ }
+ }
+}
+