diff options
author | Jim Meyering <meyering@redhat.com> | 2008-08-07 23:01:16 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2008-08-09 16:56:01 +0200 |
commit | 2a2d3f237b256e43d55c9c0149d5ceba750f30f8 (patch) | |
tree | 072c37a5cf70bbc9ae933dd2dcabb3c11b9a65f3 | |
parent | 0d279d2378c144fa119bacbd7f18685698739d55 (diff) | |
download | coreutils-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.
-rw-r--r-- | src/dd.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -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. */ |