aboutsummaryrefslogtreecommitdiffstats
path: root/isprint.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-07-09 23:17:05 +0000
committerGuy Harris <guy@alum.mit.edu>2004-07-09 23:17:05 +0000
commit7661a992b6e6fa0cd50ae0b9f968a131f299b3cb (patch)
tree2a1ee38f14504ad2092c0d754f48db7845689fb9 /isprint.h
parentfe1b0f99c4015d93f71fe35a549da186d5311f2e (diff)
Move the redefinition of "isprint()" to be used by dissectors when
generating strings to put into the printable representation of protocol tree items into an "isprint.h" header, and include it in some additional dissectors. Add bounds checking to one place in the DICOM dissector. svn path=/trunk/; revision=11356
Diffstat (limited to 'isprint.h')
-rw-r--r--isprint.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/isprint.h b/isprint.h
new file mode 100644
index 0000000000..7f47ad5e83
--- /dev/null
+++ b/isprint.h
@@ -0,0 +1,46 @@
+/* isprint.h
+ * Temporary redefinition of "isprint()" to cope with GTK+ 1.3 and
+ * later using UTF-8 strings
+ *
+ * $Id: isprint.h,v 1.1 2004/07/09 23:17:02 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __ISPRINT_H__
+#define __ISPRINT_H__
+
+#if GLIB_MAJOR_VERSION >= 2
+/*
+ * XXX - "isprint()" can return "true" for non-ASCII characters, but
+ * those don't work with GTK+ 1.3 or later, as they take UTF-8 strings
+ * as input. Until we fix up Ethereal to properly handle non-ASCII
+ * characters in all output (both GUI displays and text printouts)
+ * in those versions of GTK+, we work around the problem by escaping
+ * all characters that aren't printable ASCII.
+ *
+ * We don't know what version of GTK+ we're using, as dissectors don't
+ * use any GTK+ stuff; we use GLib as a proxy for that, with GLib 2.x
+ * implying GTK+ 1.3 or later (we don't support GLib 1.3[.x]).
+ */
+#undef isprint
+#define isprint(c) (c >= 0x20 && c < 0x7f)
+#endif
+
+#endif