12.03.2024 23:58, Brooks Davis wrote:
[skip]
> It seems weird to cache a single member. For that matter, caching
> anyting seems like overkill given than format_selected() just returns a
> global variable's value.
It is a habit. Why not? :-)
I do not like calling a method multiple times after an object settled.
[skip]
>> +#if defined(SPARSE_WRITE)
>> + /*
>> + * sparse_write() fails if output is not seekable so fail early
>> + * not wasting some load unless output format is raw
>> + */
>> + if (strcmp("raw", format_name) &&
>> + lseek(outfd, (off_t)0, SEEK_CUR) == -1 && errno == ESPIPE)
>> + errx(EX_USAGE, "%s: output must be seekable", format_name);
>> +#endif
>
> Maybe add a flag for non-seeking formats rather than hardcoding a
> strcmp?
I thought about it. A change would be much more invasive without real benefits.
I believe there will not be any more non-sparse formats other than raw.
If there will, we can improve the code later.
For now, I prefer keeping the code and the change as simple as possible.
Eugene