Pelles C forum

Pelles C => Bug reports => Topic started by: ander_cc on April 14, 2026, 08:58:13 AM

Title: Some fonts are missing from the font file list.
Post by: ander_cc on April 14, 2026, 08:58:13 AM
Like "Cascadia Mono", I can't see it in font name list. But can set in theme file.
Btw: When I was translating rc file, I noticed line 3409 had still read "version 13.00".
See attach files.
Pelles C v14, Windows 11 pro Chinese (Samplify) 25H2
Title: Re: Some fonts are missing from the font file list.
Post by: John Z on April 14, 2026, 01:55:09 PM
Hi ander_cc,

On my system the Cascadia fonts are there. See attachment.
Windows 11 Home 25H2, so seems they 'should' be there on Pro . . . it is not a Pelles IDE issue I think...

Try going to windows settings, personalization, fonts, then see what is there.

John Z

P.S. The title on the resource 9 file also shows 13 I believe
Title: Re: Some fonts are missing from the font file list.
Post by: ander_cc on April 14, 2026, 03:28:05 PM
Quote from: John Z on April 14, 2026, 01:55:09 PMHi ander_cc,

On my system the Cascadia fonts are there. See attachment.
Windows 11 Home 25H2, so seems they 'should' be there on Pro . . . it is not a Pelles IDE issue I think...

Try going to windows settings, personalization, fonts, then see what is there.

John Z

P.S. The title on the resource 9 file also shows 13 I believe
I also try it in my laptop, it is Win11 Home 25h2, and a Win10 pc, but miss some fonts too. Maybe this issue is only related to the Windows Chinese Edition.
Title: Re: Some fonts are missing from the font file list.
Post by: John Z on April 14, 2026, 04:49:07 PM
You could be right, seems like it.  Did you check windows settings, personalization, fonts ..... that would be definitive if it is not showing there.

You might try Microsoft Store and see if the font is available to be installed.

John Z
Title: Re: Some fonts are missing from the font file list.
Post by: TimoVJL on April 14, 2026, 07:25:55 PM
Silly example to check if font exists
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int CALLBACK EnumFontFamProc(const LOGFONT *lpelf, const TEXTMETRIC *lpntm,
  DWORD FontType, LPARAM lParam)
{
    static int nCnt;
    OutputDebugString(lpelf->lfFaceName);
    if (!lstrcmp(lpelf->lfFaceName, (TCHAR*)lParam))
        nCnt++;
    return nCnt;
}

void __cdecl WinMainCRTStartup(void)
{
    HDC hDC = GetDC(GetDesktopWindow());
    //int nFont = EnumFontFamilies(hDC, TEXT("Consolas"), EnumFontFamProc, (LPARAM)TEXT("Consolas"));
    int nFont = EnumFontFamilies(hDC, TEXT("Cascadia Mono"), EnumFontFamProc, (LPARAM)TEXT("Cascadia Mono"));
    if (nFont) MessageBox(0, "font found", "Font", MB_OK);
    else MessageBox(0, "font not found", "Font", MB_OK);
    ExitProcess(0);
}
Title: Re: Some fonts are missing from the font file list.
Post by: Vortex on April 14, 2026, 08:34:57 PM
Hi Timo,

Compiling your code, I get the font not found message on Windows 7 Sp1.
Title: Re: Some fonts are missing from the font file list.
Post by: TimoVJL on April 14, 2026, 09:13:09 PM
https://fonts.google.com/specimen/Cascadia+Mono (https://fonts.google.com/specimen/Cascadia+Mono)
Just an external font
Title: Re: Some fonts are missing from the font file list.
Post by: Pelle on April 18, 2026, 05:58:35 PM
I am deliberately filtering the fonts list. At least last time I checked, several years ago, not doing this filtering gave me many fonts I couldn't use.
I will have to think about this (when I can find the time)...
Title: Re: Some fonts are missing from the font file list.
Post by: Pelle on April 19, 2026, 09:36:31 PM
Quote from: ander_cc on April 14, 2026, 08:58:13 AMLike "Cascadia Mono", I can't see it in font name list. But can set in theme file.
Btw: When I was translating rc file, I noticed line 3409 had still read "version 13.00".
The version is in many places, this place is less important. I will fix this some day.

To get some progress here, could you please compile and run the following program. If you see fonts in the output that you want, but don't see in the IDE, please post the following info:

1) The 6 lines following "#1: LOCALE FONT SIGNATURE"
2) The 3-9 lines from "#2: LIST OF FONTS" for the missing font(s).

#define WIN32_LEAN_AND_MEAN
#define UNICODE
#include <windows.h>
#include <stdio.h>

#pragma comment(lib, "user32.lib")
#pragma comment(lib, "gdi32.lib")

#define DWFMT  "%#010lx"

static wchar_t *CharSetName(BYTE bCharSet)
{
#define CASE(x) case x: return L"" # x
    switch (bCharSet)
    {
        CASE(ANSI_CHARSET);
        CASE(ARABIC_CHARSET);
        CASE(BALTIC_CHARSET);
        CASE(CHINESEBIG5_CHARSET);
        CASE(DEFAULT_CHARSET);
        CASE(EASTEUROPE_CHARSET);
        CASE(GB2312_CHARSET);
        CASE(GREEK_CHARSET);
        CASE(HANGEUL_CHARSET);
        CASE(HEBREW_CHARSET);
        CASE(JOHAB_CHARSET);
        CASE(MAC_CHARSET);
        CASE(OEM_CHARSET);
        CASE(RUSSIAN_CHARSET);
        CASE(SHIFTJIS_CHARSET);
        CASE(SYMBOL_CHARSET);
        CASE(THAI_CHARSET);
        CASE(TURKISH_CHARSET);
        CASE(VIETNAMESE_CHARSET);
        default: return L"?";
    }
#undef CASE
}

static wchar_t *FontTypeName(DWORD dwFontType)
{
#define CASE(x) case x: return L"" # x
    switch (dwFontType)
    {
        CASE(DEVICE_FONTTYPE);
        CASE(RASTER_FONTTYPE);
        CASE(TRUETYPE_FONTTYPE);
        case 0: return L"0";
        default: return L"?";
    }
#undef CASE
}

static int CALLBACK EnumFontFaceProc(const ENUMLOGFONTEX *pelf,
    const NEWTEXTMETRICEX *pntm, DWORD dwFontType, LPARAM lParam)
{
    LOCALESIGNATURE *pls = (void *)lParam;

    printf("  ------------------------------\n");

    printf("  lfFaceName: \"%ls\"\n", pelf->elfLogFont.lfFaceName);
    printf("  dwFontType: %ls\n", FontTypeName(dwFontType));
    printf("  lfCharSet: %ls\n", CharSetName(pelf->elfLogFont.lfCharSet));

    if ((dwFontType & TRUETYPE_FONTTYPE) != 0)
    {
        printf("  ntmFontSig.fsUsb[0]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[0],
            (pntm->ntmFontSig.fsUsb[0] & pls->lsUsb[0]));

        printf("  ntmFontSig.fsUsb[1]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[1],
            (pntm->ntmFontSig.fsUsb[1] & pls->lsUsb[1]));

        printf("  ntmFontSig.fsUsb[2]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[2],
            (pntm->ntmFontSig.fsUsb[2] & pls->lsUsb[2]));

        printf("  ntmFontSig.fsUsb[3]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[3],
            (pntm->ntmFontSig.fsUsb[3] & pls->lsUsb[3]));


        printf("  ntmFontSig.fsCsb[0]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsCsb[0],
            (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]));

        printf("  ntmFontSig.fsCsb[1]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsCsb[1],
            (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]));
    }

    return 1;
}

int main(void)
{
    HDC hdc = GetDC(NULL);
    if (hdc != NULL)
    {
        LOCALESIGNATURE ls;

        if (!GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_FONTSIGNATURE,
            (WCHAR *)&ls, sizeof(ls) / sizeof(WCHAR)))
            return 1;

        printf("#1: LOCALE FONT SIGNATURE:\n");
        printf("  ls.lsUsb[0]: " DWFMT "\n", ls.lsUsb[0]);
        printf("  ls.lsUsb[1]: " DWFMT "\n", ls.lsUsb[1]);
        printf("  ls.lsUsb[2]: " DWFMT "\n", ls.lsUsb[2]);
        printf("  ls.lsUsb[3]: " DWFMT "\n", ls.lsUsb[3]);
        printf("  ls.lsCsbSupported[0]: " DWFMT "\n", ls.lsCsbSupported[0]);
        printf("  ls.lsCsbSupported[1]: " DWFMT "\n", ls.lsCsbSupported[1]);

        printf("\n#2: LIST OF FONTS:\n");
        LOGFONT lf = {
            .lfCharSet = DEFAULT_CHARSET,
            .lfFaceName[0] = L'\0',
            .lfPitchAndFamily = 0,
        };
        EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontFaceProc, (LPARAM)&ls, 0);

        ReleaseDC(NULL, hdc);
        return 0;
    }
    return 1;
}
Title: Re: Some fonts are missing from the font file list.
Post by: ander_cc on April 20, 2026, 09:54:54 AM
Quote from: Pelle on April 19, 2026, 09:36:31 PMThe version is in many places, this place is less important. I will fix this some day.

To get some progress here, could you please compile and run the following program. If you see fonts in the output that you want, but don't see in the IDE, please post the following info:

1) The 6 lines following "#1: LOCALE FONT SIGNATURE"
2) The 3-9 lines from "#2: LIST OF FONTS" for the missing font(s).
Thank you!
#1: LOCALE FONT SIGNATURE:
  ls.lsUsb
  ls.lsUsb[1]: 0x28010000
  ls.lsUsb[2]: 0x00000002
  ls.lsUsb[3]: 0x80000000
  ls.lsCsbSupported
  ls.lsCsbSupported[1]: 0000000000

#2: LIST OF FONTS:

Cascadia font family all miss and Consolas font.

  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
   lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
   ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
Title: Re: Some fonts are missing from the font file list.
Post by: ander_cc on April 20, 2026, 10:02:34 AM
Quote from: Pelle on April 18, 2026, 05:58:35 PMI am deliberately filtering the fonts list. At least last time I checked, several years ago, not doing this filtering gave me many fonts I couldn't use.
I will have to think about this (when I can find the time)...
I check the output of your code paste below.
I think you filter the fonts with "GB2312_CHARSET" ? Maybe add "ANSI_CHARSET" could fix it.
Title: Re: Some fonts are missing from the font file list.
Post by: Pelle on April 21, 2026, 03:05:19 PM
Thank you for the info!

Quote from: ander_cc on April 20, 2026, 10:02:34 AMI check the output of your code paste below.
I think you filter the fonts with "GB2312_CHARSET" ? Maybe add "ANSI_CHARSET" could fix it.
Maybe. I need to check things more - this part of the IDE hasn't changed for 10+ years, so...
Title: Re: Some fonts are missing from the font file list.
Post by: John Z on April 21, 2026, 03:20:51 PM
Quote from: Pelle on April 21, 2026, 03:05:19 PMMaybe. I need to check things more - this part of the IDE hasn't changed for 10+ years, so...

I'm confused - If it is an IDE issue then why using the same IDE do I see the fonts?
Attached screen shot -

First thing to do is check check windows settings, personalization, fonts to see if it is there.  It is possible and likely that putting it into the manifest it appears to work because windows will find the closest match to a font if that font is missing, as I recall. And verified with a web search

"Yes, Windows automatically substitutes a missing font with a default font (usually Microsoft Sans Serif or Arial) when it encounters a document or application requiring a font not installed on the system. This process ensures text remains visible, though it may change the document's formatting, layout, and appearance.
Key details on Windows font substitution:

    Automatic Process: When a specified font is unavailable, Windows attempts to map the missing font to an available one based on internal registry settings."

John Z
Title: Re: Some fonts are missing from the font file list.
Post by: Pelle on April 21, 2026, 06:26:10 PM
The filtering is supposed to exclude fonts not useful in the current locale. The problem is that for a (C) programming environment, it's hard to ignore the Latin alphabet.

So, ander_cc, changing filtering code in EnumFontFaceProc() from...
if ((dwFontType & TRUETYPE_FONTTYPE) != 0 &&
        (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]) == 0 &&
        (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]) == 0)
        return 1;  /* unwanted font, but keep enumerating */

...to this, should fix the problem... right?
    if ((dwFontType & TRUETYPE_FONTTYPE) != 0 &&

        (pntm->ntmFontSig.fsCsb[0] & FS_LATIN1) == 0 &&    /* <=== NEW */

        (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]) == 0 &&
        (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]) == 0)
        return 1;  /* unwanted font, but keep enumerating */
Not pretty, but I can't a better approach right now so this will have to do...
Title: Re: Some fonts are missing from the font file list.
Post by: ander_cc on April 22, 2026, 04:37:38 AM
Thank you very much Pelle! It is a efficient way.
Title: Re: Some fonts are missing from the font file list.
Post by: Pelle on April 22, 2026, 03:33:31 PM
OK, cool. The fix will be in the next update.