aboutsummaryrefslogtreecommitdiffstats
path: root/prefs.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2000-10-15 08:46:18 +0000
committerGuy Harris <guy@alum.mit.edu>2000-10-15 08:46:18 +0000
commit8916192b86066d8cc5420ad4259795d1a670a046 (patch)
tree654178118c349029004625f512e299c1c72e4c28 /prefs.c
parent3762a64fcef4618f23584e06c3d8c6ab481a7764 (diff)
At least on UNIX/X, make the wildcard pattern that's the initial
fixed-width font preference match only ISO 8859/1 fonts, so that we don't match ISO 10646 fonts (as happens on some systems). Users will have to select a font with the appropriate character set encoding if they don't want stuff displayed as 8859/1 (note that making the widgets that use the fixed-width font handle arbitrary character sets is probably a non-trivial task, given that the *dissectors* will also have to handle arbitrary character sets, and that the character set used in a given packet isn't necessarily the character set in the user's locale). svn path=/trunk/; revision=2496
Diffstat (limited to 'prefs.c')
-rw-r--r--prefs.c49
1 files changed, 47 insertions, 2 deletions
diff --git a/prefs.c b/prefs.c
index ed9ba8f9ae..006c851fe7 100644
--- a/prefs.c
+++ b/prefs.c
@@ -1,7 +1,7 @@
/* prefs.c
* Routines for handling preferences
*
- * $Id: prefs.c,v 1.42 2000/09/28 03:16:05 gram Exp $
+ * $Id: prefs.c,v 1.43 2000/10/15 08:46:18 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -534,7 +534,52 @@ read_prefs(int *gpf_errno_return, char **gpf_path_return,
#ifdef WIN32
prefs.gui_font_name = g_strdup("-*-lucida console-medium-r-*-*-*-100-*-*-*-*-*-*");
#else
- prefs.gui_font_name = g_strdup("-*-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-*-*");
+ /*
+ * XXX - for now, we make the initial font name a pattern that matches
+ * only ISO 8859/1 fonts, so that we don't match 2-byte fonts such
+ * as ISO 10646 fonts.
+ *
+ * Users in locales using other one-byte fonts will have to choose
+ * a different font from the preferences dialog - or put the font
+ * selection in the global preferences file to make that font the
+ * default for all users who don't explicitly specify a different
+ * font.
+ *
+ * Making this a font set rather than a font has two problems:
+ *
+ * 1) as far as I know, you can't select font sets with the
+ * font selection dialog;
+ *
+ * 2) if you use a font set, the text to be drawn must be a
+ * multi-byte string in the appropriate locale, but
+ * Ethereal does *NOT* guarantee that's the case - in
+ * the hex-dump window, each character in the text portion
+ * of the display must be a *single* byte, and in the
+ * packet-list and protocol-tree windows, text extracted
+ * from the packet is not necessarily in the right format.
+ *
+ * "Doing this right" may, for the packet-list and protocol-tree
+ * windows, require that dissectors know what the locale is
+ * *AND* know what locale and text representation is used in
+ * the packets they're dissecting, and may be impossible in
+ * the hex-dump window (except by punting and displaying only
+ * ASCII characters).
+ *
+ * GTK+ 2.0 may simplify part of the problem, as it will, as I
+ * understand it, use UTF-8-encoded Unicode as its internal
+ * character set; however, we'd still have to know whatever
+ * character set and encoding is used in the packet (which
+ * may differ for different protocols, e.g. SMB might use
+ * PC code pages for some strings and Unicode for others, whilst
+ * NFS might use some UNIX character set encoding, e.g. ISO 8859/x,
+ * or one of the EUC character sets for Asian languages, or one
+ * of the other multi-byte character sets, or UTF-8, or...).
+ *
+ * I.e., as far as I can tell, "internationalizing" the packet-list,
+ * protocol-tree, and hex-dump windows involves a lot more than, say,
+ * just using font sets rather than fonts.
+ */
+ prefs.gui_font_name = g_strdup("-*-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-iso8859-1");
#endif
prefs.gui_marked_fg.pixel = 65535;
prefs.gui_marked_fg.red = 65535;