]> granicus.if.org Git - procps-ng/commitdiff
top: prepare for more than two abreast summary display
authorJim Warner <james.warner@comcast.net>
Sat, 10 Sep 2022 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Mon, 12 Sep 2022 12:15:28 +0000 (22:15 +1000)
I guess the cat's out of the bag with the prior commit
message. It mentioned the objective of displaying more
than the current two cpu graphs on summary area lines.

On the way to that objective, this patch just prepares
our battlefield for the actual implementation in which
up to 8 individual cpu graphs will be shown on 1 line.

[ no logic has been impacted with this commit. we're ]
[ just adding one manifest constant, trading several ]
[ identifiers and updating some comments so the next ]
[ commit might be just a little bit more manageable. ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
src/top/top.c
src/top/top.h

index 3308d10e07efa32a0a6c0735f0a947f737dfe91a..b8395bdadf09c8e9c9b14b70bf63300a1710d3a5 100644 (file)
@@ -224,13 +224,12 @@ static int Numa_node_sel = -1;
 
         /* Support for Graphing of the View_STATES ('t') and View_MEMORY ('m')
            commands -- which are now both 4-way toggles */
-
-#define GRAPH_prefix  25     // beginning text + opening '['
-#define GRAPH_actual  100    // the actual bars or blocks
-#define GRAPH_minlen  10     // the actual bars or blocks
-#define GRAPH_suffix  2      // ending ']' + trailing space
-static float Graph_adj;      // bars/blocks scaling factor
-static int   Graph_len;      // scaled length (<= GRAPH_actual)
+#define GRAPH_length_max  100  // the actual bars or blocks
+#define GRAPH_length_min   10  // the actual bars or blocks
+#define GRAPH_prefix_std   25  // '%Cpunnn: 100.0/100.0 100[' or 'nnn-nnn: 100.0/100.0 100['
+#define GRAPH_suffix        2  // ending ] + trailing space
+static float Graph_adj;        // bars/blocks scaling factor
+static int   Graph_len;        // scaled length (<= GRAPH_length_max)
 static const char Graph_blks[] = "                                                                                                    ";
 static const char Graph_bars[] = "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||";
 
@@ -242,15 +241,15 @@ static const char Osel_window_fmts[] = "window #%d, osel_tot=%d\n";
 static const char Osel_filterO_fmt[] = "\ttype=%d,\t" OSEL_FILTER "%s\n";
 static const char Osel_filterI_fmt[] = "\ttype=%d,\t" OSEL_FILTER "%*s\n";
 
-        /* Support for 2 abreast display (if terminal is wide enough) */
+        /* Support for adjoining display (if terminal is wide enough) */
 #ifdef TOG4_OFF_SEP
-static char Double_sp[] =  "   ";
-#define DOUBLE_space  (sizeof(Double_sp) - 1)
+static char Adjoin_sp[] =  "   ";
+#define ADJOIN_space  (sizeof(Adjoin_sp) - 1)    // 1 for null
 #else
-static char Double_sp[] =  " ~1 ~6 ";
-#define DOUBLE_space  (sizeof(Double_sp) - 5)    // 1 for null, 4 unprintable
+static char Adjoin_sp[] =  " ~1 ~6 ";
+#define ADJOIN_space  (sizeof(Adjoin_sp) - 5)    // 1 for null + 4 unprintable
 #endif
-#define DOUBLE_limit  (int)( 80 )
+#define ADJOIN_limit  1
 
         /* Support for the new library API -- acquired (if necessary)
            at program startup and referenced throughout our lifetime. */
@@ -2071,15 +2070,15 @@ static void adj_geometry (void) {
 
    // prepare to customize potential cpu/memory graphs
    if (Curwin->rc.double_up) {
-      Graph_len = (Screen_cols - DOUBLE_space - (2 * (GRAPH_prefix + GRAPH_suffix))) / 2;
+      Graph_len = (Screen_cols - ADJOIN_space - (2 * (GRAPH_prefix_std + GRAPH_suffix))) / 2;
       Graph_len += (Screen_cols % 2) ? 0 : 1;
    } else {
-      Graph_len = Screen_cols - (GRAPH_prefix + GRAPH_actual + GRAPH_suffix);
-      if (Graph_len >= 0) Graph_len = GRAPH_actual;
-      else Graph_len = Screen_cols - GRAPH_prefix - GRAPH_suffix;
+      Graph_len = Screen_cols - (GRAPH_prefix_std + GRAPH_length_max + GRAPH_suffix);
+      if (Graph_len >= 0) Graph_len = GRAPH_length_max;
+      else Graph_len = Screen_cols - GRAPH_prefix_std - GRAPH_suffix;
    }
-   if (Graph_len < GRAPH_minlen) Graph_len = GRAPH_minlen;
-   if (Graph_len > GRAPH_actual) Graph_len = GRAPH_actual;
+   if (Graph_len < GRAPH_length_min) Graph_len = GRAPH_length_min;
+   if (Graph_len > GRAPH_length_max) Graph_len = GRAPH_length_max;
    Graph_adj = (float)Graph_len / 100.0;
 
    fflush(stdout);
@@ -3948,7 +3947,7 @@ static const char *configs_file (FILE *fp, const char *name, float *delay) {
          return p;
       if (w->rc.graph_mems < 0 || w->rc.graph_mems > 2)
          return p;
-      if (w->rc.double_up < 0 || w->rc.double_up > 1)
+      if (w->rc.double_up < 0 || w->rc.double_up > ADJOIN_limit)
          return p;
       // can't check upper bounds until Cpu_cnt is known
       if (w->rc.combine_cpus < 0)
@@ -6172,7 +6171,7 @@ static struct rx_st *sum_rx (long total, long part1, long part2, int style) {
 
 
         /*
-         * A *Helper* function to show summary information for up to 2 lines |
+         * A *Helper* function to show multiple lines of summary information |
          * as a single line. We return the number of lines actually printed. | */
 static inline int sum_see (const char *str, int nobuf) {
    static char row[ROWMINSIZ];
@@ -6183,7 +6182,7 @@ static inline int sum_see (const char *str, int nobuf) {
    if (Curwin->rc.double_up
    && (!nobuf)
    && (!tog)) {
-      scat(p, Double_sp);
+      scat(p, Adjoin_sp);
       tog = 1;
       return 0;
    }
index f76a991a5fe9cf868034d6223031fd07db69bbd7..d3427fee87b5220dc5c8ab2b49a0d3e3ac65f8aa 100644 (file)
@@ -320,7 +320,7 @@ typedef struct RCW_t {  // the 'window' portion of an rcfile
           maxtasks,               // user requested maximum, 0 equals all
           graph_cpus,             // 't' - View_STATES supplementary vals
           graph_mems,             // 'm' - View_MEMORY supplememtary vals
-          double_up,              // '4' - show individual cpus 2 abreast
+          double_up,              // '4' - show multiple cpus on one line
           combine_cpus,           // '!' - keep combining additional cpus
           summclr,                // a colors 'number' used for summ info
           msgsclr,                //             "           in msgs/pmts