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

Reply via email to