> 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)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to