]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
options: get rid of "on_error" parameter to FOREACH_OPTION
authorLennart Poettering <lennart@amutable.com>
Thu, 30 Apr 2026 06:52:35 +0000 (08:52 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 30 Apr 2026 10:12:33 +0000 (11:12 +0100)
I am really not a fan of full code lines passed to macros as parameters.
Let's get rid of the 3rd parameter of FOREACH_OPTION() hence:

1. Let's return errors just as a regular value (though a negative one),
   that can be handled via a OPTION_ERROR case statement for the switch.
   This normalizes handling of the error, just like any other event
   returned by the option parser.

2. In order to avoid exploding the amount of boilerplate in each use
   (that just propagates the error on OPTION_ERROR), let's then
   introduce an explicit FOREACH_OPTION_OR_RETURN(), that returns from
   the calling function on its own (and makes that clear in the name).

Together this cleans up, normalizes the logic and shortens the code.

111 files changed:
src/ac-power/ac-power.c
src/ask-password/ask-password.c
src/battery-check/battery-check.c
src/binfmt/binfmt.c
src/bless-boot/bless-boot.c
src/bless-boot/boot-check-no-failures.c
src/bootctl/bootctl.c
src/cgls/cgls.c
src/cgtop/cgtop.c
src/core/executor.c
src/creds/creds.c
src/cryptenroll/cryptenroll.c
src/cryptsetup/cryptsetup.c
src/delta/delta.c
src/detect-virt/detect-virt.c
src/dissect/dissect.c
src/escape/escape-tool.c
src/factory-reset/factory-reset-tool.c
src/firstboot/firstboot.c
src/growfs/growfs.c
src/hibernate-resume/hibernate-resume.c
src/hostname/hostnamectl.c
src/hwdb/hwdb.c
src/id128/id128.c
src/imds/imds-tool.c
src/imds/imdsd.c
src/import/export.c
src/import/import-fs.c
src/import/import.c
src/import/importctl.c
src/import/pull.c
src/journal-remote/journal-gatewayd.c
src/journal-remote/journal-remote-main.c
src/journal/bsod.c
src/journal/cat.c
src/keyutil/keyutil.c
src/libsystemd-network/test-ndisc-send.c
src/libsystemd/sd-journal/test-journal-append.c
src/libudev/test-libudev.c
src/login/inhibit.c
src/machine-id-setup/machine-id-setup-main.c
src/measure/measure-tool.c
src/modules-load/modules-load.c
src/mute-console/mute-console.c
src/network/generator/network-generator-main.c
src/notify/notify.c
src/nspawn/nspawn.c
src/oom/oomctl.c
src/oom/oomd.c
src/path/path-tool.c
src/pcrextend/pcrextend.c
src/pcrlock/pcrlock.c
src/ptyfwd/ptyfwd-tool.c
src/random-seed/random-seed-tool.c
src/repart/repart.c
src/report/report-basic-server.c
src/report/report.c
src/run/run.c
src/sbsign/sbsign.c
src/shared/options.h
src/shutdown/shutdown.c
src/sleep/sleep.c
src/socket-activate/socket-activate.c
src/socket-proxy/socket-proxyd.c
src/ssh-generator/ssh-issue.c
src/stdio-bridge/stdio-bridge.c
src/storage/storage-block.c
src/storage/storage-fs.c
src/storage/storagectl.c
src/storagetm/storagetm.c
src/sysctl/sysctl.c
src/sysupdate/sysupdate.c
src/sysupdate/updatectl.c
src/sysusers/sysusers.c
src/test/test-chase-manual.c
src/test/test-options.c
src/timedate/timedatectl.c
src/tmpfiles/test-offline-passwd.c
src/tmpfiles/tmpfiles.c
src/tpm2-setup/tpm2-clear.c
src/tpm2-setup/tpm2-setup.c
src/tty-ask-password-agent/tty-ask-password-agent.c
src/udev/ata_id/ata_id.c
src/udev/cdrom_id/cdrom_id.c
src/udev/dmi_memory_id/dmi_memory_id.c
src/udev/fido_id/fido_id.c
src/udev/iocost/iocost.c
src/udev/mtd_probe/mtd_probe.c
src/udev/scsi_id/scsi_id.c
src/udev/udev-builtin-blkid.c
src/udev/udev-builtin-hwdb.c
src/udev/udev-config.c
src/udev/udevadm-cat.c
src/udev/udevadm-control.c
src/udev/udevadm-hwdb.c
src/udev/udevadm-info.c
src/udev/udevadm-lock.c
src/udev/udevadm-monitor.c
src/udev/udevadm-settle.c
src/udev/udevadm-test-builtin.c
src/udev/udevadm-test.c
src/udev/udevadm-trigger.c
src/udev/udevadm-verify.c
src/udev/udevadm-wait.c
src/udev/udevadm.c
src/udev/v4l_id/v4l_id.c
src/update-done/update-done.c
src/validatefs/validatefs.c
src/varlinkctl/varlinkctl.c
src/vmspawn/vmspawn.c
src/vpick/vpick-tool.c

index 530ee82ff0665fad3fc46710ab13591575f1b74d..2a9c517329321c92bf588091ff5bd06b179a9469 100644 (file)
@@ -43,7 +43,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 129fbf4d7e7539149ca19c2bba2607c144aa59ae..6a1abf5f999a1093fed90922cf476361076742c9 100644 (file)
@@ -75,7 +75,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 3e957d9fa71df94f0d7e27109b5ccd9bd8c50e52..13dc8960f2efbcc552d18714f1b0e8e62c6a3380 100644 (file)
@@ -83,7 +83,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index ed37fba276afb0e534a5ba1ecca7d1ca27dd58d2..4e24b35db744b60314bb1fc75df00b82dbd3edd4 100644 (file)
@@ -141,7 +141,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 8d2fe21a11f66a734c4ecb552fccb4b6c6633ba8..e0afb3611c278fcb21a0bd1dcdbcb9cfeea60499 100644 (file)
@@ -81,7 +81,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 37b0f7fd6d2b2f9387a9f3146a40311be495ef6f..9fa42a7ed6620340004737ee790bff6e5d07ab9b 100644 (file)
@@ -46,7 +46,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 967c21458d9eed733231e72736955465a928e38f..6869e838cfc4ecee614348efbd8d1407fcd3d1ca 100644 (file)
@@ -420,7 +420,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_GROUP("Block Device Discovery Commands"): {}
index 9ed57c35cdf4f49c7429e0c9afb5778217c75a33..cdb47ba8bdc5704133e400607818ef6ae21a119a 100644 (file)
@@ -72,7 +72,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv, OPTION_PARSER_RETURN_POSITIONAL_ARGS };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index d1d20992bd15996b159450d5b3ed268972c14775..dfee990a0f8311ae6150f5d0d1ffa96e1d636134 100644 (file)
@@ -722,7 +722,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 20bc65b63e6de343c8d600632f745605371d524a..00761c6e3f7a60367b028f6147ddb5a017870fe0 100644 (file)
@@ -64,7 +64,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index e14a9a921cda7159023677f2b3fdd5391966d175..95af91c120db71b4618d3f1f481e7f7b8cc77cfd 100644 (file)
@@ -826,7 +826,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 6561d861078431fda58f6144219263868c59dd9b..bcc4b6cca66cd5548ef170519c2c392328baea28 100644 (file)
@@ -279,7 +279,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 43f2873da262c6f074ee2394ac926a7779ae218e..2130c54047c04d95cf6f998c760cea5d45a6514e 100644 (file)
@@ -2507,7 +2507,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 92b77f9ddce5bf376cd48cda3f51e2beb8b68840..27dfc105ee7d60e6a8753fb9ab2cc65a553278c0 100644 (file)
@@ -520,7 +520,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f88528fccf9922f5b975751d160ceb4263b551ec..be39634583f2cfca94d29e13ff6c750ecc1aec66 100644 (file)
@@ -55,7 +55,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 338aed8391d972894cd71cd3ad03ba31af3263ba..280d1ada5fdbfe99eb50626c2143bcd152f3ad31 100644 (file)
@@ -232,7 +232,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_NO_PAGER:
index 98f0b9a0146a0ef109def411a708be42c99c5964..09e0338c348fd203389f5cc2f21cefeb39405e0c 100644 (file)
@@ -58,7 +58,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 975c391fc8fae6a8e405826328082bfbf775665a..e26e948e9341629399a08986dc66defde8574c5e 100644 (file)
@@ -72,7 +72,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 721fbba21e102392ae80331178fffcc412f3a0bc..3d768b491f83a6eeedb7f5e1e0fc3afc4b0617f7 100644 (file)
@@ -1270,7 +1270,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index efb94e37650530db277827671d47f370f1a179f9..30d371200d47ffeb95391ae33cd953fcd41b268e 100644 (file)
@@ -162,7 +162,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5f42097194e1869f2a0b1ef0b5b5e9a0f3c4a6ff..d2dccd59bda8cbe6134eb2951005223cd718fe5b 100644 (file)
@@ -57,7 +57,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 9ad2a0b4ec05e81e0e2b275af4bb567ca40812d7..2989840b364d7e63323be0f89dc6455f883db8e4 100644 (file)
@@ -767,7 +767,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 286ea000dbeec75f2a62e9ea561336275192a3d5..5ad3bac3211ee81eea179b8bf3e5278434366903 100644 (file)
@@ -83,7 +83,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index fbcacdbe4608bf5d76589a0c53f2e05a0a6fb09a..ceac8a832e5c1af80b260d7254e7424c7aba8c98 100644 (file)
@@ -239,7 +239,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 7752e1f769cfe27f55f3b563fb51192d8ac85255..06bc6c4487d73767b27134bf4624258f823d3b6d 100644 (file)
@@ -84,7 +84,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index c803b27829aba8d4a01f0f6bf323dafe7405ac10..a0c54ad84d7af49a434cce4e74fae5974cc14e27 100644 (file)
@@ -2251,7 +2251,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5b233e71a5bfd5e4f523be99fd1a2436189819d8..a77333643c6bc7e986a2ee5b35ffb70160dc6658 100644 (file)
@@ -240,7 +240,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 878d0c5b8f14afcd6747d5fb619f50097e185114..513a2c62d39601c9efa9e2f18db650c13ab3215f 100644 (file)
@@ -316,7 +316,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 43740aeac7d46ed1e3c3e003323401af75934635..798b6b743a21cf1673c48705a1c1f1f60c18f55e 100644 (file)
@@ -319,7 +319,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 65fff5f5f3a4319dd80b14c1999773966dd23d1f..d4a6483f36d7cd44d500fd3f4f9dbd275cec582c 100644 (file)
@@ -1115,7 +1115,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 0cc23dc6ed4b2451011c80c1acf49d7fbd9ae629..6a1f913ff8a5cc3bc52e3d18ec9710c77da95149 100644 (file)
@@ -366,7 +366,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index ffef7edea5ec829292b14e6363302e9d258a2512..e70fc4f6dbf376fa44c3741a84fafd690054b019 100644 (file)
@@ -1121,7 +1121,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5709f87f746175b0e51a44386faf96320927bfae..614ec61be907df74a2ab334c427a1eaa3d70a109 100644 (file)
@@ -907,7 +907,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 170160559020928f63598ec3203a5b22e150a303..e380e08b1c20cccba1a5e218da7ccd35a160786e 100644 (file)
@@ -250,7 +250,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f8b5e0df317271143a37b34e524a39953a7e41f7..b2b1689ff26d575845c092850e4db6125ebfd505 100644 (file)
@@ -62,7 +62,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 474f42fec72ecfcb0c4b5371ccf7871611a141a2..2a66fabb19542374920d80ccfe5aed8dcf94b97a 100644 (file)
@@ -90,7 +90,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index de04198d370c08c3a0a9a5ad1365bb1ba507f5fd..87b8abefd58f0e37dd79013f33d12b3e08f2fb18 100644 (file)
@@ -80,7 +80,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_VERSION:
index 75a1fce6fc98cb5dd2841c7610341d543c2b3882..c71240660dcd77ab4c0e602a75949ac2cb3704ca 100644 (file)
@@ -153,7 +153,7 @@ int main(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP: {
index a653f0c6c8fddc5c659c6a44ef07f546a4e14c91..06feb1ffbc61a9140aaa23a3b305f6802ea776dd 100644 (file)
@@ -430,7 +430,7 @@ static int parse_args(int argc, char *argv[], const char **syspath, const char *
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 4abfc1c6d3acdad8a666a1af60969ef5c4ad009b..78c784c30fad8439e09e1908d6a2171bae010fc0 100644 (file)
@@ -203,7 +203,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 9dd389dbaa4f9ec5460948cff0985dd134a9a755..2363427b5f54e446dadc92652fd8fd7ee072bf26 100644 (file)
@@ -78,7 +78,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index a92a418f61fce5715db1bcd39a5914d8e44fa545..eeb001f3fed4a23faa84ebe56666ca7eb1af4627 100644 (file)
@@ -139,7 +139,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f6806d604ab55d849487821abb89c52a3df12485..0917f800a1a84cf9a1554b84795868916b5c705d 100644 (file)
@@ -361,7 +361,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index be6b5fac091662ee359048011738a17401df2eed..d5788de09b3b9f4669a26988ee5c558a3482c956 100644 (file)
@@ -63,7 +63,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 721d36b8319456a348274aee96f2a8aea99fc28c..df9ce9265dbbbd5be0749f5655ec32e96684f1f3 100644 (file)
@@ -174,7 +174,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 00f915dc7bff183ae04bc23d69624bafe3e74e8f..6c50e4c57c394e17ab676e9211e9012971f193d0 100644 (file)
@@ -155,7 +155,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f96a6b08b981cba568c088727da8a97c9c7ae66a..efe927f36e9b61c4cb5bd8141e8e342848c0ba5d 100644 (file)
@@ -605,7 +605,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c) {
+        FOREACH_OPTION_OR_RETURN(c, &opts) {
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index b73e2eb5abfe50ad18225f23c3c652f688eee38b..82ffe0e8379fdf972c60ddd14a366cfb74861e21 100644 (file)
@@ -93,7 +93,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 2250d7ec7f1892e8d580c90a1dbf66b32e49269c..62eecfc065c6583b8ad08380c391958f644fb224 100644 (file)
@@ -53,7 +53,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 22544b9463854846669ff6ac60651fb471cca99a..29696501d03a0c2bfe5b265673668e51bdca904e 100644 (file)
@@ -206,7 +206,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5b846b9d3a9dceb596c3e46e1e6165aada52674c..f452363209d66f4941a85d70dbaee5b0fa5dac47 100644 (file)
@@ -84,7 +84,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 752f67cbdb9909756487b4bad8bce6a21e7543e6..09f49b2ed250e4923e44806ee2bbdad57fe5b056 100644 (file)
@@ -5193,7 +5193,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         bool auto_location = true;
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 6d98a8e7ef09ec493ecaee790e3769e8a089a368..e7b531c8730883fa12873c0a9b60eccf771c2922 100644 (file)
@@ -65,7 +65,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 2eabcea176c2a051805110b8dedb0f107533df1f..f573e84412ffb0f5a4a2d670f5c9c101ebe95699 100644 (file)
@@ -352,7 +352,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 26588c6242b4d79420eb8f525f54cbae0cce3141..ad19f0ab1ec7ac52a18e90b23866321955d83739 100644 (file)
@@ -9689,7 +9689,7 @@ static int parse_argv(int argc, char *argv[]) {
         bool auto_public_key_pcr_mask = true, auto_pcrlock = true;
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_GROUP("Options"): {}
index 1e2eca31eae6897e2a7be61d2095356d660f9beb..bca943fd7faee2c19b379055187ad0d27d337ede 100644 (file)
@@ -59,7 +59,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index fef01c094ef9fa80bf5db38572083c1f7071daa7..390871e942863e65cf13d1d2bdb252fce84fd521 100644 (file)
@@ -987,7 +987,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 9d1042e845a331779a2a7abf4b54eb2147a6b9bb..46b8014e580c53bcc67b4ef41669f9565411c50c 100644 (file)
@@ -255,7 +255,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION, "systemd-run" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("systemd-run"): {}
@@ -783,7 +783,7 @@ static int parse_argv_sudo_mode(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION, "run0" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("run0"): {}
index 7d866fde875555d3cb3d6642e2a8172a979120b5..f5a88b2849fe24e758b0b7557d59a53f0642dbb7 100644 (file)
@@ -96,7 +96,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5803eb120ef6775a223be25c14c9b715a8a2cc93..1f28dab8ad51f2452f309230913a6c6dedf84405 100644 (file)
@@ -216,13 +216,15 @@ int option_parse(
                 const Option options_end[],
                 OptionParser *state);
 
-/* Iterate over options. */
-#define FOREACH_OPTION(c, state, on_error)                              \
+/* Iterate over options. Don't forget to handle errors (negative c)! */
+#define FOREACH_OPTION(c, state)                                        \
+        for (int c; (c = option_parse(ALIGN_PTR(__start_SYSTEMD_OPTIONS), __stop_SYSTEMD_OPTIONS, state)) != 0; )
+
+#define FOREACH_OPTION_OR_RETURN(c, state)                              \
         for (int c; (c = option_parse(ALIGN_PTR(__start_SYSTEMD_OPTIONS), __stop_SYSTEMD_OPTIONS, state)) != 0; ) \
-                if (c < 0) {                                            \
-                        on_error;                                       \
-                        break;                                          \
-                } else
+                if (c < 0)                                              \
+                        return c;                                       \
+                else
 
 /* Those helpers are used *during* option parsing and allow looking at or taking the next item in
  * the argv array, either an option or a positional parameter. */
index c572138596d388b4fa8a351b687a7fe756dcab0a..131550c46b20d6442a93505d8881cbed6f543828 100644 (file)
@@ -66,7 +66,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv, OPTION_PARSER_RETURN_POSITIONAL_ARGS };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_LOG_LEVEL:
index 3b2f9d698bb8492f64431ad8a1ac632824233d3d..53f306a8faefc4336f7947a9a04a32d4ffc2e064 100644 (file)
@@ -731,7 +731,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 03cf327b6259e7c1b54c487238f5728d2ed6ec85..768a2a3ea723548c9e5865f7cbd318a7e0e0f995 100644 (file)
@@ -358,7 +358,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index ea68009b35802d96e49d11e6f1cca00f4b0f8074..77dc903535633cf9352f76e3f417975b184c67ec 100644 (file)
@@ -423,7 +423,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index ee128b5e1811cc63561bba376e37aa9a961a5253..2028d3f942393cdea117c2a6d85f8f44e3131bb7 100644 (file)
@@ -163,7 +163,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
         const char *verb = NULL;
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 4be5205d59894de93ca491599d097c2a28fecbcf..01686d2cd6c0b56af2af4b06bdf6be5305fe0e32 100644 (file)
@@ -49,7 +49,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 4c21795c360ad2f0793d42b88c46962dde8632df..e5454a29c28a0d93a8a71e1cd414e04e3fee8378 100644 (file)
@@ -408,7 +408,7 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argv);
 
         OptionParser opts = { argc, argv };
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 47ec9829c494ddcc141b7445e13dc2c8bb9ce929..c01e91a4cefe6832084fca8b830af480f1820df0 100644 (file)
@@ -768,7 +768,7 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argv);
 
         OptionParser opts = { argc, argv };
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index a21072e78f204d29fcc73334496fbe697464108f..2bc7b7c2a3e40d438aa54fbcf3916a7ab0031dff 100644 (file)
@@ -406,7 +406,7 @@ static int parse_argv(int argc, char *argv[], char ***args) {
         assert(argv);
 
         OptionParser opts = { argc, argv };
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 5129887d795feb0f4fcdece5fee5218938b1da1b..384e88f7b88bc9c34fb9939c3891836346587ba3 100644 (file)
@@ -80,7 +80,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 6a9e33e6e6f7b74b5e8b94605ae789866970aca6..e124b56fc9c12ac21990486fdd1946b7f4300440 100644 (file)
@@ -362,7 +362,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 648dd093e616085f1ee223fa103b3600cffdf1c1..ff8829115148eef9f32aff301ee7bf96f59f00e1 100644 (file)
@@ -1865,7 +1865,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 65d2c7675ed456e50e2798e8ba8dac6b65e9a1e0..f09c18cd173bb202562332c5500eb592057492d4 100644 (file)
@@ -1689,7 +1689,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_LONG("reboot", NULL, "Reboot after updating to newer version"):
index 38fe4f4515161cfa960d77a4a82d54911955e67e..05a3e2db509e4e656029ef8d02ce692f8cde5a05 100644 (file)
@@ -2103,7 +2103,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_CAT_CONFIG:
index daa8713f48009465321fa0b2ce271dd6850a6485..410522ceb161f9d6b7d858027a0970f61c61ee15 100644 (file)
@@ -39,7 +39,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index efa3a73d69edd97ba0dc645c8eb3333178550f27..d00262fa34bb242573db3286be1e8cd41cfee75a 100644 (file)
@@ -842,7 +842,10 @@ static void test_macros_parse_one(
 
         OptionParser opts = { argc, argv, mode, namespace };
 
-        FOREACH_OPTION(c, &opts, assert_not_reached()) {
+        FOREACH_OPTION(c, &opts) {
+
+                assert(c >= 0);
+
                 log_debug("%c %s: %s=%s",
                           opts.opt->short_code != 0 ? opts.opt->short_code : ' ',
                           opts.opt->long_code ?: "",
index 211f7d7a6d2807c08d197e810f9e6ce2ddd73400..c35b090035eac3841d07c885ddbb9354a4474994 100644 (file)
@@ -949,7 +949,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 21b2697ceeab631a958acaa70cd6453fedca2471..f357ef8865d8d0d6618a8384492aef3ffeea3a09 100644 (file)
@@ -45,7 +45,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION('r', "root", "PATH", "Operate on an alternate filesystem root"):
index 0cc06ca8ec0aa0cb5576ae3b8be37be887d748ae..44843f3ca77eca203c86e48f1dde4b68b89ddb27 100644 (file)
@@ -4189,7 +4189,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_LONG("create", NULL, "Create and adjust files and directories"):
index b65905c03dbcdfebe4de3fa9d2bd0244bb4dd3dd..19186ecc02fd8861147bedc8be31a03a998725cd 100644 (file)
@@ -52,7 +52,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index b8e585225be2a7f2a5bb8fb64e973110ddeb0313..bb08e31a81c87b6a474dafcaaf284656608a8b71 100644 (file)
@@ -78,7 +78,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index cd49503156db7160bc27ee1f5e96a121679c9ec1..d675e4269ac16a4537fe4f8fa37e1e145b002c80 100644 (file)
@@ -475,7 +475,7 @@ static int parse_argv(int argc, char *argv[]) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index ea28ad027d313216bbf391552683b995f6f3afce..c2fabdcdb844b72eed297b86d268cdfde9157d51 100644 (file)
@@ -379,7 +379,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index b78096bde63626259b2c7dced44ca6265a28f143..27423e985155e5f603996bd1ab8ecf1223662900 100644 (file)
@@ -920,7 +920,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 269ea1525210148f17b7d87b86bca69c2c0dfb96..a1708c128c928c53321177c46d6c9cdc758d425d 100644 (file)
@@ -664,7 +664,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 6b31f49a48076c91891e9fc55dc64ad0e90c0609..a19c7eebec6e711c8a820ab8cbc9d3c5fd117c5d 100644 (file)
@@ -49,7 +49,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 3b926fa4a24f23a2e5a02348614a30c578eb803f..eadab1cb8a091cc52cb4adc8f1185ae466a43273 100644 (file)
@@ -86,7 +86,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 3e5f162343dbb303f8c975d3052689bf25388ac0..fe9924f1b6e28f9a05ac7cad1f659706dad38cce 100644 (file)
@@ -56,7 +56,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f272648c420c91aea421be24145378a074d9267c..d7970722848c87a1a2734f39ac1ac393f5f80ff2 100644 (file)
@@ -228,7 +228,7 @@ static int set_options(int argc, char **argv, char *maj_min_dev) {
         OptionParser opts = { argc, argv };
         int r;
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
@@ -319,7 +319,7 @@ static int per_dev_options(struct scsi_id_device *dev_scsi, int *good_bad, enum
         /* We reuse the option parser, but only a subset of the options is supported here.
          * If any others are encountered, return an error. */
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 if (opts.opt->short_code == 'b')
                         *good_bad = 0;
                 else if (opts.opt->short_code == 'g')
index 16eaced0dcf4629837c402b3594040812955bf1a..4cd22a889fcf72b4ea232367f0d196bc277904cc 100644 (file)
@@ -517,7 +517,7 @@ static int builtin_blkid(UdevEvent *event, int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udev-builtin-blkid" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udev-builtin-blkid"): {}
index 4817c3af24e209a35537677077f2b13a831c5dc2..dececd9c0377c20f022ae6da7240156703726009 100644 (file)
@@ -138,7 +138,7 @@ static int builtin_hwdb(UdevEvent *event, int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udev-builtin-hwdb" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udev-builtin-hwdb"): {}
index e234d6fe6d994e043b523c9f4d2793b3dc20f45a..541ba16dd906b0bba089bbfa4df3bf7dbbf7add5 100644 (file)
@@ -179,7 +179,7 @@ static int parse_argv(int argc, char *argv[], UdevConfig *config) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_NORMAL, "udevd" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevd"): {}
index 48ca72041627f8a7d4237f0f93c9c8de114efb9c..62d30d0234d24eb2a9bd03e6594627fa9b965cab 100644 (file)
@@ -46,7 +46,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-cat" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-cat"): {}
index ed586d5542d1f47d5695d883f7ba93178e9da9d2..a6ffe83cecaf61a207e8e823f8950111c5b6e37e 100644 (file)
@@ -74,7 +74,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-control" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-control"): {}
index f4060673ebfe739eb22206d15c976e59f93c8a46..b029db2262a04452e013ec6e0ad6a36f6c071261 100644 (file)
@@ -42,7 +42,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-hwdb" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-hwdb"): {}
index 3795856592c1dba425145d4c893b32572be21362..a5cbedc8deedab3f07f204614eaa90902b8c536d 100644 (file)
@@ -985,7 +985,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-info" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-info"): {}
index cebce08007eb0f29022bd0ead94b442bbf1c1fba..c1c3211d34992e061b2de5bfe01942640475f031 100644 (file)
@@ -62,7 +62,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION, "udevadm-lock" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-lock"): {}
index 0c165241a2e3ddef68ee3c7ab6c5ec498c2a7447..c7d1f40fc49b6a884a4e35a21f81ed041201513a 100644 (file)
@@ -126,7 +126,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-monitor" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-monitor"): {}
index 1292462d28c25965f4505b6576d04b01396850e9..211a8ff1fbf8c2ac4d3f005c9f5b1eb75ce2bdbf 100644 (file)
@@ -56,7 +56,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-settle" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-settle"): {}
index 31ac5699570170bdeb44d9bfdae37dbb69bf623b..9c0082800f37ab4c6f886bd499886c5b8e743bae 100644 (file)
@@ -42,7 +42,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-test-builtin" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-test-builtin"): {}
index a7841333016f96b70b1598f3021ab9bb01965d86..ac368e0f00eecd093b467d37ac645b168236accd 100644 (file)
@@ -61,7 +61,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-test" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-test"): {}
index 62ccba37c5b8d9e6e43dcabe704e9a92c97bae4b..583d85be0b8d8d989ba9e65033952820464d1c7a 100644 (file)
@@ -348,7 +348,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-trigger" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-trigger"): {}
index 1ecc1fbee9c785bc1137c35cc959a1fceaf8d098..f4388f843adc6a00ef266a41c33fc9615a13714c 100644 (file)
@@ -51,7 +51,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-verify" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-verify"): {}
index a361bac61a3a7e644e175663d9cb76614cc81f4b..601740144068995bde6cd75311477aaff0d0a3f7 100644 (file)
@@ -324,7 +324,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, .namespace = "udevadm-wait" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm-wait"): {}
index 856d1fc4c23e2dc1fdb898a32f810afcf0c8c44c..47d4335baec7ffc26f7fb6e9308648e78ca81d58 100644 (file)
@@ -71,7 +71,7 @@ static int parse_argv(int argc, char *argv[], char ***remaining_args) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION, "udevadm" };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_NAMESPACE("udevadm"): {}
index 93ca2d3b997feee19ee091aa685951aea2f6ef31..1a53e1092fb7a3da6e64ab65210ad4b13eefcefe 100644 (file)
@@ -43,7 +43,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index b55c9941a9de310c211c3701dd790cbf1a5662cd..67ce353e114d2989a50594df86d08e2095abec37 100644 (file)
@@ -98,7 +98,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index 58f8feb805dca54a785b368ab77a695420b3ee19..506b8198709d5dd23342f34df9cb156b9f081a2a 100644 (file)
@@ -66,7 +66,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
                 OPTION_COMMON_HELP:
                         return help();
index fbf4b217ff6913a3c0a0fc532f8e76332d593cdb..fbd5e2499a5d5615160918b4058693b4586cdadb 100644 (file)
@@ -126,7 +126,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index 8e4cbf3e80611f671a3148d88294f4b09b657470..81c035c250d620ca95220d00508825a052862bc0 100644 (file)
@@ -328,7 +328,7 @@ static int parse_argv(int argc, char *argv[]) {
 
         OptionParser opts = { argc, argv, OPTION_PARSER_STOP_AT_FIRST_NONOPTION };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION_COMMON_HELP:
index f18edb263f8e98c97b4a0085a1d011b1c74c661f..f0b5ef44dfb67ddd9342b335072a827fba1c402f 100644 (file)
@@ -101,7 +101,7 @@ static int parse_argv(int argc, char *argv[], char ***ret_args) {
 
         OptionParser opts = { argc, argv };
 
-        FOREACH_OPTION(c, &opts, /* on_error= */ return c)
+        FOREACH_OPTION_OR_RETURN(c, &opts)
                 switch (c) {
 
                 OPTION('B', "basename", "BASENAME", "Look for specified basename"):