If you look more closely at the alignment of the characters to the hex values you will see that xd thinks Q has character code 0x525 and R has character code 3. It should look more like

% xd -c -x bad
0000000  e0Q R S  \n
     0  e0515253 0a000000
0000005

On Jul 14, 2008, at 12:43 PM, Russ Cox wrote:

Hello. Regarding my previous question, the file /n/sources/contrib/
pietro/xd.out shows a bug in xd regarding characters that can't be
printed with the %c format. There should be no space between a non-
printing and a printing character; but the two spaces screw the rest
of the line up. This shows a deficiency in the table-based
implementation. I'll do my best to fix it in a clean way. Thanks.

It would help a lot if (1) you cut and pasted things into email
instead of making us go look on sources for four-line files
and (2) you told us exactly what you thought was wrong.

Your xd.out says:

% xd -c -x bad
0000000  e0  Q  R  S \n
     0  e0515253 0a000000
0000005

which looks fine to me.  If I create the same file and add some
more text just to fill things out, I get:

% xd -c -b -x a | sed 6q
0000000  e0  Q  R  S \n  L  o  r  e  m     i  p  s  u  m
     0  e0 51 52 53 0a 4c 6f 72 65 6d 20 69 70 73 75 6d
     0  e0515253 0a4c6f72 656d2069 7073756d
0000010      d  o  l  o  r     s  i  t     a  m  e  t  ,
    10  20 64 6f 6c 6f 72 20 73 69 74 20 61 6d 65 74 2c
    10  20646f6c 6f722073 69742061 6d65742c

which still looks just fine.  In particular I don't see any
alignment difference between the first line and the second line.

Russ




Reply via email to