On Wed, Nov 10, 2010 at 08:40:52AM +0100, Otto Moerbeek wrote:
> Hi,
>
> Make who(1) a tiny bit smarter and show more of the host part. Max
> linewidth is 80.
>
> -Otto
>
> Index: who.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/who/who.c,v
> retrieving revision 1.18
> diff -u -p -r1.18 who.c
> --- who.c 27 Oct 2009 23:59:50 -0000 1.18
> +++ who.c 10 Nov 2010 07:35:48 -0000
> @@ -59,7 +59,9 @@ int show_labels; /* show column labels
> int show_quick; /* quick, names only */
>
> #define NAME_WIDTH 8
> -#define HOST_WIDTH 32
> +#define HOST_WIDTH 45
> +
> +int hostwidth = HOST_WIDTH;
>
> int
> main(int argc, char *argv[])
> @@ -100,6 +102,11 @@ main(int argc, char *argv[])
> if (show_quick) {
> only_current_term = show_term = show_idle = show_labels = 0;
> }
> +
> + if (show_term)
> + hostwidth -= 2;
> + if (show_idle)
> + hostwidth -= 6;
>
> if (show_labels)
> output_labels();
> @@ -245,7 +252,7 @@ output(struct utmp *up)
> }
>
> if (*up->ut_host)
> - printf(" (%.*s)", HOST_WIDTH, up->ut_host);
> + printf(" (%.*s)", hostwidth, up->ut_host);
> (void)putchar('\n');
> }
>
> @@ -263,7 +270,7 @@ output_labels(void)
> if (show_idle)
> (void)printf("IDLE ");
>
> - (void)printf(" %.*s", HOST_WIDTH, "FROM");
> + (void)printf(" %.*s", hostwidth, "FROM");
>
> (void)putchar('\n');
> }
>
Reads good to me. ok krw@
.... Ken