syndicodefront / infekt

The ultimate best NFO viewer, ever!
https://infekt.ws/
GNU General Public License v2.0
359 stars 19 forks source link

Code page 437 Compliant and Noncompliant modes #83

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Currently, iNFekt v0.8.9 doesn't fully support all graphic characters of the 
IBM code page 437.
I know this was done to prevent breaking the layout of most NFO files, which 
aren't fully compliant with code page 437.

That's why I would like to see a "Compliant mode" in addition to the current 
"Non-compliant mode".
This new "Compliant mode" would simply follow IBM's code page 437 specification 
exactly, without any workarounds.

Of course, the current "Non-compliant mode" should remain as the default one 
and there should be a warning when choosing "Compliant mode", because it might 
break the layout of most NFO files.

In order to test iNFekt (and all other NFO viewers) for compliance, I created 
an NFO file which you can find as an attachment.

This NFO file contains a copy of IBM's official code page 437 table, that can 
be found in a PDF file here:
http://www-01.ibm.com/software/globalization/cp/cp00437.html

The NFO file also contains the full list of each character's official 
description, which can be found in a TXT file, in the same webpage above.

Here's where iNFekt v0.8.9 fails to comply with code page 437:

- Code 0x09 is defined as the graphic character "Open Circle".
  iNFekt interprets this code as control character HT (horizontal tab) and then displays a single space.

- Code 0x0A is defined as the graphic character "Open Circle, Reverse Image".
  iNFekt interprets this code as control character LF (line feed) and inserts a line break. 

- Code 0x92 is defined as the graphic character "ae Diphthong Capital".
  iNFekt displays this code as an apostrophe (the same as code 0x27).

- Code 0x9B is defined as the graphic character "Cent Sign".
  iNFekt doesn't display anything at all. I can't find a reason for this behavior. A bug perhaps?

Original issue reported on code.google.com by neutrali...@gmail.com on 15 Aug 2013 at 1:54

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks for the detailed report,
this is the CP437<->Unicode mapping that iNFekt currently has:
https://code.google.com/p/infekt/source/browse/trunk/src/lib/nfo_data_cp437.inc

I will check out the differences and see what I can do about it!

Original comment by cxxjoe@gmail.com on 3 Sep 2013 at 3:59

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r634.

Original comment by cxxjoe@gmail.com on 3 Sep 2013 at 8:53

GoogleCodeExporter commented 9 years ago
Called it "Strict mode" and added it as an option that has to be manually 
chosen from the right-click charset menu.

The \xA2 thing really was a bug.

I'm not yet sure if I can "port" any more fixes from the strict mode to the 
regular mode. I'll think about it.

Original comment by cxxjoe@gmail.com on 3 Sep 2013 at 9:00

GoogleCodeExporter commented 9 years ago
new version with this fix is out

Original comment by cxxjoe@gmail.com on 2 Oct 2013 at 5:42