1 /*
2  * Copyright (c) 2016 Daichi GOTO
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #define _(X,Y,Z) settext(X,Y,Z)
29 #define _P(X) ES_PROMPT1(X)
30 #define _P2(X) ES_PROMPT2(X)
31 #define _S(X) ES_STDOUT(X)
32 #define _CMD(X) ES_CMD(X)
33 #define _OPT(X) ES_OPT(X)
34 #define _ARG(X) ES_ARG(X)
35 #define _ETC ES_UBAR("...")
36 
37 #define R_ARGC cmdargs.r_argc
38 #define R_ARGV cmdargs.r_argv
39 #define R_ARGV_MAX cmdargs.r_argv_max
40 #define R_ARGV_ARG1 cmdargs.r_argv_arg1
41 #define R_ARGV_ARG2 cmdargs.r_argv_arg2
42 #define R_ARGV_ARG3 cmdargs.r_argv_arg3
43 #define R_ARGV_DELIM cmdargs.r_argv_delim
44 #define R_INDEX_EXIST cmdargs.r_index_exist
45 #define R_INDEX_TO_ARGV cmdargs.r_index_to_argv
46 #define R_INDEX_MAX cmdargs.r_index_max
47 #define R_INDEX_IS_EXISTENCE 1
48 #define R_INDEX_IS_NOT_EXISTENCE 0
49 #define R_INDEX_IS_NONE -1
50 #define F_ARGC cmdargs.f_argc
51 #define F_ARGV cmdargs.f_argv
52 #define A_ARGC cmdargs.a_argc
53 #define A_ARGV cmdargs.a_argv
54 #define FLAG_a cmdargs.flags[0]
55 #define FLAG_b cmdargs.flags[1]
56 #define FLAG_c cmdargs.flags[2]
57 #define FLAG_d cmdargs.flags[3]
58 #define FLAG_e cmdargs.flags[4]
59 #define FLAG_f cmdargs.flags[5]
60 #define FLAG_g cmdargs.flags[6]
61 #define FLAG_h cmdargs.flags[7]
62 #define FLAG_i cmdargs.flags[8]
63 #define FLAG_j cmdargs.flags[9]
64 #define FLAG_k cmdargs.flags[10]
65 #define FLAG_l cmdargs.flags[11]
66 #define FLAG_m cmdargs.flags[12]
67 #define FLAG_n cmdargs.flags[13]
68 #define FLAG_o cmdargs.flags[14]
69 #define FLAG_p cmdargs.flags[15]
70 #define FLAG_q cmdargs.flags[16]
71 #define FLAG_r cmdargs.flags[17]
72 #define FLAG_s cmdargs.flags[18]
73 #define FLAG_t cmdargs.flags[19]
74 #define FLAG_u cmdargs.flags[20]
75 #define FLAG_v cmdargs.flags[21]
76 #define FLAG_w cmdargs.flags[22]
77 #define FLAG_x cmdargs.flags[23]
78 #define FLAG_y cmdargs.flags[24]
79 #define FLAG_z cmdargs.flags[25]
80 #define FLAG_A cmdargs.flags[26]
81 #define FLAG_B cmdargs.flags[27]
82 #define FLAG_C cmdargs.flags[28]
83 #define FLAG_D cmdargs.flags[29]
84 #define FLAG_E cmdargs.flags[30]
85 #define FLAG_F cmdargs.flags[31]
86 #define FLAG_G cmdargs.flags[32]
87 #define FLAG_H cmdargs.flags[33]
88 #define FLAG_I cmdargs.flags[34]
89 #define FLAG_J cmdargs.flags[35]
90 #define FLAG_K cmdargs.flags[36]
91 #define FLAG_L cmdargs.flags[37]
92 #define FLAG_M cmdargs.flags[38]
93 #define FLAG_N cmdargs.flags[39]
94 #define FLAG_O cmdargs.flags[40]
95 #define FLAG_P cmdargs.flags[41]
96 #define FLAG_Q cmdargs.flags[42]
97 #define FLAG_R cmdargs.flags[43]
98 #define FLAG_S cmdargs.flags[44]
99 #define FLAG_T cmdargs.flags[45]
100 #define FLAG_U cmdargs.flags[46]
101 #define FLAG_V cmdargs.flags[47]
102 #define FLAG_W cmdargs.flags[48]
103 #define FLAG_X cmdargs.flags[49]
104 #define FLAG_Y cmdargs.flags[50]
105 #define FLAG_Z cmdargs.flags[51]
106 #define FLAG_0 cmdargs.flags[52]
107 #define FLAG_1 cmdargs.flags[53]
108 #define FLAG_2 cmdargs.flags[54]
109 #define FLAG_3 cmdargs.flags[55]
110 #define FLAG_4 cmdargs.flags[56]
111 #define FLAG_5 cmdargs.flags[57]
112 #define FLAG_6 cmdargs.flags[58]
113 #define FLAG_7 cmdargs.flags[59]
114 #define FLAG_8 cmdargs.flags[60]
115 #define FLAG_9 cmdargs.flags[61]
116 #define FLAG_AT cmdargs.flags[62]
117 #define FLAG_a_ARG cmdargs.flags_arg[0]
118 #define FLAG_b_ARG cmdargs.flags_arg[1]
119 #define FLAG_c_ARG cmdargs.flags_arg[2]
120 #define FLAG_d_ARG cmdargs.flags_arg[3]
121 #define FLAG_e_ARG cmdargs.flags_arg[4]
122 #define FLAG_f_ARG cmdargs.flags_arg[5]
123 #define FLAG_g_ARG cmdargs.flags_arg[6]
124 #define FLAG_h_ARG cmdargs.flags_arg[7]
125 #define FLAG_i_ARG cmdargs.flags_arg[8]
126 #define FLAG_j_ARG cmdargs.flags_arg[9]
127 #define FLAG_k_ARG cmdargs.flags_arg[10]
128 #define FLAG_l_ARG cmdargs.flags_arg[11]
129 #define FLAG_m_ARG cmdargs.flags_arg[12]
130 #define FLAG_n_ARG cmdargs.flags_arg[13]
131 #define FLAG_o_ARG cmdargs.flags_arg[14]
132 #define FLAG_p_ARG cmdargs.flags_arg[15]
133 #define FLAG_q_ARG cmdargs.flags_arg[16]
134 #define FLAG_r_ARG cmdargs.flags_arg[17]
135 #define FLAG_s_ARG cmdargs.flags_arg[18]
136 #define FLAG_t_ARG cmdargs.flags_arg[19]
137 #define FLAG_u_ARG cmdargs.flags_arg[20]
138 #define FLAG_v_ARG cmdargs.flags_arg[21]
139 #define FLAG_w_ARG cmdargs.flags_arg[22]
140 #define FLAG_x_ARG cmdargs.flags_arg[23]
141 #define FLAG_y_ARG cmdargs.flags_arg[24]
142 #define FLAG_z_ARG cmdargs.flags_arg[25]
143 #define FLAG_A_ARG cmdargs.flags_arg[26]
144 #define FLAG_B_ARG cmdargs.flags_arg[27]
145 #define FLAG_C_ARG cmdargs.flags_arg[28]
146 #define FLAG_D_ARG cmdargs.flags_arg[29]
147 #define FLAG_E_ARG cmdargs.flags_arg[30]
148 #define FLAG_F_ARG cmdargs.flags_arg[31]
149 #define FLAG_G_ARG cmdargs.flags_arg[32]
150 #define FLAG_H_ARG cmdargs.flags_arg[33]
151 #define FLAG_I_ARG cmdargs.flags_arg[34]
152 #define FLAG_J_ARG cmdargs.flags_arg[35]
153 #define FLAG_K_ARG cmdargs.flags_arg[36]
154 #define FLAG_L_ARG cmdargs.flags_arg[37]
155 #define FLAG_M_ARG cmdargs.flags_arg[38]
156 #define FLAG_N_ARG cmdargs.flags_arg[39]
157 #define FLAG_O_ARG cmdargs.flags_arg[40]
158 #define FLAG_P_ARG cmdargs.flags_arg[41]
159 #define FLAG_Q_ARG cmdargs.flags_arg[42]
160 #define FLAG_R_ARG cmdargs.flags_arg[43]
161 #define FLAG_S_ARG cmdargs.flags_arg[44]
162 #define FLAG_T_ARG cmdargs.flags_arg[45]
163 #define FLAG_U_ARG cmdargs.flags_arg[46]
164 #define FLAG_V_ARG cmdargs.flags_arg[47]
165 #define FLAG_W_ARG cmdargs.flags_arg[48]
166 #define FLAG_X_ARG cmdargs.flags_arg[49]
167 #define FLAG_Y_ARG cmdargs.flags_arg[50]
168 #define FLAG_Z_ARG cmdargs.flags_arg[51]
169 #define FLAG_0_ARG cmdargs.flags_arg[52]
170 #define FLAG_1_ARG cmdargs.flags_arg[53]
171 #define FLAG_2_ARG cmdargs.flags_arg[54]
172 #define FLAG_3_ARG cmdargs.flags_arg[55]
173 #define FLAG_4_ARG cmdargs.flags_arg[56]
174 #define FLAG_5_ARG cmdargs.flags_arg[57]
175 #define FLAG_6_ARG cmdargs.flags_arg[58]
176 #define FLAG_7_ARG cmdargs.flags_arg[59]
177 #define FLAG_8_ARG cmdargs.flags_arg[60]
178 #define FLAG_9_ARG cmdargs.flags_arg[61]
179 #define FLAG_AT_ARG cmdargs.flags_arg[62]
180