isosize: move file name printing after error determination

Earlier the filename printing was buffered, and exit at error made output
to appear in front of prompt.  Output below demonstrates the brokenness.

prompt> isosize /etc /
isosize: /etc: might not be an ISO filesystem
isosize: read error on /etc: Is a directory
/etc: prompt>

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2014-02-16 23:54:20 +00:00 committed by Karel Zak
parent fce72f96d0
commit 799e584245
1 changed files with 5 additions and 6 deletions

View File

@ -125,7 +125,7 @@ struct iso_primary_descriptor
unsigned char unused5 [ISODCL (1396, 2048)];
};
static void isosize(char *filenamep, int xflag, long divisor)
static void isosize(int argc, char *filenamep, int xflag, long divisor)
{
int fd, nsecs, ssize;
struct iso_primary_descriptor ipd;
@ -145,6 +145,8 @@ static void isosize(char *filenamep, int xflag, long divisor)
/* isonum_723 returns nowadays always 2048 */
ssize = isonum_723(ipd.logical_block_size, xflag);
if (1 < argc)
printf("%s: ", filenamep);
if (xflag) {
printf(_("sector count: %d, sector size: %d\n"), nsecs, ssize);
} else {
@ -220,11 +222,8 @@ int main(int argc, char **argv)
if (ct <= 0)
usage(stderr);
for (j = optind; j < argc; j++) {
if (ct > 1)
printf("%s: ", argv[j]);
isosize(argv[j], xflag, divisor);
}
for (j = optind; j < argc; j++)
isosize(ct, argv[j], xflag, divisor);
return EXIT_SUCCESS;
}