+ if (o->which == Z_Operand_resultSetId) {
+ SV *sv2;
+ /* This code causes a SIGBUS on my machine, and I have no
+ idea why. It seems as clear as day to me */
+ char *rsid = (char*) o->u.resultSetId;
+ printf("Encoding resultSetId '%s'\n", rsid);
+ sv = newObject("Net::Z3950::RPN::RSID", (SV*) (hv = newHV()));
+ printf("Made sv=0x%lx, hv=0x%lx\n",
+ (unsigned long) sv ,(unsigned long) hv);
+ sv2 = newSVpv(rsid, strlen(rsid));
+ setMember(hv, "id", sv2);
+ printf("Set hv{id} to 0x%lx\n", (unsigned long) sv2);
+ return sv;
+ }