diff options
-rw-r--r-- | src/libip/eipfmt.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libip/eipfmt.c b/src/libip/eipfmt.c index b3fc44c7..fca028ee 100644 --- a/src/libip/eipfmt.c +++ b/src/libip/eipfmt.c @@ -28,8 +28,10 @@ int eipfmt(Fmt *f) { char buf[5*8]; - static char *efmt = "%.2lux%.2lux%.2lux%.2lux%.2lux%.2lux"; + static char *efmt = "%.2ux%.2ux%.2ux%.2ux%.2ux%.2ux"; + static char *altefmt = "%.2ux:%.2ux:%.2ux:%.2ux:%.2ux:%.2ux"; static char *ifmt = "%d.%d.%d.%d"; + char *fmt; uchar *p, ip[16]; ulong *lp; ushort s; @@ -54,6 +56,9 @@ eipfmt(Fmt *f) switch(f->r) { case 'E': /* Ethernet address */ p = va_arg(f->args, uchar*); + fmt = efmt; + if(f->flags&FmtSharp) + fmt = altefmt; snprint(buf, sizeof buf, efmt, p[0], p[1], p[2], p[3], p[4], p[5]); return fmtstrcpy(f, buf); |