diff --git a/.gitignore b/.gitignore index cac09ec3..850614ad 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ uptime vmstat w watch +*~ diff --git a/Makefile.am b/Makefile.am index 9ca3c53b..5338f532 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,7 +42,7 @@ bin_PROGRAMS = kill dist_man_MANS += kill.1 endif -if HAVE_NCURSES +if WITH_NCURSES usrbin_exec_PROGRAMS += \ slabtop \ top \ diff --git a/configure.ac b/configure.ac index 4ed45257..8d33183a 100644 --- a/configure.ac +++ b/configure.ac @@ -92,44 +92,27 @@ AC_CHECK_FUNCS([\ wcwidth ]) -usrbin_execdir='${exec_prefix}/usr/bin' -AC_SUBST([usrbin_execdir]) - -dnl UTIL_CHECK_LIB(LIBRARY, FUNCTION, [VARSUFFIX = $1])) -dnl The VARSUFFIX is optional and overrides the default behaviour. For example: -dnl UTIL_CHECK_LIB(yyy, func, xxx) generates have_xxx and HAVE_LIBXXX -dnl UTIL_CHECK_LIB(yyy, func) generates have_yyy and HAVE_LIBYYY -dnl --------------------------------- -AC_DEFUN([UTIL_CHECK_LIB], [ - m4_define([suffix], m4_default([$3],$1)) - [have_]suffix=yes - m4_ifdef([$3], [AC_CHECK_LIB([$1], [$2], [], [[have_]suffix=no])], []) - AM_CONDITIONAL(AS_TR_CPP([HAVE_]suffix), [test [$have_]suffix = yes]) -]) - AC_ARG_WITH([ncurses], AS_HELP_STRING([--without-ncurses], [build only applications not needing ncurses]), - [], with_ncurses=yes + [with_ncurses=no], [with_ncurses=yes] ) -AM_CONDITIONAL(HAVE_NCURSES, false) -if test "x$with_ncurses" != xno; then - have_ncurses=no - AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [ - if test "x$with_ncurses" = xyes; then - UTIL_CHECK_LIB(ncursesw, initscr, ncurses) - if test "x$have_ncurses" = xyes; then - AC_CHECK_HEADERS([ncursesw/ncurses.h]) - NCURSES_LIBS="-lncursesw" - fi - fi - ]) +if test "x$with_ncurses" = xno; then + AM_CONDITIONAL(WITH_NCURSES, false) +else + AC_CHECK_LIB(ncursesw, initscr, [have_ncurses=yes], [have_ncurses=no]) + AC_CHECK_HEADERS(ncursesw/ncurses.h, [], [have_ncurses=no]) if test "x$have_ncurses" = xno; then - AC_MSG_ERROR([ncurses selected, but library not found (--without-ncurses to disable)]) + AC_MSG_ERROR([ncurses support missing (for partial build use --without-ncurses)]) fi + AM_CONDITIONAL(WITH_NCURSES, true) + NCURSES_LIBS="-lncursesw" fi AC_SUBST([NCURSES_LIBS]) +usrbin_execdir='${exec_prefix}/usr/bin' +AC_SUBST([usrbin_execdir]) + AC_ARG_ENABLE([kill], AS_HELP_STRING([--disable-kill], [do not build kill]), [], enable_kill=yes diff --git a/top.c b/top.c index 64e794dc..c22d4f00 100644 --- a/top.c +++ b/top.c @@ -3608,20 +3608,15 @@ static int window_show (WIN_t *q, int wmax) { * This guy's just a *Helper* function who apportions the * remaining amount of screen real estate under multiple windows */ static void framehlp (int wix, int max) { - int i, rsvd, size, wins; + int i, size, wins; - // calc remaining number of visible windows + total 'user' lines - for (i = wix, rsvd = 0, wins = 0; i < GROUPSMAX; i++) { - if (CHKw(&Winstk[i], Show_TASKON)) { - rsvd += Winstk[i].rc.maxtasks; + // calc remaining number of visible windows + for (i = wix, wins = 0; i < GROUPSMAX; i++) + if (CHKw(&Winstk[i], Show_TASKON)) ++wins; - if (max <= rsvd) break; - } - } + if (!wins) wins = 1; - // set aside 'rsvd' & deduct 1 line/window for the columns heading - size = (max - wins) - rsvd; - if (0 <= size) size = max; + // deduct 1 line/window for the columns heading size = (max - wins) / wins; /* for subject window, set WIN_t winlines to either the user's