[fpc-pascal] question about changing default ASCII table in the fpc 2.2.0 IDE

Tomas Hajny XHajT03 at hajny.biz
Mon Jul 5 22:02:37 CEST 2010


On 25 Jun 10, at 8:07, Noel and Marie wrote:


Hi Noel,

> Thanks Tomas.  I didn't see your promise to look at the problem.

Sorry, it took somewhat longer, but the results are here:

1) It works as expected if _not_ using unit Crt.

2) There is a bug in implementation of unit Crt for Windows. This bug 
stems from May 2006 already and it was a result of a patch from Maxim 
Ganetsky trying to fix bug #6785 
(http://bugs.freepascal.org/view.php?id=6785). Since that patch, all 
output with unit Crt uses the so called ANSI code page under Windows 
which is IMHO wrong. I've added a comment to bug #6785 and filed a 
new bug report (http://bugs.freepascal.org/view.php?id=16846) - you 
may want to monitor that one in order to be notified when it gets 
fixed.

Until the bug is fixed, there are several possible solutions for you, 
e.g.:

- You may comment line 699 (and preferably also line 743) in your 
local copy of rtl/win/crt.pp (trunk version from SVN) and recompile 
RTL (and packages). That isn't a complete fix, but it should probably 
be sufficient for your needs.

- If you only need to output this one particular character, you may 
do so using the particular Win32 API directly. Admittedly not very 
nice and certainly not portable, but at least a possible workaround.

- If you don't need unit Crt, you may simply remove it from your uses 
clause.


>   I have just relied on email replies for comments etc. How do I look at all 
> comments, other questions, etc on the Web?

Sorry, I'm not sure if I understand this question. Do you refer to an 
archive of this mailing list? If so, you can find a link on the FPC 
WWW pages (under Mailing lists).

Hope this helps

Tomas


> ----- Original Message ----- 
> From: "Tomas Hajny" <XHajT03 at hajny.biz>
> To: "FPC-Pascal users discussions" <fpc-pascal at lists.freepascal.org>
> Sent: Thursday, June 24, 2010 11:59 PM
> Subject: Re: [fpc-pascal] question about changing default ASCII table in the 
> fpc 2.2.0 IDE
> 
> 
> On Thu, June 24, 2010 06:41, Noel and Marie wrote:
> > Hello,
> >
> > I would like to print a square root symbol using  write(chr(251)); as I
> > could before SP3 for XP was installed on my PC.
> >
> > Currently am getting a superscript 1 rather than the square root symbol
> > from
> > write(chr(251)).
> >
> > I've tried the following kind suggestions of Tomas Hajny, unfortunately
> > without success:
> >
> > 1.   In a command shell I entered
> >          CHCP 437     and then ran the program
> >
> > 2.  Modified the source code to include the Windows unit and added line
> > setConsoleOutputCP(437);,
> >         compiled and then ran the program.
> >
> >
> > I  examined the registry settings   in directory Codepage.
> >         Name              Data
> >       (default )         (value not set)
> >         ...
> >         ACP                1252
> >         MACCP        10000
> >         OEMCP            850
> >         OEMHAL        vgaoem.fon
> >
> >         Changed OEMCP to 437     and got an accented 'u'.   Then restored
> > the system.
> >
> > I wonder if anyone can suggest a solution to the problem.
> 
> I still intend to have a look at it (as promised previously), just had no
> time for that (if noone else provides answer till then).
> 
> Tomas




More information about the fpc-pascal mailing list