diff --git a/Source/changelog.txt b/Source/changelog.txt index f3e3a0c..b65ed1f 100644 --- a/Source/changelog.txt +++ b/Source/changelog.txt @@ -1,3 +1,7 @@ +March 2007 + - 2 mar: 0003179: strange assignment result + - 2 mar: 0003180: Type mismatch with currency + February 2007 - 22 feb: 0003033: string results are returned wrong on FreePascal - 22 feb: fix for parameter type of TStream.CopyFRom diff --git a/Source/uPSC_classes.pas b/Source/uPSC_classes.pas index d84932d..1534334 100644 --- a/Source/uPSC_classes.pas +++ b/Source/uPSC_classes.pas @@ -123,7 +123,7 @@ begin RegisterMethod('function SEEK(OFFSET:LONGINT;ORIGIN:WORD):LONGINT'); RegisterMethod('procedure READBUFFER(BUFFER:STRING;COUNT:LONGINT)'); RegisterMethod('procedure WRITEBUFFER(BUFFER:STRING;COUNT:LONGINT)'); - {$IFDEF DELPIH4UP} + {$IFDEF DELPHI4UP} RegisterMethod('function COPYFROM(SOURCE:TSTREAM;COUNT:INT64):LONGINT'); {$ELSE} RegisterMethod('function COPYFROM(SOURCE:TSTREAM;COUNT:Integer):LONGINT'); diff --git a/Source/uPSCompiler.pas b/Source/uPSCompiler.pas index 42208eb..5d6f921 100644 --- a/Source/uPSCompiler.pas +++ b/Source/uPSCompiler.pas @@ -8776,6 +8776,8 @@ begin i: Longint; begin Result := False; + if Outreg is TPSValueReplace + then Outreg:=TPSValueReplace(Outreg).OldValue; if Where.ClassType = TPSUnValueOp then begin if CheckOutReg(TPSUnValueOp(Where).Val1, OutReg) then @@ -12302,8 +12304,7 @@ begin p.OrgName := Name; p.Name := Fastuppercase(Name); p.FType := AT2UT(FType); - if p <> nil then - p.exportname := FastUppercase(Name); + p.exportname := p.Name; FVars.Add(p); Result := P; end; diff --git a/Source/uPSRuntime.pas b/Source/uPSRuntime.pas index 002aab7..ace5057 100644 --- a/Source/uPSRuntime.pas +++ b/Source/uPSRuntime.pas @@ -8837,6 +8837,7 @@ begin btU32: Dest := {$IFDEF DELPHI6UP}tbtu32{$ELSE}tbts32{$ENDIF}(Src^); btS32: Dest := tbts32(Src^); btSingle: Dest := tbtsingle(Src^); + btCurrency: Dest:=tbtCurrency(Src^); btDouble: begin if aType.ExportName = 'TDATETIME' then