summaryrefslogtreecommitdiff
path: root/src/dd.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2008-08-07 23:01:16 +0200
committerJim Meyering <meyering@redhat.com>2008-08-09 16:56:01 +0200
commit2a2d3f237b256e43d55c9c0149d5ceba750f30f8 (patch)
tree072c37a5cf70bbc9ae933dd2dcabb3c11b9a65f3 /src/dd.c
parent0d279d2378c144fa119bacbd7f18685698739d55 (diff)
downloadcoreutils-2a2d3f237b256e43d55c9c0149d5ceba750f30f8.tar.xz
dd.c: reduce duplication in new O_FULLBLOCK-defining code
* src/dd.c (MULTIPLE_BITS_SET): New macro, extracted from... (multiple_bits_set): ...this function. Use a single-line, and far simpler expression (no need to list all O_* symbols again) to validate the derived O_FULLBLOCK value.
Diffstat (limited to 'src/dd.c')
-rw-r--r--src/dd.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dd.c b/src/dd.c
index 8c9400b11..ea852afe1 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -278,11 +278,10 @@ enum
/* Ensure that we didn't shift it off the end. */
verify (O_FULLBLOCK != 0);
+#define MULTIPLE_BITS_SET(i) (((i) & ((i) - 1)) != 0)
+
/* Ensure that this is a single-bit value. */
-verify ((O_FULLBLOCK &
- ( O_APPEND | O_BINARY | O_DIRECT | O_DIRECTORY | O_DSYNC
- | O_NOATIME | O_NOCTTY | O_NOFOLLOW | O_NOLINKS | O_NONBLOCK
- | O_SYNC | O_TEXT)) == 0);
+verify ( ! MULTIPLE_BITS_SET (O_FULLBLOCK));
/* Flags, for iflag="..." and oflag="...". */
static struct symbol_value const flags[] =
@@ -576,7 +575,7 @@ translate_charset (char const *new_trans)
static inline bool
multiple_bits_set (int i)
{
- return (i & (i - 1)) != 0;
+ return MULTIPLE_BITS_SET (i);
}
/* Print transfer statistics. */