xz: Add comments about stdin and src_st.st_size.

"xz -v < regular_file > out.xz" doesn't display the percentage
and estimated remaining time because it doesn't even try to
check the input file size when input is read from stdin.
This could be improved but for now there's just a comment
to remind about it.
This commit is contained in:
Lasse Collin 2022-11-09 14:10:52 +02:00
parent f723eec68b
commit 724285dadb
2 changed files with 13 additions and 0 deletions

View File

@ -1000,6 +1000,15 @@ coder_run(const char *filename)
mytime_set_start_time(); mytime_set_start_time();
// Initialize the progress indicator. // Initialize the progress indicator.
//
// NOTE: When reading from stdin, fstat()
// isn't called on it and thus src_st.st_size
// is zero. If stdin pointed to a regular
// file, it would still be possible to know
// the file size but then we would also need
// to take into account the current reading
// position since with stdin it isn't
// necessarily at the beginning of the file.
const bool is_passthru = init_ret const bool is_passthru = init_ret
== CODER_INIT_PASSTHRU; == CODER_INIT_PASSTHRU;
const uint64_t in_size const uint64_t in_size

View File

@ -768,6 +768,10 @@ io_open_src(const char *src_name)
// a statically allocated structure. // a statically allocated structure.
static file_pair pair; static file_pair pair;
// This implicitly also initializes src_st.st_size to zero
// which is expected to be <= 0 by default. fstat() isn't
// called when reading from standard input but src_st.st_size
// is still read.
pair = (file_pair){ pair = (file_pair){
.src_name = src_name, .src_name = src_name,
.dest_name = NULL, .dest_name = NULL,