- Timestamp:
- Nov 28, 2012 3:02:01 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/cli/pjlib-util/src/pjlib-util/cli.c
r4299 r4302 561 561 } else if (!pj_stricmp2(&choice_attr->name, "desc")) { 562 562 pj_strassign(&choice_val->desc, &choice_attr->value); 563 } 563 } 564 choice_attr = choice_attr->next; 564 565 } 565 566 ++(arg->stat_choice_cnt); … … 609 610 } else if (!pj_stricmp2(&attr->value, "int")) { 610 611 arg->type = PJ_CLI_ARG_INT; 611 } else if (!pj_stricmp2(&attr->value, " CHOICE")) {612 } else if (!pj_stricmp2(&attr->value, "choice")) { 612 613 /* Get choice value */ 613 614 pj_cli_add_choice_node(cli, xml_node, arg, get_choice); … … 733 734 cmd->arg = (pj_cli_arg_spec *)pj_pool_zalloc(cli->pool, cmd->arg_cnt * 734 735 sizeof(pj_cli_arg_spec)); 736 735 737 for (i = 0; i < cmd->arg_cnt; i++) { 738 unsigned j; 739 736 740 pj_strdup(cli->pool, &cmd->arg[i].name, &args[i].name); 737 741 pj_strdup(cli->pool, &cmd->arg[i].desc, &args[i].desc); 742 cmd->arg[i].id = args[i].id; 738 743 cmd->arg[i].type = args[i].type; 739 744 cmd->arg[i].optional = args[i].optional; 745 cmd->arg[i].get_dyn_choice = args[i].get_dyn_choice; 746 cmd->arg[i].stat_choice_cnt = args[i].stat_choice_cnt; 747 cmd->arg[i].stat_choice_val = args[i].stat_choice_val; 740 748 } 741 749 } … … 1064 1072 PJ_ASSERT_RETURN(arg, PJ_EINVAL); 1065 1073 if (arg->type == PJ_CLI_ARG_CHOICE) { 1066 unsigned j; 1067 pj_cli_dyn_choice_param dyn_choice_param; 1074 unsigned j; 1068 1075 1069 1076 for (j=0; j < arg->stat_choice_cnt; ++j) { … … 1081 1088 } 1082 1089 } 1083 /* Get the dynamic choice values */ 1084 dyn_choice_param.sess = sess; 1085 dyn_choice_param.cmd = cmd; 1086 dyn_choice_param.arg_id = arg->id; 1087 dyn_choice_param.max_cnt = PJ_CLI_MAX_CHOICE_VAL; 1088 dyn_choice_param.pool = pool; 1089 dyn_choice_param.cnt = 0; 1090 1091 (*arg->get_dyn_choice)(&dyn_choice_param); 1092 for (j=0; j < dyn_choice_param.cnt; ++j) { 1093 pj_cli_arg_choice_val *choice = &dyn_choice_param.choice[j]; 1094 pj_strassign(&info->hint[info->hint_cnt].name, &choice->value); 1095 pj_strassign(&info->hint[info->hint_cnt].desc, &choice->desc); 1096 ++info->hint_cnt; 1090 if (arg->get_dyn_choice) { 1091 pj_cli_dyn_choice_param dyn_choice_param; 1092 static const pj_str_t choice_str = {"choice", 6}; 1093 1094 /* Get the dynamic choice values */ 1095 dyn_choice_param.sess = sess; 1096 dyn_choice_param.cmd = cmd; 1097 dyn_choice_param.arg_id = arg->id; 1098 dyn_choice_param.max_cnt = PJ_CLI_MAX_CHOICE_VAL; 1099 dyn_choice_param.pool = pool; 1100 dyn_choice_param.cnt = 0; 1101 1102 (*arg->get_dyn_choice)(&dyn_choice_param); 1103 for (j=0; j < dyn_choice_param.cnt; ++j) { 1104 pj_cli_arg_choice_val *choice = &dyn_choice_param.choice[j]; 1105 if (!pj_strnicmp(&choice->value, cmd_val, cmd_val->slen)) { 1106 pj_strassign(&info->hint[info->hint_cnt].name, &choice->value); 1107 pj_strassign(&info->hint[info->hint_cnt].type, &choice_str); 1108 pj_strassign(&info->hint[info->hint_cnt].desc, &choice->desc); 1109 ++info->hint_cnt; 1110 } 1111 } 1097 1112 } 1098 1113 } else {
Note: See TracChangeset
for help on using the changeset viewer.