Sorry, looks like I stacked this on my other batch-friendliness patches. Happy to re-roll if that's an issue.
On Wed, Jul 25, 2012 at 5:54 PM, <[email protected]> wrote: > From: David Strauss <[email protected]> > > --- > src/cgtop/cgtop.c | 35 ++++++++++++++++++++++++----------- > 1 file changed, 24 insertions(+), 11 deletions(-) > > diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c > index b4454c54..c3d2a28 100644 > --- a/src/cgtop/cgtop.c > +++ b/src/cgtop/cgtop.c > @@ -67,6 +67,7 @@ static enum { > } arg_order = ORDER_CPU; > > bool arg_batch = false; > +bool arg_full = false; > > static void group_free(Group *g) { > assert(g); > @@ -447,13 +448,13 @@ static int display(Hashmap *a) { > if (rows <= 0) > rows = 25; > > - printf("%s%-37s%s %s%7s%s %s%6s%s %s%8s%s %s%8s%s %s%8s%s\n\n", > - arg_order == ORDER_PATH ? ANSI_HIGHLIGHT_ON : "", "Path", > arg_order == ORDER_PATH ? ANSI_HIGHLIGHT_OFF : "", > + printf("%s%7s%s %s%6s%s %s%8s%s %s%8s%s %s%8s%s %s%-37s%s\n\n", > arg_order == ORDER_TASKS ? ANSI_HIGHLIGHT_ON : "", "Tasks", > arg_order == ORDER_TASKS ? ANSI_HIGHLIGHT_OFF : "", > arg_order == ORDER_CPU ? ANSI_HIGHLIGHT_ON : "", "%CPU", > arg_order == ORDER_CPU ? ANSI_HIGHLIGHT_OFF : "", > arg_order == ORDER_MEMORY ? ANSI_HIGHLIGHT_ON : "", "Memory", > arg_order == ORDER_MEMORY ? ANSI_HIGHLIGHT_OFF : "", > arg_order == ORDER_IO ? ANSI_HIGHLIGHT_ON : "", > "Input/s", arg_order == ORDER_IO ? ANSI_HIGHLIGHT_OFF : "", > - arg_order == ORDER_IO ? ANSI_HIGHLIGHT_ON : "", > "Output/s", arg_order == ORDER_IO ? ANSI_HIGHLIGHT_OFF : ""); > + arg_order == ORDER_IO ? ANSI_HIGHLIGHT_ON : "", > "Output/s", arg_order == ORDER_IO ? ANSI_HIGHLIGHT_OFF : "", > + arg_order == ORDER_PATH ? ANSI_HIGHLIGHT_ON : "", "Path", > arg_order == ORDER_PATH ? ANSI_HIGHLIGHT_OFF : ""); > > for (j = 0; j < n; j++) { > char *p; > @@ -464,14 +465,10 @@ static int display(Hashmap *a) { > > g = array[j]; > > - p = ellipsize(g->path, 37, 33); > - printf("%-37s", p ? p : g->path); > - free(p); > - > if (g->n_tasks_valid) > - printf(" %7u", g->n_tasks); > + printf("%7u", g->n_tasks); > else > - fputs(" -", stdout); > + fputs(" -", stdout); > > if (g->cpu_valid) > printf(" %6.1f", g->cpu_fraction*100); > @@ -491,6 +488,15 @@ static int display(Hashmap *a) { > } else > fputs(" - -", stdout); > > + if (arg_full) { > + printf(" %s", g->path); > + } > + else { > + p = ellipsize(g->path, 37, 33); > + printf(" %-37s", p ? p : g->path); > + free(p); > + } > + > putchar('\n'); > } > > @@ -510,14 +516,16 @@ static void help(void) { > " -d --delay=DELAY Specify delay\n" > " -n --iterations=N Run for N iterations before exiting\n" > " -b --batch Run in batch mode, accepting no > input\n" > - " --depth=DEPTH Maximum traversal depth (default: > 2)\n", > + " --depth=DEPTH Maximum traversal depth (default: 2)\n" > + " --full Don't ellipsize paths on output\n", > program_invocation_short_name); > } > > static int parse_argv(int argc, char *argv[]) { > > enum { > - ARG_DEPTH = 0x100 > + ARG_DEPTH = 0x100, > + ARG_FULL = 0x101 > }; > > static const struct option options[] = { > @@ -525,6 +533,7 @@ static int parse_argv(int argc, char *argv[]) { > { "delay", required_argument, NULL, 'd' }, > { "iterations", required_argument, NULL, 'n' }, > { "batch", no_argument, NULL, 'b' }, > + { "full", no_argument, NULL, ARG_FULL }, > { "depth", required_argument, NULL, ARG_DEPTH }, > { NULL, 0, NULL, 0 } > }; > @@ -570,6 +579,10 @@ static int parse_argv(int argc, char *argv[]) { > > break; > > + case ARG_FULL: > + arg_full = true; > + break; > + > case 'b': > arg_batch = true; > break; > -- > 1.7.11.2 > -- David Strauss | [email protected] | +1 512 577 5827 [mobile] _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
