|
1 | 1 | /*
|
2 |
| - * End-of-run cleanup helper code used by cleanup.c. |
| 2 | + * Allow an arbitrary sequence of case labels. |
3 | 3 | *
|
4 |
| - * Copyright (C) 2006-2008 Wayne Davison |
| 4 | + * Copyright (C) 2006-2010 Wayne Davison |
5 | 5 | *
|
6 | 6 | * This program is free software; you can redistribute it and/or modify
|
7 | 7 | * it under the terms of the GNU General Public License as published by
|
|
17 | 17 | * with this program; if not, visit the http://fsf.org website.
|
18 | 18 | */
|
19 | 19 |
|
20 |
| -/* This is included by cleanup.c multiple times, once for every segement in |
21 |
| - * the _exit_cleanup() code. This produces the next "case N:" statement in |
22 |
| - * sequence and increments the cleanup_step variable by 1. This ensures that |
23 |
| - * our case statements never get out of whack due to added/removed steps. */ |
| 20 | +/* This is included multiple times, once for every segement in a switch statement. |
| 21 | + * This produces the next "case N:" statement in sequence. */ |
24 | 22 |
|
25 |
| -#if !defined EXIT_CLEANUP_CASE_0 |
26 |
| -#define EXIT_CLEANUP_CASE_0 |
| 23 | +#if !defined CASE_N_STATE_0 |
| 24 | +#define CASE_N_STATE_0 |
27 | 25 | case 0:
|
28 |
| -#elif !defined EXIT_CLEANUP_CASE_1 |
29 |
| -#define EXIT_CLEANUP_CASE_1 |
| 26 | +#elif !defined CASE_N_STATE_1 |
| 27 | +#define CASE_N_STATE_1 |
30 | 28 | case 1:
|
31 |
| -#elif !defined EXIT_CLEANUP_CASE_2 |
32 |
| -#define EXIT_CLEANUP_CASE_2 |
| 29 | +#elif !defined CASE_N_STATE_2 |
| 30 | +#define CASE_N_STATE_2 |
33 | 31 | case 2:
|
34 |
| -#elif !defined EXIT_CLEANUP_CASE_3 |
35 |
| -#define EXIT_CLEANUP_CASE_3 |
| 32 | +#elif !defined CASE_N_STATE_3 |
| 33 | +#define CASE_N_STATE_3 |
36 | 34 | case 3:
|
37 |
| -#elif !defined EXIT_CLEANUP_CASE_4 |
38 |
| -#define EXIT_CLEANUP_CASE_4 |
| 35 | +#elif !defined CASE_N_STATE_4 |
| 36 | +#define CASE_N_STATE_4 |
39 | 37 | case 4:
|
40 |
| -#elif !defined EXIT_CLEANUP_CASE_5 |
41 |
| -#define EXIT_CLEANUP_CASE_5 |
| 38 | +#elif !defined CASE_N_STATE_5 |
| 39 | +#define CASE_N_STATE_5 |
42 | 40 | case 5:
|
43 |
| -#elif !defined EXIT_CLEANUP_CASE_6 |
44 |
| -#define EXIT_CLEANUP_CASE_6 |
| 41 | +#elif !defined CASE_N_STATE_6 |
| 42 | +#define CASE_N_STATE_6 |
45 | 43 | case 6:
|
46 |
| -#elif !defined EXIT_CLEANUP_CASE_7 |
47 |
| -#define EXIT_CLEANUP_CASE_7 |
| 44 | +#elif !defined CASE_N_STATE_7 |
| 45 | +#define CASE_N_STATE_7 |
48 | 46 | case 7:
|
49 |
| -#elif !defined EXIT_CLEANUP_CASE_8 |
50 |
| -#define EXIT_CLEANUP_CASE_8 |
| 47 | +#elif !defined CASE_N_STATE_8 |
| 48 | +#define CASE_N_STATE_8 |
51 | 49 | case 8:
|
52 |
| -#elif !defined EXIT_CLEANUP_CASE_9 |
53 |
| -#define EXIT_CLEANUP_CASE_9 |
| 50 | +#elif !defined CASE_N_STATE_9 |
| 51 | +#define CASE_N_STATE_9 |
54 | 52 | case 9:
|
55 |
| -#elif !defined EXIT_CLEANUP_CASE_10 |
56 |
| -#define EXIT_CLEANUP_CASE_10 |
| 53 | +#elif !defined CASE_N_STATE_10 |
| 54 | +#define CASE_N_STATE_10 |
57 | 55 | case 10:
|
58 |
| -#elif !defined EXIT_CLEANUP_CASE_11 |
59 |
| -#define EXIT_CLEANUP_CASE_11 |
| 56 | +#elif !defined CASE_N_STATE_11 |
| 57 | +#define CASE_N_STATE_11 |
60 | 58 | case 11:
|
61 |
| -#elif !defined EXIT_CLEANUP_CASE_12 |
62 |
| -#define EXIT_CLEANUP_CASE_12 |
| 59 | +#elif !defined CASE_N_STATE_12 |
| 60 | +#define CASE_N_STATE_12 |
63 | 61 | case 12:
|
64 |
| -#elif !defined EXIT_CLEANUP_CASE_13 |
65 |
| -#define EXIT_CLEANUP_CASE_13 |
| 62 | +#elif !defined CASE_N_STATE_13 |
| 63 | +#define CASE_N_STATE_13 |
66 | 64 | case 13:
|
67 |
| -#elif !defined EXIT_CLEANUP_CASE_14 |
68 |
| -#define EXIT_CLEANUP_CASE_14 |
| 65 | +#elif !defined CASE_N_STATE_14 |
| 66 | +#define CASE_N_STATE_14 |
69 | 67 | case 14:
|
70 |
| -#elif !defined EXIT_CLEANUP_CASE_15 |
71 |
| -#define EXIT_CLEANUP_CASE_15 |
| 68 | +#elif !defined CASE_N_STATE_15 |
| 69 | +#define CASE_N_STATE_15 |
72 | 70 | case 15:
|
73 |
| -#elif !defined EXIT_CLEANUP_CASE_16 |
74 |
| -#define EXIT_CLEANUP_CASE_16 |
| 71 | +#elif !defined CASE_N_STATE_16 |
| 72 | +#define CASE_N_STATE_16 |
75 | 73 | case 16:
|
76 | 74 | #else
|
77 | 75 | #error Need to add more case statements!
|
78 | 76 | #endif
|
79 |
| - cleanup_step++; |
0 commit comments