- pm_strcpy(attr->attrEx, p); /* copy extended attributes, if any */
-
- if (attr->data_stream) {
- int64_t val;
- while (*p++ != 0) /* skip extended attributes */
- { }
- from_base64(&val, p);
- attr->data_stream = (int32_t)val;
+ attr->delta_seq = 0;
+ if (attr->type == FT_RESTORE_FIRST) {
+ /* We have an object, so do a binary copy */
+ object_len = reclen + rec - p;
+ attr->attrEx = check_pool_memory_size(attr->attrEx, object_len + 1);
+ memcpy(attr->attrEx, p, object_len);
+ /* Add a EOS for those who attempt to print the object */
+ p = attr->attrEx + object_len;
+ *p = 0;
+ } else {
+ pm_strcpy(attr->attrEx, p); /* copy extended attributes, if any */
+ if (attr->data_stream) {
+ int64_t val;
+ while (*p++ != 0) /* skip extended attributes */
+ { }
+ from_base64(&val, p);
+ attr->data_stream = (int32_t)val;
+ } else {
+ while (*p++ != 0) /* skip extended attributes */
+ { }
+ if (p - rec < reclen) {
+ attr->delta_seq = str_to_int32(p); /* delta_seq */
+ }
+ }