+ struct recordGroup rGroup;
+ rGroup.groupName = NULL;
+ rGroup.databaseName = (char *)databaseName;
+ rGroup.path = NULL;
+ rGroup.recordId = NULL;
+ rGroup.recordType = (char *)recordType;
+ rGroup.flagStoreData = store_data;
+ rGroup.flagStoreKeys = store_keys;
+ rGroup.flagRw = 1;
+ rGroup.databaseNamePath = 0;
+ rGroup.explainDatabase = 0;
+ rGroup.fileVerboseLimit = 100000;
+ rGroup.followLinks = -1;
+ return (bufferExtractRecord (zh,
+ buf, buf_size,
+ &rGroup,
+ delete_flag,
+ test_mode,
+ recordType,
+ sysno,
+ match_criteria,
+ "<no file>"));
+}
+/*
+ If sysno is provided, then it's used to identify the reocord.
+ If not, and match_criteria is provided, then sysno is guessed
+ If not, and a record is provided, then sysno is got from there
+
+ */
+int bufferExtractRecord (ZebraHandle zh,
+ const char *buf, size_t buf_size,
+ struct recordGroup *rGroup,
+ int delete_flag,
+ int test_mode,
+ const char *recordType,
+ int *sysno,
+ const char *match_criteria,
+ const char *fname)
+
+{