* [PATCH] conf.c: use return to exit from main()
@ 2008-10-31 11:09 Ladislav Michl
2008-10-31 12:34 ` Giacomo A. Catenazzi
0 siblings, 1 reply; 3+ messages in thread
From: Ladislav Michl @ 2008-10-31 11:09 UTC (permalink / raw)
To: linux-kbuild
Replace exit() with return and use standard exit values. Good for
code size and readability, although I have to admit both has very
little impact on real world... :-)
text data bss dec hex filename
60608 2084 5908 68600 10bf8 scripts/kconfig/conf_orig
60528 2084 5908 68520 10ba8 scripts/kconfig/conf
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 3e1057f..70f1f99 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -70,7 +70,7 @@ static void check_stdin(void)
printf(_("aborted!\n\n"));
printf(_("Console input/output is redirected. "));
printf(_("Run 'make oldconfig' to update configuration.\n\n"));
- exit(1);
+ exit(EXIT_FAILURE);
}
}
@@ -469,16 +469,15 @@ int main(int ac, char **av)
break;
case 'h':
printf(_("See README for usage info\n"));
- exit(0);
- break;
+ return EXIT_SUCCESS;
default:
fprintf(stderr, _("See README for usage info\n"));
- exit(1);
+ return EXIT_FAILURE;
}
}
if (ac == optind) {
printf(_("%s: Kconfig file missing\n"), av[0]);
- exit(1);
+ return EXIT_FAILURE;
}
name = av[optind];
conf_parse(name);
@@ -492,7 +491,7 @@ int main(int ac, char **av)
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make xconfig\").\n"
"***\n"));
- exit(1);
+ return EXIT_FAILURE;
}
}
@@ -504,7 +503,7 @@ int main(int ac, char **av)
printf(_("***\n"
"*** Can't find default configuration \"%s\"!\n"
"***\n"), defconfig_file);
- exit(1);
+ return EXIT_FAILURE;
}
break;
case ask_silent:
@@ -543,7 +542,7 @@ int main(int ac, char **av)
if (name && *name) {
fprintf(stderr,
_("\n*** Kernel configuration requires explicit update.\n\n"));
- return 1;
+ return EXIT_FAILURE;
}
}
valid_stdin = isatty(0) && isatty(1) && isatty(2);
@@ -586,17 +585,17 @@ int main(int ac, char **av)
*/
if (conf_get_changed() && conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
- exit(1);
+ return EXIT_FAILURE;
}
if (conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n"));
- return 1;
+ return EXIT_FAILURE;
}
} else {
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
- exit(1);
+ return EXIT_FAILURE;
}
}
- return 0;
+ return EXIT_SUCCESS;
}
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] conf.c: use return to exit from main()
2008-10-31 11:09 [PATCH] conf.c: use return to exit from main() Ladislav Michl
@ 2008-10-31 12:34 ` Giacomo A. Catenazzi
2008-10-31 13:03 ` Ladislav Michl
0 siblings, 1 reply; 3+ messages in thread
From: Giacomo A. Catenazzi @ 2008-10-31 12:34 UTC (permalink / raw)
To: Ladislav Michl; +Cc: linux-kbuild
Ladislav Michl wrote:
> Replace exit() with return and use standard exit values. Good for
> code size and readability, although I have to admit both has very
> little impact on real world... :-)
>
> text data bss dec hex filename
> 60608 2084 5908 68600 10bf8 scripts/kconfig/conf_orig
> 60528 2084 5908 68520 10ba8 scripts/kconfig/conf
replacing return is ok, but it is wrong to change the return values:
We are on POSIX (UNIX, Linux, etc), not on a very generic standard C
implementation. The return value is important and it could be
used by other scripts, which is not guarantee in generic standard C.
With your change, it is more difficult to add other errors and to test
error values, because AFAIK the EXIT_FAILURE is not fix.
For these two reason, and because I don't think this program
could be ported in a generic C platform, I think you should
not uset EXIT_FAILURE.
ciao
cate
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] conf.c: use return to exit from main()
2008-10-31 12:34 ` Giacomo A. Catenazzi
@ 2008-10-31 13:03 ` Ladislav Michl
0 siblings, 0 replies; 3+ messages in thread
From: Ladislav Michl @ 2008-10-31 13:03 UTC (permalink / raw)
To: Giacomo A. Catenazzi; +Cc: linux-kbuild
On Fri, Oct 31, 2008 at 01:34:11PM +0100, Giacomo A. Catenazzi wrote:
> With your change, it is more difficult to add other errors and to test
> error values, because AFAIK the EXIT_FAILURE is not fix.
>
> For these two reason, and because I don't think this program
> could be ported in a generic C platform, I think you should
> not uset EXIT_FAILURE.
Well, every POSIX platform I know about defines EXIT_FAILURE as 1.
However POSIX itself requires EXIT_FAILURE to evaluate to a
non-zero value so your statement is perfectly valid.
Here it is:
Replace exit() with return.
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 3e1057f..5bcea31 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -469,16 +469,15 @@ int main(int ac, char **av)
break;
case 'h':
printf(_("See README for usage info\n"));
- exit(0);
- break;
+ return 0;
default:
fprintf(stderr, _("See README for usage info\n"));
- exit(1);
+ return 1;
}
}
if (ac == optind) {
printf(_("%s: Kconfig file missing\n"), av[0]);
- exit(1);
+ return 1;
}
name = av[optind];
conf_parse(name);
@@ -492,7 +491,7 @@ int main(int ac, char **av)
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make xconfig\").\n"
"***\n"));
- exit(1);
+ return 1;
}
}
@@ -504,7 +503,7 @@ int main(int ac, char **av)
printf(_("***\n"
"*** Can't find default configuration \"%s\"!\n"
"***\n"), defconfig_file);
- exit(1);
+ return 1;
}
break;
case ask_silent:
@@ -586,7 +585,7 @@ int main(int ac, char **av)
*/
if (conf_get_changed() && conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
- exit(1);
+ return 1;
}
if (conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n"));
@@ -595,7 +594,7 @@ int main(int ac, char **av)
} else {
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
- exit(1);
+ return 1;
}
}
return 0;
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-10-31 13:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-31 11:09 [PATCH] conf.c: use return to exit from main() Ladislav Michl
2008-10-31 12:34 ` Giacomo A. Catenazzi
2008-10-31 13:03 ` Ladislav Michl
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.