--- rc_cliopt.c 2002/04/12 19:15:12 1.3
+++ rc_cliopt.c 2002/04/22 12:16:39 1.4
@@ -88,95 +88,97 @@
* processing the corresponding option *
* and update option table accordingly *
***************************************/
-rc_return_t clioptProcess(int cliOption)
+rc_return_t clioptProcess(int cliOption, const char *szArg)
{
switch (cliOption) {
+ /* Begin concrete (digital) options */
case RC_USE_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Usage */
break;
case RC_DBG_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Debug */
break;
case RC_VER_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Version */
break;
case RC_EVL_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Eval */
break;
case RC_HLP_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Help */
break;
case RC_INF_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Info */
break;
case RC_LBL_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Label */
break;
case RC_PRN_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Print */
break;
case RC_SIL_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Silent */
break;
case RC_RAW_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Raw */
break;
case RC_VRB_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Verbose */
break;
case RC_EXC_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup("1"); /* Exec */
break;
+ /* Begin abstract (nondigital) options */
case RC_LOC_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Locations */
break;
case RC_CNF_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Conf file */
break;
case RC_FNC_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Func file */
break;
case RC_QRY_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Format */
break;
case RC_TMP_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Temp dir */
break;
case RC_OWN_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* User name */
break;
case RC_GRP_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Group name */
break;
case RC_MSK_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Umask */
break;
case RC_ASS_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Assign regex */
break;
case RC_DEF_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Label regex */
break;
case RC_REF_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Ref regex */
break;
case RC_PRM_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Params regex */
break;
case RC_TRM_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Terminal regex */
break;
case RC_NCF_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Config name */
break;
case RC_CMN_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Common name */
break;
case RC_DFL_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Default name */
break;
case RC_ERR_VAL:
- m_szOptuples[cliOption] = strdup("1");
+ m_szOptuples[cliOption] = strdup(szArg); /* Error name */
break;
default :
break;
@@ -193,18 +195,18 @@
{
static struct popt_option optionsTable[] = {
/* Long options with short keys but no arguments */
- { RC_USE_NAME, '?', POPT_ARG_NONE, 0, RC_USE_VAL, RC_USE_DESC, NULL },
- { RC_DBG_NAME, 'd', POPT_ARG_NONE, 0, RC_DBG_VAL, RC_DBG_DESC, NULL },
- { RC_VER_NAME, 'V', POPT_ARG_NONE, 0, RC_VER_VAL, RC_VER_DESC, NULL },
- { RC_EVL_NAME, 'e', POPT_ARG_NONE, 0, RC_EVL_VAL, RC_EVL_DESC, NULL },
- { RC_HLP_NAME, 'h', POPT_ARG_NONE, 0, RC_HLP_VAL, RC_HLP_DESC, NULL },
- { RC_INF_NAME, 'i', POPT_ARG_NONE, 0, RC_INF_VAL, RC_INF_DESC, NULL },
- { RC_LBL_NAME, 'l', POPT_ARG_NONE, 0, RC_LBL_VAL, RC_LBL_DESC, NULL },
- { RC_PRN_NAME, 'p', POPT_ARG_NONE, 0, RC_PRN_VAL, RC_PRN_DESC, NULL },
- { RC_SIL_NAME, 's', POPT_ARG_NONE, 0, RC_SIL_VAL, RC_SIL_DESC, NULL },
- { RC_RAW_NAME, 'r', POPT_ARG_NONE, 0, RC_RAW_VAL, RC_RAW_DESC, NULL },
- { RC_VRB_NAME, 'v', POPT_ARG_NONE, 0, RC_VRB_VAL, RC_VRB_DESC, NULL },
- { RC_EXC_NAME, 'x', POPT_ARG_NONE, 0, RC_EXC_VAL, RC_EXC_DESC, NULL },
+ {RC_USE_NAME, '?', POPT_ARG_NONE, 0, RC_USE_VAL, RC_USE_DESC, NULL},
+ {RC_DBG_NAME, 'd', POPT_ARG_NONE, 0, RC_DBG_VAL, RC_DBG_DESC, NULL},
+ {RC_VER_NAME, 'V', POPT_ARG_NONE, 0, RC_VER_VAL, RC_VER_DESC, NULL},
+ {RC_EVL_NAME, 'e', POPT_ARG_NONE, 0, RC_EVL_VAL, RC_EVL_DESC, NULL},
+ {RC_HLP_NAME, 'h', POPT_ARG_NONE, 0, RC_HLP_VAL, RC_HLP_DESC, NULL},
+ {RC_INF_NAME, 'i', POPT_ARG_NONE, 0, RC_INF_VAL, RC_INF_DESC, NULL},
+ {RC_LBL_NAME, 'l', POPT_ARG_NONE, 0, RC_LBL_VAL, RC_LBL_DESC, NULL},
+ {RC_PRN_NAME, 'p', POPT_ARG_NONE, 0, RC_PRN_VAL, RC_PRN_DESC, NULL},
+ {RC_SIL_NAME, 's', POPT_ARG_NONE, 0, RC_SIL_VAL, RC_SIL_DESC, NULL},
+ {RC_RAW_NAME, 'r', POPT_ARG_NONE, 0, RC_RAW_VAL, RC_RAW_DESC, NULL},
+ {RC_VRB_NAME, 'v', POPT_ARG_NONE, 0, RC_VRB_VAL, RC_VRB_DESC, NULL},
+ {RC_EXC_NAME, 'x', POPT_ARG_NONE, 0, RC_EXC_VAL, RC_EXC_DESC, NULL},
/* Single argument long options with short keys */
{RC_LOC_NAME, 'L', POPT_ARG_STRING, 0, RC_LOC_VAL, RC_LOC_DESC, "regx"},
@@ -214,22 +216,22 @@
{RC_TMP_NAME, 't', POPT_ARG_STRING, 0, RC_TMP_VAL, RC_TMP_DESC, "path"},
/* Single argument long options without short keys */
- { RC_OWN_NAME, 0, POPT_ARG_STRING, 0, RC_OWN_VAL, RC_OWN_DESC, "user" },
- { RC_GRP_NAME, 0, POPT_ARG_STRING, 0, RC_GRP_VAL, RC_GRP_DESC, "group"},
- { RC_MSK_NAME, 0, POPT_ARG_INT, 0, RC_MSK_VAL, RC_MSK_DESC, "umask"},
- { RC_ASS_NAME, 0, POPT_ARG_STRING, 0, RC_ASS_VAL, RC_ASS_DESC, "regx" },
- { RC_DEF_NAME, 0, POPT_ARG_STRING, 0, RC_DEF_VAL, RC_DEF_DESC, "regx" },
- { RC_REF_NAME, 0, POPT_ARG_STRING, 0, RC_REF_VAL, RC_REF_DESC, "regx" },
- { RC_PRM_NAME, 0, POPT_ARG_STRING, 0, RC_PRM_VAL, RC_PRM_DESC, "regx" },
- { RC_TRM_NAME, 0, POPT_ARG_STRING, 0, RC_TRM_VAL, RC_TRM_DESC, "regx" },
- { RC_NCF_NAME, 0, POPT_ARG_STRING, 0, RC_NCF_VAL, RC_NCF_DESC, "name" },
- { RC_CMN_NAME, 0, POPT_ARG_STRING, 0, RC_CMN_VAL, RC_CMN_DESC, "name" },
- { RC_DFL_NAME, 0, POPT_ARG_STRING, 0, RC_DFL_VAL, RC_DFL_DESC, "name" },
- { RC_ERR_NAME, 0, POPT_ARG_STRING, 0, RC_ERR_VAL, RC_ERR_DESC, "name" },
+ {RC_OWN_NAME, 0, POPT_ARG_STRING, 0, RC_OWN_VAL, RC_OWN_DESC, "user"},
+ {RC_GRP_NAME, 0, POPT_ARG_STRING, 0, RC_GRP_VAL, RC_GRP_DESC, "group"},
+ {RC_MSK_NAME, 0, POPT_ARG_INT, 0, RC_MSK_VAL, RC_MSK_DESC, "umask"},
+ {RC_ASS_NAME, 0, POPT_ARG_STRING, 0, RC_ASS_VAL, RC_ASS_DESC, "regx"},
+ {RC_DEF_NAME, 0, POPT_ARG_STRING, 0, RC_DEF_VAL, RC_DEF_DESC, "regx"},
+ {RC_REF_NAME, 0, POPT_ARG_STRING, 0, RC_REF_VAL, RC_REF_DESC, "regx"},
+ {RC_PRM_NAME, 0, POPT_ARG_STRING, 0, RC_PRM_VAL, RC_PRM_DESC, "regx"},
+ {RC_TRM_NAME, 0, POPT_ARG_STRING, 0, RC_TRM_VAL, RC_TRM_DESC, "regx"},
+ {RC_NCF_NAME, 0, POPT_ARG_STRING, 0, RC_NCF_VAL, RC_NCF_DESC, "name"},
+ {RC_CMN_NAME, 0, POPT_ARG_STRING, 0, RC_CMN_VAL, RC_CMN_DESC, "name"},
+ {RC_DFL_NAME, 0, POPT_ARG_STRING, 0, RC_DFL_VAL, RC_DFL_DESC, "name"},
+ {RC_ERR_NAME, 0, POPT_ARG_STRING, 0, RC_ERR_VAL, RC_ERR_DESC, "name"},
/* Special stuff */
POPT_AUTOHELP
- { NULL, 0, 0, NULL, 0 }
+ {NULL, 0, 0, NULL, 0}
};
ex_t Except;
@@ -248,7 +250,7 @@
/* Now do options processing */
while ((cliOpt = popt_getnextopt(optCon)) >= 0)
ex_try {
- clioptProcess(cliOpt);
+ clioptProcess(cliOpt, popt_getoptarg(optCon));
}
ex_catch(Except) {
if ((rc_return_t)Except.ex_value != RC_ERR_USE)
|