summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2001-04-23 07:38:33 +0000
committerJim Meyering <jim@meyering.net>2001-04-23 07:38:33 +0000
commitcc3ea7c99f32fb0ab4a2164173f22bbf3ef9ee36 (patch)
tree25e000885ccecbb1c89f90af3ff2561f72616092 /src
parent2afd912ce51fd27557ab620ea222b50278a178fb (diff)
downloadcoreutils-cc3ea7c99f32fb0ab4a2164173f22bbf3ef9ee36.tar.xz
(dd_copy): When using sync with either block or unblock,
pad with spaces.
Diffstat (limited to 'src')
-rw-r--r--src/dd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dd.c b/src/dd.c
index a271fdce3..b493accf4 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -946,7 +946,7 @@ dd_copy (void)
{
/* FIXME: this loses for
% ./dd if=dd seek=1 |:
- ./dd: standard output: Bad file number
+ ./dd: standard output: Bad file descriptor
0+0 records in
0+0 records out
*/
@@ -966,7 +966,9 @@ dd_copy (void)
whatever data we are able to read is followed by zeros.
This minimizes data loss. */
if ((conversions_mask & C_SYNC) && (conversions_mask & C_NOERROR))
- memset ((char *) ibuf, 0, input_blocksize);
+ memset ((char *) ibuf,
+ (conversions_mask & (C_BLOCK | C_UNBLOCK)) ? ' ' : '\0',
+ input_blocksize);
nread = safe_read (STDIN_FILENO, ibuf, input_blocksize);
@@ -1005,7 +1007,8 @@ dd_copy (void)
{
if (!(conversions_mask & C_NOERROR))
/* If C_NOERROR, we zeroed the block before reading. */
- memset ((char *) (ibuf + n_bytes_read), 0,
+ memset ((char *) (ibuf + n_bytes_read),
+ (conversions_mask & (C_BLOCK | C_UNBLOCK)) ? ' ' : '\0',
input_blocksize - n_bytes_read);
n_bytes_read = input_blocksize;
}