Hi. For me `ch' is unwanted here.
Index: usr.sbin/tcpdump/util.c =================================================================== RCS file: /cvs/src/usr.sbin/tcpdump/util.c,v retrieving revision 1.30 diff -u -p -r1.30 util.c --- usr.sbin/tcpdump/util.c 24 Jan 2020 22:46:37 -0000 1.30 +++ usr.sbin/tcpdump/util.c 29 Nov 2020 22:56:23 -0000 @@ -303,13 +303,11 @@ safeputs(const char *s) void safeputchar(int c) { - unsigned char ch; - - ch = (unsigned char)(c & 0xff); + c &= 0xff; if (c < 0x80 && isprint(c)) - printf("%c", c & 0xff); + printf("%c", c); else - printf("\\%03o", c & 0xff); + printf("\\%03o", c); } /* On Sun, Nov 29, 2020 at 10:29:46PM +0100, Martin Vahlensieck wrote: > Hi > > I think this is the way it was meant. > > Best, > > Martin > > Index: util.c > =================================================================== > RCS file: /cvs/src/usr.sbin/tcpdump/util.c,v > retrieving revision 1.30 > diff -u -p -r1.30 util.c > --- util.c 24 Jan 2020 22:46:37 -0000 1.30 > +++ util.c 29 Nov 2020 21:23:37 -0000 > @@ -306,7 +306,7 @@ safeputchar(int c) > unsigned char ch; > > ch = (unsigned char)(c & 0xff); > - if (c < 0x80 && isprint(c)) > + if (ch < 0x80 && isprint(ch)) > printf("%c", c & 0xff); > else > printf("\\%03o", c & 0xff); >