diff options
| author | Kenichi Handa | 2006-10-31 06:42:59 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2006-10-31 06:42:59 +0000 |
| commit | 7147863a1cadafc27dcab1d3f28ccab2224a6316 (patch) | |
| tree | bf123304c97402e3adb2dc74203a7f3177f044cf /src | |
| parent | 24b86c51ee4241b16d30db1117c8450710f9ee95 (diff) | |
| download | emacs-7147863a1cadafc27dcab1d3f28ccab2224a6316.tar.gz emacs-7147863a1cadafc27dcab1d3f28ccab2224a6316.zip | |
(xic_create_xfontset): Fix previous change.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/xfns.c | 44 |
2 files changed, 30 insertions, 18 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1b6772bf680..c91555cf415 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2006-10-31 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * xfns.c (xic_create_xfontset): Fix previous change. | ||
| 4 | |||
| 1 | 2006-10-30 Chong Yidong <cyd@stupidchicken.com> | 5 | 2006-10-30 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * s/openbsd.h (LD_SWITCH_SYSTEM): Add /usr/pkg/lib and | 7 | * s/openbsd.h (LD_SWITCH_SYSTEM): Add /usr/pkg/lib and |
diff --git a/src/xfns.c b/src/xfns.c index 9f656d4cd7b..8f03d90c796 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -2134,27 +2134,35 @@ xic_create_xfontset (f, base_fontname) | |||
| 2134 | if (!xfs) | 2134 | if (!xfs) |
| 2135 | { | 2135 | { |
| 2136 | char *fontsetname = xic_create_fontsetname (base_fontname, False); | 2136 | char *fontsetname = xic_create_fontsetname (base_fontname, False); |
| 2137 | char *p0 = fontsetname, *p1; | ||
| 2138 | 2137 | ||
| 2139 | /* New fontset. */ | 2138 | /* New fontset. */ |
| 2140 | /* FONTSETNAME contains a list of font names (specific fonts | 2139 | xfs = XCreateFontSet (FRAME_X_DISPLAY (f), |
| 2141 | first, general fonts last), but giving that to XCreateFontSet | 2140 | fontsetname, &missing_list, |
| 2142 | at once occasionally fails (bug of X?). So, we try to call | 2141 | &missing_count, &def_string); |
| 2143 | XCreateFontSet for each fontname. */ | 2142 | if (missing_list) |
| 2144 | 2143 | XFreeStringList (missing_list); | |
| 2145 | while (p0) | 2144 | if (! xfs) |
| 2146 | { | 2145 | { |
| 2147 | p1 = strchr (p0, ','); | 2146 | /* FONTSETNAME contains a list of font names (specific fonts |
| 2148 | if (p1) | 2147 | first, general fonts last), but giving that to |
| 2149 | *p1 = '\0'; | 2148 | XCreateFontSet at once occasionally fails (bug of X?). |
| 2150 | xfs = XCreateFontSet (FRAME_X_DISPLAY (f), | 2149 | So, we try to call XCreateFontSet for each fontname. */ |
| 2151 | p0, &missing_list, | 2150 | char *p0 = fontsetname, *p1; |
| 2152 | &missing_count, &def_string); | 2151 | |
| 2153 | if (missing_list) | 2152 | while (p0) |
| 2154 | XFreeStringList (missing_list); | 2153 | { |
| 2155 | if (xfs) | 2154 | p1 = strchr (p0, ','); |
| 2156 | break; | 2155 | if (p1) |
| 2157 | p0 = p1 ? p1 + 1 : NULL; | 2156 | *p1 = '\0'; |
| 2157 | xfs = XCreateFontSet (FRAME_X_DISPLAY (f), | ||
| 2158 | p0, &missing_list, | ||
| 2159 | &missing_count, &def_string); | ||
| 2160 | if (missing_list) | ||
| 2161 | XFreeStringList (missing_list); | ||
| 2162 | if (xfs) | ||
| 2163 | break; | ||
| 2164 | p0 = p1 ? p1 + 1 : NULL; | ||
| 2165 | } | ||
| 2158 | } | 2166 | } |
| 2159 | xfree (fontsetname); | 2167 | xfree (fontsetname); |
| 2160 | } | 2168 | } |