int var_complete(int argc, char *argv[], char last_char, int maxv, char *cmdv[]) { static char tmp_buf[512]; int space; space = last_char == '\0' || last_char == ' ' || last_char == '\t'; if (space && argc == 1) return env_complete("", maxv, cmdv, sizeof(tmp_buf), tmp_buf); if (!space && argc == 2) return env_complete(argv[1], maxv, cmdv, sizeof(tmp_buf), tmp_buf); return 0; }
int var_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]) { int space; space = last_char == '\0' || isblank(last_char); if (space && argc == 1) return env_complete("", maxv, cmdv, sizeof(env_complete_buf), env_complete_buf, false); if (!space && argc == 2) return env_complete(argv[1], maxv, cmdv, sizeof(env_complete_buf), env_complete_buf, false); return 0; }
static int dollar_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]) { /* Make sure the last argument starts with a $. */ if (argc < 1 || argv[argc - 1][0] != '$' || last_char == '\0' || isblank(last_char)) return 0; return env_complete(argv[argc - 1], maxv, cmdv, sizeof(env_complete_buf), env_complete_buf, true); }