12321 |
Lisp_Object |
Lisp_Object |
12322 |
x_new_fontset (f, fontsetname) |
x_new_fontset (f, fontsetname) |
12323 |
struct frame *f; |
struct frame *f; |
12324 |
char *fontsetname; |
Lisp_Object fontsetname; |
12325 |
{ |
{ |
12326 |
int fontset = fs_query_fontset (build_string (fontsetname), 0); |
int fontset = fs_query_fontset (fontsetname, 0); |
12327 |
Lisp_Object result; |
Lisp_Object result; |
12328 |
|
|
12329 |
if (fontset > 0 && f->output_data.x->fontset == fontset) |
if (fontset > 0 && f->output_data.x->fontset == fontset) |
12337 |
if (fontset >= 0) |
if (fontset >= 0) |
12338 |
result = x_new_font (f, (XSTRING (fontset_ascii (fontset))->data)); |
result = x_new_font (f, (XSTRING (fontset_ascii (fontset))->data)); |
12339 |
else |
else |
12340 |
result = x_new_font (f, fontsetname); |
result = x_new_font (f, XSTRING (fontsetname)->data); |
12341 |
|
|
12342 |
if (!STRINGP (result)) |
if (!STRINGP (result)) |
12343 |
/* Can't load ASCII font. */ |
/* Can't load ASCII font. */ |
12344 |
return Qnil; |
return Qnil; |
12345 |
|
|
12346 |
|
fontset = fs_query_fontset (result, 0); |
12347 |
if (fontset < 0) |
if (fontset < 0) |
12348 |
{ |
fontset = new_fontset_from_font_name (result); |
|
Lisp_Object func; |
|
|
|
|
|
func = intern ("create-fontset-from-ascii-font"); |
|
|
if (! NILP (Ffboundp (func))) |
|
|
result = call2 (func, result, result); |
|
|
else |
|
|
Fnew_fontset (result, |
|
|
Fcons (Fcons (Qascii, Fcons (result, Qnil)), Qnil)); |
|
|
fontset = fs_query_fontset (result, 0); |
|
|
} |
|
12349 |
|
|
12350 |
/* Since x_new_font doesn't update any fontset information, do it now. */ |
/* Since x_new_font doesn't update any fontset information, do it now. */ |
12351 |
f->output_data.x->fontset = fontset; |
f->output_data.x->fontset = fontset; |