-static void getinfo(dh_param *dp, pdata *pd)
- { dp->p = &pd->p; dp->q = &pd->q; dp->g = &pd->g; }
+static int parse(qd_parse *qd, gprime_param *dp)
+{
+ mp *p = MP_NEW, *q = MP_NEW, *g = MP_NEW;
+
+ if ((p = qd_getmp(qd)) == 0) goto fail;
+ qd_delim(qd, ','); if ((q = qd_getmp(qd)) == 0) goto fail;
+ qd_delim(qd, ','); if ((g = qd_getmp(qd)) == 0) goto fail;
+ dp->p = p; dp->q = q; dp->g = g;
+ return (0);
+fail:
+ mp_drop(p); mp_drop(q); mp_drop(g);
+ return (-1);
+}