diff options
| author | Kenichi Handa | 1998-08-25 03:59:40 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1998-08-25 03:59:40 +0000 |
| commit | 6f6512e8c06e0e4353a9bd33be5f71feaa1b5dd0 (patch) | |
| tree | f33648389a5f3e5eb4b96df4c5b9aadccff90860 /src | |
| parent | edfc7f2558fc3a52e645cd2fdbe0f6566ac6ecbc (diff) | |
| download | emacs-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 21 |
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; |