X-Git-Url: https://git.distorted.org.uk/~mdw/sw-tools/blobdiff_plain/3315e8b31a4707ef2c5491d0c9a9c9a09816bcb2..9796a7877cd1e7f6908c678e71b8fea6045ba0e7:/src/pres_curses.c diff --git a/src/pres_curses.c b/src/pres_curses.c index a134eac..38876e8 100644 --- a/src/pres_curses.c +++ b/src/pres_curses.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: pres_curses.c,v 1.1 1999/06/02 16:53:35 mdw Exp $ + * $Id: pres_curses.c,v 1.7 2004/04/08 01:52:19 mdw Exp $ * * Curses-based output presentation * @@ -26,14 +26,6 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: pres_curses.c,v $ - * Revision 1.1 1999/06/02 16:53:35 mdw - * Initial revision - * - */ - /*----- Header files ------------------------------------------------------*/ #include "config.h" @@ -121,7 +113,9 @@ static void sizes(void) #ifdef SIGTSTP static void sig_tstp(int s) { + int e = errno; endwin(); + errno = e; raise(SIGSTOP); } #endif @@ -131,19 +125,25 @@ static void sig_tstp(int s) #ifdef SIGTSTP static void sig_cont(int s) { + int e = errno; wrefresh(curscr); + errno = e; } #endif /* --- @sig_winch@ --- */ -#ifdef HAVE_WRESIZE +#ifdef SIGWINCH static void sig_winch(int s) { + int e = errno; + +#ifdef HAVE_WRESIZE cwin *c; + endwin(); - refresh(); + wrefresh(curscr); sizes(); for (c = cwins; c; c = c->next) { mvwin(c->w, c->top, 0); @@ -153,6 +153,11 @@ static void sig_winch(int s) wnoutrefresh(c->s); } doupdate(); +#else + endwin(); + wrefresh(curscr); +#endif + errno = e; } #endif @@ -218,15 +223,14 @@ int curses_init(archcons *a) scrollok(c->w, TRUE); leaveok(c->w, TRUE); leaveok(c->s, TRUE); - wbkgdset(c->s, A_STANDOUT); - werase(c->s); - mvwprintw(c->s, 0, 0, " %s [running]\n", c->e->arch); + wbkgd(c->s, A_STANDOUT); + mvwprintw(c->s, 0, 0, " %s [running]\n", c->e->arch); wnoutrefresh(c->w); wnoutrefresh(c->s); } doupdate(); -#ifdef HAVE_WRESIZE +#ifdef SIGWINCH signal(SIGWINCH, sig_winch); #endif #ifdef SIGTSTP @@ -265,10 +269,10 @@ void curses_output(archent *e, const char *p, size_t sz) /* --- @curses_close@ --- */ -void curses_close(archent *e, int ok) +void curses_close(archent *e, int ok, const char *summ) { cwin *c = e->pres; - mvwprintw(c->s, 0, 0, " %s [%s]\n", e->arch, ok ? "finished" : "failed"); + mvwprintw(c->s, 0, 0, " %s [%s]\n", e->arch, summ); wrefresh(c->s); }