> HB_FUNC( _2D_CURRENTCODEPAGE )
> {
> const char * cdpID = hb_cdpID();
> PHB_CODEPAGE cdp = hb_cdpFind(cdpID);
>
> MessageBox(NULL,cdp->lower,'test',MB_OK);
>
> hb_reta(4) ;
> hb_storvc( cdp->lower, -1, 1 );
> hb_storvc( cdp->upper , -1, 2 );
> hb_storvc( cdpID , -1, 3 );
> hb_storvc( cdp->info , -1, 4 );
> }
>
> After requesting:
>
> REQUEST HB_LANG_PT
> REQUEST HB_CODEPAGE_PT850
> hb_CDPselect("PT850")
> We have noticed that the cdp structure loaded through hb_cdpSelect() does
> really select the wanted CDP because the cdpInfo and cdpID members return
> respectively "Portuguese CP850" and "PT850", but the lower and upper members
> return empty strings.
>
> We have also debuged the cdp->lower and cdp->upper members and they are
> empty, so it is not a matter of hb_storvc usage.
>
> Our guess is that this members are not being properly filled when the
> codepage is registered through hb_cdpRegister(), because all the functions
> that treat string cases are failing trating cases in the selected cdp. The
> final problem is that: UPPER("ãõéíóaeiou") returns "ãõéíóAEIOU" not
> regarding to the selected cdp.
>
> Can somebody check if we are missing something or if it is a harbour bug?
These are internal structures, so there if is any notion
of writing stable code I strongly suggest to not use
them directly at all.
I think the bug here is that you can access these members
at all. IMO they should be protected like HB_ITEM members.
Viktor
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour