mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 21:19:31 +02:00
* synchronized with trunk
git-svn-id: branches/wasm@46721 -
This commit is contained in:
commit
c7d3484393
@ -338,12 +338,19 @@ unit cpupara;
|
||||
paralen := paradef.size
|
||||
else
|
||||
paralen := tcgsize2size[def_cgsize(paradef)];
|
||||
paracgsize:=def_cgsize(paradef);
|
||||
{ for things like formaldef }
|
||||
if (paracgsize=OS_NO) then
|
||||
if (paradef.typ in [objectdef,arraydef,recorddef,setdef,stringdef]) and
|
||||
not is_special_array(paradef) and
|
||||
(hp.varspez in [vs_value,vs_const]) then
|
||||
paracgsize:=int_cgsize(paralen)
|
||||
else
|
||||
begin
|
||||
paracgsize:=OS_ADDR;
|
||||
paralen := tcgsize2size[OS_ADDR];
|
||||
paracgsize:=def_cgsize(paradef);
|
||||
if (paracgsize=OS_NO) then
|
||||
begin
|
||||
paracgsize:=OS_ADDR;
|
||||
paralen := tcgsize2size[OS_ADDR];
|
||||
paradef:=voidpointertype;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -146,7 +146,6 @@ begin
|
||||
T:=P.Targets.AddExampleProgram('base64decodingtestcase.pas');
|
||||
T:=P.Targets.AddExampleProgram('cachetest.pp');
|
||||
T:=P.Targets.AddExampleProgram('cfgtest.pp');
|
||||
T:=P.Targets.AddExampleProgram('dbugsrv.pp');
|
||||
T:=P.Targets.AddExampleProgram('debugtest.pp');
|
||||
T:=P.Targets.AddExampleProgram('doecho.pp');
|
||||
T:=P.Targets.AddExampleProgram('dparser.pp');
|
||||
|
@ -69,6 +69,7 @@ begin
|
||||
P.ExamplePath.Add('examples');
|
||||
T:=P.Targets.AddExampleProgram('ipcclient.pp');
|
||||
T:=P.Targets.AddExampleProgram('ipcserver.pp');
|
||||
T:=P.Targets.AddExampleProgram('dbugsrv.pp');
|
||||
|
||||
{$ifndef ALLPACKAGES}
|
||||
Run;
|
||||
|
@ -5331,15 +5331,41 @@ begin
|
||||
Changed;
|
||||
end;
|
||||
|
||||
function TryVarByteArrayToStream(var AValue : Variant; Stream : TMemoryStream) : boolean;
|
||||
var
|
||||
p : Pointer;
|
||||
c : Integer;
|
||||
begin
|
||||
Result := False;
|
||||
if not VarIsArray(AValue) then
|
||||
exit;
|
||||
c := VarArrayHighBound(AValue,1) - VarArrayLowBound(AValue,1) + 1;
|
||||
Result := (c > 0) and VarIsType(AValue[VarArrayLowBound(AValue,1)],varByte);
|
||||
if not Result then
|
||||
exit;
|
||||
p := VarArrayLock(AValue);
|
||||
try
|
||||
Stream.SetSize(c);
|
||||
Move(p^,Stream.Memory^,c);
|
||||
finally
|
||||
VarArrayUnlock(AValue);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFPReportCustomImage.LoadDBData(AData: TFPReportData);
|
||||
var
|
||||
v : Variant;
|
||||
s: string;
|
||||
lStream: TMemoryStream;
|
||||
begin
|
||||
s := AData.FieldValues[FFieldName];
|
||||
v := AData.FieldValues[FFieldName];
|
||||
lStream := TMemoryStream.Create;
|
||||
try
|
||||
FPReportMIMEEncodeStringToStream(s, lStream);
|
||||
if not TryVarByteArrayToStream(v,lStream) then
|
||||
begin
|
||||
s := v;
|
||||
FPReportMIMEEncodeStringToStream(s, lStream);
|
||||
end;
|
||||
LoadPNGFromStream(lStream)
|
||||
finally
|
||||
lStream.Free;
|
||||
@ -5402,15 +5428,25 @@ function TFPReportCustomImage.PrepareObject(aRTParent: TFPReportElement): TFPRep
|
||||
Var
|
||||
Img : TFPReportCustomImage;
|
||||
B : TFPReportCustomBand;
|
||||
D : TFPReportData;
|
||||
|
||||
begin
|
||||
Result:=inherited PrepareObject(aRTParent);
|
||||
if Result=Nil then
|
||||
exit;
|
||||
img := TFPReportCustomImage(Result);
|
||||
B:=artParent as TFPReportCustomBand;
|
||||
if (img.FieldName <> '') and Assigned(B.GetData) then
|
||||
img.LoadDBData(B.GetData);
|
||||
if Assigned(Band) then
|
||||
B := Band
|
||||
else
|
||||
B := artParent as TFPReportCustomBand;
|
||||
if (img.FieldName <> '') then
|
||||
begin
|
||||
D := B.GetData;
|
||||
if not(Assigned(D)) and Assigned(B.Page.Data) then
|
||||
D := B.Page.Data;
|
||||
if Assigned(D) then
|
||||
img.LoadDBData(D);
|
||||
end;
|
||||
end;
|
||||
|
||||
constructor TFPReportCustomImage.Create(AOwner: TComponent);
|
||||
|
@ -1691,8 +1691,6 @@ ResourceString
|
||||
SWarnStartCompilingPackage = 'Start compiling package %s for target %s.';
|
||||
SWarnCompilingPackagecompleteProgress = '[%3.0f%%] Compiled package %s';
|
||||
SWarnCompilingPackagecomplete = 'Compiled package %s';
|
||||
SWarnSkipPackageTargetProgress = '[%3.0f%%] Skipped package %s which has been disabled for target %s';
|
||||
SWarnSkipPackageTarget = 'Skipped package %s which has been disabled for target %s';
|
||||
SWarnInstallationPackagecomplete = 'Installation package %s for target %s succeeded';
|
||||
SWarnCanNotGetAccessRights = 'Warning: Failed to copy access-rights from file %s';
|
||||
SWarnCanNotSetAccessRights = 'Warning: Failed to copy access-rights to file %s';
|
||||
@ -1708,6 +1706,8 @@ ResourceString
|
||||
SWarnRemovedNonEmptyDirectory = 'Warning: Removed non empty directory "%s"';
|
||||
|
||||
SInfoPackageAlreadyProcessed = 'Package %s is already processed';
|
||||
SInfoSkipPackageTargetProgress = '[%3.0f%%] Skipped package %s which has been disabled for target %s';
|
||||
SInfoSkipPackageTarget = 'Skipped package %s which has been disabled for target %s';
|
||||
SInfoCompilingTarget = 'Compiling target %s';
|
||||
SInfoExecutingCommand = 'Executing command "%s %s"';
|
||||
SInfoCreatingOutputDir = 'Creating output dir "%s"';
|
||||
@ -8195,7 +8195,7 @@ procedure TBuildEngine.Compile(Packages: TPackages);
|
||||
else
|
||||
begin
|
||||
inc(FProgressCount);
|
||||
log(vlWarning,SWarnSkipPackageTargetProgress,[(FProgressCount)/FProgressMax * 100, APackage.Name, Defaults.Target]);
|
||||
log(vlInfo,SInfoSkipPackageTargetProgress,[(FProgressCount)/FProgressMax * 100, APackage.Name, Defaults.Target]);
|
||||
APackage.FTargetState:=tsNoCompile;
|
||||
end;
|
||||
end;
|
||||
@ -8288,7 +8288,7 @@ begin
|
||||
else
|
||||
begin
|
||||
inc(FProgressCount);
|
||||
log(vlWarning,SWarnSkipPackageTargetProgress,[(FProgressCount)/FProgressMax * 100, P.Name, Defaults.Target]);
|
||||
log(vlInfo,SInfoSkipPackageTargetProgress,[(FProgressCount)/FProgressMax * 100, P.Name, Defaults.Target]);
|
||||
end;
|
||||
end;
|
||||
end
|
||||
@ -8388,7 +8388,7 @@ begin
|
||||
log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
|
||||
end
|
||||
else
|
||||
log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]);
|
||||
log(vlInfo,SInfoSkipPackageTarget,[P.Name, Defaults.Target]);
|
||||
end;
|
||||
NotifyEventCollection.CallEvents(neaAfterInstall, Self);
|
||||
end;
|
||||
@ -8417,7 +8417,7 @@ begin
|
||||
log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
|
||||
end
|
||||
else
|
||||
log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]);
|
||||
log(vlInfo,SInfoSkipPackageTarget,[P.Name, Defaults.Target]);
|
||||
end;
|
||||
finally
|
||||
FinishArchive(P);
|
||||
|
@ -249,7 +249,7 @@ begin
|
||||
Result:=Result+Delimiter;
|
||||
end;
|
||||
// Quote empty string:
|
||||
If (Length(Result)=0) and (Count=1) then
|
||||
If (Length(Result)=0) and (Count=1) and (QuoteChar<>#0) then
|
||||
Result:=QuoteChar+QuoteChar;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user