#include "getpagesize.h"
#include "human.h"
#include "long-options.h"
+#include "quote.h"
#include "safe-read.h"
#include "xstrtol.h"
{
print_stats ();
if (close (STDIN_FILENO) < 0)
- error (1, errno, "%s", input_file);
+ error (1, errno, _("closing input file %s"), quote (input_file));
if (close (STDOUT_FILENO) < 0)
- error (1, errno, "%s", output_file);
+ error (1, errno, _("closing output file %s"), quote (output_file));
}
static inline void
int nwritten = full_write (STDOUT_FILENO, obuf, output_blocksize);
if (nwritten != output_blocksize)
{
- error (0, errno, "%s", output_file);
+ error (0, errno, _("writing to %s"), quote (output_file));
if (nwritten > 0)
w_partial++;
quit (1);
}
if (conversions[i].convname == NULL)
{
- error (0, 0, _("%s: invalid conversion"), str);
+ error (0, 0, _("invalid conversion: %s"), quote (str));
usage (1);
}
str = new;
val = strchr (name, '=');
if (val == NULL)
{
- error (0, 0, _("unrecognized option `%s'"), name);
+ error (0, 0, _("unrecognized option %s"), quote (name));
usage (1);
}
*val++ = '\0';
max_records = n;
else
{
- error (0, 0, _("unrecognized option `%s=%s'"), name, val);
+ error (0, 0, _("unrecognized option %s=%s"),
+ quote_n (0, name), quote_n (1, val));
usage (1);
}
if (invalid)
- error (1, 0, _("invalid number `%s'"), val);
+ error (1, 0, _("invalid number %s"), quote (val));
}
}
nread = safe_read (fdesc, buf, blocksize);
if (nread < 0)
{
- error (0, errno, "%s", file);
+ error (0, errno, _("reading %s"), quote (file));
quit (1);
}
/* POSIX doesn't say what to do when dd detects it has been
if (nread < 0)
{
- error (0, errno, "%s", input_file);
+ error (0, errno, _("reading %s"), quote (input_file));
if (conversions_mask & C_NOERROR)
{
print_stats ();
int nwritten = full_write (STDOUT_FILENO, obuf, n_bytes_read);
if (nwritten < 0)
{
- error (0, errno, "%s", output_file);
+ error (0, errno, _("writing %s"), quote (output_file));
quit (1);
}
else if (n_bytes_read == input_blocksize)
w_partial++;
if (nwritten < 0)
{
- error (0, errno, "%s", output_file);
+ error (0, errno, _("writing %s"), quote (output_file));
quit (1);
}
}
if (input_file != NULL)
{
if (open_fd (STDIN_FILENO, input_file, O_RDONLY, 0) < 0)
- error (1, errno, "%s", input_file);
+ error (1, errno, _("opening %s"), quote (input_file));
}
else
input_file = _("standard input");
if ((! seek_record
|| open_fd (STDOUT_FILENO, output_file, O_RDWR | opts, perms) < 0)
&& open_fd (STDOUT_FILENO, output_file, O_WRONLY | opts, perms) < 0)
- error (1, errno, "%s", output_file);
+ error (1, errno, _("opening %s"), quote (output_file));
#if HAVE_FTRUNCATE
if (seek_record != 0 && !(conversions_mask & C_NOTRUNC))
{
if (o / output_blocksize != seek_record)
error (1, 0, _("file offset out of range"));
if (ftruncate (STDOUT_FILENO, o) < 0)
- error (1, errno, "%s", output_file);
+ {
+ char buf[LONGEST_HUMAN_READABLE + 1];
+ error (1, errno, _("advancing past %s blocks in output file %s"),
+ human_readable (seek_record, buf, 1, 1),
+ quote (output_file));
+ }
}
#endif
}