Check fclose(stdout) at the end of main() [and miscellanea] #2046
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Similar to samtools/samtools#1909, this is a companion pull request to samtools/htslib#1665. Now that
hts_open("-", "w")
/hts_close()
no longer actually closes stdout. Close it explicitly at the end ofmain()
when a subcommand may have written to stdout, so there is an opportunity to detect I/O errors in previously-uncommitted writes.Ignore EBADF as other code may have already closed stdout, e.g., either particular subcommands or when (dynamically) linked against an older version of HTSlib.
Also trivially: include
<strings.h>
where needed to ensurestrcasecmp()
et al are declared. (<strings.h>
is often a byproduct of<string.h>
but POSIX doesn't require that.)