plural
room_num, link_num, bat_num, plural(bat_num), pit_num,
plural(pit_num), arrow_num);
player_loc, arrows_left, plural(arrows_left));
printf(m, scnt->f, plural(scnt->f))
sc_tokplur = Specials[i].plural;
int plural; /* is this plural? */
printf(m, etheripstat.f, plural(etheripstat.f))
printf(m, ipsecstat.f, plural(ipsecstat.f))
printf(m, espstat.f, plural(espstat.f))
printf(m, ipipstat.f, plural(ipipstat.f))
printf(m, carpstat.f, plural(carpstat.f))
printf(m, pfsyncstat.f, plural(pfsyncstat.f))
printf(m, flowstats.f, plural(flowstats.f))
printf(m, ipcompstat.f, plural(ipcompstat.f))
printf(m, tcpstat.f, plural(tcpstat.f))
printf(m, tcpstat.f1, plural(tcpstat.f1), tcpstat.f2, plural(tcpstat.f2))
printf(m, tcpstat.f1, plural(tcpstat.f1), tcpstat.f2)
printf(m, udpstat.f, plural(udpstat.f))
printf(m, ipstat.f, plural(ipstat.f))
printf(m, divstat.f, plural(divstat.f))
printf(m, icmpstat.f, plural(icmpstat.f))
printf(m, igmpstat.f, plural(igmpstat.f))
printf(m, ahstat.f, plural(ahstat.f))
printf(m, (unsigned long long)ip6stat.f, plural(ip6stat.f))
printf(m, (unsigned long long)icmp6stat.f, plural(icmp6stat.f))
printf(m, (unsigned long long)rip6stat.f, plural(rip6stat.f))
printf("%lu mbuf%s in use:\n", totmbufs, plural(totmbufs));
plural(mbstat.m_mtypes[mp->mt_type]),
plural(mbstat.m_mtypes[i]), i);
mrtstat.mrts_mfc_lookups, plural(mrtstat.mrts_mfc_lookups));
mrtstat.mrts_upcalls, plural(mrtstat.mrts_upcalls));
mrtstat.mrts_no_route, plural(mrtstat.mrts_no_route));
mrtstat.mrts_bad_tunnel, plural(mrtstat.mrts_bad_tunnel));
mrtstat.mrts_cant_tunnel, plural(mrtstat.mrts_cant_tunnel));
mrtstat.mrts_wrong_if, plural(mrtstat.mrts_wrong_if));
mrtstat.mrts_upq_ovflw, plural(mrtstat.mrts_upq_ovflw));
mrtstat.mrts_cache_cleanups, plural(mrtstat.mrts_cache_cleanups));
mrtstat.mrts_drop_sel, plural(mrtstat.mrts_drop_sel));
mrtstat.mrts_q_overflow, plural(mrtstat.mrts_q_overflow));
mrtstat.mrts_pkt2large, plural(mrtstat.mrts_pkt2large));
mrtstat.mrts_upq_sockfull, plural(mrtstat.mrts_upq_sockfull));
mrt6stat.mrt6s_mfc_lookups, plural(mrt6stat.mrt6s_mfc_lookups));
mrt6stat.mrt6s_upcalls, plural(mrt6stat.mrt6s_upcalls));
mrt6stat.mrt6s_no_route, plural(mrt6stat.mrt6s_no_route));
mrt6stat.mrt6s_bad_tunnel, plural(mrt6stat.mrt6s_bad_tunnel));
mrt6stat.mrt6s_cant_tunnel, plural(mrt6stat.mrt6s_cant_tunnel));
mrt6stat.mrt6s_wrong_if, plural(mrt6stat.mrt6s_wrong_if));
mrt6stat.mrt6s_upq_ovflw, plural(mrt6stat.mrt6s_upq_ovflw));
mrt6stat.mrt6s_cache_cleanups, plural(mrt6stat.mrt6s_cache_cleanups));
mrt6stat.mrt6s_drop_sel, plural(mrt6stat.mrt6s_drop_sel));
mrt6stat.mrt6s_q_overflow, plural(mrt6stat.mrt6s_q_overflow));
mrt6stat.mrt6s_pkt2large, plural(mrt6stat.mrt6s_pkt2large));
mrt6stat.mrt6s_upq_sockfull, plural(mrt6stat.mrt6s_upq_sockfull));
#define p(f, m) printf(m, (unsigned long)stats.f, plural(stats.f))
char *plural(u_int64_t);
rtstat.rts_badredirect, plural(rtstat.rts_badredirect));
rtstat.rts_dynamic, plural(rtstat.rts_dynamic));
rtstat.rts_newgateway, plural(rtstat.rts_newgateway));
rtstat.rts_unreach, plural(rtstat.rts_unreach));
rtstat.rts_wildcard, plural(rtstat.rts_wildcard));
plural(n->refs));
broken_cycles, plural(broken_cycles),
broken_arcs, plural(broken_arcs));
printf(m, stat->f, plural(stat->f))