{ size_t bytes_written;
long fpos_start;
if ((fpos_start = ftell(file)) == NULL
+ || fseek(file, fpos, SEEK_SET) == 0
|| (bytes_written = fwrite(file, 1, sizeof(ston_ht_h), file)) < sizeof(ston_ht_h)
- || (bytes_written += fwrite(file, 1, ston_ht32_bytes(ht), file)) < (sizeof(ston_ht_h) + ston_ht32_bytes(ht)))
+ || (bytes_written += fwrite(file, 1, ston_ht32_bytes(ht), file)) < (sizeof(ston_ht_h) + ston_ht32_bytes(ht))
+ || fseek(file, fpos_start, SEEK_SET) == 0)
return 0;
return bytes_written;
}