diff --git a/coccinelle/bool-cast.cocci b/coccinelle/bool-cast.cocci new file mode 100644 index 0000000000..051ccb9417 --- /dev/null +++ b/coccinelle/bool-cast.cocci @@ -0,0 +1,12 @@ +@@ +bool b; +expression y; +@@ +- b = !!(y); ++ b = y; +@@ +bool b; +expression y; +@@ +- b = !!y; ++ b = y; diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 8695e7a1d2..906ddfbc28 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -1833,7 +1833,7 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; } - arg_man = !!r; + arg_man = r; } else arg_man = true; @@ -1847,7 +1847,7 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; } - arg_generators = !!r; + arg_generators = r; } else arg_generators = true; diff --git a/src/basic/btrfs-util.c b/src/basic/btrfs-util.c index 32a022f7ce..b325090ed9 100644 --- a/src/basic/btrfs-util.c +++ b/src/basic/btrfs-util.c @@ -500,7 +500,7 @@ int btrfs_subvol_get_info_fd(int fd, uint64_t subvol_id, BtrfsSubvolInfo *ret) { (usec_t) le32toh(ri->otime.nsec) / NSEC_PER_USEC; ret->subvol_id = subvol_id; - ret->read_only = !!(le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY); + ret->read_only = le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY; assert_cc(sizeof(ri->uuid) == sizeof(ret->uuid)); memcpy(&ret->uuid, ri->uuid, sizeof(ret->uuid)); diff --git a/src/basic/format-table.c b/src/basic/format-table.c index ad89556ee2..94e796d1ca 100644 --- a/src/basic/format-table.c +++ b/src/basic/format-table.c @@ -572,7 +572,7 @@ int table_add_many_internal(Table *t, TableDataType first_type, ...) { break; case TABLE_BOOLEAN: - buffer.b = !!va_arg(ap, int); + buffer.b = va_arg(ap, int); data = &buffer.b; break; diff --git a/src/basic/verbs.c b/src/basic/verbs.c index 58076ac07c..057e35dcd0 100644 --- a/src/basic/verbs.c +++ b/src/basic/verbs.c @@ -81,7 +81,7 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) { if (name) found = streq(name, verbs[i].verb); else - found = !!(verbs[i].flags & VERB_DEFAULT); + found = verbs[i].flags & VERB_DEFAULT; if (found) { verb = &verbs[i]; diff --git a/src/basic/virt.c b/src/basic/virt.c index 9da5feca6c..0ebccd4ebb 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -56,7 +56,7 @@ static int detect_vm_cpuid(void) { if (__get_cpuid(1, &eax, &ebx, &ecx, &edx) == 0) return VIRTUALIZATION_NONE; - hypervisor = !!(ecx & 0x80000000U); + hypervisor = ecx & 0x80000000U; if (hypervisor) { union { diff --git a/src/busctl/busctl.c b/src/busctl/busctl.c index 5c65147cac..d6844057d3 100644 --- a/src/busctl/busctl.c +++ b/src/busctl/busctl.c @@ -1972,7 +1972,7 @@ static int parse_argv(int argc, char *argv[]) { return r; } - arg_expect_reply = !!r; + arg_expect_reply = r; break; case ARG_AUTO_START: @@ -1982,7 +1982,7 @@ static int parse_argv(int argc, char *argv[]) { return r; } - arg_auto_start = !!r; + arg_auto_start = r; break; case ARG_ALLOW_INTERACTIVE_AUTHORIZATION: @@ -1992,7 +1992,7 @@ static int parse_argv(int argc, char *argv[]) { return r; } - arg_allow_interactive_authorization = !!r; + arg_allow_interactive_authorization = r; break; case ARG_TIMEOUT: @@ -2011,7 +2011,7 @@ static int parse_argv(int argc, char *argv[]) { return r; } - arg_augment_creds = !!r; + arg_augment_creds = r; break; case ARG_WATCH_BIND: @@ -2021,7 +2021,7 @@ static int parse_argv(int argc, char *argv[]) { return r; } - arg_watch_bind = !!r; + arg_watch_bind = r; break; case '?': diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index 747b9d8eeb..52d0487c93 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -563,7 +563,7 @@ static int property_get_bind_paths( assert(property); assert(reply); - ro = !!strstr(property, "ReadOnly"); + ro = strstr(property, "ReadOnly"); r = sd_bus_message_open_container(reply, 'a', "(ssbt)"); if (r < 0) diff --git a/src/core/namespace.c b/src/core/namespace.c index 2523c2a47f..bb19e18e43 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -322,7 +322,7 @@ static int append_tmpfs_mounts(MountEntry **p, const TemporaryFileSystem *tmpfs, if (r < 0) return r; - ro = !!(flags & MS_RDONLY); + ro = flags & MS_RDONLY; if (ro) flags ^= MS_RDONLY; } diff --git a/src/core/service.c b/src/core/service.c index 33fd36f8a7..824d283f34 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -3215,7 +3215,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { * The PID file might actually be created by a START_POST * script. In that case don't worry if the loading fails. */ - has_start_post = !!s->exec_command[SERVICE_EXEC_START_POST]; + has_start_post = s->exec_command[SERVICE_EXEC_START_POST]; r = service_load_pid_file(s, !has_start_post); if (!has_start_post && r < 0) { r = service_demand_pid_file(s); diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 63fd4c8da1..ffd80d7876 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -302,7 +302,7 @@ int main(int argc, char *argv[]) { (void) cg_get_root_path(&cgroup); in_container = detect_container() > 0; - use_watchdog = !!getenv("WATCHDOG_USEC"); + use_watchdog = getenv("WATCHDOG_USEC"); watchdog_device = getenv("WATCHDOG_DEVICE"); if (watchdog_device) { r = watchdog_set_device(watchdog_device); diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c index 4975aba016..5cf9f40c20 100644 --- a/src/journal/journald-stream.c +++ b/src/journal/journald-stream.c @@ -378,7 +378,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) { return -EINVAL; } - s->level_prefix = !!r; + s->level_prefix = r; s->state = STDOUT_STREAM_FORWARD_TO_SYSLOG; return 0; @@ -389,7 +389,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) { return -EINVAL; } - s->forward_to_syslog = !!r; + s->forward_to_syslog = r; s->state = STDOUT_STREAM_FORWARD_TO_KMSG; return 0; @@ -400,7 +400,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) { return -EINVAL; } - s->forward_to_kmsg = !!r; + s->forward_to_kmsg = r; s->state = STDOUT_STREAM_FORWARD_TO_CONSOLE; return 0; @@ -411,7 +411,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) { return -EINVAL; } - s->forward_to_console = !!r; + s->forward_to_console = r; s->state = STDOUT_STREAM_RUNNING; /* Try to save the stream, so that journald can be restarted and we can recover */ diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 3fe38c0527..21fdc0912d 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -242,9 +242,9 @@ static int property_get_preparing( assert(m); if (streq(property, "PreparingForShutdown")) - b = !!(m->action_what & INHIBIT_SHUTDOWN); + b = m->action_what & INHIBIT_SHUTDOWN; else - b = !!(m->action_what & INHIBIT_SLEEP); + b = m->action_what & INHIBIT_SLEEP; return sd_bus_message_append(reply, "b", b); } diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index e9db977036..3f8346fee8 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -406,7 +406,7 @@ int dhcp6_request_address(Link *link, int ir) { if (r < 0) return r; else - running = !!r; + running = r; if (running) { r = sd_dhcp6_client_get_information_request(link->dhcp6_client, &inf_req); diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c index bae419d63b..ddbc9d934e 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c @@ -1090,9 +1090,9 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, unsigne return r; if (flags & BUS_MAP_BOOLEAN_AS_BOOL) - * (bool*) userdata = !!b; + *(bool*) userdata = b; else - * (int*) userdata = b; + *(int*) userdata = b; return 0; } @@ -1403,7 +1403,7 @@ int bus_property_set_bool( if (r < 0) return r; - *(bool *) userdata = !!b; + *(bool*) userdata = b; return 0; } diff --git a/src/shared/condition.c b/src/shared/condition.c index a41a782664..18ab1f89f9 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -103,7 +103,7 @@ static int condition_test_kernel_command_line(Condition *c) { if (r < 0) return r; - equal = !!strchr(c->parameter, '='); + equal = strchr(c->parameter, '='); for (p = line;;) { _cleanup_free_ char *word = NULL; diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 4a41b814ae..b1250850d5 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -632,7 +632,7 @@ int config_parse_bool(const char* unit, return fatal ? -ENOEXEC : 0; } - *b = !!k; + *b = k; return 0; } diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index e52a64a9c5..f412082265 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -477,7 +477,7 @@ static int map_ntp_message(sd_bus *bus, const char *member, sd_bus_message *m, s memcpy(p->reference.str, d, sz); - p->spike = !!b; + p->spike = b; return 0; }