diff -up ./configure.ac.ori ./configure.ac --- ./configure.ac.ori 2014-09-23 13:40:36.000000000 +0200 +++ ./configure.ac 2017-08-02 13:04:25.439881501 +0200 @@ -218,11 +218,11 @@ if test "x$enable_wide_percent" = xyes; fi AC_ARG_ENABLE([wide-memory], - AS_HELP_STRING([--disable-wide-memory], [disable extra precision under memory fields for top]), - [], [enable_wide_memory=yes] + AS_HELP_STRING([--enable-wide-memory], [provide extra precision under memory fields for top]), + [], [enable_wide_memory=no] ) -if test "x$enable_wide_memory" = xno; then - AC_DEFINE(NOBOOST_MEMS, 1, [disable extra precision under memory fields for top]) +if test "x$enable_wide_memory" = xyes; then + AC_DEFINE(BOOST_MEMORY, 1, [provide extra precision under memory fields for top]) fi AC_ARG_ENABLE([modern-top], diff -up ./top/top.c.ori ./top/top.c --- ./top/top.c.ori 2017-08-02 12:56:41.681326790 +0200 +++ ./top/top.c 2017-08-02 13:50:24.953331241 +0200 @@ -1542,11 +1542,11 @@ static inline const char *make_str (cons * We'll interpret 'num' as a kibibytes quantity and try to * format it to reach 'target' while also fitting 'width'. */ static const char *scale_mem (int target, unsigned long num, int width, int justr) { -#ifndef NOBOOST_MEMS // SK_Kb SK_Mb SK_Gb SK_Tb SK_Pb SK_Eb +#ifdef BOOST_MEMORY static const char *fmttab[] = { "%.0f", "%#.1f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", NULL }; #else - static const char *fmttab[] = { "%.0f", "%.0f%c", "%.0f%c", "%.0f%c", "%.0f%c", NULL }; + static const char *fmttab[] = { "%.0f", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", NULL }; #endif static char buf[SMLBUFSIZ]; float scaled_num; @@ -1750,21 +1750,12 @@ static FLD_t Fieldstab[] = { #else { 4, -1, A_right, SF(RES), L_statm }, // EU_MEM slot #endif -#ifndef NOBOOST_MEMS { 7, SK_Kb, A_right, SF(VRT), L_statm }, { 6, SK_Kb, A_right, SF(SWP), L_status }, { 6, SK_Kb, A_right, SF(RES), L_statm }, { 6, SK_Kb, A_right, SF(COD), L_statm }, { 7, SK_Kb, A_right, SF(DAT), L_statm }, { 6, SK_Kb, A_right, SF(SHR), L_statm }, -#else - { 5, SK_Kb, A_right, SF(VRT), L_statm }, - { 4, SK_Kb, A_right, SF(SWP), L_status }, - { 4, SK_Kb, A_right, SF(RES), L_statm }, - { 4, SK_Kb, A_right, SF(COD), L_statm }, - { 5, SK_Kb, A_right, SF(DAT), L_statm }, - { 4, SK_Kb, A_right, SF(SHR), L_statm }, -#endif { 4, -1, A_right, SF(FL1), L_stat }, { 4, -1, A_right, SF(FL2), L_stat }, { 4, -1, A_right, SF(DRT), L_statm }, @@ -1785,11 +1776,7 @@ static FLD_t Fieldstab[] = { { -1, -1, A_left, SF(ENV), L_ENVIRON }, { 3, -1, A_right, SF(FV1), L_stat }, { 3, -1, A_right, SF(FV2), L_stat }, -#ifndef NOBOOST_MEMS { 6, SK_Kb, A_right, SF(USE), L_USED }, -#else - { 4, SK_Kb, A_right, SF(USE), L_USED }, -#endif { 10, -1, A_right, SF(NS1), L_NS }, // IPCNS { 10, -1, A_right, SF(NS2), L_NS }, // MNTNS { 10, -1, A_right, SF(NS3), L_NS }, // NETNS @@ -5208,12 +5195,20 @@ numa_nope: const char *fmts; const char *label; } scaletab[] = { - { 1, "%1.0f ", NULL }, // kibibytes - { 1024.0, "%#4.3f ", NULL }, // mebibytes - { 1024.0*1024, "%#4.3f ", NULL }, // gibibytes - { 1024.0*1024*1024, "%#4.3f ", NULL }, // tebibytes - { 1024.0*1024*1024*1024, "%#4.3f ", NULL }, // pebibytes - { 1024.0*1024*1024*1024*1024, "%#4.3f ", NULL } // exbibytes + { 1, "%.0f ", NULL }, // kibibytes +#ifdef BOOST_MEMORY + { 1024.0, "%#.3f ", NULL }, // mebibytes + { 1024.0*1024, "%#.3f ", NULL }, // gibibytes + { 1024.0*1024*1024, "%#.3f ", NULL }, // tebibytes + { 1024.0*1024*1024*1024, "%#.3f ", NULL }, // pebibytes + { 1024.0*1024*1024*1024*1024, "%#.3f ", NULL } // exbibytes +#else + { 1024.0, "%#.1f ", NULL }, // mebibytes + { 1024.0*1024, "%#.1f ", NULL }, // gibibytes + { 1024.0*1024*1024, "%#.1f ", NULL }, // tebibytes + { 1024.0*1024*1024*1024, "%#.1f ", NULL }, // pebibytes + { 1024.0*1024*1024*1024*1024, "%#.1f ", NULL } // exbibytes +#endif }; struct { // 0123456789 // snprintf contents of each buf (after SK_Kb): 'nnnn.nnn 0' diff -up ./top/top.h.ori ./top/top.h --- ./top/top.h.ori 2017-08-02 12:56:41.681326790 +0200 +++ ./top/top.h 2017-08-02 13:04:25.446881464 +0200 @@ -23,8 +23,8 @@ #include "../proc/readproc.h" /* Defines represented in configure.ac ----------------------------- */ -//#define BOOST_PERCNT /* enable extra precision for two % fields */ -//#define NOBOOST_MEMS /* disable extra precision for mem fields */ +//#define BOOST_MEMORY /* enable extra precision for mem fields */ +//#define BOOST_PERCNT /* enable extra precision for 2 % fields */ //#define NUMA_DISABLE /* disable summary area NUMA/Nodes display */ //#define OOMEM_ENABLE /* enable the SuSE out-of-memory additions */ //#define ORIG_TOPDEFS /* with no rcfile retain original defaults */