diff --git a/src/shared/xdynrec.pas b/src/shared/xdynrec.pas
index 9d6a9a2ef4f2f85bbfbafd248fd6a93235fbda91..c71250ce9ee8bc4697133ee8960465739b57f537 100644 (file)
--- a/src/shared/xdynrec.pas
+++ b/src/shared/xdynrec.pas
ainternal: Boolean;
omitdef: Boolean;
defstr: AnsiString;
- defint: Integer;
+ defint, defint2: Integer;
hasdefStr: Boolean;
hasdefInt: Boolean;
hasdefId: Boolean;
lebs: TDynField.TEBS;
unique: Boolean;
asmonid: Boolean;
+ defech: AnsiChar;
begin
fldpasname := '';
fldname := '';
omitdef := false;
defstr := '';
defint := 0;
+ defint2 := 0;
hasdefStr := false;
hasdefInt := false;
hasdefId := false;
hasdefInt := true;
defint := pr.expectInt();
end;
+ pr.TTDelim:
+ begin
+ hasdefInt := true;
+ if pr.eatDelim('[') then defech := ']' else begin pr.expectDelim('('); defech := ')'; end;
+ defint := pr.expectInt();
+ defint2 := pr.expectInt();
+ pr.expectDelim(defech);
+ end;
else
raise Exception.Create(Format('field ''%s'' has invalid default', [fldname]));
end;
end;
if hasdefStr then self.mDefUnparsed := quoteStr(defstr)
- else if hasdefInt then self.mDefUnparsed := Format('%d', [defint])
- else if hasdefId then self.mDefUnparsed := defstr;
+ else if hasdefId then self.mDefUnparsed := defstr
+ else if hasdefInt then
+ begin
+ if (mType = TType.TPoint) then self.mDefUnparsed := Format('(%d %d)', [defint, defint2])
+ else if (mType = TType.TSize) then self.mDefUnparsed := Format('[%d %d]', [defint, defint2])
+ else self.mDefUnparsed := Format('%d', [defint]);
+ end;
self.mHasDefault := (hasdefStr or hasdefId or hasdefInt);
self.mPasName := fldpasname;