[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo update (Fri Oct 19 14:53:01 EDT 2007)
From: |
Karl Berry |
Subject: |
texinfo update (Fri Oct 19 14:53:01 EDT 2007) |
Date: |
Fri, 19 Oct 2007 14:53:02 -0400 |
Index: ChangeLog
===================================================================
RCS file: /sources/texinfo/texinfo/ChangeLog,v
retrieving revision 1.771
retrieving revision 1.772
diff -u -r1.771 -r1.772
--- ChangeLog 13 Oct 2007 23:44:34 -0000 1.771
+++ ChangeLog 19 Oct 2007 18:43:20 -0000 1.772
@@ -1,3 +1,12 @@
+2007-10-19 Karl Berry <address@hidden>
+
+ * info/display.c (display_update_one_window): don't try to display
+ a window unless both width and height are >0.
+ * window/window.c (window_new_screen_size): try to ensure that
+ no window width/height ever becomes negative.
+ Bug report and ideas from Vitezslav Crhonek, 18 Oct 2007 15:15:51,
+ as well as https://bugzilla.redhat.com/show_bug.cgi?id=243971.
+
2007-10-13 Karl Berry <address@hidden>
* makeinfo/cmds.c (cm_dircategory): use add_word instead of
Index: info/display.c
===================================================================
RCS file: /sources/texinfo/texinfo/info/display.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- info/display.c 1 Jul 2007 21:20:29 -0000 1.11
+++ info/display.c 19 Oct 2007 18:43:20 -0000 1.12
@@ -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
Index: info/window.c
===================================================================
RCS file: /sources/texinfo/texinfo/info/window.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- info/window.c 1 Jul 2007 21:20:31 -0000 1.7
+++ info/window.c 19 Oct 2007 18:43:20 -0000 1.8
@@ -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.
P ChangeLog
P info/display.c
P info/window.c
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo update (Fri Oct 19 14:53:01 EDT 2007),
Karl Berry <=