aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa1998-08-25 03:59:40 +0000
committerKenichi Handa1998-08-25 03:59:40 +0000
commit6f6512e8c06e0e4353a9bd33be5f71feaa1b5dd0 (patch)
treef33648389a5f3e5eb4b96df4c5b9aadccff90860
parentedfc7f2558fc3a52e645cd2fdbe0f6566ac6ecbc (diff)
downloademacs-6f6512e8c06e0e4353a9bd33be5f71feaa1b5dd0.tar.gz
emacs-6f6512e8c06e0e4353a9bd33be5f71feaa1b5dd0.zip
(x_list_fonts): Work-around for the case XGetAtomName
returns a null string. This happens when dxpc 3.7 is being used.
-rw-r--r--src/xterm.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 43fb3d60b3a..0e4072eba6f 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6496,12 +6496,21 @@ x_list_fonts (f, pattern, size, maxnames)
6496 int len = strlen (name); 6496 int len = strlen (name);
6497 char *tmp; 6497 char *tmp;
6498 6498
6499 num_fonts = 1; 6499 /* If DXPC (a Differential X Protocol Compressor)
6500 names = (char **) alloca (sizeof (char *)); 6500 Ver.3.7 is running, XGetAtomName will return null
6501 /* Some systems only allow alloca assigned to a simple var. */ 6501 string. We must avoid such a name. */
6502 tmp = (char *) alloca (len + 1); names[0] = tmp; 6502 if (len == 0)
6503 bcopy (name, names[0], len + 1); 6503 try_XLoadQueryFont = 0;
6504 XFree (name); 6504 else
6505 {
6506 num_fonts = 1;
6507 names = (char **) alloca (sizeof (char *));
6508 /* Some systems only allow alloca assigned to a
6509 simple var. */
6510 tmp = (char *) alloca (len + 1); names[0] = tmp;
6511 bcopy (name, names[0], len + 1);
6512 XFree (name);
6513 }
6505 } 6514 }
6506 else 6515 else
6507 try_XLoadQueryFont = 0; 6516 try_XLoadQueryFont = 0;