char *history = get_home_dir(TELNET_HISTORY);
- if (history == NULL) {
+ if (!history) {
LOG_INFO("unable to get user home directory, telnet history will be disabled");
return;
}
char *history = get_home_dir(TELNET_HISTORY);
- if (history == NULL) {
+ if (!history) {
LOG_INFO("unable to get user home directory, telnet history will be disabled");
return;
}
i = t_con->current_history + 1;
i %= TELNET_LINE_HISTORY_SIZE;
- while (t_con->history[i] == NULL && num > 0) {
+ while (!t_con->history[i] && num > 0) {
i++;
i %= TELNET_LINE_HISTORY_SIZE;
num--;
bool ignore_cmd = false;
Jim_Cmd *jim_cmd = Jim_GetCommand(command_context->interp, elem, JIM_NONE);
- if (!jim_cmd)
+ if (!jim_cmd) {
+ /* Why we are here? Let's ignore it! */
ignore_cmd = true;
- else {
- if (!jim_cmd->isproc) {
- /* ignore commands without handler
- * and those with COMMAND_CONFIG mode */
- /* FIXME it's better to use jimcmd_is_ocd_command(jim_cmd)
- * or command_find_from_name(command_context->interp, name) */
- struct command *cmd = jim_cmd->u.native.privData;
- if (!cmd)
- ignore_cmd = true;
- /* make Valgrind happy by checking that cmd is not NULL */
- else if (cmd != NULL && !cmd->handler && !cmd->jim_handler)
- ignore_cmd = true;
- else if (cmd != NULL && cmd->mode == COMMAND_CONFIG)
- ignore_cmd = true;
+ } else if (jimcmd_is_oocd_command(jim_cmd)) {
+ struct command *cmd = jimcmd_privdata(jim_cmd);
+
+ if (cmd && !cmd->handler && !cmd->jim_handler) {
+ /* Initial part of a multi-word command. Ignore it! */
+ ignore_cmd = true;
+ } else if (cmd && cmd->mode == COMMAND_CONFIG) {
+ /* Not executable after config phase. Ignore it! */
+ ignore_cmd = true;
}
}
/* save only non-blank not repeating lines in the history */
char *prev_line = t_con->history[(t_con->current_history > 0) ?
t_con->current_history - 1 : TELNET_LINE_HISTORY_SIZE-1];
- if (*t_con->line && (prev_line == NULL ||
+ if (*t_con->line && (!prev_line ||
strcmp(t_con->line, prev_line))) {
/* if the history slot is already taken, free it */
free(t_con->history[t_con->next_history]);