[TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Bug reports will be moved here when the described bug has been fixed

Moderators: Hacker, petermad, Stefan2, white

Post Reply
User avatar
petermad
Power Member
Power Member
Posts: 15997
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

[TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *petermad »

If I in Lister for ASCII for choose: Courier 10pt bold, then it is not Courier that is used - it looks like this: https://tcmd.madsenworld.dk/listercouriernew.png - which is obiously a grotesque variable with font.

It should look like this: https://tcmd.madsenworld.dk/listercourierold.png

There is no problems choosing courier for ANSI, and no problem choosing "Courier New" for ASCII or ANSI
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

This was an intentional change: When you choose a font which does NOT have the OEM/DOS encoding AND choose "Western" encoding, then TC sets the encoding by itself to OEM/DOS. Otherwise no DOS characters could be displayed. The problem with Courier is that it's a pixel font, not a Truetype font. Therefore Windows substitutes it as a whole with a different font.
Author of Total Commander
https://www.ghisler.com
User avatar
petermad
Power Member
Power Member
Posts: 15997
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *petermad »

2ghisler(Author)
Is the list of fonts generated by Windows or by TC? If it is TC that generates it, them maybe Courier should be removed from the list for ASCII.

And why is Windows so stupid that it replaces Courier with a non fixed width font (looks like Arial) instead of substituting with Courier New, that iss amazing.
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

It's generated by Windows.
And why is Windows so stupid that it replaces Courier with a non fixed width font (looks like Arial) instead of substituting with Courier New, that iss amazing.
No idea. :(
Author of Total Commander
https://www.ghisler.com
User avatar
Usher
Power Member
Power Member
Posts: 1726
Joined: 2011-03-11, 10:11 UTC

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *Usher »

petermad wrote: 2024-10-31, 14:19 UTC 2ghisler(Author)
And why is Windows so stupid that it replaces Courier with a non fixed width font (looks like Arial) instead of substituting with Courier New, that is amazing.
I suspect that you have more than 512 fonts installed in your system.

1. Go to Windows\Fonts directory and count all ttc/ttf/otc fonts.
2. You can compare the count with registry. Run regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts key and export this key to the file.
- Open the *.reg file in any tool which displays line numbers. You should see Arial as the first font on the list. The list by default is unsorted, fonts are listed in the order in which they were registered.
- Go to the end of file and see the number of the last font on the list. Is it larger than 515?

Unfortunately, I don't know, what is the exact rule for substitution. Courier New should be registered at the very beginning, when installing the system so it should be always available. In my case it's somehow alphabetical order - Lucida Console and MS Mincho are displayed OK, but starting from Noto Mono all fonts are substituted with Arial.
Andrzej P. Wozniak
Polish subforum moderator
User avatar
Usher
Power Member
Power Member
Posts: 1726
Joined: 2011-03-11, 10:11 UTC

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *Usher »

ghisler(Author) wrote: 2024-10-31, 09:04 UTC This was an intentional change: When you choose a font which does NOT have the OEM/DOS encoding AND choose "Western" encoding, then TC sets the encoding by itself to OEM/DOS. Otherwise no DOS characters could be displayed.
But it's NOT done automatically for other languages.
My Windows use windows-1250 (Central European) codepage so I have to set manually so called "ASCII" font (in real it's some OEM/DOS codepage, us-ascii is only 7-bit) to "Western" while it should be done for THAT button automatically by TC, f.e. replacing 238 (or other number) with 255 in the ini entry.
Andrzej P. Wozniak
Polish subforum moderator
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

But it's NOT done automatically for other languages.
Indeed it's only done when the user sets the font to "Western". This is intentional.
Author of Total Commander
https://www.ghisler.com
User avatar
Usher
Power Member
Power Member
Posts: 1726
Joined: 2011-03-11, 10:11 UTC

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *Usher »

2ghisler(Author)
This is annoying for many users. Don't forget that TC still doesn't properly detect windows-1250 and cp-852 codepages.
Andrzej P. Wozniak
Polish subforum moderator
User avatar
petermad
Power Member
Power Member
Posts: 15997
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *petermad »

2Usher
I suspect that you have more than 512 fonts installed in your system.
I only have the fonts that came with Windows.

in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts key i have 253 font variants under Windows 7 and 179 under Windows 10

If I open the virtual folder \\Fonts ( cd ::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{BD84B380-8CA2-1069-AB1D-08000948F534} ) I see 68 fonts in Windows 7 and 52 in Windows 10.
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

This is annoying for many users
Then what do you suggest? Just use the encoding chosen by the user (although it will not show OEM text then)? Or always switch to OEM text mode even if the user chose a different encoding? But then the user can't choose a different one than OEM.
Author of Total Commander
https://www.ghisler.com
User avatar
Usher
Power Member
Power Member
Posts: 1726
Joined: 2011-03-11, 10:11 UTC

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *Usher »

2ghisler(Author)
As it's the case of the OEM font, it should be set to OEM by default (255 in Font2 option). If users wants to choose different encoding, they can do it from "Encoding" menu in Lister - just like I do it now. As you know, in this menu users can add any other encoding when needed.
Alternatively you can add some option to [Lister] section, for example Font2noOEM=0.
Andrzej P. Wozniak
Polish subforum moderator
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

I found a better solution: Just ask the user! Please try how it is implemented in beta 5.
06.11.24 Added: Lister configuration dialog: Ask user whether he wants to manually set a font to ASCII/DOS which does not contain the encoding (32/64)
Author of Total Commander
https://www.ghisler.com
User avatar
petermad
Power Member
Power Member
Posts: 15997
Joined: 2003-02-05, 20:24 UTC
Location: Denmark
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *petermad »

Confirmed fixed in TC 11.50b4 :-)

But maybe string 2138:
2138="This font does not use the ASCII/DOS character set. Do you want to manually set the character set to ASCII/DOS?"
should be changed to:
2138="This font does not use the ASCII/DOS character set. Do you want to manually set the character set to ASCII/DOS? - This may lead to substituting with a scalable font."
License #524 (1994)
Danish Total Commander Translator
TC 11.51 32+64bit on Win XP 32bit & Win 7, 8.1 & 10 (22H2) 64bit, 'Everything' 1.5.0.1391a
TC 3.60b4 on Android 6, 13, 14
TC Extended Menus | TC Languagebar | TC Dark Help | PHSM-Calendar
User avatar
AntonyD
Power Member
Power Member
Posts: 1554
Joined: 2006-11-04, 15:30 UTC
Location: Russian Federation

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *AntonyD »

2petermad
How do you know when and under what conditions this description occurs?
I just put the new beta on, opened a file with a character set where theoretically the cause could have occurred
to the appearance of this text. BUT no. Nothing showed up. I.e. I have to break the fonts in some special way?
#146217 personal license
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50386
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: [TC 11.50b4] wrong font used when choosing Courier in Lister for ASCII

Post by *ghisler(Author) »

This message is shown when you open Lister's settings and click on the button to change the ASCII/DOS font, and then choose any font which does not have the OEM/DOS charset defined. You will not get the message for the font TERMINAL, but for all other fonts.

Moderator message from: ghisler(Author) » 2024-11-12, 15:49 UTC

Moved to fixed bugs
Author of Total Commander
https://www.ghisler.com
Post Reply