104{
105 Z_OPACRecord *rec;
106 rec = (Z_OPACRecord *) odr_malloc(odr, sizeof(*rec));
107 rec->bibliographicRecord =
108 z_ext_record_usmarc(odr, marc_input, strlen(marc_input));
109 int availableNow = strcmp(element_set_name, "F") == 0;
110 rec->num_holdingsData = 1;
111 rec->holdingsData = (Z_HoldingsRecord **)
112 odr_malloc(odr, sizeof(*rec->holdingsData));
113 for (int i = 0; i < rec->num_holdingsData; i++)
114 {
115 Z_HoldingsRecord *hr = (Z_HoldingsRecord *)
116 odr_malloc(odr, sizeof(*hr));
117 Z_HoldingsAndCircData *hc = (Z_HoldingsAndCircData *)
118 odr_malloc(odr, sizeof(*hc));
119
120 rec->holdingsData[i] = hr;
121 hr->which = Z_HoldingsRecord_holdingsAndCirc;
122 hr->u.holdingsAndCirc = hc;
123
124 hc->typeOfRecord = odr_strdup(odr, "u");
125
126 hc->encodingLevel = odr_strdup(odr, "u");
127
128 hc->format = 0;
129 hc->receiptAcqStatus = odr_strdup(odr, "0");
130 hc->generalRetention = 0;
131 hc->completeness = 0;
132 hc->dateOfReport = odr_strdup(odr, "000000");
133 hc->nucCode = odr_strdup(odr, "s-FM/GC");
134 hc->localLocation = odr_strdup(odr, "Main or Science/Business Reading Rms - STORED OFFSITE");
135 hc->shelvingLocation = 0;
136 hc->callNumber = odr_strdup(odr, "MLCM 89/00602 (N)");
137 hc->shelvingData = odr_strdup(odr, "FT MEADE");
138 hc->copyNumber = odr_strdup(odr, "Copy 1");
139 hc->publicNote = 0;
140 hc->reproductionNote = 0;
141 hc->termsUseRepro = 0;
142 hc->enumAndChron = 0;
143
144 hc->num_volumes = 0;
145 hc->volumes = 0;
146
147 hc->num_circulationData = 1;
148 hc->circulationData = (Z_CircRecord **)
149 odr_malloc(odr, sizeof(*hc->circulationData));
150 hc->circulationData[0] = (Z_CircRecord *)
151 odr_malloc(odr, sizeof(**hc->circulationData));
152
153 hc->circulationData[0]->availableNow = odr_booldup(odr, availableNow);
154 hc->circulationData[0]->availablityDate = 0;
155 hc->circulationData[0]->availableThru = 0;
156 hc->circulationData[0]->restrictions = 0;
157 hc->circulationData[0]->itemId = odr_strdup(odr, item_id);
158 hc->circulationData[0]->renewable = odr_booldup(odr, availableNow);
159 hc->circulationData[0]->onHold = odr_booldup(odr, !availableNow);
160 hc->circulationData[0]->enumAndChron = 0;
161 hc->circulationData[0]->midspine = 0;
162 hc->circulationData[0]->temporaryLocation = 0;
163 }
164 return rec;
165}