From: H. Peter Anvin Date: Tue, 5 May 2009 16:50:00 +0000 (-0700) Subject: linux.c32: honor the "quiet" flag X-Git-Tag: syslinux-3.81-pre2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1b3adda8be6bb9dc04108880d84bba12e68fd9c9;p=profile%2Fivi%2Fsyslinux.git linux.c32: honor the "quiet" flag Honor the "quiet" flag for linux.c32, since some distros have odd notions about these things. Signed-off-by: H. Peter Anvin --- diff --git a/com32/modules/linux.c b/com32/modules/linux.c index 87b610d..70afdcb 100644 --- a/com32/modules/linux.c +++ b/com32/modules/linux.c @@ -1,6 +1,7 @@ /* ----------------------------------------------------------------------- * * * Copyright 2007-2008 H. Peter Anvin - All Rights Reserved + * Copyright 2009 Intel Corporation; author: H. Peter Anvin * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation @@ -37,6 +38,7 @@ * Usage: linux.c32 [-dhcpinfo] kernel arguments... */ +#include #include #include #include @@ -63,6 +65,19 @@ static char *find_argument(char **argv, const char *argument) return ptr; } +/* Search for a boolean argument; return its position, or 0 if not present */ +static int find_boolean(char **argv, const char *argument) +{ + char **arg; + + for (arg = argv; *arg; arg++) { + if (!strcmp(*arg, argument)) + return (arg-argv)+1; + } + + return 0; +} + /* Stitch together the command line from a set of argv's */ static char *make_cmdline(char **argv) { @@ -101,7 +116,8 @@ int main(int argc, char *argv[]) char *boot_image; void *kernel_data; size_t kernel_len; - int opt_dhcpinfo = 0; + bool opt_dhcpinfo = false; + bool opt_quiet = false; void *dhcpdata; size_t dhcplen; char **argp, *arg, *p; @@ -113,7 +129,7 @@ int main(int argc, char *argv[]) while ((arg = *argp) && arg[0] == '-') { if (!strcmp("-dhcpinfo", arg)) { - opt_dhcpinfo = 1; + opt_dhcpinfo = true; } else { fprintf(stderr, "%s: unknown option: %s\n", progname, arg); return 1; @@ -127,13 +143,21 @@ int main(int argc, char *argv[]) } kernel_name = arg; + argp++; + + if (find_boolean(argp,"quiet")) + opt_quiet = true; - printf("Loading %s... ", kernel_name); + if (!opt_quiet) + printf("Loading %s... ", kernel_name); if (loadfile(kernel_name, &kernel_data, &kernel_len)) { + if (opt_quiet) + printf("Loading %s ", kernel_name); printf("failed!\n"); goto bail; } - printf("ok\n"); + if (!opt_quiet) + printf("ok\n"); boot_image = malloc(strlen(kernel_name)+12); if (!boot_image) @@ -162,12 +186,16 @@ int main(int argc, char *argv[]) if (p) *p = '\0'; - printf("Loading %s... ", arg); + if (!opt_quiet) + printf("Loading %s... ", arg); if (initramfs_load_archive(initramfs, arg)) { + if (opt_quiet) + printf("Loading %s ", kernel_name); printf("failed!\n"); goto bail; } - printf("ok\n"); + if (!opt_quiet) + printf("ok\n"); if (p) *p++ = ',';