On Tue, 06 Oct 2009, Bisz István wrote:

Hi,

> Unfortunately this i to İ (LATIN CAPITAL LETTER I WITH DOT ABOVE - 0x98 <152>
> in CP857) upper conversion generates more problems, now in MEMOEDIT:
> 
> Error BASE/1004  Message not found: HBMEMOED˜TOR:HBEDITOR
> Called from __ERRRT_SBASE(0)  
> Called from HBMEMOED˜TOR:ERROR(0)  
> Called from (b)HBOBJECT(0)  
> Called from HBMEMOED˜TOR:MSGNOTFOUND(0)  
> Called from HBMEMOED˜TOR:HBEDITOR(0)  
> Called from HBMEMOED˜TOR:EDIT(0)  
> Called from MEMOEDIT(0)  
> 
> The missed I in 'HBMEMOED˜TOR' is this İ ugly character.
> I don't know how to handle this.

In practice setting such CP causes that all symbols containing 'i'
may not be properly converted if .prg code use UPPER(). In above
case it's working and only class name looks ugly bad it should
not cause bigger bad side effects as long as you do not want to
make sth with such class name, i.e. use it in macro compiler.
The above can be quite easy resolved by small modification in
include/hbclass.ch. It's enough to change:
   HBClass():new( <(ClassName)>
to:
   HBClass():new( Upper( <(ClassName)> )
and compile time optimization for UPPER resolves the problem so
it's enough to recompile the Harbour code.
Anyhow seems that it will be good to add new function i.e.
HB_ASCIIUPPER() and use it instead of UPPER() in core library
code in all places where we are operating on compiler symbols
or other ASCII identifiers.

[ Viktor I think we should make it. ]

Please only remember that you also have to be careful writing
your own code.
BTW How are you leaving with such CPs? ;-)

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to