Ethereal-dev: Re: [Ethereal-dev] packet-x11-keysym.h cleanup

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: aferen@xxxxxxxxxxxx (Andrew C. Feren)
Date: 03 Oct 2001 17:41:41 -0400
Motonori Shindo <mshindo@xxxxxxxxxxx> writes:

> Hi,
> 
> Today I looked at packet-x11-keysym.h and found that it embeds a raw
> 8-bit character in a string, which is not a good idea generally. It is
> less editable and, even worse, some compiler (notably Japanized
> version of MS Visual C++) fail to compile it because a character with
> MSB being set is recognized as the 1st byte of 2-byte character
> (Kanji) and subsequent byte (double-quote) is recognized as the second
> half of Kanji character, ending up with an open-ended string. 
> 
> To avoid this problem, a character with MSB=1 should be expressed
> using an octal notation in a string (i.e. \xxx). I enclosed a patch
> that does it. I confirmed that a new code generates exactly the same
> object file as before, and hence there's no change in the executable.

This seemed reasonable and an easy problem to fix so I did a quick
grep for lines with "a character with MSB=1".  Attached are the two
trivial patches.

I ignored all comments with Michael Tüxen's name in them.

I also stripped and diffed the object files to confirm that the
generated code is identical.

Index: packet-gtp.c
===================================================================
RCS file: /cvsroot/ethereal/packet-gtp.c,v
retrieving revision 1.10
diff -u -r1.10 packet-gtp.c
--- packet-gtp.c	2001/09/27 10:01:07	1.10
+++ packet-gtp.c	2001/10/03 21:34:34
@@ -4050,7 +4050,8 @@
 	for(i=0 ; i<length ; i++) {
 		hdr = tvb_get_guint8(tvb, offset+2+i);
 
-		proto_tree_add_text(ext_tree_hdr_list, tvb, offset+2+i, 1, "N°%u --> Extension Header Type value : %s (%u)", i+1, val_to_str(hdr, gtp_val, "Unknown Extension Header Type"), hdr);
+		/* \260 == ° (degrees) */
+		proto_tree_add_text(ext_tree_hdr_list, tvb, offset+2+i, 1, "N\260%u --> Extension Header Type value : %s (%u)", i+1, val_to_str(hdr, gtp_val, "Unknown Extension Header Type"), hdr);
 	}
 
 	return 2 + length;
Index: packet-x11.c
===================================================================
RCS file: /cvsroot/ethereal/packet-x11.c,v
retrieving revision 1.22
diff -u -r1.22 packet-x11.c
--- packet-x11.c	2001/07/16 05:16:58	1.22
+++ packet-x11.c	2001/10/03 21:34:45
@@ -793,8 +793,9 @@
 	    gint16 angle1 = VALUE16(tvb, cur_offset + 8);
 	    gint16 angle2 = VALUE16(tvb, cur_offset + 10);
 
+	    /* \260 == ° (degrees) */
 	    proto_tree *ttt = proto_tree_add_none_format(tt, hf_x11_arc, tvb, cur_offset, 12, 
-							     "arc: %dx%d+%d+%d, angle %d -> %d (%f° -> %f°)",
+							     "arc: %dx%d+%d+%d, angle %d -> %d (%f\260 -> %f\260)",
 							     width, height, x, y, angle1, angle2,
 							     angle1 / 64.0, angle2 / 64.0);
 	    proto_tree_add_int(ttt, hf_x11_arc_x, tvb, cur_offset, 2, x); cur_offset += 2;

-- 
-Andrew Feren
 Cetacean Networks, Inc.
 Portsmouth, NH