Beispiel #1
0
void shell_write_char(EditState *e, int c)
{
    char ch;

    if (e->interactive) {
        ShellState *s = e->b->priv_data;

        ch = c;
        tty_write(s, &ch, 1);
    } else {
        switch (c) {
        case 4:
            do_delete_char(e);
            break;
        case 9:
            do_tab(e);
            break;
        case 11:
            do_kill_region(e, 2);
            break;
        case 127:
            do_backspace(e);
            break;
        case '\r':
            do_return(e);
            break;
        default:
            text_write_char(e, c);
            break;
        }
    }
}
Beispiel #2
0
t_line	*move_word2(char *key, t_line *line, int i, int flag)
{
	int		end;
	int		c;

	c = line->pos - ft_strlen(line->prompt);
	end = ft_strlen(line->cmd) + (int)ft_strlen(line->prompt);
	if (OPTR)
	{
		while (((line->cmd[c] != ' ' && line->cmd[c] != '\t') || i == 1)
				&& line->pos < end)
		{
			i = 0;
			tputs(tgetstr("nd", NULL), 1, tputchar);
			line->col++;
			line->pos++;
			c++;
			line = check_size(line, key);
		}
	}
	else if (TAB)
		line = do_tab(line, flag);
	return (line);
}