summaryrefslogtreecommitdiff
blob: 87c2a22b020c1ed41c148e25c8bdb1410554a1bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
diff -urN tcsh-6.13.00/ed.init.c tcsh-6.13.01/ed.init.c
--- tcsh-6.13.00/ed.init.c	2002-07-07 00:28:13.000000000 +0200
+++ tcsh-6.13.01/ed.init.c	2004-05-21 20:51:25.000000000 +0200
@@ -127,6 +127,7 @@
 #else				/* BSDSIGS */
     (void) sigrelse(SIG_WINDOW);
 #endif /* BSDSIGS */
+    windowchg = 0;
 }
 
 sigret_t
diff -urN tcsh-6.13.00/ed.inputl.c tcsh-6.13.01/ed.inputl.c
--- tcsh-6.13.00/ed.inputl.c	2002-06-25 21:02:11.000000000 +0200
+++ tcsh-6.13.01/ed.inputl.c	2004-05-21 20:50:36.000000000 +0200
@@ -738,6 +738,10 @@
 #ifdef WINNT_NATIVE
     __nt_want_vcode = 1;
 #endif /* WINNT_NATIVE */
+#ifdef SIG_WINDOW
+    if (windowchg)
+	(void) check_window_size(0);	/* for window systems */
+#endif /* SIG_WINDOW */
     while ((num_read = read(SHIN, (char *) &tcp, 1)) == -1) {
 	if (errno == EINTR)
 	    continue;
diff -urN tcsh-6.13.00/sh.c tcsh-6.13.01/sh.c
--- tcsh-6.13.00/sh.c	2004-02-21 21:34:24.000000000 +0100
+++ tcsh-6.13.01/sh.c	2004-07-24 23:52:48.000000000 +0200
@@ -2181,7 +2181,6 @@
 	freesyn(savet), savet = NULL;
 #ifdef SIG_WINDOW
 	if (windowchg || (catch && intty && !whyles && !tellwhat)) {
-	    windowchg = 0;
 	    (void) check_window_size(0);	/* for window systems */
 	}
 #endif /* SIG_WINDOW */
diff -urN tcsh-6.13.00/sh.lex.c tcsh-6.13.01/sh.lex.c
--- tcsh-6.13.00/sh.lex.c	2003-08-04 18:19:13.000000000 +0200
+++ tcsh-6.13.01/sh.lex.c	2004-05-21 20:50:36.000000000 +0200
@@ -1765,6 +1775,10 @@
 	if (c == 0 || (c < 0 && fixio(SHIN, errno) == -1))
 	    return (-1);
     }
+#ifdef SIG_WINDOW
+    if (windowchg)
+	(void) check_window_size(0);	/* for window systems */
+#endif /* SIG_WINDOW */
 #ifndef WINNT_NATIVE
     c = fbuf[(int) fseekp / BUFSIZE][(int) fseekp % BUFSIZE];
     fseekp++;