On Wed, 27 Apr 2016 20:30:43 +0200 zeljko <zel...@holobit.net> 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. GetEnvironmentVariableUTF8 returns an UTF-8 encoded string. What encoding do you need for the function result? > Result := S1; > {$ENDIF} > end; > > So, my question would be: is it known bug in 3.0.0 and will be fixed in > 3.0.2 or it's already merged in fixes_3_0 or I can sit and cry...or I'm > missing something ? Mattias -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus