[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] Changes to qemacs/shell.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] Changes to qemacs/shell.c |
Date: |
Wed, 01 Jun 2005 19:43:38 -0400 |
Index: qemacs/shell.c
diff -u qemacs/shell.c:1.14 qemacs/shell.c:1.15
--- qemacs/shell.c:1.14 Wed May 11 12:13:56 2005
+++ qemacs/shell.c Wed Jun 1 23:43:37 2005
@@ -127,10 +127,11 @@
struct winsize ws;
pty_fd = get_pty(tty_name);
- fcntl(pty_fd, F_SETFL, O_NONBLOCK);
- if (pty_fd < 0)
+ if (pty_fd < 0) {
+ put_status(NULL, "cannot get tty");
return -1;
-
+ }
+ fcntl(pty_fd, F_SETFL, O_NONBLOCK);
/* set dummy screen size */
ws.ws_col = 80;
ws.ws_row = 25;
@@ -139,8 +140,10 @@
ioctl(pty_fd, TIOCSWINSZ, &ws);
pid = fork();
- if (pid < 0)
+ if (pid < 0) {
+ put_status(NULL, "cannot fork");
return -1;
+ }
if (pid == 0) {
/* child process */
nb_fds = getdtablesize();
@@ -497,6 +500,7 @@
} else {
p = NULL;
}
+ break;
}
if (p)
tty_write(s, p, len);
@@ -677,15 +681,21 @@
switch (ESC2(s->esc1,c)) {
case ESC2('?','h'): /* set terminal mode */
/* 1047, 1048 -> cup mode:
+ * xterm 1049 private mode,
* should grab all keys while active!
*/
- if (s->esc_params[0] == 1047) {
+ if (s->esc_params[0] == 1047 ||
+ s->esc_params[0] == 1048 ||
+ s->esc_params[0] == 1049) {
s->grab_keys = 1;
qe_grab_keys(shell_key, s);
+ /* Should also clear screen */
}
break;
case ESC2('?','l'): /* reset terminal mode */
- if (s->esc_params[0] == 1047) {
+ if (s->esc_params[0] == 1047 ||
+ s->esc_params[0] == 1048 ||
+ s->esc_params[0] == 1049) {
qe_ungrab_keys();
s->grab_keys = 0;
}
@@ -1301,6 +1311,7 @@
CMD1( KEY_CTRL('d'), KEY_DELETE, "shell-delete-char", shell_write_char, 4)
CMD1( KEY_CTRL('i'), KEY_NONE, "shell-tabulate", shell_write_char, 9)
CMD1( KEY_CTRL('k'), KEY_NONE, "shell-kill-line", shell_write_char, 11)
+ CMD1( KEY_CTRL('y'), KEY_NONE, "shell-yank", shell_write_char, 25)
CMD_DEF_END,
};
- [Qemacs-commit] Changes to qemacs/shell.c,
Charlie Gordon <=