- {
- if (registry != Mnil && registry != MPLIST_KEY (pl))
- continue;
- MPLIST_DO (p, MPLIST_VAL (pl))
- {
- MFontX *fontx;
-
- if (family != Mnil && family != MPLIST_KEY (p))
- continue;
- for (fontx = MPLIST_VAL (p); fontx; fontx = fontx->next)
- if (! font
- || (mfont__match_p (&fontx->core, font, MFONT_REGISTRY)))
- {
- if (fontx->core.size == size
- || fontx->core.size == 0)
- {
- mplist_push (plist, MPLIST_KEY (p), fontx);
- num++;
- }
- else if (size == 0
- || (size <= 360 && HAVE_SIZE (fontx, (size / 10))))
- {
- unsigned size5_36 = fontx->size5_36;
- MFontX *fontx2;
- int i;
-
- fontx->size5_36 = 0;
- for (i = fontx->core.size / 10; i <= 36; i++)
- if (size5_36 & (1 << (i - 5)))
+ if (registry == Mnil || registry == MPLIST_KEY (pl))
+ {
+ MPLIST_DO (p, MPLIST_VAL (pl))
+ if (family == Mnil || family == MPLIST_KEY (p))
+ {
+ MFont *fontx = MPLIST_VAL (p);
+
+ if (! font || (mfont__match_p (fontx, font, MFONT_REGISTRY)))
+ {
+ if (fontx->size != 0 && size)
+ {
+ if (fontx->multiple_sizes)