about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--Src/params.c2
-rw-r--r--Src/utils.c2
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2eb8fdf04..78f294a6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2012-06-26  Barton E. Schaefer  <schaefer@zsh.org>
+
+	* 30533: Src/utils.c: when processing a change in the value of
+	COLUMNS, do not assert the change into the tty driver winsize.
+	The code for this was dead the whole time IPDEF5 was broken and
+	this seems a bad time to make it live; besides which it is not
+	consistent about the handling of LINES (which is ignored when
+	changed by itself, but would be asserted when COLUMNS changes).
+
+	* 30530: Src/params.c: fix long-broken IPDEF5 definition to use
+	the GSU struct, thus fixing problems with values of LINES or
+	COLUMNS less than 1.
+
 2012-06-21  Peter Stephenson  <pws@csr.com>
 
 	* Danek (plus .distfiles changes): 30520:
@@ -16411,5 +16424,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5674 $
+* $Revision: 1.5675 $
 *****************************************************
diff --git a/Src/params.c b/Src/params.c
index 966e3afcc..8649178ef 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -315,7 +315,7 @@ IPDEF4("LINENO", &lineno),
 IPDEF4("PPID", &ppid),
 IPDEF4("ZSH_SUBSHELL", &zsh_subshell),
 
-#define IPDEF5(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL},BR((void *)B),GSU(varinteger_gsu),10,0,NULL,NULL,NULL,0}
+#define IPDEF5(A,B,F) {{NULL,A,PM_INTEGER|PM_SPECIAL},BR((void *)B),GSU(F),10,0,NULL,NULL,NULL,0}
 IPDEF5("COLUMNS", &zterm_columns, zlevar_gsu),
 IPDEF5("LINES", &zterm_lines, zlevar_gsu),
 IPDEF5("OPTIND", &zoptind, varinteger_gsu),
diff --git a/Src/utils.c b/Src/utils.c
index 9603389cc..d35ca1dfd 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -1686,7 +1686,7 @@ adjustwinsize(int from)
 	(shttyinfo.winsize.ws_row != ttyrows ||
 	 shttyinfo.winsize.ws_col != ttycols)) {
 	/* shttyinfo.winsize is already set up correctly */
-	ioctl(SHTTY, TIOCSWINSZ, (char *)&shttyinfo.winsize);
+	/* ioctl(SHTTY, TIOCSWINSZ, (char *)&shttyinfo.winsize); */
     }
 #endif /* TIOCGWINSZ */