aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2003-01-10 16:16:44 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2003-01-10 16:16:44 +0000
commit329cc01d501ff2f809598474ffeda439e7aedd2e (patch)
treee1f0d8b90e36152ac90ec08dbfeac8929083b1ef
parentfix indent (diff)
downloadw3m-329cc01d501ff2f809598474ffeda439e7aedd2e.tar.gz
w3m-329cc01d501ff2f809598474ffeda439e7aedd2e.zip
[w3m-dev 03622] Re: Error occured while reset
* file.c (uncompress_stream): child process initialized * terms.c (close_tty): close unless stdin,out,err (reset_tty): flush_tty, close_tty (write1): flush_tty (refresh): flush_tty (flush_tty): check ttyf From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
-rw-r--r--ChangeLog12
-rw-r--r--file.c10
-rw-r--r--terms.c26
3 files changed, 28 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index e489a86..30c888d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+ * [w3m-dev 03622] Re: Error occured while reset
+ * file.c (uncompress_stream): child process initialized
+ * terms.c (close_tty): close unless stdin,out,err
+ (reset_tty): flush_tty, close_tty
+ (write1): flush_tty
+ (refresh): flush_tty
+ (flush_tty): check ttyf
+
+2003-01-11 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+
* [w3m-dev 03620] -m option and header
* buffer.c (reshapeBuffer): fix reading from stdin
fix -m option
@@ -6258,4 +6268,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.662 2003/01/10 16:08:19 ukai Exp $
+$Id: ChangeLog,v 1.663 2003/01/10 16:16:44 ukai Exp $
diff --git a/file.c b/file.c
index b57b016..cd63488 100644
--- a/file.c
+++ b/file.c
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.179 2003/01/10 16:08:21 ukai Exp $ */
+/* $Id: file.c,v 1.180 2003/01/10 16:16:45 ukai Exp $ */
#include "fm.h"
#include <sys/types.h>
#include "myctype.h"
@@ -7808,6 +7808,10 @@ uncompress_stream(URLFile *uf, char **src)
/* fd1[0]: read, fd1[1]: write */
if ((pid1 = fork()) == 0) {
reset_signals();
+ signal(SIGINT, SIG_IGN);
+ close_tty();
+ QuietMessage = TRUE;
+ fmInitialized = FALSE;
close(fd1[0]);
if (tmpf) {
#ifdef USE_BINMODE_STREAM
@@ -7825,10 +7829,6 @@ uncompress_stream(URLFile *uf, char **src)
/* child */
int pid2;
int fd2[2];
- if (fmInitialized) {
- close_tty();
- fmInitialized = FALSE;
- }
if (pipe(fd2) < 0) {
close(fd1[1]);
UFclose(uf);
diff --git a/terms.c b/terms.c
index 53a7018..d318250 100644
--- a/terms.c
+++ b/terms.c
@@ -1,4 +1,4 @@
-/* $Id: terms.c,v 1.42 2002/12/18 16:42:32 ukai Exp $ */
+/* $Id: terms.c,v 1.43 2003/01/10 16:16:45 ukai Exp $ */
/*
* An original curses library for EUC-kanji by Akinori ITO, December 1989
* revised by Akinori ITO, January 1995
@@ -362,12 +362,9 @@ typedef struct scline {
short eol;
} Screen;
-static
-TerminalMode d_ioval;
-static
-int tty;
-static
-FILE *ttyf;
+static TerminalMode d_ioval;
+static int tty = -1;
+static FILE *ttyf = NULL;
static
char bp[1024], funcstr[256];
@@ -556,7 +553,8 @@ set_cc(int spec, int val)
void
close_tty(void)
{
- close(tty);
+ if (tty > 2)
+ close(tty);
}
char *
@@ -582,10 +580,9 @@ reset_tty(void)
writestr(T_cl);
}
writestr(T_se); /* reset terminal */
- fflush(ttyf);
+ flush_tty();
TerminalSet(tty, &d_ioval);
- if (tty != 2)
- close(tty);
+ close_tty();
}
MySignalHandler
@@ -871,7 +868,7 @@ write1(char c)
putc(c, ttyf);
#endif /* not JP_CHARSET */
#ifdef SCREEN_DEBUG
- fflush(ttyf);
+ flush_tty();
#endif /* SCREEN_DEBUG */
return 0;
}
@@ -1427,7 +1424,7 @@ refresh(void)
#endif /* JP_CHARSET */
}
MOVE(CurLine, CurColumn);
- fflush(ttyf);
+ flush_tty();
}
void
@@ -2170,7 +2167,8 @@ mouse_inactive()
void
flush_tty()
{
- fflush(ttyf);
+ if (ttyf)
+ fflush(ttyf);
}
#ifdef USE_IMAGE