summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorHolger Weiss <hweiss@users.sourceforge.net>2007-01-28 21:46:41 +0000
committerHolger Weiss <hweiss@users.sourceforge.net>2007-01-28 21:46:41 +0000
commitfd329a1e91cccc8845923af572890ac42b76afc1 (patch)
tree1c58ed9155320c49910689c4a762184fa6d2c8db /plugins
parent381715a2bd1f9163b791dc2a12ef8c60bac2c19a (diff)
downloadmonitoring-plugins-fd329a1e91cccc8845923af572890ac42b76afc1.tar.gz
Don't try to print `optarg' (which will be a NULL pointer) if an unknown
command line option was used, as this leads to a segfault on some systems. The unknown option will be printed by getopt(3) anyway. So, simply call print_usage() and exit UNKNOWN via the new usage5() instead. git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1590 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_apt.c2
-rw-r--r--plugins/check_by_ssh.c2
-rw-r--r--plugins/check_dig.c4
-rw-r--r--plugins/check_dns.c2
-rw-r--r--plugins/check_fping.c2
-rw-r--r--plugins/check_game.c2
-rw-r--r--plugins/check_hpjd.c2
-rw-r--r--plugins/check_http.c2
-rw-r--r--plugins/check_ide_smart.c2
-rw-r--r--plugins/check_ldap.c2
-rw-r--r--plugins/check_load.c2
-rw-r--r--plugins/check_mrtg.c2
-rw-r--r--plugins/check_mrtgtraf.c2
-rw-r--r--plugins/check_mysql.c2
-rw-r--r--plugins/check_mysql_query.c2
-rw-r--r--plugins/check_nagios.c2
-rw-r--r--plugins/check_nt.c2
-rw-r--r--plugins/check_ntp.c2
-rw-r--r--plugins/check_nwstat.c2
-rw-r--r--plugins/check_overcr.c2
-rw-r--r--plugins/check_pgsql.c2
-rw-r--r--plugins/check_ping.c2
-rw-r--r--plugins/check_procs.c2
-rw-r--r--plugins/check_radius.c2
-rw-r--r--plugins/check_real.c2
-rw-r--r--plugins/check_smtp.c2
-rw-r--r--plugins/check_snmp.c2
-rw-r--r--plugins/check_ssh.c2
-rw-r--r--plugins/check_swap.c2
-rw-r--r--plugins/check_tcp.c2
-rw-r--r--plugins/check_time.c2
-rw-r--r--plugins/check_ups.c2
-rw-r--r--plugins/check_users.c2
-rw-r--r--plugins/negate.c2
-rw-r--r--plugins/urlize.c2
-rw-r--r--plugins/utils.c7
-rw-r--r--plugins/utils.h5
37 files changed, 46 insertions, 38 deletions
diff --git a/plugins/check_apt.c b/plugins/check_apt.c
index 902b455f..f67ebf9b 100644
--- a/plugins/check_apt.c
+++ b/plugins/check_apt.c
@@ -201,7 +201,7 @@ int process_arguments (int argc, char **argv) {
201 break; 201 break;
202 default: 202 default:
203 /* print short usage statement if args not parsable */ 203 /* print short usage statement if args not parsable */
204 usage_va(_("Unknown argument - %s"), optarg); 204 usage5();
205 } 205 }
206 } 206 }
207 207
diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c
index d1cbf936..1675071c 100644
--- a/plugins/check_by_ssh.c
+++ b/plugins/check_by_ssh.c
@@ -262,7 +262,7 @@ process_arguments (int argc, char **argv)
262 asprintf (&comm, "%s -%c", comm, c); 262 asprintf (&comm, "%s -%c", comm, c);
263 break; 263 break;
264 default: /* help */ 264 default: /* help */
265 usage_va(_("Unknown argument - %s"), optarg); 265 usage5();
266 } 266 }
267 } 267 }
268 268
diff --git a/plugins/check_dig.c b/plugins/check_dig.c
index 77df3c2e..e850337b 100644
--- a/plugins/check_dig.c
+++ b/plugins/check_dig.c
@@ -265,8 +265,8 @@ process_arguments (int argc, char **argv)
265 case 'a': 265 case 'a':
266 expected_address = optarg; 266 expected_address = optarg;
267 break; 267 break;
268 default: /* usage_va */ 268 default: /* usage5 */
269 usage_va(_("Unknown argument - %s"), optarg); 269 usage5();
270 } 270 }
271 } 271 }
272 272
diff --git a/plugins/check_dns.c b/plugins/check_dns.c
index 93af7dc5..454f813b 100644
--- a/plugins/check_dns.c
+++ b/plugins/check_dns.c
@@ -370,7 +370,7 @@ process_arguments (int argc, char **argv)
370 critical = optarg; 370 critical = optarg;
371 break; 371 break;
372 default: /* args not parsable */ 372 default: /* args not parsable */
373 usage_va(_("Unknown argument - %s"), optarg); 373 usage5();
374 } 374 }
375 } 375 }
376 376
diff --git a/plugins/check_fping.c b/plugins/check_fping.c
index 25ca4a8d..4dc48b77 100644
--- a/plugins/check_fping.c
+++ b/plugins/check_fping.c
@@ -258,7 +258,7 @@ process_arguments (int argc, char **argv)
258 258
259 switch (c) { 259 switch (c) {
260 case '?': /* print short usage statement if args not parsable */ 260 case '?': /* print short usage statement if args not parsable */
261 usage2 (_("Unknown argument"), optarg); 261 usage5 ();
262 case 'h': /* help */ 262 case 'h': /* help */
263 print_help (); 263 print_help ();
264 exit (STATE_OK); 264 exit (STATE_OK);
diff --git a/plugins/check_game.c b/plugins/check_game.c
index a785b511..79abec33 100644
--- a/plugins/check_game.c
+++ b/plugins/check_game.c
@@ -249,7 +249,7 @@ process_arguments (int argc, char **argv)
249 return ERROR; 249 return ERROR;
250 break; 250 break;
251 default: /* args not parsable */ 251 default: /* args not parsable */
252 usage_va(_("Unknown argument - %s"), optarg); 252 usage5();
253 } 253 }
254 } 254 }
255 255
diff --git a/plugins/check_hpjd.c b/plugins/check_hpjd.c
index 31a76bd2..8a60ce8c 100644
--- a/plugins/check_hpjd.c
+++ b/plugins/check_hpjd.c
@@ -351,7 +351,7 @@ process_arguments (int argc, char **argv)
351 print_help (); 351 print_help ();
352 exit (STATE_OK); 352 exit (STATE_OK);
353 case '?': /* help */ 353 case '?': /* help */
354 usage2 (_("Unknown argument"), optarg); 354 usage5 ();
355 } 355 }
356 } 356 }
357 357
diff --git a/plugins/check_http.c b/plugins/check_http.c
index b81f2146..d1f3998b 100644
--- a/plugins/check_http.c
+++ b/plugins/check_http.c
@@ -225,7 +225,7 @@ process_arguments (int argc, char **argv)
225 225
226 switch (c) { 226 switch (c) {
227 case '?': /* usage */ 227 case '?': /* usage */
228 usage2 (_("Unknown argument"), optarg); 228 usage5 ();
229 break; 229 break;
230 case 'h': /* help */ 230 case 'h': /* help */
231 print_help (); 231 print_help ();
diff --git a/plugins/check_ide_smart.c b/plugins/check_ide_smart.c
index 14d27b33..234f23b7 100644
--- a/plugins/check_ide_smart.c
+++ b/plugins/check_ide_smart.c
@@ -212,7 +212,7 @@ main (int argc, char *argv[])
212 print_revision (progname, revision); 212 print_revision (progname, revision);
213 return STATE_OK; 213 return STATE_OK;
214 default: 214 default:
215 usage2 (_("Unknown argument"), optarg); 215 usage5 ();
216 } 216 }
217 } 217 }
218 218
diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c
index 60872cfd..12ea0713 100644
--- a/plugins/check_ldap.c
+++ b/plugins/check_ldap.c
@@ -325,7 +325,7 @@ process_arguments (int argc, char **argv)
325#endif 325#endif
326 break; 326 break;
327 default: 327 default:
328 usage2 (_("Unknown argument"), optarg); 328 usage5 ();
329 } 329 }
330 } 330 }
331 331
diff --git a/plugins/check_load.c b/plugins/check_load.c
index 562eaf5d..3d00432f 100644
--- a/plugins/check_load.c
+++ b/plugins/check_load.c
@@ -236,7 +236,7 @@ process_arguments (int argc, char **argv)
236 print_help (); 236 print_help ();
237 exit (STATE_OK); 237 exit (STATE_OK);
238 case '?': /* help */ 238 case '?': /* help */
239 usage2 (_("Unknown argument"), optarg); 239 usage5 ();
240 } 240 }
241 } 241 }
242 242
diff --git a/plugins/check_mrtg.c b/plugins/check_mrtg.c
index 7cee31eb..4abe1d76 100644
--- a/plugins/check_mrtg.c
+++ b/plugins/check_mrtg.c
@@ -243,7 +243,7 @@ process_arguments (int argc, char **argv)
243 print_help (); 243 print_help ();
244 exit (STATE_OK); 244 exit (STATE_OK);
245 case '?': /* help */ 245 case '?': /* help */
246 usage2 (_("Unknown argument"), optarg); 246 usage5 ();
247 } 247 }
248 } 248 }
249 249
diff --git a/plugins/check_mrtgtraf.c b/plugins/check_mrtgtraf.c
index adaf9e25..e587e5cd 100644
--- a/plugins/check_mrtgtraf.c
+++ b/plugins/check_mrtgtraf.c
@@ -277,7 +277,7 @@ process_arguments (int argc, char **argv)
277 print_help (); 277 print_help ();
278 exit (STATE_OK); 278 exit (STATE_OK);
279 case '?': /* help */ 279 case '?': /* help */
280 usage2 (_("Unknown argument"), optarg); 280 usage5 ();
281 } 281 }
282 } 282 }
283 283
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index e10211fa..573ec96a 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -308,7 +308,7 @@ process_arguments (int argc, char **argv)
308 verbose++; 308 verbose++;
309 break; 309 break;
310 case '?': /* help */ 310 case '?': /* help */
311 usage2 (_("Unknown argument"), optarg); 311 usage5 ();
312 } 312 }
313 } 313 }
314 314
diff --git a/plugins/check_mysql_query.c b/plugins/check_mysql_query.c
index ecb7e7fe..bb62eecf 100644
--- a/plugins/check_mysql_query.c
+++ b/plugins/check_mysql_query.c
@@ -240,7 +240,7 @@ process_arguments (int argc, char **argv)
240 critical = optarg; 240 critical = optarg;
241 break; 241 break;
242 case '?': /* help */ 242 case '?': /* help */
243 usage2 (_("Unknown argument"), optarg); 243 usage5 ();
244 } 244 }
245 } 245 }
246 246
diff --git a/plugins/check_nagios.c b/plugins/check_nagios.c
index a6ae71f2..5703e606 100644
--- a/plugins/check_nagios.c
+++ b/plugins/check_nagios.c
@@ -258,7 +258,7 @@ process_arguments (int argc, char **argv)
258 verbose++; 258 verbose++;
259 break; 259 break;
260 default: /* print short usage_va statement if args not parsable */ 260 default: /* print short usage_va statement if args not parsable */
261 usage_va(_("Unknown argument - %s"), optarg); 261 usage5();
262 } 262 }
263 } 263 }
264 264
diff --git a/plugins/check_nt.c b/plugins/check_nt.c
index 44203dbc..fe47a58b 100644
--- a/plugins/check_nt.c
+++ b/plugins/check_nt.c
@@ -492,7 +492,7 @@ int process_arguments(int argc, char **argv){
492 switch (c) 492 switch (c)
493 { 493 {
494 case '?': /* print short usage statement if args not parsable */ 494 case '?': /* print short usage statement if args not parsable */
495 usage2 (_("Unknown argument"), optarg); 495 usage5 ();
496 case 'h': /* help */ 496 case 'h': /* help */
497 print_help(); 497 print_help();
498 exit(STATE_OK); 498 exit(STATE_OK);
diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c
index d6e1dd5f..3ed8f347 100644
--- a/plugins/check_ntp.c
+++ b/plugins/check_ntp.c
@@ -694,7 +694,7 @@ int process_arguments(int argc, char **argv){
694 break; 694 break;
695 case '?': 695 case '?':
696 /* print short usage statement if args not parsable */ 696 /* print short usage statement if args not parsable */
697 usage2 (_("Unknown argument"), optarg); 697 usage5 ();
698 break; 698 break;
699 } 699 }
700 } 700 }
diff --git a/plugins/check_nwstat.c b/plugins/check_nwstat.c
index 91797dc8..53ac2e08 100644
--- a/plugins/check_nwstat.c
+++ b/plugins/check_nwstat.c
@@ -1355,7 +1355,7 @@ int process_arguments(int argc, char **argv) {
1355 switch (c) 1355 switch (c)
1356 { 1356 {
1357 case '?': /* print short usage statement if args not parsable */ 1357 case '?': /* print short usage statement if args not parsable */
1358 usage2 (_("Unknown argument"), optarg); 1358 usage5 ();
1359 case 'h': /* help */ 1359 case 'h': /* help */
1360 print_help(); 1360 print_help();
1361 exit(STATE_OK); 1361 exit(STATE_OK);
diff --git a/plugins/check_overcr.c b/plugins/check_overcr.c
index 2aca8ea5..25a7785a 100644
--- a/plugins/check_overcr.c
+++ b/plugins/check_overcr.c
@@ -341,7 +341,7 @@ process_arguments (int argc, char **argv)
341 341
342 switch (c) { 342 switch (c) {
343 case '?': /* print short usage statement if args not parsable */ 343 case '?': /* print short usage statement if args not parsable */
344 usage2 (_("Unknown argument"), optarg); 344 usage5 ();
345 case 'h': /* help */ 345 case 'h': /* help */
346 print_help (); 346 print_help ();
347 exit (STATE_OK); 347 exit (STATE_OK);
diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c
index 41c51413..cbff8d75 100644
--- a/plugins/check_pgsql.c
+++ b/plugins/check_pgsql.c
@@ -225,7 +225,7 @@ process_arguments (int argc, char **argv)
225 225
226 switch (c) { 226 switch (c) {
227 case '?': /* usage */ 227 case '?': /* usage */
228 usage2 (_("Unknown argument"), optarg); 228 usage5 ();
229 case 'h': /* help */ 229 case 'h': /* help */
230 print_help (); 230 print_help ();
231 exit (STATE_OK); 231 exit (STATE_OK);
diff --git a/plugins/check_ping.c b/plugins/check_ping.c
index ca40920c..aa686a65 100644
--- a/plugins/check_ping.c
+++ b/plugins/check_ping.c
@@ -211,7 +211,7 @@ process_arguments (int argc, char **argv)
211 211
212 switch (c) { 212 switch (c) {
213 case '?': /* usage */ 213 case '?': /* usage */
214 usage2 (_("Unknown argument"), optarg); 214 usage5 ();
215 case 'h': /* help */ 215 case 'h': /* help */
216 print_help (); 216 print_help ();
217 exit (STATE_OK); 217 exit (STATE_OK);
diff --git a/plugins/check_procs.c b/plugins/check_procs.c
index d9e2a671..da7e9f0f 100644
--- a/plugins/check_procs.c
+++ b/plugins/check_procs.c
@@ -359,7 +359,7 @@ process_arguments (int argc, char **argv)
359 359
360 switch (c) { 360 switch (c) {
361 case '?': /* help */ 361 case '?': /* help */
362 usage2 (_("Unknown argument"), optarg); 362 usage5 ();
363 case 'h': /* help */ 363 case 'h': /* help */
364 print_help (); 364 print_help ();
365 exit (STATE_OK); 365 exit (STATE_OK);
diff --git a/plugins/check_radius.c b/plugins/check_radius.c
index b1bb928f..4b340c3b 100644
--- a/plugins/check_radius.c
+++ b/plugins/check_radius.c
@@ -235,7 +235,7 @@ process_arguments (int argc, char **argv)
235 235
236 switch (c) { 236 switch (c) {
237 case '?': /* print short usage statement if args not parsable */ 237 case '?': /* print short usage statement if args not parsable */
238 usage2 (_("Unknown argument"), optarg); 238 usage5 ();
239 case 'h': /* help */ 239 case 'h': /* help */
240 print_help (); 240 print_help ();
241 exit (OK); 241 exit (OK);
diff --git a/plugins/check_real.c b/plugins/check_real.c
index 2d24e148..0ccc1c09 100644
--- a/plugins/check_real.c
+++ b/plugins/check_real.c
@@ -368,7 +368,7 @@ process_arguments (int argc, char **argv)
368 print_help (); 368 print_help ();
369 exit (STATE_OK); 369 exit (STATE_OK);
370 case '?': /* usage */ 370 case '?': /* usage */
371 usage2 (_("Unknown argument"), optarg); 371 usage5 ();
372 } 372 }
373 } 373 }
374 374
diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c
index 94214ee0..94b97c4f 100644
--- a/plugins/check_smtp.c
+++ b/plugins/check_smtp.c
@@ -664,7 +664,7 @@ process_arguments (int argc, char **argv)
664 print_help (); 664 print_help ();
665 exit (STATE_OK); 665 exit (STATE_OK);
666 case '?': /* help */ 666 case '?': /* help */
667 usage2 (_("Unknown argument"), optarg); 667 usage5 ();
668 } 668 }
669 } 669 }
670 670
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index 1e1657b4..d9e00782 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -444,7 +444,7 @@ process_arguments (int argc, char **argv)
444 444
445 switch (c) { 445 switch (c) {
446 case '?': /* usage */ 446 case '?': /* usage */
447 usage2 (_("Unknown argument"), optarg); 447 usage5 ();
448 case 'h': /* help */ 448 case 'h': /* help */
449 print_help (); 449 print_help ();
450 exit (STATE_OK); 450 exit (STATE_OK);
diff --git a/plugins/check_ssh.c b/plugins/check_ssh.c
index 1c24e588..afe44c95 100644
--- a/plugins/check_ssh.c
+++ b/plugins/check_ssh.c
@@ -128,7 +128,7 @@ process_arguments (int argc, char **argv)
128 128
129 switch (c) { 129 switch (c) {
130 case '?': /* help */ 130 case '?': /* help */
131 usage2 (_("Unknown argument"), optarg); 131 usage5 ();
132 case 'V': /* version */ 132 case 'V': /* version */
133 print_revision (progname, revision); 133 print_revision (progname, revision);
134 exit (STATE_OK); 134 exit (STATE_OK);
diff --git a/plugins/check_swap.c b/plugins/check_swap.c
index 59c1ecf6..1903a006 100644
--- a/plugins/check_swap.c
+++ b/plugins/check_swap.c
@@ -468,7 +468,7 @@ process_arguments (int argc, char **argv)
468 print_help (); 468 print_help ();
469 exit (STATE_OK); 469 exit (STATE_OK);
470 case '?': /* error */ 470 case '?': /* error */
471 usage2 (_("Unknown argument"), optarg); 471 usage5 ();
472 } 472 }
473 } 473 }
474 474
diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c
index faa3cedb..7e1bd38b 100644
--- a/plugins/check_tcp.c
+++ b/plugins/check_tcp.c
@@ -443,7 +443,7 @@ process_arguments (int argc, char **argv)
443 443
444 switch (c) { 444 switch (c) {
445 case '?': /* print short usage statement if args not parsable */ 445 case '?': /* print short usage statement if args not parsable */
446 usage2 (_("Unknown argument"), optarg); 446 usage5 ();
447 case 'h': /* help */ 447 case 'h': /* help */
448 print_help (); 448 print_help ();
449 exit (STATE_OK); 449 exit (STATE_OK);
diff --git a/plugins/check_time.c b/plugins/check_time.c
index ca420566..d3af3b0c 100644
--- a/plugins/check_time.c
+++ b/plugins/check_time.c
@@ -232,7 +232,7 @@ process_arguments (int argc, char **argv)
232 232
233 switch (c) { 233 switch (c) {
234 case '?': /* print short usage statement if args not parsable */ 234 case '?': /* print short usage statement if args not parsable */
235 usage2 (_("Unknown argument"), optarg); 235 usage5 ();
236 case 'h': /* help */ 236 case 'h': /* help */
237 print_help (); 237 print_help ();
238 exit (STATE_OK); 238 exit (STATE_OK);
diff --git a/plugins/check_ups.c b/plugins/check_ups.c
index 280b3fb6..56438bb2 100644
--- a/plugins/check_ups.c
+++ b/plugins/check_ups.c
@@ -494,7 +494,7 @@ process_arguments (int argc, char **argv)
494 494
495 switch (c) { 495 switch (c) {
496 case '?': /* help */ 496 case '?': /* help */
497 usage2 (_("Unknown argument"), optarg); 497 usage5 ();
498 case 'H': /* hostname */ 498 case 'H': /* hostname */
499 if (is_host (optarg)) { 499 if (is_host (optarg)) {
500 server_address = optarg; 500 server_address = optarg;
diff --git a/plugins/check_users.c b/plugins/check_users.c
index 0c62e3b1..8e5f23d7 100644
--- a/plugins/check_users.c
+++ b/plugins/check_users.c
@@ -156,7 +156,7 @@ process_arguments (int argc, char **argv)
156 156
157 switch (c) { 157 switch (c) {
158 case '?': /* print short usage statement if args not parsable */ 158 case '?': /* print short usage statement if args not parsable */
159 usage2 (_("Unknown argument"), optarg); 159 usage5 ();
160 case 'h': /* help */ 160 case 'h': /* help */
161 print_help (); 161 print_help ();
162 exit (STATE_OK); 162 exit (STATE_OK);
diff --git a/plugins/negate.c b/plugins/negate.c
index 45c03269..8b2dff0e 100644
--- a/plugins/negate.c
+++ b/plugins/negate.c
@@ -189,7 +189,7 @@ process_arguments (int argc, char **argv)
189 189
190 switch (c) { 190 switch (c) {
191 case '?': /* help */ 191 case '?': /* help */
192 usage2 (_("Unknown argument"), optarg); 192 usage5 ();
193 break; 193 break;
194 case 'h': /* help */ 194 case 'h': /* help */
195 print_help (); 195 print_help ();
diff --git a/plugins/urlize.c b/plugins/urlize.c
index 7793e9a8..612dd14d 100644
--- a/plugins/urlize.c
+++ b/plugins/urlize.c
@@ -100,7 +100,7 @@ main (int argc, char **argv)
100 break; 100 break;
101 case '?': 101 case '?':
102 default: 102 default:
103 usage2 (_("Unknown argument"), optarg); 103 usage5 ();
104 } 104 }
105 } 105 }
106 106
diff --git a/plugins/utils.c b/plugins/utils.c
index 2b3accea..7e1e58a2 100644
--- a/plugins/utils.c
+++ b/plugins/utils.c
@@ -94,6 +94,13 @@ usage4 (const char *msg)
94 exit (STATE_UNKNOWN); 94 exit (STATE_UNKNOWN);
95} 95}
96 96
97void
98usage5 (void)
99{
100 print_usage();
101 exit (STATE_UNKNOWN);
102}
103
97char * 104char *
98clean_revstring (const char *revstring) 105clean_revstring (const char *revstring)
99{ 106{
diff --git a/plugins/utils.h b/plugins/utils.h
index 0d00ce85..f15a7b16 100644
--- a/plugins/utils.h
+++ b/plugins/utils.h
@@ -80,8 +80,9 @@ int max_state (int a, int b);
80void usage (const char *) __attribute__((noreturn)); 80void usage (const char *) __attribute__((noreturn));
81void usage2(const char *, const char *) __attribute__((noreturn)); 81void usage2(const char *, const char *) __attribute__((noreturn));
82void usage3(const char *, int) __attribute__((noreturn)); 82void usage3(const char *, int) __attribute__((noreturn));
83void usage4(const char *); 83void usage4(const char *) __attribute__((noreturn));
84void usage_va(const char *fmt, ...); 84void usage5(void) __attribute__((noreturn));
85void usage_va(const char *fmt, ...) __attribute__((noreturn));
85 86
86const char *state_text (int); 87const char *state_text (int);
87 88