-#if 0
- {
- NSNumber *cached = [fontCache objectForKey: nsfont];
- if (cached != nil && !synthItal)
- {
-fprintf (stderr, "*** CACHE HIT!\n");
- struct font_info *existing =
- (struct nsfont_info *)[cached unsignedLongValue];
- /* ... */
- }
- else
- {
- if (!synthItal)
- [fontCache
- setObject: [NSNumber numberWithUnsignedLong:
- (unsigned long)font_info]
- forKey: nsfont];
- }
- }
-#endif
+ if (NSFONT_TRACE)
+ NSLog (@"%@\n", nsfont);
+
+ /* Check the cache */
+ cached = [fontCache objectForKey: nsfont];
+ if (cached != nil && !synthItal)
+ {
+ if (NSFONT_TRACE)
+ fprintf(stderr, "*** nsfont_open CACHE HIT!\n");
+ return (Lisp_Object)[cached unsignedLongValue];
+ }
+ else
+ {
+ font_object = font_make_object (VECSIZE (struct nsfont_info),
+ font_entity, pixel_size);
+ if (!synthItal)
+ [fontCache
+ setObject: [NSNumber numberWithUnsignedLong:
+ (unsigned long)font_object]
+ forKey: nsfont];
+ }
+
+ font_info = (struct nsfont_info *) XFONT_OBJECT (font_object);
+ font = (struct font *)font_info;
+ if (!font)
+ return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */