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; } }
static void cmd_salias_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 != 2) return; cmd_signal_complete (chain, matches, match_cnt, text, text_len); }
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; } }