]> granicus.if.org Git - procps-ng/commitdiff
top: add new scrollable column ENVIRON
authorJim Warner <james.warner@comcast.net>
Sun, 1 Jul 2012 05:00:22 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Wed, 29 Aug 2012 07:35:24 +0000 (17:35 +1000)
The recent introduction of scrollable variable width
columns makes a process 'environment' a potentially
useful addition to top's displayable fields.

This commit exploits the following new library flag:
   PROC_EDITENVRCVT

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

index bfe572764e5ad58a118356c79ba9ef99978986d9..c0bd22f291458c138f94babfaa69c353a964c2d9 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -208,6 +208,7 @@ SCB_NUMx(CPN, processor)
 SCB_NUM1(CPU, pcpu)
 SCB_NUM1(DAT, drs)
 SCB_NUM1(DRT, dt)
+SCB_STRS(ENV, environ[0])
 SCB_NUM1(FLG, flags)
 SCB_NUM1(FL1, maj_flt)
 SCB_NUM1(FL2, min_flt)
@@ -1214,6 +1215,7 @@ static inline int user_matched (WIN_t *q, const proc_t *p) {
 #define L_status   PROC_FILLSTATUS
 #define L_CGROUP   PROC_EDITCGRPCVT | PROC_FILLCGROUP
 #define L_CMDLINE  PROC_EDITCMDLCVT | PROC_FILLARG
+#define L_ENVIRON  PROC_EDITENVRCVT | PROC_FILLENV
 #define L_EUSER    PROC_FILLUSR
 #define L_OUSER    PROC_FILLSTATUS | PROC_FILLUSR
 #define L_EGROUP   PROC_FILLSTATUS | PROC_FILLGRP
@@ -1291,13 +1293,14 @@ static FLD_t Fieldstab[] = {
    { "CGROUPS  ",   NULL,        -1,     -1,  SF(CGR),  L_CGROUP,  NULL },
    { "SUPGIDS  ",   NULL,        -1,     -1,  SF(SGD),  L_status,  NULL },
    { "SUPGRPS  ",   NULL,        -1,     -1,  SF(SGN),  L_SUPGRP,  NULL },
-   { NULL,          NULL,        -1,     -1,  SF(TGD),  L_status,  NULL }
+   { NULL,          NULL,        -1,     -1,  SF(TGD),  L_status,  NULL },
 #ifdef OOMEM_ENABLE
 #define L_oom      PROC_FILLOOM
-  ,{ "Adj ",        "%3d ",      -1,     -1,  SF(OOA),  L_oom,     NULL }
-  ,{ " Badness ",   "%8d ",      -1,     -1,  SF(OOM),  L_oom,     NULL }
+   { "Adj ",        "%3d ",      -1,     -1,  SF(OOA),  L_oom,     NULL },
+   { " Badness ",   "%8d ",      -1,     -1,  SF(OOM),  L_oom,     NULL },
 #undef L_oom
 #endif
+   { "ENVIRON  ",   NULL,        -1,     -1,  SF(ENV),  L_ENVIRON, NULL }
  #undef SF
 };
 
@@ -3699,6 +3702,9 @@ static void task_show (const WIN_t *q, const proc_t *p, char *ptr) {
          case P_DRT:
             makeCOL(scale_num((unsigned long)p->dt, w, s));
             break;
+         case P_ENV:
+            makeVAR(*p->environ);
+            break;
          case P_FLG:
          {  char tmp[SMLBUFSIZ];
             snprintf(tmp, sizeof(tmp), f, (long)p->flags);
index d45f00383e293863ddf698d7d7abdd69a79ae350..d7d2754e627ced045250173f95055746f58f47d7 100644 (file)
--- a/top/top.h
+++ b/top/top.h
@@ -166,6 +166,7 @@ enum pflag {
 #ifdef OOMEM_ENABLE
    P_OOA, P_OOM,
 #endif
+   P_ENV,
 #ifdef USE_X_COLHDR
    // not really pflags, used with tbl indexing
    P_MAXPFLGS
index b533674dd7e71c7d16ed3df5d1491bdfb0b2fec0..fbd5899cb67a980a4d62c094041b367203785eb7 100644 (file)
@@ -147,6 +147,9 @@ static void build_desc_nlstab (void) {
    Desc_nlstab[P_OOA] = _("oom_adjustment (2^X)");
    Desc_nlstab[P_OOM] = _("oom_score (badness)");
 #endif
+/* Translation Hint: The abbreviation 'vars' below is shorthand for
+                     'variables' */
+   Desc_nlstab[P_ENV] = _("Environment vars");
 }