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