summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald van Dijk <truedfx@gentoo.org>2009-10-26 20:55:05 +0059
committerHarald van Dijk <truedfx@gentoo.org>2009-10-26 20:55:05 +0059
commit3ed6262446cb9da36d5f90bc8f62b7296f55ec43 (patch)
tree2b01de1a6be95c9efec4afaab7f9accd657b35e7 /ufed-curses-checklist.c
parentufed-0.40-source.patch (diff)
downloadufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.tar.gz
ufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.tar.bz2
ufed-3ed6262446cb9da36d5f90bc8f62b7296f55ec43.zip
ufed-0.40-termsize-2.patch
Diffstat (limited to 'ufed-curses-checklist.c')
-rw-r--r--ufed-curses-checklist.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/ufed-curses-checklist.c b/ufed-curses-checklist.c
index 82ee9d0..a1a3c55 100644
--- a/ufed-curses-checklist.c
+++ b/ufed-curses-checklist.c
@@ -109,8 +109,6 @@ static void read_flags(void) {
flag->state = &line[state.start];
flag->item.height = ndescr;
- if(ndescr > minheight)
- minheight = ndescr;
{ int i; for(i=0; i<ndescr; i++) {
flag->descr[i] = getline(input);
} }
@@ -174,11 +172,12 @@ static void drawflag(struct item *item, bool highlight) {
wattrset(win(List), COLOR_PAIR(3));
else
wattrset(win(List), COLOR_PAIR(3) | A_BOLD | A_REVERSE);
- if(y < 0) {
+ if(y >= 0 || -y >= flag->item.height) {
+ d = &flag->descr[0];
+ } else {
wmove(win(List), 0, 0);
d = &flag->descr[-y];
y = 0;
- goto descriptiononly;
}
wmove(win(List), y, 0);
sprintf(buf, " %c%c%c %-*s %-5.5s ",
@@ -187,7 +186,6 @@ static void drawflag(struct item *item, bool highlight) {
flag->on == ' ' ? ')' : ']',
minwidth-12, flag->name,
flag->state);
- d = &flag->descr[0];
if(d != &flag->descr[flag->item.height]) {
for(;;) {
sprintf(buf+minwidth, "%-*.*s",
@@ -198,7 +196,6 @@ static void drawflag(struct item *item, bool highlight) {
waddstr(win(List), buf);
d++;
y++;
- descriptiononly:
if(d!=&flag->descr[flag->item.height] && y<wHeight(List)) {
char *p;
for(p=buf; p!=buf+minwidth; p++)
@@ -214,7 +211,7 @@ static void drawflag(struct item *item, bool highlight) {
y++;
}
if(highlight)
- wmove(win(List), flag->item.top - topy, 2);
+ wmove(win(List), max(flag->item.top - topy, 0), 2);
wnoutrefresh(win(List));
}