59 lines
2.1 KiB
Diff
59 lines
2.1 KiB
Diff
--- texinfo-4.11/info/window.c_old 2007-07-01 23:20:31.000000000 +0200
|
|
+++ texinfo-4.11/info/window.c 2007-11-13 10:52:44.000000000 +0100
|
|
@@ -1,5 +1,5 @@
|
|
/* window.c -- windows in Info.
|
|
- $Id: window.c,v 1.7 2007/07/01 21:20:31 karl Exp $
|
|
+ $Id: window.c,v 1.8 2007/10/19 18:43:20 karl Exp $
|
|
|
|
Copyright (C) 1993, 1997, 1998, 2001, 2002, 2003, 2004, 2007
|
|
Free Software Foundation, Inc.
|
|
@@ -249,9 +249,22 @@
|
|
break;
|
|
}
|
|
else
|
|
- win= win->next;
|
|
+ win = win->next;
|
|
}
|
|
}
|
|
+
|
|
+ /* One more loop. If any heights or widths have become negative,
|
|
+ set them to zero. This can apparently happen with resizing down to
|
|
+ very small sizes. Sadly, it is not apparent to me where in the
|
|
+ above calculations it goes wrong. */
|
|
+ for (win = windows; win; win = win->next)
|
|
+ {
|
|
+ if (win->height < 0)
|
|
+ win->height = 0;
|
|
+
|
|
+ if (win->width < 0)
|
|
+ win->width = 0;
|
|
+ }
|
|
}
|
|
|
|
/* Make a new window showing NODE, and return that window structure.
|
|
--- texinfo-4.11/info/display.c_old 2007-07-01 23:20:29.000000000 +0200
|
|
+++ texinfo-4.11/info/display.c 2007-11-13 10:53:58.000000000 +0100
|
|
@@ -1,5 +1,5 @@
|
|
/* display.c -- How to display Info windows.
|
|
- $Id: display.c,v 1.11 2007/07/01 21:20:29 karl Exp $
|
|
+ $Id: display.c,v 1.12 2007/10/19 18:43:20 karl Exp $
|
|
|
|
Copyright (C) 1993, 1997, 2003, 2004, 2006, 2007
|
|
Free Software Foundation, Inc.
|
|
@@ -136,8 +136,13 @@
|
|
if (display_inhibited)
|
|
display_was_interrupted_p = 1;
|
|
|
|
- /* If the window has no height, or display is inhibited, quit now. */
|
|
- if (!win->height || display_inhibited)
|
|
+ /* If the window has no height, or display is inhibited, quit now.
|
|
+ Strictly speaking, it should only be necessary to test if the
|
|
+ values are equal to zero, since window_new_screen_size should
|
|
+ ensure that the window height/width never becomes negative, but
|
|
+ since historically this has often been the culprit for crashes, do
|
|
+ our best to be doubly safe. */
|
|
+ if (win->height <= 0 || win->width <= 0 || display_inhibited)
|
|
return;
|
|
|
|
/* If the window's first row doesn't appear in the_screen, then it
|