document. Change all uses and locals like was_missing to was_tailable.
Invert expressions as appropriate.
(reopen_inaccessible_files): Rename from allow_missing.
(sleep_interval): Describe.
(--allow-missing): Deprecate.
(--retry): New option, equivalent to --allow-missing.
(usage): Document name vs. descriptor differences.
Refer to manual for descriptions of --max-unchanged-stats=N
and --max-consecutive-size-changes=N.
(valid_file_spec): New function.
(recheck): Assert valid_file_spec.
Remove dead else-if block (suggestion from Eli Zaretskii).
Adjust stmts that set f->tailable -- unlike for `missing', tailable
doesn't depend on errno == ENOENT.
(parse_options): Give a warning if --retry is used when not following
by name.
(recheck): Record the new value of errno in f->errnum. Don't
output an error message unless the new value of errno differs from
the old one. Output a message if previously-inaccessible file
becomes accessible.
(tail_forever): Always recheck files whose fd is negative. If the
file cannot be fstat'ed, record the errno value in f[i].errnum.
(tail_file): If the file cannot be open, record the errno value in
f->errnum. If it can be opened, initialize f->errnum to zero. If
it's a non-regular non-fifo file, initialize f->errnum to -1.
Include hard-locale.h, linebuffer.h, memcoll.h.
(struct line): New member `buf', replacing `beg' and `lim'.
All uses changed.
(hard_LC_COLLATE): New var.
(main): Initialize it.
(get_line): Use readline to read the line,
instead of doing it by hand.
That way, we get a buffer that we can pass to memcoll.
(keycmp): Use memcoll to compare lines if hard_LC_COLLATE is nonzero.
(hard_LC_COLLATE, hard_LC_CTYPE, hard_LC_TIME): New variables,
replacing `need_locale'.
(memcoll): Move to lib/memcoll.c.
(keycompare): No need to alloc (0), since our caller now does it.
(compare): alloca (0) before returning.
(my_setlocale): Remove; hard_locale now dows this.
(main): Invoke setlocale, bindtextdomain, and textdomain before
invoking anything that might print an error.
Use hard_locale to determine which locales are hard.
(df_readable): Take ceiling if posix_format.
(ceil_percent): New function.
(show_dev): Take ceiling of percent if posix_format.
Align with POSIX-conforming header if posix_format.