Subject: curses fix for sysinst
To: None <tech-userlevel@netbsd.org>
From: David Laight <david@l8s.co.uk>
List: tech-install
Date: 07/29/2003 10:35:42
I think I've found what causes sysinst to (try to) coredump when
asked to display the list of files.
Unless I'm going mad, the memcpy() calls shouldn't have the '* lines'.
Index: insdelln.c
===================================================================
RCS file: /cvsroot/src/lib/libcurses/insdelln.c,v
retrieving revision 1.9
diff -u -p -r1.9 insdelln.c
--- insdelln.c 2003/02/17 11:07:20 1.9
+++ insdelln.c 2003/07/29 09:26:54
@@ -107,8 +107,7 @@ winsdelln(WINDOW *win, int lines)
} else {
(void) memcpy(win->lines[y + lines]->line,
win->lines[y]->line,
- (size_t) win->maxx * __LDATASIZE * lines);
+ (size_t) win->maxx * __LDATASIZE);
temp = win->lines[y];
}
}
for (y = win->cury - 1 + lines; y >= win->cury; --y)
@@ -144,8 +143,7 @@ winsdelln(WINDOW *win, int lines)
} else {
(void) memcpy(win->lines[y]->line,
win->lines[y + lines]->line,
- (size_t) win->maxx * __LDATASIZE * lines);
+ (size_t) win->maxx * __LDATASIZE);
temp = win->lines[y + lines];
}
}
for (y = last - lines; y < last; y++)
This only happens doing insert/delete line or scroll on a subwin.
On normal windows the line buffers are moved.
David
--
David Laight: david@l8s.co.uk