> 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