summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/Modules/zpty.c16
2 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 094569922..4bddff7c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2001-02-13 Sven Wischnowsky <wischnow@zsh.org>
+ * 13462: Src/Modules/zpty.c: try to make the -t option of zpty
+ smarter
+
* 13459: Completion/Core/_path_files: wehn using glob_complete,
don't treat everything starting with a tilde as a pattern
diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c
index f96ffa0e3..c69aa4e97 100644
--- a/Src/Modules/zpty.c
+++ b/Src/Modules/zpty.c
@@ -430,13 +430,19 @@ deleteallptycmds(void)
static void
checkptycmd(Ptycmd cmd)
{
- if (cmd->read != -1)
+ char c;
+ int r;
+
+ if (cmd->read != -1 || cmd->fin)
+ return;
+ if ((r = read(cmd->fd, &c, 1)) < 0) {
+ if (kill(cmd->pid, 0) < 0) {
+ cmd->fin = 1;
+ zclose(cmd->fd);
+ }
return;
- if (!read_poll(cmd->fd, &cmd->read, 0) &&
- kill(cmd->pid, 0) < 0) {
- cmd->fin = 1;
- zclose(cmd->fd);
}
+ if (r) cmd->read = (int) c;
}
static int