Esempio n. 1
0
static int
search_cmd_sub(int cmd_id, int *pmatch_sub_id, char *sub_name, int is_print)
{

    int cmd_sub_no, pmatch_sub_nr = 0, fmatch_sub_save = GCMD_DESC_NO_MATCH;

    *pmatch_sub_id = GCMD_DESC_NO_MATCH;

    /*search for full matched */
    for (cmd_sub_no = 0; GCMD_SUB_DESC_VALID(cmd_id, cmd_sub_no); cmd_sub_no++)
    {
        if (!GCMD_SUB_NAME(cmd_id, cmd_sub_no))
            continue;

        if (!strcasecmp(sub_name, GCMD_SUB_NAME(cmd_id, cmd_sub_no)))
        {
            /*full matched */
            printc(is_print, "%-10s\t%s\n", GCMD_SUB_ACT(cmd_id, cmd_sub_no), GCMD_SUB_MEMO(cmd_id, cmd_sub_no));
            //*pmatch_sub_id = cmd_sub_no;
            if(fmatch_sub_save == GCMD_DESC_NO_MATCH)
            {
                *pmatch_sub_id = fmatch_sub_save = cmd_sub_no;
            }

        }
        else if (!strncasecmp(sub_name, GCMD_SUB_NAME(cmd_id, cmd_sub_no), strlen(sub_name)))
        {
            if(fmatch_sub_save != GCMD_DESC_NO_MATCH)
                continue;

            /*partly matched */
            if (*pmatch_sub_id == GCMD_DESC_NO_MATCH || (GCMD_SUB_NAME(cmd_id, cmd_sub_no-1) &&
                    strcasecmp(GCMD_SUB_NAME(cmd_id, cmd_sub_no), GCMD_SUB_NAME(cmd_id, cmd_sub_no-1))))
            {
                printc(is_print, "%-10s\t", GCMD_SUB_NAME(cmd_id, cmd_sub_no));
                pmatch_sub_nr++;
                *pmatch_sub_id = cmd_sub_no;
            }
        }
    }

    if (pmatch_sub_nr > 1)
        printc(is_print, "\n");

    return pmatch_sub_nr;
}
Esempio n. 2
0
static void
print_sub_all (int cmd_id) 
{
    int cmd_sub_no = 0, cmd_sub_nr = 0;
    for (cmd_sub_no = 0; GCMD_SUB_DESC_VALID(cmd_id, cmd_sub_no); cmd_sub_no++) {

        if (!GCMD_SUB_NAME(cmd_id, cmd_sub_no))
            continue;
        if(cmd_sub_no == 0 || strcasecmp(GCMD_SUB_NAME(cmd_id, cmd_sub_no),
                                            GCMD_SUB_NAME(cmd_id, cmd_sub_no-1))) {      
            printf("%-10s\t", GCMD_SUB_NAME(cmd_id, cmd_sub_no));
            if(cmd_sub_nr && !((cmd_sub_nr+1) %5)){
                printf("\n");
            }
            cmd_sub_nr++;
        }    
    }
    printf("\n");
}
Esempio n. 3
0
static int
search_cmd_action(int cmd_id, int *pmatch_act_id, char *sub_name, char *action, int is_print)
{
    int cmd_act_no = 0, pmatch_act_nr = 0;

    *pmatch_act_id = GCMD_DESC_NO_MATCH;

    /*search for full matched */
    for (cmd_act_no = 0; GCMD_SUB_DESC_VALID(cmd_id, cmd_act_no); cmd_act_no++)
    {

        if (strcasecmp(sub_name, GCMD_SUB_NAME(cmd_id, cmd_act_no)))
            continue;

        if (!GCMD_SUB_ACT(cmd_id, cmd_act_no))
            continue;

        if (!strcasecmp(action, GCMD_SUB_ACT(cmd_id, cmd_act_no)))
        {
            /*full matched */
            if (*pmatch_act_id == GCMD_DESC_NO_MATCH)
            {
                printc(is_print, "%-10s\n", GCMD_SUB_USAGE(cmd_id, cmd_act_no));
            }

            *pmatch_act_id = cmd_act_no;
            break;
        }
        else if (!strncasecmp(action, GCMD_SUB_ACT(cmd_id, cmd_act_no), strlen(action)))
        {
            /*partly matched */
            if (*pmatch_act_id == GCMD_DESC_NO_MATCH ||( GCMD_SUB_ACT(cmd_id, cmd_act_no-1) &&
                    strcasecmp(GCMD_SUB_ACT(cmd_id, cmd_act_no), GCMD_SUB_ACT(cmd_id, cmd_act_no-1))))
            {
                printc(is_print, "%-10s\t%s\n", GCMD_SUB_ACT(cmd_id, cmd_act_no), GCMD_SUB_MEMO(cmd_id, cmd_act_no));
                pmatch_act_nr++;
                *pmatch_act_id = cmd_act_no;
            }
        }
    }

    return pmatch_act_nr;
}