add bracketed paste (by egmont). Closes T670

This commit is contained in:
Boris Faure 2014-01-06 21:51:23 +01:00
parent c3f40b8cd8
commit ac4117ce8a
4 changed files with 14 additions and 2 deletions

View File

@ -1869,7 +1869,17 @@ _getsel_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Selection_Data *ev)
tmp[i] = s[i];
if (tmp[i] == '\n') tmp[i] = '\r';
}
if (sd->pty->state.bracketed_paste)
termpty_write(sd->pty, "\x1b[200~",
sizeof("\x1b[200~") - 1);
termpty_write(sd->pty, tmp, ev->len - 1);
if (sd->pty->state.bracketed_paste)
termpty_write(sd->pty, "\x1b[201~",
sizeof("\x1b[201~") - 1);
free(tmp);
}
}

View File

@ -98,6 +98,7 @@ struct _Termstate
unsigned int reverse : 1;
unsigned int no_autorepeat : 1;
unsigned int cjk_ambiguous_wide : 1;
unsigned int bracketed_paste : 1;
};
struct _Termpty

View File

@ -845,9 +845,9 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, Eina_Unicode *ce)
else
_termpty_cursor_copy(&(ty->save), &(ty->state));
break;
case 2004: // ignore
case 2004:
handled = 1;
// INF("XXX: enable bracketed paste mode %i", mode);
ty->state.bracketed_paste = mode;
break;
case 7727: // ignore
handled = 1;

View File

@ -387,6 +387,7 @@ _termpty_reset_state(Termpty *ty)
ty->state.hidecursor = 0;
ty->state.crlf = 0;
ty->state.had_cr = 0;
ty->state.bracketed_paste = 0;
}
void