On 04/27/2016 09:00 PM, Mattias Gaertner wrote:
On Wed, 27 Apr 2016 20:30:43 +0200 zeljko <[email protected]> wrote:Hi, Just run into problem with fpc-3.0.0, OS Windows-10 64bit, 32bit application, lazarus trunk qtlcl and win32 ws both have same problem. fpc-3.1.1 (18.01.2016) is correct - both running from lazarus or as standalone. fpc-3.0.0 is not correct in both cases (even worse if running from lazarus, then GetEnvironmentVariableUTF8 returns garbage instead of letter Ž. fpc-2.6.4 - works just fine. My project doesn't use anything special - pure empty project with one form and TMemo - no extra settings like -FcUTF8 or similar, using mode delphi .... Problematic part is line with CACHEDIR= (see screenshoots) which is correct with 3.1.1 and it returns correct path from this function: function GetCacheDir_: String; {$IFDEF MSWINDOWS} var s: string; s1: string; {$ENDIF} begin {$IFDEF UNIX} Result := GetEnvironmentVariable('HOME') + PathDelim + '.holobit'; {$ELSE} // fpc-3.1.1 returns correct values here, while fpc-3.0.0 NOT // if environmentvariable contains non-ascii chars s := GetEnvironmentVariable('HOMEDRIVE'); // added s := s+ to fit into mail ... s := s + GetEnvironmentVariable('HOMEPATH')+PathDelim+'.holobit'; SetLength(s1, length(s)); OEMToAnsiBuff(@S[1], @S1[1], length(S1));OEMToAnsiBuff expects a string in DOS codepage and returns a string in Windows codepage.
Yes, I know that ,but that's not problem...look below...
GetEnvironmentVariableUTF8 returns an UTF-8 encoded string. What encoding do you need for the function result?
UTF-8, but question is why 3.1.1 (and 2.6.4) returns correct result but 3.0.0 NOT with same project and same settings.
Another thing is that project when running from IDE with fpc-3.0.0 doesn't get correct result even for GetEnvironmentVariableUTF8(), while 3.1.1 is correct again.
zeljko -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
