[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1] xentrace: adjust exit code for --help option


  • To: Olaf Hering <olaf@xxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 1 Jun 2023 10:17:17 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+3Kyp7rMZRaf+USmq0Sv5Sq9wcr/j8YPvT/OYeQFfqI=; b=AootqJZaxS0rh+OjltmTj+hpMu5DeQVPstXfCuNrj6KUqQGs/GCI4Ldb9itjemBSklt4GSpOkxC8++2freKjWaduzWvQpnYRtSLfDJ8/aTTuK66nQh43XzkTwHhJsYnOVtNUPAnEMffig8S06ZoZuFs38HxuFzcZ6wc0XN4ZTGTEmyWDzumnXmePiaxmV0peQpv3vIcQt13MqrGQURWZHEk1vx6+TXQ8vbzMF26cBsOlhFB16OgqdSfwhMn6oDxmlftBvPqv86bUmRdK/pS1yuhBQ3/fQNwWoOLPJpoeZQoEuhbuRwA0LxElddCOKHMzIYECqSkWN5uESqUoNkMI7g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XA7rnaxDuf5kGS2BsHvd+bbn38A7zBnMPuoWrx2v1O0qtavLY70wPKrZEag1+IYwZrXEk0zMERgCA7ucp9sIL1Yvlpbggs4z9wjyeiA3TFx6t1wQLzNxbcsfT1ZtXSEUlYtKAKV7DmhGGMsh8Xbbwp4sXjhWnxT9rC+74QcYRILaJ153UzR7bJauaf4sV9JsJzMKilma5ehJm4UI8N6KYs0vOdGx1+Qp4GThTqlwcUcICez70rqUQrhViy1CXqt5VUR4IGpEaHd5I5HSEjfPWPXoBzK6tyLOrGAf5WkO4Eyo/KhawcTOLl9rzSBBRcJupfx5IBbidPc8eZWEScYVAQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 01 Jun 2023 08:17:39 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 01.06.2023 10:08, Olaf Hering wrote:
> Invoking the --help option of any tool should not return with an error,
> if that tool does indeed have a documented and implemented help option.
> 
> Adjust the usage() function to exit with either error or success.
> Handle the existing entry in the option table to call usage accordingly.
> 
> Adjust the getopt value for help. The char '?' is returned for unknown
> options. Returning 'h' instead of '?' makes it allows to handle --help.
> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>

Is this any different from the v1 sent on May 26th?

Jan

> --- a/tools/xentrace/xentrace.c
> +++ b/tools/xentrace/xentrace.c
> @@ -807,7 +807,7 @@ static void monitor_tbufs(void)
>  const char *program_version     = "xentrace v1.2";
>  const char *program_bug_address = "<mark.a.williamson@xxxxxxxxx>";
>  
> -static void usage(void)
> +static void usage(int status)
>  {
>  #define USAGE_STR \
>  "Usage: xentrace [OPTION...] [output file]\n" \
> @@ -854,7 +854,7 @@ static void usage(void)
>      printf(USAGE_STR);
>      printf("\nReport bugs to %s\n", program_bug_address);
>  
> -    exit(EXIT_FAILURE);
> +    exit(status);
>  }
>  
>  /* convert the argument string pointed to by arg to a long int 
> representation,
> @@ -873,7 +873,7 @@ long sargtol(const char *restrict arg, int base)
>      {
>          fprintf(stderr, "Invalid option argument: %s\n", arg);
>          fprintf(stderr, "Error: %s\n\n", strerror(errno));
> -        usage();
> +        usage(EXIT_FAILURE);
>      }
>      else if (endp == arg)
>      {
> @@ -901,7 +901,7 @@ long sargtol(const char *restrict arg, int base)
>  
>  invalid:
>      fprintf(stderr, "Invalid option argument: %s\n\n", arg);
> -    usage();
> +    usage(EXIT_FAILURE);
>      return 0; /* not actually reached */
>  }
>  
> @@ -917,10 +917,10 @@ static long argtol(const char *restrict arg, int base)
>      if (errno != 0) {
>          fprintf(stderr, "Invalid option argument: %s\n", arg);
>          fprintf(stderr, "Error: %s\n\n", strerror(errno));
> -        usage();
> +        usage(EXIT_FAILURE);
>      } else if (endp == arg || *endp != '\0') {
>          fprintf(stderr, "Invalid option argument: %s\n\n", arg);
> -        usage();
> +        usage(EXIT_FAILURE);
>      }
>  
>      return val;
> @@ -1090,7 +1090,7 @@ static void parse_args(int argc, char **argv)
>          { "discard-buffers", no_argument,      0, 'D' },
>          { "dont-disable-tracing", no_argument, 0, 'x' },
>          { "start-disabled", no_argument,       0, 'X' },
> -        { "help",           no_argument,       0, '?' },
> +        { "help",           no_argument,       0, 'h' },
>          { "version",        no_argument,       0, 'V' },
>          { 0, 0, 0, 0 }
>      };
> @@ -1144,8 +1144,12 @@ static void parse_args(int argc, char **argv)
>              opts.memory_buffer = sargtol(optarg, 0);
>              break;
>  
> +        case 'h':
> +            usage(EXIT_SUCCESS);
> +            break;
> +
>          default:
> -            usage();
> +            usage(EXIT_FAILURE);
>          }
>      }
>  
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.