+#if ZEBRASDR
+ if (1)
+ {
+ ZebraSdrHandle h;
+ char xname[128], *xp;
+
+ strncpy (xname, fname, 127);
+ if ((xp = strchr (xname, '.')))
+ *xp = '\0';
+
+ h = zebraSdr_open (xname);
+ if (!h)
+ {
+ logf (LOG_WARN, "sdr open %s", xname);
+ return 0;
+ }
+ for (;;)
+ {
+ unsigned char *buf;
+ char sdr_name[128];
+ int r, segmentno;
+
+ segmentno = zebraSdr_segment (h, 0);
+ sprintf (sdr_name, "%%%s.%d", xname, segmentno);
+ logf (LOG_LOG, "SDR: %s", sdr_name);
+
+#if 1
+ if (segmentno > 20)
+ break;
+#endif
+ r = zebraSdr_read (h, &buf);
+
+ if (!r)
+ break;
+
+ fi = file_read_start (0);
+ fi->sdrbuf = buf;
+ fi->sdrmax = r;
+ do
+ {
+ file_begin (fi);
+ r = recordExtract (sysno, sdr_name, rGroup, deleteFlag, fi,
+ recType, subType);
+ } while (r && !sysno && fi->file_more);
+ file_read_stop (fi);
+ free (buf);
+ }
+ zebraSdr_close (h);
+ return 1;
+ }
+#endif