- p = plist;
- MSTRUCT_MALLOC (xfont_table, MERROR_WIN);
- MLIST_INIT1 (xfont_table, fonts, 4);
- mplist_push (p, family, xfont_table);
+ size = sizes[j];
+ if (size <= 32)
+ {
+ if (size != 0)
+ {
+ if (smallest == 0)
+ smallest = largest = size;
+ else if (size < smallest)
+ smallest = size;
+ else if (size > largest)
+ largest = size;
+ SET_SIZE (size_bits, size);
+ }
+ }
+ else
+ {
+ font.core.property[MFONT_SIZE] = size * 10;
+ font.sizes = 0;
+ MLIST_APPEND1 (xfont_table, fonts, font, MERROR_WIN);
+ }
+ }
+
+ if (size_bits || have_scalable == 1)
+ {
+ font.sizes = size_bits;
+ font.smallest = smallest;
+ font.largest = largest;
+ font.core.property[MFONT_SIZE] = have_scalable ? 0 : smallest * 10;
+ MLIST_APPEND1 (xfont_table, fonts, font, MERROR_WIN);