Index: usr.bin/netstat/if.c =================================================================== --- usr.bin/netstat/if.c (revision 257504) +++ usr.bin/netstat/if.c (working copy) @@ -160,7 +160,7 @@ * Display a formatted value, or a '-' in the same space. */ static void -show_stat(const char *fmt, int width, u_long value, short showvalue) +show_stat(const char *fmt, int width, u_long value, short showvalue, short notbyte) { const char *lsep, *rsep; char newfmt[32]; @@ -186,8 +186,14 @@ char buf[5]; /* Format in human readable form. */ - humanize_number(buf, sizeof(buf), (int64_t)value, "", - HN_AUTOSCALE, HN_NOSPACE | HN_DECIMAL); + if (notbyte == 0) { + humanize_number(buf, sizeof(buf), (int64_t)value, "", + HN_AUTOSCALE, HN_NOSPACE | HN_DECIMAL); + } else { + humanize_number(buf, sizeof(buf), (int64_t)value, "", + HN_AUTOSCALE, HN_NOSPACE | HN_DECIMAL | + HN_DIVISOR_1000); + } sprintf(newfmt, "%s%%%ds%s", lsep, width, rsep); printf(newfmt, buf); } else { @@ -444,20 +450,20 @@ ifaddraddr = (u_long)TAILQ_NEXT(&ifaddr.ifa, ifa_link); } - show_stat("lu", 8, ipackets, link_layer|network_layer); - show_stat("lu", 5, ierrors, link_layer); - show_stat("lu", 5, idrops, link_layer); + show_stat("lu", 8, ipackets, link_layer|network_layer, 1); + show_stat("lu", 5, ierrors, link_layer, 1); + show_stat("lu", 5, idrops, link_layer, 1); if (bflag) - show_stat("lu", 10, ibytes, link_layer|network_layer); + show_stat("lu", 10, ibytes, link_layer|network_layer, 0); - show_stat("lu", 8, opackets, link_layer|network_layer); - show_stat("lu", 5, oerrors, link_layer); + show_stat("lu", 8, opackets, link_layer|network_layer, 1); + show_stat("lu", 5, oerrors, link_layer,1); if (bflag) - show_stat("lu", 10, obytes, link_layer|network_layer); + show_stat("lu", 10, obytes, link_layer|network_layer, 0); - show_stat("NRSlu", 5, collisions, link_layer); + show_stat("NRSlu", 5, collisions, link_layer, 1); if (dflag) - show_stat("LSd", 4, drops, link_layer); + show_stat("LSd", 4, drops, link_layer, 1); putchar('\n'); if (aflag && ifaddrfound) { @@ -637,18 +643,18 @@ exit(1); }; if (!first) { - show_stat("lu", 10, ifnet.if_ipackets - ip->ift_ip, 1); - show_stat("lu", 5, ifnet.if_ierrors - ip->ift_ie, 1); - show_stat("lu", 5, ifnet.if_iqdrops - ip->ift_id, 1); - show_stat("lu", 10, ifnet.if_ibytes - ip->ift_ib, 1); - show_stat("lu", 10, ifnet.if_opackets - ip->ift_op, 1); - show_stat("lu", 5, ifnet.if_oerrors - ip->ift_oe, 1); - show_stat("lu", 10, ifnet.if_obytes - ip->ift_ob, 1); + show_stat("lu", 10, ifnet.if_ipackets - ip->ift_ip, 1, 1); + show_stat("lu", 5, ifnet.if_ierrors - ip->ift_ie, 1, 1); + show_stat("lu", 5, ifnet.if_iqdrops - ip->ift_id, 1, 1); + show_stat("lu", 10, ifnet.if_ibytes - ip->ift_ib, 1, 0); + show_stat("lu", 10, ifnet.if_opackets - ip->ift_op, 1, 1); + show_stat("lu", 5, ifnet.if_oerrors - ip->ift_oe, 1, 1); + show_stat("lu", 10, ifnet.if_obytes - ip->ift_ob, 1, 0); show_stat("NRSlu", 5, - ifnet.if_collisions - ip->ift_co, 1); + ifnet.if_collisions - ip->ift_co, 1, 1); if (dflag) show_stat("LSu", 5, - ifnet.if_snd.ifq_drops - ip->ift_dr, 1); + ifnet.if_snd.ifq_drops - ip->ift_dr, 1, 1); } ip->ift_ip = ifnet.if_ipackets; ip->ift_ie = ifnet.if_ierrors; @@ -688,17 +694,17 @@ off = (u_long)TAILQ_NEXT(&ifnet, if_link); } if (!first) { - show_stat("lu", 10, sum->ift_ip - total->ift_ip, 1); - show_stat("lu", 5, sum->ift_ie - total->ift_ie, 1); - show_stat("lu", 5, sum->ift_id - total->ift_id, 1); - show_stat("lu", 10, sum->ift_ib - total->ift_ib, 1); - show_stat("lu", 10, sum->ift_op - total->ift_op, 1); - show_stat("lu", 5, sum->ift_oe - total->ift_oe, 1); - show_stat("lu", 10, sum->ift_ob - total->ift_ob, 1); - show_stat("NRSlu", 5, sum->ift_co - total->ift_co, 1); + show_stat("lu", 10, sum->ift_ip - total->ift_ip, 1, 1); + show_stat("lu", 5, sum->ift_ie - total->ift_ie, 1, 1); + show_stat("lu", 5, sum->ift_id - total->ift_id, 1, 1); + show_stat("lu", 10, sum->ift_ib - total->ift_ib, 1, 0); + show_stat("lu", 10, sum->ift_op - total->ift_op, 1, 1); + show_stat("lu", 5, sum->ift_oe - total->ift_oe, 1, 1); + show_stat("lu", 10, sum->ift_ob - total->ift_ob, 1, 0); + show_stat("NRSlu", 5, sum->ift_co - total->ift_co, 1, 1); if (dflag) show_stat("LSu", 5, - sum->ift_dr - total->ift_dr, 1); + sum->ift_dr - total->ift_dr, 1, 1); } *total = *sum; }