comparison src/glyphs.c @ 4816:576f09d387d5

Fix query_string_font lookup domains
author Didier Verna <didier@lrde.epita.fr>
date Sat, 09 Jan 2010 15:49:38 +0100
parents 6540302eedf5
children a98ca4640147
comparison
equal deleted inserted replaced
4815:6540302eedf5 4816:576f09d387d5
2429 2429
2430 Lisp_Object 2430 Lisp_Object
2431 query_string_font (Lisp_Object string, Lisp_Object face, Lisp_Object domain) 2431 query_string_font (Lisp_Object string, Lisp_Object face, Lisp_Object domain)
2432 { 2432 {
2433 unsigned char charsets[NUM_LEADING_BYTES]; 2433 unsigned char charsets[NUM_LEADING_BYTES];
2434 struct face_cachel frame_cachel; 2434 struct face_cachel cachel;
2435 struct face_cachel *cachel;
2436 int i; 2435 int i;
2437 Lisp_Object frame = DOMAIN_FRAME (domain); 2436 Lisp_Object window = DOMAIN_WINDOW (domain);
2437 Lisp_Object frame = DOMAIN_FRAME (domain);
2438 2438
2439 /* Compute string font info */ 2439 /* Compute string font info */
2440 find_charsets_in_ibyte_string (charsets, 2440 find_charsets_in_ibyte_string (charsets,
2441 XSTRING_DATA (string), 2441 XSTRING_DATA (string),
2442 XSTRING_LENGTH (string)); 2442 XSTRING_LENGTH (string));
2443 2443
2444 reset_face_cachel (&frame_cachel); 2444 reset_face_cachel (&cachel);
2445 update_face_cachel_data (&frame_cachel, frame, face); 2445 update_face_cachel_data (&cachel, NILP (window) ? frame : window, face);
2446 cachel = &frame_cachel; 2446 ensure_face_cachel_complete (&cachel, domain, charsets);
2447
2448 ensure_face_cachel_complete (cachel, domain, charsets);
2449 2447
2450 for (i = 0; i < NUM_LEADING_BYTES; i++) 2448 for (i = 0; i < NUM_LEADING_BYTES; i++)
2451 { 2449 if (charsets[i])
2452 if (charsets[i]) 2450 return FACE_CACHEL_FONT
2453 { 2451 ((&cachel), charset_by_leading_byte (i + MIN_LEADING_BYTE));
2454 return FACE_CACHEL_FONT (cachel,
2455 charset_by_leading_byte (i +
2456 MIN_LEADING_BYTE));
2457
2458 }
2459 }
2460 2452
2461 return Qnil; /* NOT REACHED */ 2453 return Qnil; /* NOT REACHED */
2462 } 2454 }
2463 2455
2464 static void 2456 static void