Exemple #1
0
static void
cmd_endian_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                     const char *text, size_t text_len, size_t token_point)
{
    if (token_point != 1)
        return;

    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "big");
    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "little");
}
Exemple #2
0
static void
cmd_shift_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                    char * const *tokens, const char *text, size_t text_len,
                    size_t token_point)
{
    if (token_point != 1)
        return;

    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "dr");
    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "ir");
}
Exemple #3
0
static void
cmd_print_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                    const char *text, size_t text_len, size_t token_point)
{
    if (token_point != 1)
        return;

    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "chain");
    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "bus");
    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "signals");
    urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "instructions");
}
Exemple #4
0
static void
cmd_flashmem_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                       const char *text, size_t text_len, size_t token_point)
{
    switch (token_point)
    {
    case 1: /* [addr|msbin] */
        break;

    case 2: /* filename */
    {
#ifdef HAVE_LIBREADLINE
        int state;
        char *match;

        state = 0;
        while (1)
        {
            match = rl_filename_completion_function (text, state++);
            if (!match)
                break;
            urj_completion_add_match_dupe (matches, match_cnt, match);
            free (match);
        }
#endif
        break;
    }

    case 3: /* [noverify] */
        urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "noverify");
        break;
    }
}
Exemple #5
0
static void
cmd_set_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                  char * const *tokens, const char *text, size_t text_len,
                  size_t token_point)
{
    static const char * const dir[] = {
        "in", "out",
    };
    static const char * const data[] = {
        "0", "1",
    };

    switch (token_point)
    {
    case 1:
        urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "signal");
        break;

    case 2:  /* name */
        cmd_signal_complete (chain, matches, match_cnt, text, text_len);
        break;

    case 3:  /* direction */
        urj_completion_mayben_add_matches (matches, match_cnt, text, text_len,
                                           dir);
        break;

    case 4:  /* value */
        if (!strcmp (tokens[3], "out"))
            urj_completion_mayben_add_matches (matches, match_cnt, text,
                                               text_len, data);
        break;
    }
}
Exemple #6
0
void
urj_completion_mayben_add_matches_num (char ***matches, size_t *cnt,
                                       const char *text, size_t text_len,
                                       const char * const *matchs, size_t num)
{
    size_t n;

    for (n = 0; n < num; ++n)
        urj_completion_mayben_add_match (matches, cnt, text, text_len,
                                         matchs[n]);
}
Exemple #7
0
void
urj_completion_mayben_add_param_list (char ***matches, size_t *cnt,
                                      const char *text, size_t text_len,
                                      urj_param_list_t param_list)
{
    size_t i;

    for (i = 0; i < param_list.n; ++i)
        urj_completion_mayben_add_match (matches, cnt, text, text_len,
                                         param_list.list[i].string);
}
Exemple #8
0
static void
cmd_initbus_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                      const char *text, size_t text_len, size_t token_point)
{
    size_t i;

    if (token_point != 1)
        return;

    for (i = 0; urj_bus_drivers[i]; i++)
        urj_completion_mayben_add_match (matches, match_cnt, text, text_len,
                                         urj_bus_drivers[i]->name);
}
Exemple #9
0
static void
cmd_help_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                   const char *text, size_t text_len, size_t token_point)
{
    size_t i;

    /* Completing the command itself will come here as token 0 */
    if (token_point > 1)
        return;

    for (i = 0; urj_cmds[i]; ++i)
        urj_completion_mayben_add_match (matches, match_cnt, text, text_len,
                                         urj_cmds[i]->name);
}
Exemple #10
0
static void
cmd_get_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                  char * const *tokens, const char *text, size_t text_len,
                  size_t token_point)
{
    switch (token_point)
    {
    case 1:
        urj_completion_mayben_add_match (matches, match_cnt, text, text_len, "signal");
        break;

    case 2:
        cmd_signal_complete (chain, matches, match_cnt, text, text_len);
        break;
    }
}
Exemple #11
0
static void
cmd_initbus_complete (urj_chain_t *chain, char ***matches, size_t *match_cnt,
                      char * const *tokens, const char *text, size_t text_len,
                      size_t token_point)
{
    size_t i;

    switch (token_point)
    {
    case 1:
        for (i = 0; urj_bus_drivers[i]; ++i)
            urj_completion_mayben_add_match (matches, match_cnt, text, text_len,
                                             urj_bus_drivers[i]->name);
        break;
    default:
        urj_completion_mayben_add_param_list (matches, match_cnt, text,
                                              text_len, urj_bus_param_list);
        break;
    }
}
Exemple #12
0
void
urj_completion_maybe_add_match (char ***matches, size_t *cnt, const char *text,
                                const char *match)
{
    urj_completion_mayben_add_match (matches, cnt, text, strlen (text), match);
}