summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_console.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f96e0e1a6..0d3c5cc8b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-10 Christopher Faylor <me.cygwin2014@cgf.cx>
+
+ * fhandler_console.cc (dev_console::save_restore): Save entire line of
+ current cursor position.
+
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
* fhandler_console.cc (fhandler_console::save_restore): Save only until
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 53418edf1..ffbda4813 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -1457,8 +1457,9 @@ dev_console::save_restore (HANDLE h, char c)
if (c == 'h') /* save */
{
fillin (h);
- save_bufsize.Y = dwEnd.Y + 1; /* Assume starting from 0/0 */
save_bufsize.X = b.dwSize.X;
+ if ((save_bufsize.Y = dwEnd.Y + 2) > b.dwSize.Y)
+ save_bufsize.X = b.dwSize.Y;
if (save_buf)
cfree (save_buf);