chiark / gitweb /
Mark `help' and `version' functions as not returning.
[disorder] / server / trackname.c
index b661e0cd839611f861b3363eab5e95beebcc13e2..8deedd30390b2ef91932deb3915e9265d79a172e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of DisOrder.
- * Copyright (C) 2004-2008 Richard Kettlewell
+ * Copyright (C) 2004-2009 Richard Kettlewell
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@ static const struct option options[] = {
 };
 
 /* display usage message and terminate */
-static void help(void) {
+static void attribute((noreturn)) help(void) {
   xprintf("Usage:\n"
          "  trackname [OPTIONS] TRACK CONTEXT PART\n"
          "Options:\n"
@@ -45,23 +45,24 @@ int main(int argc, char **argv) {
   int n;
   const char *s;
 
-  if(!setlocale(LC_CTYPE, "")) fatal(errno, "error calling setlocale");
+  if(!setlocale(LC_CTYPE, ""))
+    disorder_fatal(errno, "error calling setlocale");
   while((n = getopt_long(argc, argv, "hVc:d", options, 0)) >= 0) {
     switch(n) {
     case 'h': help();
     case 'V': version("trackname");
     case 'c': configfile = optarg; break;
     case 'd': debugging = 1; break;
-    default: fatal(0, "invalid option");
+    default: disorder_fatal(0, "invalid option");
     }
   }
-  if(argc - optind < 3) fatal(0, "not enough arguments");
-  if(argc - optind > 3) fatal(0, "too many arguments");
-  if(config_read(0, NULL)) fatal(0, "cannot read configuration");
+  if(argc - optind < 3) disorder_fatal(0, "not enough arguments");
+  if(argc - optind > 3) disorder_fatal(0, "too many arguments");
+  if(config_read(0, NULL)) disorder_fatal(0, "cannot read configuration");
   s = trackname_part(argv[optind], argv[optind+1], argv[optind+2]);
-  if(!s) fatal(0, "trackname_part returned NULL");
+  if(!s) disorder_fatal(0, "trackname_part returned NULL");
   xprintf("%s\n", nullcheck(utf82mb(s)));
-  if(fclose(stdout) < 0) fatal(errno, "error closing stdout");
+  if(fclose(stdout) < 0) disorder_fatal(errno, "error closing stdout");
   return 0;
 }