You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2011-02-10 16:39:27
|
Revision: 3492 http://jcl.svn.sourceforge.net/jcl/?rev=3492&view=rev Author: outchy Date: 2011-02-10 16:39:20 +0000 (Thu, 10 Feb 2011) Log Message: ----------- New interfaces to get/set property values as strings. Modified Paths: -------------- trunk/jcl/source/common/JclRTTI.pas trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclRTTI.pas =================================================================== --- trunk/jcl/source/common/JclRTTI.pas 2011-02-05 15:46:34 UTC (rev 3491) +++ trunk/jcl/source/common/JclRTTI.pas 2011-02-10 16:39:20 UTC (rev 3492) @@ -143,19 +143,29 @@ property TypeKind: TTypeKind read GetTypeKind; end; + // for all values that can be serialized to/deserialized from strings + IJclValueTypeInfo = interface(IJclTypeInfo) + ['{522C6E39-F917-4C92-B085-223BD68C377F}'] + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); + end; + // Ordinal types - IJclOrdinalTypeInfo = interface(IJclTypeInfo) + IJclOrdinalTypeInfo = interface(IJclValueTypeInfo) ['{7DAD5221-46EA-11D5-B0C0-4854E825F345}'] function GetOrdinalType: TOrdType; property OrdinalType: TOrdType read GetOrdinalType; end; - TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo, + TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; + { IJclValueTypeInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclOrdinalTypeInfo } function GetOrdinalType: TOrdType; property OrdinalType: TOrdType read GetOrdinalType; @@ -171,7 +181,7 @@ end; TJclOrdinalRangeTypeInfo = class(TJclOrdinalTypeInfo, IJclOrdinalRangeTypeInfo, - IJclOrdinalTypeInfo, IJclTypeInfo, IJclBaseInfo) + IJclOrdinalTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; @@ -197,11 +207,14 @@ end; TJclEnumerationTypeInfo = class(TJclOrdinalRangeTypeInfo, IJclEnumerationTypeInfo, - IJclOrdinalRangeTypeInfo, IJclOrdinalTypeInfo, IJclTypeInfo, IJclBaseInfo) + IJclOrdinalRangeTypeInfo, IJclOrdinalTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueTypeInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclEnumerationTypeInfo } function GetBaseType: IJclEnumerationTypeInfo; function GetNames(const I: Integer): string; @@ -223,11 +236,14 @@ end; TJclSetTypeInfo = class(TJclOrdinalTypeInfo, IJclSetTypeInfo, IJclOrdinalTypeInfo, - IJclTypeInfo, IJclBaseInfo) + IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclSetTypeInfo } function GetBaseType: IJclOrdinalTypeInfo; procedure GetAsList(const Value; const WantRanges: Boolean; @@ -237,38 +253,44 @@ end; // Float types - IJclFloatTypeInfo = interface(IJclTypeInfo) + IJclFloatTypeInfo = interface(IJclValueTypeInfo) ['{7DAD5225-46EA-11D5-B0C0-4854E825F345}'] function GetFloatType: TFloatType; property FloatType: TFloatType read GetFloatType; end; - TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo, + TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclFloatTypeInfo } function GetFloatType: TFloatType; property FloatType: TFloatType read GetFloatType; end; // Short string types - IJclStringTypeInfo = interface(IJclTypeInfo) + IJclStringTypeInfo = interface(IJclValueTypeInfo) ['{7DAD5226-46EA-11D5-B0C0-4854E825F345}'] function GetMaxLength: Integer; property MaxLength: Integer read GetMaxLength; end; - TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo, + TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclStringTypeInfo } function GetMaxLength: Integer; property MaxLength: Integer read GetMaxLength; @@ -300,6 +322,9 @@ function HasDefault: Boolean; function HasIndex: Boolean; + function SaveValueToString(AnObj: TObject): string; + procedure LoadValueFromString(AnObj: TObject; const Value: string); + property PropInfo: PPropInfo read GetPropInfo; property PropType: IJclTypeInfo read GetPropType; property Reader: Pointer read GetReader; @@ -345,6 +370,9 @@ function HasDefault: Boolean; function HasIndex: Boolean; + function SaveValueToString(AnObj: TObject): string; + procedure LoadValueFromString(AnObj: TObject; const Value: string); + property PropInfo: PPropInfo read GetPropInfo; property PropType: IJclTypeInfo read GetPropType; property Reader: Pointer read GetReader; @@ -362,7 +390,35 @@ property Name: string read GetName; end; - IJclClassTypeInfo = interface(IJclTypeInfo) + IJclObjPropInfo = interface(IJclPropInfo) + function GetAbsoluteName: string; + function GetInstance: TObject; + function IsStored: Boolean; overload; + + function SaveValueToString: string; + procedure LoadValueFromString(const Value: string); + + property AbsoluteName: string read GetAbsoluteName; + property Instance: TObject read GetInstance; + end; + + IJclObjPropInfoArray = array of IJclObjPropInfo; + + TJclObjPropInfo = class(TJclPropInfo, IJclObjPropInfo, IJclPropInfo) + private + FPrefix: string; + FInstance: TObject; + public + constructor Create(const APropInfo: PPropInfo; const APrefix: string; AInstance: TObject); + { IJclObjPropInfo } + function GetAbsoluteName: string; + function GetInstance: TObject; + function IsStored: Boolean; overload; + function SaveValueToString: string; overload; + procedure LoadValueFromString(const Value: string); overload; + end; + + IJclClassTypeInfo = interface(IJclValueTypeInfo) ['{7DAD5228-46EA-11D5-B0C0-4854E825F345}'] function GetClassRef: TClass; function GetParent: IJclClassTypeInfo; @@ -381,12 +437,15 @@ property UnitName: string read GetUnitName; end; - TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo, + TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclClassTypeInfo } function GetClassRef: TClass; function GetParent: IJclClassTypeInfo; @@ -403,6 +462,35 @@ property PropNames[const Name: string]: IJclPropInfo read GetPropNames; end; + IJclObjClassTypeInfo = interface(IJclClassTypeInfo) + ['{5BF4383D-7FDD-4494-88CC-849D72B5E142}'] + function GetInstance: TObject; + function GetObjProperties(const PropIdx: Integer): IJclObjPropInfo; + function GetObjPropNames(const Name: string): IJclObjPropInfo; + + function SaveValueToString(const PropName: string): string; overload; + procedure LoadValueFromString(const PropName, Value: string); overload; + + property Instance: TObject read GetInstance; + property ObjProperties[const PropIdx: Integer]: IJclObjPropInfo read GetObjProperties; + property ObjPropNames[const Name: string]: IJclObjPropInfo read GetObjPropNames; + end; + + TJclObjClassTypeInfo = class(TJclClassTypeInfo, IJclObjClassTypeInfo, + IJclClassTypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) + private + FPrefix: string; + FInstance: TObject; + public + constructor Create(const ATypeInfo: PTypeInfo; const APrefix: string; AInstance: TObject); + { IJclObjClassTypeInfo } + function GetInstance: TObject; + function GetObjProperties(const PropIdx: Integer): IJclObjPropInfo; + function GetObjPropNames(const Name: string): IJclObjPropInfo; + function SaveValueToString(const PropName: string): string; overload; + procedure LoadValueFromString(const PropName, Value: string); overload; + end; + // Event types IJclEventParamInfo = interface ['{7DAD5229-46EA-11D5-B0C0-4854E825F345}'] @@ -503,7 +591,7 @@ end; // Int64 types - IJclInt64TypeInfo = interface(IJclTypeInfo) + IJclInt64TypeInfo = interface(IJclValueTypeInfo) ['{7DAD522C-46EA-11D5-B0C0-4854E825F345}'] function GetMinValue: Int64; function GetMaxValue: Int64; @@ -512,12 +600,15 @@ property MaxValue: Int64 read GetMaxValue; end; - TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo, + TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo, IJclValueTypeInfo, IJclTypeInfo, IJclBaseInfo) public { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; + { IJclValueInfo } + function SaveValueToString(AnObj: TObject; const PropName: string): string; + procedure LoadValueFromString(AnObj: TObject; const PropName, Value: string); { IJclInt64TypeInfo } function GetMinValue: Int64; function GetMaxValue: Int64; @@ -604,6 +695,9 @@ // returns all properties of type string (kind = tkLString or kind = tkUString when Unicode is enabled) function GetStringPropList(TypeInfo: PTypeInfo; out PropList: PPropList): Integer; +// returns all object properties +function GetObjectProperties(AnObj: TObject; Recurse: Boolean = False): IJclObjPropInfoArray; + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -791,6 +885,12 @@ Result := TypeData.OrdType; end; +procedure TJclOrdinalTypeInfo.LoadValueFromString(AnObj: TObject; + const PropName, Value: string); +begin + SetOrdProp(AnObj, PropName, StrToInt(Value)); +end; + procedure TJclOrdinalTypeInfo.WriteTo(const Dest: IJclInfoWriter); begin inherited WriteTo(Dest); @@ -798,6 +898,12 @@ JclEnumValueToIdent(System.TypeInfo(TOrdType), TypeData.OrdType)); end; +function TJclOrdinalTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := IntToStr(GetOrdProp(AnObj, PropName)); +end; + //=== { TJclOrdinalRangeTypeInfo } =========================================== function TJclOrdinalRangeTypeInfo.GetMinValue: Int64; @@ -901,6 +1007,12 @@ Result := -1; end; +procedure TJclEnumerationTypeInfo.LoadValueFromString(AnObj: TObject; + const PropName, Value: string); +begin + SetEnumProp(AnObj, PropName, Value); +end; + procedure TJclEnumerationTypeInfo.WriteTo(const Dest: IJclInfoWriter); var Idx: Integer; @@ -918,6 +1030,12 @@ Dest.Writeln(')'); end; +function TJclEnumerationTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := GetEnumProp(AnObj, PropName); +end; + procedure TJclEnumerationTypeInfo.DeclarationTo(const Dest: IJclInfoWriter); var Prefix: string; @@ -952,6 +1070,12 @@ Result := JclTypeInfo(TypeData.CompType{$IFDEF BORLAND}^{$ENDIF}) as IJclOrdinalTypeInfo; end; +procedure TJclSetTypeInfo.LoadValueFromString(AnObj: TObject; const PropName, + Value: string); +begin + SetSetProp(AnObj, PropName, Value); +end; + procedure TJclSetTypeInfo.GetAsList(const Value; const WantRanges: Boolean; const Strings: TStrings); var @@ -1103,6 +1227,12 @@ end; end; +function TJclSetTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := GetSetProp(AnObj, PropName); +end; + procedure TJclSetTypeInfo.DeclarationTo(const Dest: IJclInfoWriter); var Base: IJclOrdinalTypeInfo; @@ -1135,6 +1265,12 @@ Result := TypeData.FloatType; end; +procedure TJclFloatTypeInfo.LoadValueFromString(AnObj: TObject; const PropName, + Value: string); +begin + SetFloatProp(AnObj, PropName, StrToFloat(Value)); +end; + procedure TJclFloatTypeInfo.WriteTo(const Dest: IJclInfoWriter); begin inherited WriteTo(Dest); @@ -1142,6 +1278,12 @@ JclEnumValueToIdent(System.TypeInfo(TFloatType), TypeData.FloatType)); end; +function TJclFloatTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := FloatToStr(GetFloatProp(AnObj, PropName)); +end; + procedure TJclFloatTypeInfo.DeclarationTo(const Dest: IJclInfoWriter); var S: string; @@ -1162,6 +1304,12 @@ Result := 0; end; +procedure TJclStringTypeInfo.LoadValueFromString(AnObj: TObject; const PropName, + Value: string); +begin + SetStrProp(AnObj, PropName, Value); +end; + procedure TJclStringTypeInfo.WriteTo(const Dest: IJclInfoWriter); begin inherited WriteTo(Dest); @@ -1169,6 +1317,12 @@ Dest.Writeln(LoadResString(@RsRTTIMaxLen) + IntToStr(MaxLength)); end; +function TJclStringTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := GetStrProp(AnObj, PropName); +end; + procedure TJclStringTypeInfo.DeclarationTo(const Dest: IJclInfoWriter); begin if Name[1] <> '.' then @@ -1328,6 +1482,30 @@ Result := IsStoredProp(AInstance, FPropInfo); end; +procedure TJclPropInfo.LoadValueFromString(AnObj: TObject; const Value: string); +var + APropType: IJclTypeInfo; + AValueInfo: IJclValueTypeInfo; +begin + APropType := PropType; + if Supports(APropType, IJclValueTypeInfo, AValueInfo) then + AValueInfo.LoadValueFromString(AnObj, Name, Value) + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [Name, APropType.Name]); +end; + +function TJclPropInfo.SaveValueToString(AnObj: TObject): string; +var + APropType: IJclTypeInfo; + AValueInfo: IJclValueTypeInfo; +begin + APropType := PropType; + if Supports(APropType, IJclValueTypeInfo, AValueInfo) then + Result := AValueInfo.SaveValueToString(AnObj, Name) + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [Name, APropType.Name]); +end; + function TJclPropInfo.HasDefault: Boolean; begin Result := Longword(Default) <> $80000000; @@ -1338,6 +1516,44 @@ Result := Longword(Index) <> $80000000; end; +//=== { TJclObjPropInfo } ==================================================== + +constructor TJclObjPropInfo.Create(const APropInfo: PPropInfo; + const APrefix: string; AInstance: TObject); +begin + inherited Create(APropInfo); + FPrefix := APrefix; + FInstance := AInstance; +end; + +function TJclObjPropInfo.GetAbsoluteName: string; +begin + if FPrefix <> '' then + Result := FPrefix + '.' + Name + else + Result := Name; +end; + +function TJclObjPropInfo.GetInstance: TObject; +begin + Result := FInstance; +end; + +function TJclObjPropInfo.IsStored: Boolean; +begin + Result := IsStoredProp(FInstance, Name); +end; + +procedure TJclObjPropInfo.LoadValueFromString(const Value: string); +begin + LoadValueFromString(FInstance, Value); +end; + +function TJclObjPropInfo.SaveValueToString: string; +begin + Result := SaveValueToString(FInstance); +end; + //=== { TJclClassTypeInfo } ================================================== function TJclClassTypeInfo.GetClassRef: TClass; @@ -1413,6 +1629,44 @@ Result := string(TypeData.UnitName); end; +procedure TJclClassTypeInfo.LoadValueFromString(AnObj: TObject; const PropName, + Value: string); +var + DotPos: Integer; + BaseObj: TObject; + Prefix: string; + ValueInfo: IJclValueTypeInfo; +begin + DotPos := CharPos(PropName, '.'); + if DotPos = 0 then + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [PropName, Name]); + Prefix := StrLeft(PropName, DotPos - 1); + BaseObj := GetObjectProp(AnObj, Prefix); + if Assigned(BaseObj) and Supports(PropNames[Prefix], IJclValueTypeInfo, ValueInfo) then + ValueInfo.LoadValueFromString(BaseObj, StrRestOf(PropName, DotPos + 1), Value) + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [PropName, Name]); +end; + +function TJclClassTypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +var + DotPos: Integer; + BaseObj: TObject; + Prefix: string; + ValueInfo: IJclValueTypeInfo; +begin + DotPos := CharPos(PropName, '.'); + if DotPos = 0 then + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [PropName, Name]); + Prefix := StrLeft(PropName, DotPos - 1); + BaseObj := GetObjectProp(AnObj, Prefix); + if Assigned(BaseObj) and Supports(PropNames[Prefix], IJclValueTypeInfo, ValueInfo) then + Result := ValueInfo.SaveValueToString(BaseObj, StrRestOf(PropName, DotPos + 1)) + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [PropName, Name]); +end; + procedure TJclClassTypeInfo.WriteTo(const Dest: IJclInfoWriter); const cFmt1 = '[%s %d]'; @@ -1561,6 +1815,111 @@ Dest.Writeln('end;'); end; +//=== { TJclObjClassTypeInfo } =============================================== + +constructor TJclObjClassTypeInfo.Create(const ATypeInfo: PTypeInfo; + const APrefix: string; AInstance: TObject); +begin + inherited Create(ATypeInfo); + FPrefix := APrefix; + FInstance := AInstance; +end; + +function TJclObjClassTypeInfo.GetInstance: TObject; +begin + Result := FInstance; +end; + +function TJclObjClassTypeInfo.GetObjProperties( + const PropIdx: Integer): IJclObjPropInfo; +var + PropData: ^TPropData; + Prop: PPropInfo; + Idx: Integer; + RecSize: Integer; +begin + PropData := @TypeData.UnitName; + Inc(TJclAddr(PropData), 1 + Length(GetUnitName)); + Prop := PPropInfo(PropData); + Inc(TJclAddr(Prop), 2); + if PropIdx > 0 then + begin + RecSize := SizeOf(TPropInfo) - SizeOf(ShortString); + Idx := PropIdx; + while Idx > 0 do + begin + Inc(TJclAddr(Prop), RecSize); + Inc(TJclAddr(Prop), 1 + PByte(Prop)^); + Dec(Idx); + end; + end; + Result := TJclObjPropInfo.Create(Prop, FPrefix, FInstance); +end; + +function TJclObjClassTypeInfo.GetObjPropNames( + const Name: string): IJclObjPropInfo; +var + PropInfo: PPropInfo; + DotPos: Integer; + Prefix, Suffix: string; + SubClassTypeInfo: IJclObjClassTypeInfo; + AInstance: TObject; +begin + DotPos := CharPos(Name, '.'); + if DotPos > 0 then + begin + Prefix := StrLeft(Name, DotPos - 1); + Suffix := StrRestOf(Name, DotPos + 1); + PropInfo := GetPropInfo(TypeInfo, Prefix); + if (PropInfo <> nil) and (PropInfo.PropType^.Kind = tkClass) then + begin + if FPrefix <> '' then + Prefix := FPrefix + '.' + Prefix; + AInstance := GetObjectProp(FInstance, PropInfo); + if AInstance <> nil then + begin + SubClassTypeInfo := TJclObjClassTypeInfo.Create(PropInfo.PropType^, Prefix, AInstance); + Result := SubClassTypeInfo.ObjPropNames[Suffix]; + end + else + Result := nil; + end + else + Result := nil; + end + else + begin + PropInfo := GetPropInfo(TypeInfo, Name); + if PropInfo <> nil then + Result := TJclObjPropInfo.Create(PropInfo, FPrefix, FInstance) + else + Result := nil; + end; +end; + +procedure TJclObjClassTypeInfo.LoadValueFromString(const PropName, + Value: string); +var + ObjPropInfo: IJclObjPropInfo; +begin + ObjPropInfo := GetObjPropNames(PropName); + if Assigned(ObjPropInfo) then + ObjPropInfo.LoadValueFromString(Value) + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [Name, PropName]); +end; + +function TJclObjClassTypeInfo.SaveValueToString(const PropName: string): string; +var + ObjPropInfo: IJclObjPropInfo; +begin + ObjPropInfo := GetObjPropNames(PropName); + if Assigned(ObjPropInfo) then + Result := ObjPropInfo.SaveValueToString + else + raise EJclRTTIError.CreateResFmt(@RsRTTINoStringValue, [Name, PropName]); +end; + //=== { TJclEventParamInfo } ================================================= constructor TJclEventParamInfo.Create(const AParam: Pointer); @@ -1811,6 +2170,12 @@ Result := TypeData.MinInt64Value; end; +procedure TJclInt64TypeInfo.LoadValueFromString(AnObj: TObject; const PropName, + Value: string); +begin + SetInt64Prop(AnObj, PropName, StrToInt(Value)); +end; + function TJclInt64TypeInfo.GetMaxValue: Int64; begin Result := TypeData.MaxInt64Value; @@ -1823,6 +2188,12 @@ Dest.Writeln(LoadResString(@RsRTTIMaxValue) + IntToStr(MaxValue)); end; +function TJclInt64TypeInfo.SaveValueToString(AnObj: TObject; + const PropName: string): string; +begin + Result := IntToStr(GetInt64Prop(AnObj, PropName)); +end; + procedure TJclInt64TypeInfo.DeclarationTo(const Dest: IJclInfoWriter); begin Dest.Writeln(Name + ' = ' + IntToStr(MinValue) + ' .. ' + IntToStr(MaxValue) + ';'); @@ -2536,6 +2907,52 @@ {$ENDIF ~SUPPORTS_UNICODE_STRING} end; +function GetObjectProperties(AnObj: TObject; Recurse: Boolean): IJclObjPropInfoArray; + + procedure InternalGetObjectProperties(var PropCount: SizeInt; Current: TObject; const Prefix: string); + var + I, C: Integer; + PropList: PPropList; + SubObject: TObject; + AbsoluteName: string; + begin + if Assigned(Current) then + begin + C := GetPropList(Current, PropList); + try + for I := 0 to C - 1 do + begin + if PropCount = Length(Result) then + SetLength(Result, Length(Result) * 2); + Result[PropCount] := TJclObjPropInfo.Create(PropList[I], Prefix, Current); + Inc(PropCount); + + if Recurse and (PropList[I]^.PropType^.Kind = tkClass) then + begin + SubObject := GetObjectProp(Current, PropList[I]); + if Prefix <> '' then + AbsoluteName := string(Prefix + '.' + PropList[I]^.Name) + else + AbsoluteName := string(PropList[I]^.Name); + InternalGetObjectProperties(PropCount, SubObject, AbsoluteName); + end; + end; + finally + if C > 0 then + FreeMem(PropList); + end; + end; + end; + +var + PropCount: Integer; +begin + PropCount := 0; + SetLength(Result, 16); + InternalGetObjectProperties(PropCount, AnObj, ''); + SetLength(Result, PropCount); +end; + initialization TypeList := TThreadList.Create; {$IFDEF UNITVERSIONING} Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2011-02-05 15:46:34 UTC (rev 3491) +++ trunk/jcl/source/common/JclResources.pas 2011-02-10 16:39:20 UTC (rev 3492) @@ -1626,6 +1626,7 @@ RsRTTIValueOutOfRange = 'Value out of range (%s).'; RsRTTIUnknownIdentifier = 'Unknown identifier ''%s''.'; RsRTTIInvalidBaseType = 'Invalid base type (%s is of type %s).'; + RsRTTINoStringValue = 'The property %s of type %s has no string value'; RsRTTIVar = 'var '; RsRTTIConst = 'const '; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2011-02-05 15:46:40
|
Revision: 3491 http://jcl.svn.sourceforge.net/jcl/?rev=3491&view=rev Author: ahuser Date: 2011-02-05 15:46:34 +0000 (Sat, 05 Feb 2011) Log Message: ----------- * Added setup build script * Updated installer helper (C++ LibraryPath) Modified Paths: -------------- trunk/thirdparty/InnoSetup/CompInstall/CompInst.pas trunk/thirdparty/InnoSetup/CompInstall.dll trunk/thirdparty/InnoSetup/Install.iss trunk/thirdparty/InnoSetup/Settings.iss Added Paths: ----------- trunk/thirdparty/InnoSetup/BuildSetup.bat trunk/thirdparty/InnoSetup/CompInstall/build.bat Removed Paths: ------------- trunk/thirdparty/InnoSetup/SourceDirectories.iss Property Changed: ---------------- trunk/thirdparty/InnoSetup/ Property changes on: trunk/thirdparty/InnoSetup ___________________________________________________________________ Added: svn:ignore + Output setupbuild Added: trunk/thirdparty/InnoSetup/BuildSetup.bat =================================================================== --- trunk/thirdparty/InnoSetup/BuildSetup.bat (rev 0) +++ trunk/thirdparty/InnoSetup/BuildSetup.bat 2011-02-05 15:46:34 UTC (rev 3491) @@ -0,0 +1,65 @@ +@echo off +SETLOCAL +SET SETUPDIR=%CD% + +:: ========================================================== +:: rsvars.bat check +:: ========================================================== +if not "-%BDS%" == "-" goto RsVarsCalled +call rsvars.bat +if "-%BDS%" == "-" goto Leave + +:RsVarsCalled +SET JCLROOT=%SETUPDIR%\..\jcl +SET JCLBUILTDIR=%SETUPDIR%\setupbuild +SET InnoSetupDir=%SETUPDIR%\InnoSetup + +:: == Sanity checks == +if not exist "%JCLROOT%\source\common\JclBase.pas" goto NoRootDirFound +if not exist "%SETUPDIR%\Install.iss" goto NoInstallDir + + +:: ========================================================== +:: Compile JCL +:: ========================================================== + +:: == Create output directories == +md "%SETUPDIR%\setupbuild" 2>NUL >NUL +md "%JCLBUILTDIR%" 2>NUL >NUL +md "%JCLBUILTDIR%\hpp" 2>NUL >NUL +md "%JCLBUILTDIR%\lib" 2>NUL >NUL +md "%JCLBUILTDIR%\bpl" 2>NUL >NUL + +:: == Delete all files in the output directories, we always want to rebuild them == +del /Q /S "%JCLBUILTDIR%\*.*" 2>NUL >NUL + +:: == Compile the files +cd %JCLROOT% +msbuild make.proj "/p:HppOutDir=%JCLBUILTDIR%\hpp" "/p:DcuOutDir=%JCLBUILTDIR%\lib" "/p:BplOutDir=%JCLBUILTDIR%\bpl" +if ERRORLEVEL 1 goto Failed +cd %SETUPDIR% + +:: ========================================================== +:: Compile Setup +:: ========================================================== +:Setup +"%InnoSetupDir%\ISCC.exe" Install.iss /dCmdLineBuild "/dJclRoot=%JCLROOT%" "/dJclLib=%JCLBUILTDIR%\lib" "/dJclBpl=%JCLBUILTDIR%\bpl" "/dJclHpp="%JCLBUILTDIR%\hpp" +if ERRORLEVEL 1 goto Failed + + +goto Leave + +:NoInstalLDirFound +echo You must start BuildSetup.bat from the JclInnoSetup directory. +goto Failed + +:NoRootDirFound +echo "%JCLROOT%" is not the JCL root directory. + +:Failed +echo. +pause + +:Leave +cd %SETUPDIR% +ENDLOCAL \ No newline at end of file Modified: trunk/thirdparty/InnoSetup/CompInstall/CompInst.pas =================================================================== --- trunk/thirdparty/InnoSetup/CompInstall/CompInst.pas 2011-02-05 15:42:43 UTC (rev 3490) +++ trunk/thirdparty/InnoSetup/CompInstall/CompInst.pas 2011-02-05 15:46:34 UTC (rev 3491) @@ -103,7 +103,7 @@ ConfigDataLocation := Inst.ConfigDataLocation; if (ConfigDataLocation <> '') and (ConfigDataLocation[1] = PathDelim) then - ConfigDataLocation := Copy(ConfigDataLocation, 2, MaxInt); // there is no such thing as am absolute "\Software" registry key + ConfigDataLocation := Copy(ConfigDataLocation, 2, MaxInt); // there is no such thing as an absolute "\Software" registry key case Inst.RadToolKind of brDelphi: @@ -269,6 +269,7 @@ begin TJclBDSInstallation(Inst).AddToCppBrowsingPath(BrowsePaths); TJclBDSInstallation(Inst).AddToCppIncludePath(IncludePaths); + TJclBDSInstallation(Inst).AddToCppLibraryPath(SearchPaths); // for .lib and .bpi end; end else @@ -280,6 +281,7 @@ begin TJclBDSInstallation(Inst).RemoveFromCppBrowsingPath(BrowsePaths); TJclBDSInstallation(Inst).RemoveFromCppIncludePath(IncludePaths); + TJclBDSInstallation(Inst).RemoveFromCppLibraryPath(SearchPaths); // for .lib and .bpi end; end; Result := 1; Added: trunk/thirdparty/InnoSetup/CompInstall/build.bat =================================================================== --- trunk/thirdparty/InnoSetup/CompInstall/build.bat (rev 0) +++ trunk/thirdparty/InnoSetup/CompInstall/build.bat 2011-02-05 15:46:34 UTC (rev 3491) @@ -0,0 +1,7 @@ +@echo off + +SET PATH=E:\Borland\Delphi7\Bin + +dcc32 -U..\..\JCL\source\Common;..\..\JCL\source\Windows -I..\..\JCL\source\Include -Q -$D- -E.. CompInstall.dpr + +pause \ No newline at end of file Modified: trunk/thirdparty/InnoSetup/CompInstall.dll =================================================================== (Binary files differ) Modified: trunk/thirdparty/InnoSetup/Install.iss =================================================================== --- trunk/thirdparty/InnoSetup/Install.iss 2011-02-05 15:42:43 UTC (rev 3490) +++ trunk/thirdparty/InnoSetup/Install.iss 2011-02-05 15:46:34 UTC (rev 3491) @@ -3,49 +3,55 @@ ; CONDITIONAL COMPILATION ; Include_Binaries Create an installer that can install a precompiled JCL ; Include_Examples Add the Examples directory to the installer (user can then select the component) -; DEBUGGING Development. Will only use Delphi 5 BPLs as files with a fast compression (script debugging) +; DEBUGGING Development. Uses fast compression (script debugging) ; Include_DelphiX Include the binaries for Delphi X (X in 6..15) -; Include_BCBX Include the binaries for C++Builder 6 +#ifndef CmdLineBuild +#define JclRoot "..\Jcl" +#define JclLib "setupbuild\lib" +#define JclBpl "setupbuild\bpl" +#define JclHpp "setupbuild\hpp" +#define DEBUGGING +#endif + #define Include_SingleIDE #define Include_Binaries #define Include_Examples -;#define DEBUGGING #include "Settings.iss" -#ifdef Include_SingleIDE -#endif #define MyAppName "Jedi Code Library" #define MyAppVerName "Jedi Code Library " + JclVersionStr #define MyAppPublisher "JCL Team" #define MyAppURL "http://jcl.sourceforge.net/" -#define downloadurl "http://jcl.sourceforge.net/websetup/jcl" -#ifdef DEBUGGING - #define Include_SingleIDE - #define Include_Delphi15 - #undef Include_Examples +;--------------------------------------------------- +; Setup the preprocessor defines for the binary files +#ifdef Include_SingleIDE +#define JclLib6 JclLib +#define JclBpl6 JclBpl +#define JclLib7 JclLib +#define JclBpl7 JclBpl +#define JclLib9 JclLib +#define JclBpl9 JclBpl +#define JclLib10 JclLib +#define JclBpl10 JclBpl +#define JclHpp10 JclHpp +#define JclLib11 JclLib +#define JclBpl11 JclBpl +#define JclHpp11 JclHpp +#define JclLib12 JclLib +#define JclBpl12 JclBpl +#define JclHpp12 JclHpp +#define JclLib14 JclLib +#define JclBpl14 JclBpl +#define JclHpp14 JclHpp +#define JclLib15 JclLib +#define JclBpl15 JclBpl +#define JclHpp15 JclHpp #endif -#ifdef Include_Binaries - #ifndef Include_SingleIDE - #define Include_Delphi6 - #define Include_Delphi7 - #define Include_Delphi9 - #define Include_Delphi10 - #define Include_Delphi11 - #define Include_Delphi12 - #define Include_Delphi14 - #define Include_Delphi15 - #endif -#endif - - ;--------------------------------------------------- -#ifndef SourceDirectoriesDefines -#include "SourceDirectories.iss" -#endif [Setup] AppName={#MyAppName} @@ -69,7 +75,6 @@ SolidCompression=yes ShowLanguageDialog=auto OptimizedChecks=yes -;WebSetupUpdateURL={#downloadurl} // for skin @@ -101,16 +106,6 @@ #ifdef Include_Binaries -[Packages] -Name: delphi6; Description: "Delphi 6 binary files"; Source: "{#downloadurl}/jcldelphi6.isz"; Flags: localcopy; -Name: delphi7; Description: "Delphi 7 binary files"; Source: "{#downloadurl}/jcldelphi7.isz"; Flags: localcopy; -Name: delphi9; Description: "Delphi 2005 binary files"; Source: "{#downloadurl}/jcldelphi9.isz"; Flags: localcopy; -Name: delphi10; Description: "Delphi/C++Builder 2006 binary files"; Source: "{#downloadurl}/jcldelphi10.isz"; Flags: localcopy; -Name: delphi11; Description: "Delphi/C++Builder 2007 binary files"; Source: "{#downloadurl}/jcldelphi11.isz"; Flags: localcopy; -Name: delphi12; Description: "Delphi/C++Builder 2009 binary files"; Source: "{#downloadurl}/jcldelphi12.isz"; Flags: localcopy; -Name: delphi14; Description: "Delphi/C++Builder 2010 binary files"; Source: "{#downloadurl}/jcldelphi14.isz"; Flags: localcopy; -Name: delphi15; Description: "Delphi/C++Builder XE binary files"; Source: "{#downloadurl}/jcldelphi15.isz"; Flags: localcopy; - #include "IdeComponents.iss" [Components] @@ -144,84 +139,54 @@ Source: {#JclRoot}\source\*; DestDir: "{app}\source"; Excludes: ".svn,__history,*.~*,*.hpp,*.txt"; Flags: ignoreversion sortfilesbyextension recursesubdirs #ifdef Include_Examples ; SolidBreak -Source: {#JclRoot}\examples\*; DestDir: "{app}\examples"; Excludes: ".svn,__history,*.dcu,*.obj,*.exe,*.bpl,*.dcp,*.~*"; Components: "Examples"; Flags: ignoreversion recursesubdirs sortfilesbyextension solidbreak +Source: {#JclRoot}\examples\*; DestDir: "{app}\examples"; Excludes: ".svn,__history,*.dcu,*.obj,*.exe,*.map,*.bpl,*.dcp,*.~*,*.drc,*.local"; Components: "Examples"; Flags: ignoreversion recursesubdirs sortfilesbyextension solidbreak #endif #ifdef Include_Binaries #ifdef Include_Delphi6 ; SolidBreak; -Source: {#JclRoot}\lib\d6\*; DestDir: "{app}\lib\d6"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi6"; Package: delphi6; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi6Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|6}"; Components: "IDE\Delphi6"; Package: delphi6; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclLib6}\*; DestDir: "{app}\lib\d6"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi6"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl6}\*; DestDir: "{code:GetDelphiBplDir|6}"; Components: "IDE\Delphi6"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs #endif #ifdef Include_Delphi7 ; SolidBreak; -Source: {#JclRoot}\lib\d7\*; DestDir: "{app}\lib\d7"; Excludes: ".svn,__history,*.txt"; Components: "IDE\Delphi7"; Package: delphi7; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi7Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|7}"; Components: "IDE\Delphi7"; Package: delphi7; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclLib7}\*; DestDir: "{app}\lib\d7"; Excludes: ".svn,__history,*.txt"; Components: "IDE\Delphi7"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl7}\*; DestDir: "{code:GetDelphiBplDir|7}"; Components: "IDE\Delphi7"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs #endif #ifdef Include_Delphi9 ; SolidBreak; -Source: {#JclRoot}\lib\d9\*; DestDir: "{app}\lib\d9"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi9"; Package: delphi9; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi9Bpl}\Jcl*9*.*; DestDir: "{code:GetDelphiBplDir|9}"; Components: "IDE\Delphi9"; Package: delphi9; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclLib9}\*; DestDir: "{app}\lib\d9"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi9"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl9}\*; DestDir: "{code:GetDelphiBplDir|9}"; Components: "IDE\Delphi9"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs #endif #ifdef Include_Delphi10 ; SolidBreak; - #ifdef JclHpp -Source: {#JclLib}\*.*; DestDir: "{app}\lib\d10"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#JclBpl}\*.*; DestDir: "{code:GetDelphiBplDir|10}"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#JclHpp}\*.*; DestDir: "{code:GetHPPDir|10}"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion sortfilesbyextension - #else -Source: {#JclRoot}\lib\d10\*; DestDir: "{app}\lib\d10"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi10Bpl}\Jcl*10*.*; DestDir: "{code:GetDelphiBplDir|10}"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#Delphi10Hpp}\Jcl*.hpp; DestDir: "{code:GetHPPDir|10}"; Components: "IDE\Delphi10"; Package: delphi10; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs - #endif +Source: {#JclLib10}\*; DestDir: "{app}\lib\d10"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi10"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl10}\*; DestDir: "{code:GetDelphiBplDir|10}"; Components: "IDE\Delphi10"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclHpp10}\*; DestDir: "{code:GetHPPDir|10}"; Components: "IDE\Delphi10"; Flags: ignoreversion sortfilesbyextension #endif #ifdef Include_Delphi11 ; SolidBreak; - #ifdef JclHpp -Source: {#JclLib}\*.*; DestDir: "{app}\lib\d11"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#JclBpl}\*.*; DestDir: "{code:GetDelphiBplDir|11}"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#JclHpp}\*.*; DestDir: "{code:GetHPPDir|11}"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion sortfilesbyextension - #else -Source: {#JclRoot}\lib\d11\*; DestDir: "{app}\lib\d11"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi11Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|11}"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#Delphi11Hpp}\Jcl*.hpp; DestDir: "{code:GetHPPDir|11}"; Components: "IDE\Delphi11"; Package: delphi11; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs - #endif +Source: {#JclLib11}\*; DestDir: "{app}\lib\d11"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi11"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl11}\*; DestDir: "{code:GetDelphiBplDir|11}"; Components: "IDE\Delphi11"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclHpp11}\*; DestDir: ""{app}\include\d11"; Components: "IDE\Delphi11"; Flags: ignoreversion sortfilesbyextension #endif #ifdef Include_Delphi12 ; SolidBreak; - #ifdef JclHpp -Source: {#JclLib}\*.*; DestDir: "{app}\lib\d12"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#JclBpl}\*.*; DestDir: "{code:GetDelphiBplDir|12}"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#JclHpp}\*.*; DestDir: "{code:GetHPPDir|12}"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion sortfilesbyextension - #else -Source: {#JclRoot}\lib\d12\*; DestDir: "{app}\lib\d12"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi12Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|12}"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#Delphi12Hpp}\Jcl*.hpp; DestDir: "{code:GetHPPDir|12}"; Components: "IDE\Delphi12"; Package: delphi12; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs - #endif +Source: {#JclLib12}\*; DestDir: "{app}\lib\d12"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi12"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl12}\*; DestDir: "{code:GetDelphiBplDir|12}"; Components: "IDE\Delphi12"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclHpp12}\*; DestDir: ""{app}\include\d12"; Components: "IDE\Delphi12"; Flags: ignoreversion sortfilesbyextension #endif #ifdef Include_Delphi14 ; SolidBreak; - #ifdef JclHpp -Source: {#JclJcl}\*.*; DestDir: "{app}\lib\d14"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#JclBpl}\*.*; DestDir: "{code:GetDelphiBplDir|14}"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#JclHpp}\*.*; DestDir: "{code:GetHPPDir|14}"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion sortfilesbyextension - #else -Source: {#JclRoot}\lib\d14\*; DestDir: "{app}\lib\d14"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi14Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|14}"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#Delphi14Hpp}\Jcl*.hpp; DestDir: "{code:GetHPPDir|14}"; Components: "IDE\Delphi14"; Package: delphi14; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs - #endif +Source: {#JclJcl14}\*; DestDir: "{app}\lib\d14"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi14"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl14}\*; DestDir: "{code:GetDelphiBplDir|14}"; Components: "IDE\Delphi14"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclHpp14}\*; DestDir: ""{app}\include\d14"; Components: "IDE\Delphi14"; Flags: ignoreversion sortfilesbyextension #endif #ifdef Include_Delphi15 ; SolidBreak; - #ifdef JclHpp -Source: {#JclLib}\*.*; DestDir: "{app}\lib\d15"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#JclBpl}\*.*; DestDir: "{code:GetDelphiBplDir|15}"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#JclHpp}\*.*; DestDir: "{code:GetHPPDir|15}"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion sortfilesbyextension - #else -Source: {#JclRoot}\lib\d15\*; DestDir: "{app}\lib\d15"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak -Source: {#Delphi15Bpl}\Jcl*.*; DestDir: "{code:GetDelphiBplDir|15}"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs -Source: {#Delphi15Hpp}\Jcl*.hpp; DestDir: "{code:GetHPPDir|15}"; Components: "IDE\Delphi15"; Package: delphi15; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs - #endif +Source: {#JclLib15}\*; DestDir: "{app}\lib\d15"; Excludes: ".svn,__history,*.txt,*.hpp"; Components: "IDE\Delphi15"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs solidbreak +Source: {#JclBpl15}\*; DestDir: "{code:GetDelphiBplDir|15}"; Components: "IDE\Delphi15"; Flags: ignoreversion recursesubdirs sortfilesbyextension createallsubdirs +Source: {#JclHpp15}\*; DestDir: "{app}\include\d15"; Components: "IDE\Delphi15"; Flags: ignoreversion sortfilesbyextension #endif #endif @@ -301,6 +266,7 @@ Type: files; Name: "{app}\bin\JCL-install.ini" Type: files; Name: "{app}\bin\*.log" Type: files; Name: "{app}\source\*.hpp" +Type: files; Name: "{app}\source\*.~*" Type: files; Name: "{app}\source\common\*.hpp" Type: files; Name: "{app}\source\vcl\*.hpp" Type: files; Name: "{app}\source\windows\*.hpp" @@ -326,18 +292,22 @@ ; lib\Delphi/C++Builder 2007 Type: files; Name: "{app}\lib\d11\*" Type: files; Name: "{app}\lib\d11\debug\*" +Type: files; Name: "{app}\include\d11\*" Type: files; Name: "{code:GetDelphiBplDir|11}\Jcl*.~bpl"; ; lib\Delphi/C++Builder 2009 Type: files; Name: "{app}\lib\d12\*" Type: files; Name: "{app}\lib\d12\debug\*" +Type: files; Name: "{app}\include\d12\*" Type: files; Name: "{code:GetDelphiBplDir|12}\Jcl*.~bpl"; ; lib\Delphi/C++Builder 2010 Type: files; Name: "{app}\lib\d14\*" Type: files; Name: "{app}\lib\d14\debug\*" +Type: files; Name: "{app}\include\d14\*" Type: files; Name: "{code:GetDelphiBplDir|14}\Jcl*.~bpl"; ; lib\Delphi/C++Builder XE Type: files; Name: "{app}\lib\d15\*" Type: files; Name: "{app}\lib\d15\debug\*" +Type: files; Name: "{app}\include\d15\*" Type: files; Name: "{code:GetDelphiBplDir|15}\Jcl*.~bpl"; [Icons] @@ -426,8 +396,10 @@ SearchPaths := LibDir + ';' + AppDir + '\source\Include'; DebugPaths := LibDir + '\debug'; - BrowsePaths := AppDir + '\source\Include;' + AppDir + '\source\common;' + AppDir + '\source\vcl;' + AppDir + '\source\windows'; - if Version >= 10 then + BrowsePaths := AppDir + '\source\common;' + AppDir + '\source\vcl;' + AppDir + '\source\windows'; + if Version >= 11 then + IncludePaths := ExpandConstant('{app}') + '\include\d' + IntToStr(Version) + else if Version = 10 then IncludePaths := GetHPPDir(IntToStr(Version)); end; Modified: trunk/thirdparty/InnoSetup/Settings.iss =================================================================== --- trunk/thirdparty/InnoSetup/Settings.iss 2011-02-05 15:42:43 UTC (rev 3490) +++ trunk/thirdparty/InnoSetup/Settings.iss 2011-02-05 15:46:34 UTC (rev 3491) @@ -1,2 +1,2 @@ #define Include_Delphi15 -#define JclVersionStr "2.0.1.3449" +#define JclVersionStr "2.3.0.374" Deleted: trunk/thirdparty/InnoSetup/SourceDirectories.iss =================================================================== --- trunk/thirdparty/InnoSetup/SourceDirectories.iss 2011-02-05 15:42:43 UTC (rev 3490) +++ trunk/thirdparty/InnoSetup/SourceDirectories.iss 2011-02-05 15:46:34 UTC (rev 3491) @@ -1,20 +0,0 @@ -#define JclRoot "Z:\JEDI\JCL" - -#define Delphi6Bpl "C:\Borland\Delphi6\Projects\Bpl" -#define Delphi7Bpl "C:\Borland\Delphi7\Projects\Bpl" -#define Delphi9Bpl "C:\Users\Andreas\Documents\Borland Studio Projekte\Bpl" - -#define Delphi10Bpl "C:\Users\Andreas\Documents\Borland Studio Projekte\Bpl" -#define Delphi10Bpl "C:\Users\Andreas\Documents\Borland Studio Projekte\Hpp" - -#define Delphi11Bpl "C:\Users\Public\Documents\RAD Studio\5.0\Bpl" -#define Delphi11Hpp "C:\Users\Public\Documents\RAD Studio\5.0\Hpp" - -#define Delphi12Bpl "C:\Users\Public\Documents\RAD Studio\6.0\Bpl" -#define Delphi12Hpp "C:\Users\Public\Documents\RAD Studio\6.0\Hpp" - -#define Delphi14Bpl "C:\Users\Public\Documents\RAD Studio\7.0\Bpl" -#define Delphi14Hpp "C:\Users\Public\Documents\RAD Studio\7.0\Hpp" - -#define Delphi15Bpl "C:\Users\Public\Documents\RAD Studio\8.0\Bpl" -#define Delphi15Hpp "C:\Users\Public\Documents\RAD Studio\8.0\Hpp" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2011-02-05 15:42:49
|
Revision: 3490 http://jcl.svn.sourceforge.net/jcl/?rev=3490&view=rev Author: ahuser Date: 2011-02-05 15:42:43 +0000 (Sat, 05 Feb 2011) Log Message: ----------- msbuild script updated Modified Paths: -------------- trunk/jcl/make.proj Modified: trunk/jcl/make.proj =================================================================== --- trunk/jcl/make.proj 2011-01-29 21:47:57 UTC (rev 3489) +++ trunk/jcl/make.proj 2011-02-05 15:42:43 UTC (rev 3490) @@ -48,6 +48,7 @@ <LibDirVersion Condition=" Exists('$(BDS)\bin\dcc140.dll') ">d14</LibDirVersion> <!-- 2010 --> <LibDirVersion Condition=" Exists('$(BDS)\bin\dcc150.dll') ">d15</LibDirVersion> <!-- XE --> <LibDirVersion Condition=" Exists('$(BDS)\bin\dcc160.dll') ">d16</LibDirVersion> <!-- XE2 --> + <LibDirVersion Condition=" Exists('$(BDS)\bin\dcc170.dll') ">d17</LibDirVersion> <!-- XE3 --> </PropertyGroup> @@ -79,6 +80,7 @@ <!-- Compiler command line options --> <BaseOptions>$(BaseOptions) -M -D_RTLDLL;NO_STRICT;USEPACKAGES</BaseOptions> + <BaseOptions Condition=" '$(UserDefines)' != '' ">$(BaseOptions) -D$(UsertDefines)</BaseOptions> <BaseOptions Condition=" '$(BCBCompile)' == 'true' ">$(BaseOptions) -JPHNE --BCB</BaseOptions> <BaseOptions>$(BaseOptions) -$X+ -$G+ -$H+ -$P+ -$U- -$T- -$V+ -$J+ -$Z1 -$J+</BaseOptions> <BaseOptions>$(BaseOptions) -I"$(IncludeDirs)" -U"$(UnitDirs)" -R"$(ResDirs)"</BaseOptions> @@ -179,7 +181,6 @@ <!-- Copy *.res files to the dcu output directories --> <Target Name="CopyResFiles" Inputs="@(JclResFiles)" Outputs="$(JclResFileOutput)"> <Copy SourceFiles="@(JclResFiles)" DestinationFolder="$(DcuOutDir)" /> - <Copy SourceFiles="@(JclResFiles)" DestinationFolder="$(DebugDcuOutDir)" /> </Target> <!-- Create JclXXX.ini file if it doesn't exist --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-29 21:48:04
|
Revision: 3489 http://jcl.svn.sourceforge.net/jcl/?rev=3489&view=rev Author: outchy Date: 2011-01-29 21:47:57 +0000 (Sat, 29 Jan 2011) Log Message: ----------- style cleaning in interface declarations and implementations. Modified Paths: -------------- trunk/jcl/source/common/JclRTTI.pas Modified: trunk/jcl/source/common/JclRTTI.pas =================================================================== --- trunk/jcl/source/common/JclRTTI.pas 2011-01-29 21:37:03 UTC (rev 3488) +++ trunk/jcl/source/common/JclRTTI.pas 2011-01-29 21:47:57 UTC (rev 3489) @@ -105,6 +105,7 @@ // TypeInfo retrieval IJclBaseInfo = interface + ['{84E57A52-7219-4248-BDC7-4AACBFE2002D}'] procedure WriteTo(const Dest: IJclInfoWriter); procedure DeclarationTo(const Dest: IJclInfoWriter); end; @@ -122,15 +123,15 @@ property TypeKind: TTypeKind read GetTypeKind; end; - TJclTypeInfo = class(TInterfacedObject, IJclTypeInfo) + TJclTypeInfo = class(TInterfacedObject, IJclTypeInfo, IJclBaseInfo) private FTypeData: PTypeData; FTypeInfo: PTypeInfo; - protected + public + constructor Create(ATypeInfo: PTypeInfo); + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); virtual; procedure DeclarationTo(const Dest: IJclInfoWriter); virtual; - public - constructor Create(ATypeInfo: PTypeInfo); { IJclTypeInfo } function GetName: string; function GetTypeData: PTypeData; @@ -150,10 +151,11 @@ property OrdinalType: TOrdType read GetOrdinalType; end; - TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo) - protected + TJclOrdinalTypeInfo = class(TJclTypeInfo, IJclOrdinalTypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; - public { IJclOrdinalTypeInfo } function GetOrdinalType: TOrdType; property OrdinalType: TOrdType read GetOrdinalType; @@ -168,11 +170,12 @@ property MaxValue: Int64 read GetMaxValue; end; - TJclOrdinalRangeTypeInfo = class(TJclOrdinalTypeInfo, IJclOrdinalRangeTypeInfo) - protected + TJclOrdinalRangeTypeInfo = class(TJclOrdinalTypeInfo, IJclOrdinalRangeTypeInfo, + IJclOrdinalTypeInfo, IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclOrdinalRangeTypeInfo } function GetMinValue: Int64; function GetMaxValue: Int64; @@ -193,11 +196,12 @@ property UnitName: string read GetUnitName; end; - TJclEnumerationTypeInfo = class(TJclOrdinalRangeTypeInfo, IJclEnumerationTypeInfo) - protected + TJclEnumerationTypeInfo = class(TJclOrdinalRangeTypeInfo, IJclEnumerationTypeInfo, + IJclOrdinalRangeTypeInfo, IJclOrdinalTypeInfo, IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclEnumerationTypeInfo } function GetBaseType: IJclEnumerationTypeInfo; function GetNames(const I: Integer): string; @@ -218,11 +222,12 @@ property BaseType: IJclOrdinalTypeInfo read GetBaseType; end; - TJclSetTypeInfo = class(TJclOrdinalTypeInfo, IJclSetTypeInfo) - protected + TJclSetTypeInfo = class(TJclOrdinalTypeInfo, IJclSetTypeInfo, IJclOrdinalTypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclSetTypeInfo } function GetBaseType: IJclOrdinalTypeInfo; procedure GetAsList(const Value; const WantRanges: Boolean; @@ -239,11 +244,12 @@ property FloatType: TFloatType read GetFloatType; end; - TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo) - protected + TJclFloatTypeInfo = class(TJclTypeInfo, IJclFloatTypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclFloatTypeInfo } function GetFloatType: TFloatType; property FloatType: TFloatType read GetFloatType; @@ -257,11 +263,12 @@ property MaxLength: Integer read GetMaxLength; end; - TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo) - protected + TJclStringTypeInfo = class(TJclTypeInfo, IJclStringTypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclStringTypeInfo } function GetMaxLength: Integer; property MaxLength: Integer read GetMaxLength; @@ -374,11 +381,12 @@ property UnitName: string read GetUnitName; end; - TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo) - protected + TJclClassTypeInfo = class(TJclTypeInfo, IJclClassTypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclClassTypeInfo } function GetClassRef: TClass; function GetParent: IJclClassTypeInfo; @@ -443,11 +451,11 @@ property ResultTypeName: string read GetResultTypeName; end; - TJclEventTypeInfo = class(TJclTypeInfo, IJclEventTypeInfo) - protected + TJclEventTypeInfo = class(TJclTypeInfo, IJclEventTypeInfo, IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclEventTypeInfo } function GetMethodKind: TMethodKind; function GetParameterCount: Integer; @@ -476,11 +484,12 @@ property UnitName: string read GetUnitName; end; - TJclInterfaceTypeInfo = class(TJclTypeInfo, IJclInterfaceTypeInfo) - protected + TJclInterfaceTypeInfo = class(TJclTypeInfo, IJclInterfaceTypeInfo, IJclTypeInfo, + IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclInterfaceTypeInfo } function GetParent: IJclInterfaceTypeInfo; function GetFlags: TIntfFlagsBase; @@ -503,11 +512,12 @@ property MaxValue: Int64 read GetMaxValue; end; - TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo) - protected + TJclInt64TypeInfo = class(TJclTypeInfo, IJclInt64TypeInfo, + IJclTypeInfo, IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclInt64TypeInfo } function GetMinValue: Int64; function GetMaxValue: Int64; @@ -531,11 +541,12 @@ property UnitName: string read GetUnitName; end; - TJclDynArrayTypeInfo = class(TJclTypeInfo, IJclDynArrayTypeInfo) - protected + TJclDynArrayTypeInfo = class(TJclTypeInfo, IJclDynArrayTypeInfo, IJclTypeInfo, + IJclBaseInfo) + public + { IJclBaseInfo } procedure WriteTo(const Dest: IJclInfoWriter); override; procedure DeclarationTo(const Dest: IJclInfoWriter); override; - public { IJclDynArrayTypeInfo } function GetElementSize: Longint; function GetElementType: IJclTypeInfo; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-29 21:37:09
|
Revision: 3488 http://jcl.svn.sourceforge.net/jcl/?rev=3488&view=rev Author: outchy Date: 2011-01-29 21:37:03 +0000 (Sat, 29 Jan 2011) Log Message: ----------- Add support for AnsiString, WideString and UnicodeString to IJclStringTypeInfo/TJclStringTypeInfo. Modified Paths: -------------- trunk/jcl/source/common/JclRTTI.pas Modified: trunk/jcl/source/common/JclRTTI.pas =================================================================== --- trunk/jcl/source/common/JclRTTI.pas 2011-01-26 18:54:14 UTC (rev 3487) +++ trunk/jcl/source/common/JclRTTI.pas 2011-01-29 21:37:03 UTC (rev 3488) @@ -1145,20 +1145,37 @@ function TJclStringTypeInfo.GetMaxLength: Integer; begin - Result := TypeData.MaxLength; + if FTypeInfo^.Kind = tkString then + Result := TypeData.MaxLength + else + Result := 0; end; procedure TJclStringTypeInfo.WriteTo(const Dest: IJclInfoWriter); begin inherited WriteTo(Dest); - Dest.Writeln(LoadResString(@RsRTTIMaxLen) + IntToStr(MaxLength)); + if FTypeInfo^.Kind = tkString then + Dest.Writeln(LoadResString(@RsRTTIMaxLen) + IntToStr(MaxLength)); end; procedure TJclStringTypeInfo.DeclarationTo(const Dest: IJclInfoWriter); begin if Name[1] <> '.' then Dest.Write(Name + ' = '); - Dest.Write('string[' + IntToStr(MaxLength) + ']'); + + {$IFDEF SUPPORTS_UNICODE_STRING} + if FTypeInfo^.Kind = tkUString then + Dest.Write('UnicodeString') + else + {$ENDIF SUPPORTS_UNICODE_STRING} + if FTypeInfo^.Kind = tkLString then + Dest.Write('AnsiString') + else + if FTypeInfo^.Kind = tkWString then + Dest.Write('WideString') + else + Dest.Write('string[' + IntToStr(MaxLength) + ']'); + if Name[1] <> '.' then Dest.Writeln(';'); end; @@ -1893,7 +1910,12 @@ Result := TJclSetTypeInfo.Create(ATypeInfo); tkFloat: Result := TJclFloatTypeInfo.Create(ATypeInfo); - tkString: + tkString, + tkLString, + {$IFDEF SUPPORTS_UNICODE_STRING} + tkUString, + {$ENDIF SUPPORTS_UNICODE_STRING} + tkWString: Result := TJclStringTypeInfo.Create(ATypeInfo); tkClass: Result := TJclClassTypeInfo.Create(ATypeInfo); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-26 22:37:09
|
Revision: 3487 http://jcl.svn.sourceforge.net/jcl/?rev=3487&view=rev Author: outchy Date: 2011-01-26 18:54:14 +0000 (Wed, 26 Jan 2011) Log Message: ----------- Mantis 5467: The release and debug dcu's are not placed in 'lib\d11\debug' and 'lib\d11\' when installing on Delphi 2007/Delphi 2009. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2011-01-25 19:40:23 UTC (rev 3486) +++ trunk/jcl/install/JclInstall.pas 2011-01-26 18:54:14 UTC (rev 3487) @@ -2569,17 +2569,22 @@ Compiler.Options.Add('-$Y-'); // symbol reference info end; + if Debug then + UnitOutputDir := FLibDebugDir + else + UnitOutputDir := FLibReleaseDir; + + if (Target.RadToolKind = brBorlandDevStudio) and (Target.VersionNumber >= 4) then + Compiler.AddPathOption('N0', UnitOutputDir) // .dcu files + else + Compiler.AddPathOption('N', UnitOutputDir); // .dcu files + if bpBCBuilder32 in Target.Personalities then begin Compiler.Options.Add('-D_RTLDLL' + DirSeparator + 'NO_STRICT' + DirSeparator + 'USEPACKAGES'); // $(SYSDEFINES) - if Debug then - UnitOutputDir := FLibDebugDir - else - UnitOutputDir := FLibReleaseDir; if (Target.RadToolKind = brBorlandDevStudio) and (Target.VersionNumber >= 4) then begin - Compiler.AddPathOption('N0', UnitOutputDir); // .dcu files //Compiler.AddPathOption('NH', FIncludeDir); // .hpp files Compiler.AddPathOption('NO', UnitOutputDir); // .obj files if TJclBDSInstallation(Target).DualPackageInstallation and OptionChecked[joJCLCopyPackagesHppFiles] then @@ -2587,7 +2592,6 @@ end else begin - Compiler.AddPathOption('N0', UnitOutputDir); // .dcu files //Compiler.AddPathOption('N1', FIncludeDir); // .hpp files Compiler.AddPathOption('N2', UnitOutputDir); // .obj files end; @@ -2595,16 +2599,8 @@ Compiler.Options.Add('--BCB'); //Compiler.AddPathOption('O', Format(BCBIncludePath, [Distribution.JclIncludeDir, Distribution.JclSourcePath])); //Compiler.AddPathOption('U', Format(BCBObjectPath, [Distribution.JclIncludeDir, Distribution.JclSourcePath])); - end - else // Delphi - begin - if Debug then - UnitOutputDir := FLibDebugDir - else - UnitOutputDir := FLibReleaseDir; - - Compiler.AddPathOption('N', UnitOutputDir); // .dcu files end; + Compiler.AddPathOption('I', Distribution.JclIncludeDir); Compiler.AddPathOption('U', Distribution.JclSourcePath); Compiler.AddPathOption('R', Distribution.JclSourcePath); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-25 19:40:29
|
Revision: 3486 http://jcl.svn.sourceforge.net/jcl/?rev=3486&view=rev Author: outchy Date: 2011-01-25 19:40:23 +0000 (Tue, 25 Jan 2011) Log Message: ----------- cleanup of SVN properties. Modified Paths: -------------- trunk/thirdparty/svn_cleaner/SvnCleaner.xml Property Changed: ---------------- trunk/jcl/install/ trunk/jcl/packages/help/ Property changes on: trunk/jcl/install ___________________________________________________________________ Modified: svn:ignore - *.drc *.dcu *.~* __history *.identcache *.local *.dproj *.bak *.cfg dcc32.cfg dcc32_command.cmd + *.drc *.dcu *.~* __history *.identcache *.local *.dproj *.bak *.cfg *.hpp dcc32.cfg dcc32_command.cmd Property changes on: trunk/jcl/packages/help ___________________________________________________________________ Modified: tsvn:projectlanguage - 1033 + 0x0409 Modified: trunk/thirdparty/svn_cleaner/SvnCleaner.xml =================================================================== --- trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2011-01-20 17:21:18 UTC (rev 3485) +++ trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2011-01-25 19:40:23 UTC (rev 3486) @@ -23,7 +23,7 @@ <value>URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id</value> </property> </setting> - <setting path="" mask="*.pas *.cpp *.inc *.h *.c *.dpr *.dpk *.lpk *.bpr *.bpk *.bpf *.bmk *.def *.conf *.sh *.txt *.bat *.xml *.html *.css *.exc *.bpg *.bdsgroup *.bdsproj *.groupproj *.dproj *.cproj *.dof *.rc *.dfm *.xfm *.dtx *.dsf *.dox *.dfg *.ini *.mak *.int *.imp *.pl *.cmd *.manifest *.iss *.cs *.resx *.htaccess *.cfg" recurse="yes" dironly="no"> + <setting path="" mask="*.pas *.cpp *.inc *.h *.c *.dpr *.dpk *.lpk *.bpr *.bpk *.bpf *.bmk *.def *.conf *.sh *.txt *.bat *.xml *.html *.css *.exc *.bpg *.bdsgroup *.bdsproj *.groupproj *.dproj *.cproj *.dof *.rc *.dfm *.xfm *.dtx *.dsf *.dox *.dfg *.ini *.mak *.int *.imp *.pl *.cmd *.manifest *.iss *.cs *.resx *.htaccess *.cfg *.HxC *.HxK *.HxT *.cnt" recurse="yes" dironly="no"> <property name="svn:eol-style"> <value>native</value> </property> @@ -176,6 +176,7 @@ <value>*.dproj</value> <value>*.bak</value> <value>*.cfg</value> + <value>*.hpp</value> <value>dcc32.cfg</value> <value>dcc32_command.cmd</value> </property> @@ -301,6 +302,11 @@ </property> </setting> + <setting path="" mask="help" recurse="no" dironly="yes"> + <property name="svn:ignore"> + <value>*.doxdb</value> + </property> + </setting> </setting> <setting path="source" mask="" recurse="no" dironly="yes"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-20 17:21:25
|
Revision: 3485 http://jcl.svn.sourceforge.net/jcl/?rev=3485&view=rev Author: outchy Date: 2011-01-20 17:21:18 +0000 (Thu, 20 Jan 2011) Log Message: ----------- Mantis 5464: TJclZipCompressArchive.GetSupportedCompressionMethods missing cmPPMd. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2011-01-19 20:50:10 UTC (rev 3484) +++ trunk/jcl/source/common/JclCompression.pas 2011-01-20 17:21:18 UTC (rev 3485) @@ -6826,7 +6826,7 @@ function TJclZipCompressArchive.GetSupportedCompressionMethods: TJclCompressionMethods; begin - Result := [cmCopy,cmDeflate,cmDeflate64,cmBZip2,cmLZMA]; + Result := [cmCopy,cmDeflate,cmDeflate64,cmBZip2,cmLZMA,cmPPMd]; end; function TJclZipCompressArchive.GetSupportedEncryptionMethods: TJclEncryptionMethods; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-19 20:50:18
|
Revision: 3484 http://jcl.svn.sourceforge.net/jcl/?rev=3484&view=rev Author: outchy Date: 2011-01-19 20:50:10 +0000 (Wed, 19 Jan 2011) Log Message: ----------- Mantis 5218: TJclSimpleXML LoadFromString very slow on large files. This revision gives about 33% performance improvement. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas trunk/jcl/source/common/JclUnicode.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-01-18 23:46:52 UTC (rev 3483) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-01-19 20:50:10 UTC (rev 3484) @@ -611,6 +611,8 @@ uses JclCharsets, JclStrings, + JclUnicode, + JclStringConversions, JclResources; const @@ -2170,12 +2172,12 @@ TReadStatus = (rsWaitingTag, rsReadingTagKind); var lPos: TReadStatus; - St: string; + St: TUCS4Array; lElem: TJclSimpleXMLElem; - Ch: Char; + Ch: UCS4; ContainsText, ContainsWhiteSpace, KeepWhiteSpace: Boolean; begin - St := ''; + SetLength(St, 0); lPos := rsWaitingTag; KeepWhiteSpace := (AParent <> nil) and (sxoKeepWhitespace in AParent.Options); ContainsText := False; @@ -2187,18 +2189,18 @@ if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.PeekChar(Ch) do + while StringStream.PeekUCS4(Ch) do begin case lPos of rsWaitingTag: //We are waiting for a tag and thus avoiding spaces begin - if Ch = '<' then + if Ch = Ord('<') then begin lPos := rsReadingTagKind; - St := Ch; + St := UCS4Array(Ch); end else - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then ContainsWhiteSpace := True else ContainsText := True; @@ -2208,8 +2210,8 @@ begin lElem := nil; case Ch of - '/': - if St = '<' then + Ord('/'): + if UCS4ArrayEquals(St, '<') then begin // "</" // We have reached an end tag. If whitespace was found while // waiting for the end tag, and the user told us to keep it @@ -2231,14 +2233,14 @@ else begin lElem := TJclSimpleXMLElemClassic.Create(Parent); - St := St + Ch; // "<name/" + UCS4ArrayConcat(St, Ch); // "<name/" lPos := rsWaitingTag; end; - NativeSpace, '>', ':': //This should be a classic tag + Ord(NativeSpace), Ord('>'), Ord(':'): //This should be a classic tag begin // "<XXX " or "<XXX:" or "<XXX> lElem := TJclSimpleXMLElemClassic.Create(Parent); - St := ''; + SetLength(St, 0); lPos := rsWaitingTag; end; else @@ -2252,27 +2254,27 @@ end else begin - if (St <> '<![CDATA') or not CharIsWhiteSpace(Ch) then - St := St + Ch; - if St = '<![CDATA[' then + if not UCS4ArrayEquals(St, '<![CDATA') or not UnicodeIsWhiteSpace(Ch) then + UCS4ArrayConcat(St, Ch); + if UCS4ArrayEquals(St, '<![CDATA[') then begin lElem := TJclSimpleXMLElemCData.Create(Parent); lPos := rsWaitingTag; - St := ''; + SetLength(St, 0); end else - if St = '<!--' then + if UCS4ArrayEquals(St, '<!--') then begin lElem := TJclSimpleXMLElemComment.Create(Parent); lPos := rsWaitingTag; - St := ''; + SetLength(St, 0); end else - if St = '<?' then + if UCS4ArrayEquals(St, '<?') then begin lElem := TJclSimpleXMLElemProcessingInstruction.Create(Parent); lPos := rsWaitingTag; - St := ''; + SetLength(St, 0); end; end; end; @@ -2683,106 +2685,108 @@ ); var lPos: TPosType; - lName, lValue, lNameSpace: string; - lPropStart: Char; - Ch: Char; + lName, lValue, lNameSpace: TUCS4Array; + sValue: string; + lPropStart: UCS4; + Ch: UCS4; begin - lValue := ''; - lNameSpace := ''; - lName := ''; - lPropStart := NativeSpace; + SetLength(lValue, 0); + SetLength(lNameSpace, 0); + SetLength(lName, 0); + lPropStart := Ord(NativeSpace); lPos := ptWaiting; // We read from a stream, thus replacing the existing properties Clear; - while StringStream.PeekChar(Ch) do + while StringStream.PeekUCS4(Ch) do begin case lPos of ptWaiting: //We are waiting for a property begin - if CharIsWhiteSpace(Ch) then - StringStream.ReadChar(Ch) + if UnicodeIsWhiteSpace(Ch) then + StringStream.ReadUCS4(Ch) else - if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then + if UnicodeIsIdentifierStart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) then begin - StringStream.ReadChar(Ch); - lName := Ch; - lNameSpace := ''; + StringStream.ReadUCS4(Ch); + lName := UCS4Array(Ch); + SetLength(lNameSpace, 0); lPos := ptReadingName; end else - if (Ch = '/') or (Ch = '>') or (Ch = '?') then + if (Ch = Ord('/')) or (Ch = Ord('>')) or (Ch = Ord('?')) then // end of properties Break else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [UCS4ToChar(Ch), StringStream.PeekPosition]); end; ptReadingName: //We are reading a property name begin - StringStream.ReadChar(Ch); - if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then + StringStream.ReadUCS4(Ch); + if UnicodeIsIdentifierPart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) then begin - lName := lName + Ch; + UCS4ArrayConcat(lName, Ch); end else - if Ch = ':' then + if Ch = Ord(':') then begin lNameSpace := lName; - lName := ''; + SetLength(lName, 0); end else - if Ch = '=' then + if Ch = Ord('=') then lPos := ptStartingContent else - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then lPos := ptSpaceBeforeEqual else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [UCS4ToChar(Ch), StringStream.PeekPosition]); end; ptStartingContent: //We are going to start a property content begin - StringStream.ReadChar(Ch); - if CharIsWhiteSpace(Ch) then + StringStream.ReadUCS4(Ch); + if UnicodeIsWhiteSpace(Ch) then // ignore white space else - if (Ch = '''') or (Ch = '"') then + if (Ch = Ord('''')) or (Ch = Ord('"')) then begin lPropStart := Ch; - lValue := ''; + SetLength(lValue, 0); lPos := ptReadingValue; end else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte_), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte_), [UCS4ToChar(Ch), StringStream.PeekPosition]); end; ptReadingValue: //We are reading a property begin - StringStream.ReadChar(Ch); + StringStream.ReadUCS4(Ch); if Ch = lPropStart then begin + sValue := UCS4ToString(lValue); if GetSimpleXML <> nil then - GetSimpleXML.DoDecodeValue(lValue); - with Add(lName, lValue) do - NameSpace := lNameSpace; + GetSimpleXML.DoDecodeValue(sValue); + with Add(UCS4ToString(lName), sValue) do + NameSpace := UCS4ToString(lNameSpace); lPos := ptWaiting; end else - lValue := lValue + Ch; + UCS4ArrayConcat(lValue, Ch); end; ptSpaceBeforeEqual: // We are reading the white space between a property name and the = sign begin - StringStream.ReadChar(Ch); - if CharIsWhiteSpace(Ch) then + StringStream.ReadUCS4(Ch); + if UnicodeIsWhiteSpace(Ch) then // more white space, stay in this state and ignore else - if Ch = '=' then + if Ch = Ord('=') then lPos := ptStartingContent else - FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementUnexpectedCharacte), [UCS4ToChar(Ch), StringStream.PeekPosition]); end; else Assert(False, RsEUnexpectedValueForLPos); @@ -2857,59 +2861,61 @@ rsWaitingClosingTag1, rsWaitingClosingTag2, rsClosingName); var lPos: TReadStatus; - St, lName, lValue, lNameSpace: string; - Ch: Char; + St, lName, lNameSpace: TUCS4Array; + sValue: string; + Ch: UCS4; begin - St := ''; - lValue := ''; - lNameSpace := ''; + SetLength(St, 0); + SetLength(lName, 0); + SetLength(lNameSpace, 0); + sValue := ''; lPos := rsWaitingOpeningTag; if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.ReadChar(Ch) do + while StringStream.ReadUCS4(Ch) do begin case lPos of rsWaitingOpeningTag: // wait beginning of tag - if Ch = '<' then + if Ch = Ord('<') then lPos := rsOpeningName // read name else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsOpeningName: - if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then - St := St + Ch + if UnicodeIsIdentifierPart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) then + UCS4ArrayConcat(St, Ch) else - if (Ch = ':') and (lNameSpace = '') then + if (Ch = Ord(':')) and (Length(lNameSpace) = 0) then begin lNameSpace := St; - st := ''; + SetLength(st, 0); end else - if CharIsWhiteSpace(Ch) and (St = '') then + if UnicodeIsWhiteSpace(Ch) and (Length(St) = 0) then // whitespace after "<" (no name) FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]) else - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then begin lName := St; - St := ''; + SetLength(St, 0); Properties.LoadFromStringStream(StringStream); lPos := rsTypeOpeningTag; end else - if Ch = '/' then // single tag + if Ch = Ord('/') then // single tag begin lName := St; lPos := rsEndSingleTag end else - if Ch = '>' then // 2 tags + if Ch = Ord('>') then // 2 tags begin lName := St; - St := ''; + SetLength(St, 0); //Load elements Items.LoadFromStringStream(StringStream, AParent); lPos := rsWaitingClosingTag1; @@ -2919,58 +2925,58 @@ FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); rsTypeOpeningTag: - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then // nothing, spaces after name or properties else - if Ch = '/' then + if Ch = Ord('/') then lPos := rsEndSingleTag // single tag else - if Ch = '>' then // 2 tags + if Ch = Ord('>') then // 2 tags begin //Load elements Items.LoadFromStringStream(StringStream, AParent); lPos := rsWaitingClosingTag1; end else - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsEndSingleTag: - if Ch = '>' then + if Ch = Ord('>') then Break else - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsWaitingClosingTag1: - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then // nothing, spaces before closing tag else - if Ch = '<' then + if Ch = Ord('<') then lPos := rsWaitingClosingTag2 else - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsWaitingClosingTag2: - if Ch = '/' then + if Ch = Ord('/') then lPos := rsClosingName else - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsClosingName: - if CharIsWhiteSpace(Ch) or (Ch = '>') then + if UnicodeIsWhiteSpace(Ch) or (Ch = Ord('>')) then begin - if lNameSpace <> '' then + if Length(lNameSpace) > 0 then begin - if not StrSame(lNameSpace + ':' + lName, St) then - FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St, StringStream.PeekPosition]); + if not StrSame(UCS4ToString(lNameSpace) + ':' + UCS4ToString(lName), UCS4ToString(St)) then + FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [UCS4ToString(lName), UCS4ToString(St), StringStream.PeekPosition]); end else - if not StrSame(lName, St) then - FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [lName, St, StringStream.PeekPosition]); + if not UCS4ArrayEquals(lName, St) then + FmtError(LoadResString(@RsEInvalidXMLElementErroneousEndOfTagE), [UCS4ToString(lName), UCS4ToString(St), StringStream.PeekPosition]); //Set value if only one sub element //This might reduce speed, but this is for compatibility issues if (Items.Count = 1) and (Items[0] is TJclSimpleXMLElemText) then begin - lValue := Items[0].Value; + sValue := Items[0].Value; Items.Clear; // free some memory FreeAndNil(FItems); @@ -2978,24 +2984,24 @@ Break; end else - if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') or (Ch = ':') then - St := St + Ch + if UnicodeIsIdentifierPart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) or (Ch = Ord(':')) then + UCS4ArrayConcat(St, Ch) else // other invalid characters FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); end; end; - Name := lName; + Name := UCS4ToString(lName); if GetSimpleXML <> nil then - GetSimpleXML.DoDecodeValue(lValue); - Value := lValue; - NameSpace := lNameSpace; + GetSimpleXML.DoDecodeValue(sValue); + Value := sValue; + NameSpace := UCS4ToString(lNameSpace); if AParent <> nil then begin - AParent.DoTagParsed(lName); - AParent.DoValueParsed(lName, lValue); + AParent.DoTagParsed(Name); + AParent.DoValueParsed(Name, sValue); end; end; @@ -3072,41 +3078,42 @@ CS_STOP_COMMENT = ' -->'; var lPos: Integer; - St: string; - Ch: Char; + St: TUCS4Array; + Ch: UCS4; lOk: Boolean; begin - St := ''; + SetLength(St, 0); lPos := 1; lOk := False; if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.ReadChar(Ch) do + while StringStream.ReadUCS4(Ch) do begin case lPos of 1..4: //<!-- - if Ch = CS_START_COMMENT[lPos] then + if Ch = Ord(CS_START_COMMENT[lPos]) then Inc(lPos) else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidCommentExpectedsButFounds), [CS_START_COMMENT[lPos], Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidCommentExpectedsButFounds), [CS_START_COMMENT[lPos], UCS4ToChar(Ch), StringStream.PeekPosition]); 5: - if Ch = CS_STOP_COMMENT[lPos] then + if Ch = Ord(CS_STOP_COMMENT[lPos]) then Inc(lPos) else - St := St + Ch; + UCS4ArrayConcat(St, Ch); 6: //- - if Ch = CS_STOP_COMMENT[lPos] then + if Ch = Ord(CS_STOP_COMMENT[lPos]) then Inc(lPos) else begin - St := St + '-' + Ch; + UCS4ArrayConcat(St, Ord('-')); + UCS4ArrayConcat(St, Ch); Dec(lPos); end; 7: //> - if Ch = CS_STOP_COMMENT[lPos] then + if Ch = Ord(CS_STOP_COMMENT[lPos]) then begin lOk := True; Break; //End if @@ -3119,11 +3126,11 @@ if not lOk then FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); - Value := St; + Value := UCS4ToString(St); Name := ''; if AParent <> nil then - AParent.DoValueParsed('', St); + AParent.DoValueParsed('', Value); end; procedure TJclSimpleXMLElemComment.SaveToStringStream(StringStream: TJclStringStream; const Level: string; AParent: TJclSimpleXML); @@ -3149,52 +3156,55 @@ CS_STOP_CDATA = ' ]]>'; var lPos: Integer; - St: string; - Ch: Char; + St: TUCS4Array; + Ch: UCS4; lOk: Boolean; begin - St := ''; + SetLength(St, 0); lPos := 1; lOk := False; if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.ReadChar(Ch) do + while StringStream.ReadUCS4(Ch) do begin case lPos of 1..9: //<![CDATA[ - if Ch = CS_START_CDATA[lPos] then + if Ch = Ord(CS_START_CDATA[lPos]) then Inc(lPos) else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidCDATAExpectedsButFounds), [CS_START_CDATA[lPos], Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidCDATAExpectedsButFounds), [CS_START_CDATA[lPos], UCS4ToChar(Ch), StringStream.PeekPosition]); 10: // ] - if Ch = CS_STOP_CDATA[lPos] then + if Ch = Ord(CS_STOP_CDATA[lPos]) then Inc(lPos) else - St := St + Ch; + UCS4ArrayConcat(St, Ch); 11: // ] - if Ch = CS_STOP_CDATA[lPos] then + if Ch = Ord(CS_STOP_CDATA[lPos]) then Inc(lPos) else begin - St := St + ']' + Ch; + UCS4ArrayConcat(St, Ord(']')); + UCS4ArrayConcat(St, Ch); Dec(lPos); end; 12: //> - if Ch = CS_STOP_CDATA[lPos] then + if Ch = Ord(CS_STOP_CDATA[lPos]) then begin lOk := True; Break; //End if end else // ]]] - if Ch = CS_STOP_CDATA[lPos-1] then - St := St + ']' + if Ch = Ord(CS_STOP_CDATA[lPos-1]) then + UCS4ArrayConcat(St, Ord(']')) else begin - St := St + ']]' + Ch; + UCS4ArrayConcat(St, Ord(']')); + UCS4ArrayConcat(St, Ord(']')); + UCS4ArrayConcat(St, Ch); Dec(lPos, 2); end; end; @@ -3203,11 +3213,11 @@ if not lOk then FmtError(LoadResString(@RsEInvalidCDATAUnexpectedEndOfData), [StringStream.PeekPosition]); - Value := St; + Value := UCS4ToString(St); Name := ''; if AParent <> nil then - AParent.DoValueParsed('', St); + AParent.DoValueParsed('', Value); end; procedure TJclSimpleXMLElemCData.SaveToStringStream(StringStream: TJclStringStream; const Level: string; AParent: TJclSimpleXML); @@ -3294,56 +3304,56 @@ var lPos: TReadStatus; lOk: Boolean; - St, lName, lNameSpace: string; - Ch: Char; + St, lName, lNameSpace: TUCS4Array; + Ch: UCS4; begin - St := ''; - lNameSpace := ''; + SetLength(St, 0); + SetLength(lNameSpace, 0); lPos := rsWaitingOpeningTag; lOk := False; if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.ReadChar(Ch) do + while StringStream.ReadUCS4(Ch) do begin case lPos of rsWaitingOpeningTag: // wait beginning of tag - if Ch = '<' then + if Ch = Ord('<') then lPos := rsOpeningTag else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidXMLElementExpectedBeginningO), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsOpeningTag: - if Ch = '?' then + if Ch = Ord('?') then lPos := rsOpeningName // read name else FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); rsOpeningName: - if CharIsValidIdentifierLetter(Ch) or (Ch = '-') or (Ch = '.') then - St := St + Ch + if UnicodeIsIdentifierPart(Ch) or (Ch = Ord('-')) or (Ch = Ord('.')) then + UCS4ArrayConcat(St, Ch) else - if (Ch = ':') and (lNameSpace = '') then + if (Ch = Ord(':')) and (Length(lNameSpace) = 0) then begin lNameSpace := St; - St := ''; + SetLength(St, 0); end else - if CharIsWhiteSpace(Ch) and (St = '') then + if UnicodeIsWhiteSpace(Ch) and (Length(St) = 0) then // whitespace after "<" (no name) FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]) else - if CharIsWhiteSpace(Ch) then + if UnicodeIsWhiteSpace(Ch) then begin lName := St; - St := ''; + SetLength(St, 0); Properties.LoadFromStringStream(StringStream); lPos := rsEndTag1; end else - if Ch = '?' then + if Ch = Ord('?') then begin lName := St; lPos := rsEndTag2; @@ -3353,28 +3363,28 @@ FmtError(LoadResString(@RsEInvalidXMLElementMalformedTagFoundn), [StringStream.PeekPosition]); rsEndTag1: - if Ch = '?' then + if Ch = Ord('?') then lPos := rsEndTag2 else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); rsEndTag2: - if Ch = '>' then + if Ch = Ord('>') then begin lOk := True; Break; end else - FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [Ch, StringStream.PeekPosition]); + FmtError(LoadResString(@RsEInvalidXMLElementExpectedEndOfTagBu), [UCS4ToChar(Ch), StringStream.PeekPosition]); end; end; if not lOk then FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); - Name := lName; - NameSpace := lNameSpace; + Name := UCS4ToString(lName); + NameSpace := UCS4ToString(lNameSpace); end; procedure TJclSimpleXMLElemProcessingInstruction.SaveToStringStream( @@ -3503,45 +3513,45 @@ var lPos: Integer; lOk: Boolean; - Ch, lChar: Char; - St: string; + Ch, lChar: UCS4; + St: TUCS4Array; begin lPos := 1; lOk := False; - lChar := '>'; - St := ''; + lChar := Ord('>'); + SetLength(St, 0); if AParent <> nil then AParent.DoLoadProgress(StringStream.Stream.Position, StringStream.Stream.Size); - while StringStream.ReadChar(Ch) do + while StringStream.ReadUCS4(Ch) do begin case lPos of 1..9: //<!DOCTYPE - if Ch = CS_START_DOCTYPE[lPos] then + if Ch = Ord(CS_START_DOCTYPE[lPos]) then Inc(lPos) else - if not CharIsWhiteSpace(Ch) then - FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_DOCTYPE[lPos], Ch, StringStream.PeekPosition]); + if not UnicodeIsWhiteSpace(Ch) then + FmtError(LoadResString(@RsEInvalidHeaderExpectedsButFounds), [CS_START_DOCTYPE[lPos], UCS4ToChar(Ch), StringStream.PeekPosition]); 10: //]> or > if lChar = Ch then begin - if lChar = '>' then + if lChar = Ord('>') then begin lOk := True; Break; //This is the end end else begin - St := St + Ch; - lChar := '>'; + UCS4ArrayConcat(St, Ch); + lChar := Ord('>'); end; end else begin - St := St + Ch; - if Ch = '[' then - lChar := ']'; + UCS4ArrayConcat(St, Ch); + if Ch = Ord('[') then + lChar := Ord(']'); end; end; end; @@ -3550,10 +3560,10 @@ FmtError(LoadResString(@RsEInvalidCommentUnexpectedEndOfData), [StringStream.PeekPosition]); Name := ''; - Value := StrTrimCharsLeft(St, CharIsWhiteSpace); + Value := StrTrimCharsLeft(UCS4ToString(St), CharIsWhiteSpace); if AParent <> nil then - AParent.DoValueParsed('', St); + AParent.DoValueParsed('', Value); end; procedure TJclSimpleXMLElemDocType.SaveToStringStream(StringStream: TJclStringStream; Modified: trunk/jcl/source/common/JclUnicode.pas =================================================================== --- trunk/jcl/source/common/JclUnicode.pas 2011-01-18 23:46:52 UTC (rev 3483) +++ trunk/jcl/source/common/JclUnicode.pas 2011-01-19 20:50:10 UTC (rev 3484) @@ -1356,6 +1356,16 @@ procedure LoadNumberData; procedure LoadCompositionData; +// functions around TUCS4Array +function UCS4Array(Ch: UCS4): TUCS4Array; +function UCS4ArrayConcat(Left, Right: UCS4): TUCS4Array; overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +procedure UCS4ArrayConcat(var Left: TUCS4Array; Right: UCS4); overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +procedure UCS4ArrayConcat(var Left: TUCS4Array; const Right: TUCS4Array); overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +function UCS4ArrayEquals(const Left: TUCS4Array; const Right: TUCS4Array): Boolean; overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +function UCS4ArrayEquals(const Left: TUCS4Array; Right: UCS4): Boolean; overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +function UCS4ArrayEquals(const Left: TUCS4Array; const Right: AnsiString): Boolean; overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} +function UCS4ArrayEquals(const Left: TUCS4Array; Right: AnsiChar): Boolean; overload; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -7186,6 +7196,76 @@ Result:= WideStringToStringEx(StringToWideStringEx(S, CP1), CP2); end; +function UCS4Array(Ch: UCS4): TUCS4Array; +begin + SetLength(Result, 1); + Result[0] := Ch; +end; + +function UCS4ArrayConcat(Left, Right: UCS4): TUCS4Array; +begin + SetLength(Result, 2); + Result[0] := Left; + Result[1] := Right; +end; + +procedure UCS4ArrayConcat(var Left: TUCS4Array; Right: UCS4); +var + I: SizeInt; +begin + I := Length(Left); + SetLength(Left, I + 1); + Left[I] := Right; +end; + +procedure UCS4ArrayConcat(var Left: TUCS4Array; const Right: TUCS4Array); +var + I, J: SizeInt; +begin + I := Length(Left); + J := Length(Right); + SetLength(Left, I + J); + Move(Right[0], Left[I], J * SizeOf(Right[0])); +end; + +function UCS4ArrayEquals(const Left: TUCS4Array; const Right: TUCS4Array): Boolean; +var + I: SizeInt; +begin + I := Length(Left); + Result := I = Length(Right); + while Result do + begin + Dec(I); + Result := (I >= 0) and (Left[I] = Right[I]); + end; + Result := I < 0; +end; + +function UCS4ArrayEquals(const Left: TUCS4Array; Right: UCS4): Boolean; +begin + Result := (Length(Left) = 1) and (Left[0] = Right); +end; + +function UCS4ArrayEquals(const Left: TUCS4Array; const Right: AnsiString): Boolean; +var + I: SizeInt; +begin + I := Length(Left); + Result := I = Length(Right); + while Result do + begin + Dec(I); + Result := (I >= 0) and (Left[I] = Ord(Right[I + 1])); + end; + Result := I < 0; +end; + +function UCS4ArrayEquals(const Left: TUCS4Array; Right: AnsiChar): Boolean; +begin + Result := (Length(Left) = 1) and (Left[0] = Ord(Right)); +end; + procedure PrepareUnicodeData; // Prepares structures which are globally needed. begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-18 23:47:00
|
Revision: 3483 http://jcl.svn.sourceforge.net/jcl/?rev=3483&view=rev Author: outchy Date: 2011-01-18 23:46:52 +0000 (Tue, 18 Jan 2011) Log Message: ----------- new cache feature for TJclStringStream: JclStringConversions.pas now implements buffer-based conversions beside character based conversions. Modified Paths: -------------- trunk/jcl/source/common/JclStreams.pas trunk/jcl/source/common/JclStringConversions.pas Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2011-01-18 17:36:54 UTC (rev 3482) +++ trunk/jcl/source/common/JclStreams.pas 2011-01-18 23:46:52 UTC (rev 3483) @@ -450,10 +450,27 @@ FStream: TStream; FOwnStream: Boolean; FBOM: array of Byte; - FPosition: Int64; // current read/write position in FStream - FPeekPosition: Int64; // current peek position in FStream + FBufferSize: SizeInt; + FStrPosition: Int64; // current position in characters + FStrBuffer: TUCS4Array; // buffer for read/write operations + FStrBufferPosition: Int64; // position of the first character of the read/write buffer + FStrBufferCurrentSize: Int64; // numbers of characters available in str buffer + FStrBufferModifiedSize: Int64; // numbers of characters modified in str buffer + FStrBufferStart: Int64; // position of the first byte of the read/write buffer in stream + FStrBufferNext: Int64; // position of the next character following the read/write buffer in stream + FStrPeekPosition: Int64; // current peek position in characters + FStrPeekBuffer: TUCS4Array; // buffer for peek operations + FStrPeekBufferPosition: Int64; // index of the first character of the peek buffer + FStrPeekBufferCurrentSize: SizeInt; // numbers of characters available in peek buffer + FStrPeekBufferStart: Int64; // position of the first byte of the peek buffer in stream + FStrPeekBufferNext: Int64; // position of the next character following the peek buffer in stream + function LoadBuffer: Boolean; + function LoadPeekBuffer: Boolean; function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; virtual; abstract; + function InternalGetNextBuffer(S: TStream; var Buffer: TUCS4Array; Start, Count: Longint): Longint; virtual; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; virtual; abstract; + function InternalSetNextBuffer(S: TStream; const Buffer: TUCS4Array; Start, Count: Longint): Longint; virtual; + procedure InvalidateBuffers; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); virtual; destructor Destroy; override; @@ -470,17 +487,21 @@ function WriteWideString(const Buffer: WideString; Start, Count: Longint): Longint; function PeekChar(out Buffer: Char): Boolean; function PeekAnsiChar(out Buffer: AnsiChar): Boolean; + function PeekUCS4(out Buffer: UCS4): Boolean; function PeekWideChar(out Buffer: WideChar): Boolean; function ReadChar(out Buffer: Char): Boolean; function ReadAnsiChar(out Buffer: AnsiChar): Boolean; + function ReadUCS4(out Buffer: UCS4): Boolean; function ReadWideChar(out Buffer: WideChar): Boolean; function WriteChar(Value: Char): Boolean; function WriteAnsiChar(Value: AnsiChar): Boolean; + function WriteUCS4(Value: UCS4): Boolean; function WriteWideChar(Value: WideChar): Boolean; function SkipBOM: LongInt; virtual; function WriteBOM: Longint; virtual; - property PeekPosition: Int64 read FPeekPosition; - property Position: Int64 read FPosition; + property BufferSize: SizeInt read FBufferSize write FBufferSize; + property PeekPosition: Int64 read FStrPeekPosition; + property Position: Int64 read FStrPosition; property Stream: TStream read FStream; property OwnStream: Boolean read FOwnStream; end; @@ -492,7 +513,9 @@ FCodePage: Word; protected function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; override; + function InternalGetNextBuffer(S: TStream; var Buffer: TUCS4Array; Start, Count: Longint): Longint; override; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; override; + function InternalSetNextBuffer(S: TStream; const Buffer: TUCS4Array; Start, Count: Longint): Longint; override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); override; property CodePage: Word read FCodePage write FCodePage; @@ -501,7 +524,9 @@ TJclUTF8Stream = class(TJclStringStream) protected function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; override; + function InternalGetNextBuffer(S: TStream; var Buffer: TUCS4Array; Start, Count: Longint): Longint; override; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; override; + function InternalSetNextBuffer(S: TStream; const Buffer: TUCS4Array; Start, Count: Longint): Longint; override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); override; end; @@ -509,7 +534,9 @@ TJclUTF16Stream = class(TJclStringStream) protected function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; override; + function InternalGetNextBuffer(S: TStream; var Buffer: TUCS4Array; Start, Count: Longint): Longint; override; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; override; + function InternalSetNextBuffer(S: TStream; const Buffer: TUCS4Array; Start, Count: Longint): Longint; override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); override; end; @@ -522,7 +549,9 @@ FEncoding: TJclStringEncoding; protected function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; override; + function InternalGetNextBuffer(S: TStream; var Buffer: TUCS4Array; Start, Count: Longint): Longint; override; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; override; + function InternalSetNextBuffer(S: TStream; const Buffer: TUCS4Array; Start, Count: Longint): Longint; override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); override; function SkipBOM: LongInt; override; @@ -2310,10 +2339,12 @@ inherited Create; FStream := AStream; FOwnStream := AOwnsStream; + FBufferSize := StreamDefaultBufferSize; end; destructor TJclStringStream.Destroy; begin + Flush; if FOwnStream then FStream.Free; inherited; @@ -2321,40 +2352,175 @@ procedure TJclStringStream.Flush; begin - // to be implemented when a character buffer is available + if FStrBufferModifiedSize > 0 then + begin + FStream.Position := FStrBufferStart; + InternalSetNextBuffer(FStream, FStrBuffer, 0, FStrBufferModifiedSize); + FStrBufferNext := FStream.Seek(0, soCurrent); + FStrBufferModifiedSize := 0; + end; end; +function TJclStringStream.InternalGetNextBuffer(S: TStream; + var Buffer: TUCS4Array; Start, Count: Integer): Longint; +var + Ch: UCS4; +begin + // override to optimize + Result := 0; + while Count > 0 do + begin + if InternalGetNextChar(S, Ch) then + begin + Buffer[Start] := Ch; + Inc(Start); + Inc(Result); + end + else + Break; + Dec(Count); + end; +end; + +function TJclStringStream.InternalSetNextBuffer(S: TStream; + const Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + // override to optimize + Result := 0; + while Count > 0 do + begin + if InternalSetNextChar(S, Buffer[Start]) then + begin + Inc(Start); + Inc(Result); + end + else + Break; + Dec(Count); + end; +end; + +procedure TJclStringStream.InvalidateBuffers; +begin + FStrBufferStart := FStream.Seek(0, soCurrent); + FStrBufferNext := FStrBufferStart; + FStrBufferPosition := 0; + FStrBufferCurrentSize := 0; + FStrBufferModifiedSize := 0; + FStrPeekBufferStart := FStrBufferStart; + FStrPeekBufferNext := FStrBufferNext; + FStrPeekPosition := 0; + FStrPeekBufferCurrentSize := 0; +end; + +function TJclStringStream.LoadBuffer: Boolean; +begin + Flush; + // first test if the peek buffer contains the value + if (FStrBufferNext >= FStrPeekBufferStart) and (FStrBufferNext < FStrPeekBufferNext) then + begin + // the requested buffer is already loaded in the peek buffer + FStrBufferStart := FStrPeekBufferStart; + FStrBufferNext := FStrPeekBufferNext; + if Length(FStrBuffer) <> Length(FStrPeekBuffer) then + SetLength(FStrBuffer, Length(FStrPeekBuffer)); + FStrBufferPosition := FStrPeekBufferPosition; + FStrBufferCurrentSize := FStrPeekBufferCurrentSize; + Move(FStrPeekBuffer[0], FStrBuffer[0], FStrBufferCurrentSize * SizeOf(FStrBuffer[0])); + end + else + begin + // load a new buffer + if Length(FStrBuffer) <> FBufferSize then + SetLength(FStrBuffer, FBufferSize); + Inc(FStrBufferPosition, FStrBufferCurrentSize); + FStrBufferStart := FStrBufferNext; + FStream.Seek(FStrBufferStart, soBeginning); + FStrBufferCurrentSize := InternalGetNextBuffer(FStream, FStrBuffer, 0, Length(FStrBuffer)); + FStrBufferNext := FStream.Seek(0, soCurrent); + // reset the peek buffer + FStrPeekBufferPosition := FStrBufferPosition + FStrBufferCurrentSize; + FStrPeekBufferCurrentSize := 0; + FStrPeekBufferNext := FStrBufferNext; + FStrPeekBufferStart := FStrBufferNext; + end; + Result := (FStrPosition >= FStrBufferPosition) and (FStrPosition < (FStrBufferPosition + FStrBufferCurrentSize)); +end; + +function TJclStringStream.LoadPeekBuffer: Boolean; +begin + if Length(FStrPeekBuffer) <> FBufferSize then + SetLength(FStrPeekBuffer, FBufferSize); + if FStrPeekBufferPosition > FStrPeekPosition then + begin + // the peek position is rolling back, load the buffer after the read buffer + FStrPeekBufferPosition := FStrBufferPosition; + FStrPeekBufferCurrentSize := FStrBufferCurrentSize; + FStrPeekBufferStart := FStrBufferStart; + FStrPeekBufferNext := FStrBufferNext; + end; + FStrPeekBufferStart := FStrPeekBufferNext; + Inc(FStrPeekBufferPosition, FStrPeekBufferCurrentSize); + FStream.Seek(FStrPeekBufferStart, soBeginning); + FStrPeekBufferCurrentSize := InternalGetNextBuffer(FStream, FStrPeekBuffer, 0, Length(FStrPeekBuffer)); + FStrPeekBufferNext := FStream.Seek(0, soCurrent); + Result := (FStrPeekPosition >= FStrPeekBufferPosition) and (FStrPeekPosition < (FStrPeekBufferPosition + FStrPeekBufferCurrentSize)); +end; + function TJclStringStream.PeekAnsiChar(out Buffer: AnsiChar): Boolean; var Ch: UCS4; begin - FStream.Seek(FPeekPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := PeekUCS4(Ch); if Result then Buffer := UCS4ToAnsiChar(Ch); - FPeekPosition := FStream.Seek(0, soCurrent); end; function TJclStringStream.PeekChar(out Buffer: Char): Boolean; var Ch: UCS4; begin - FStream.Seek(FPeekPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := PeekUCS4(Ch); if Result then Buffer := UCS4ToChar(Ch); - FPeekPosition := FStream.Seek(0, soCurrent); end; +function TJclStringStream.PeekUCS4(out Buffer: UCS4): Boolean; +begin + if (FStrPeekPosition >= FStrPeekBufferPosition) and (FStrPeekPosition < (FStrPeekBufferPosition + FStrPeekBufferCurrentSize)) then + begin + // read from the peek buffer + Result := True; + Buffer := FStrPeekBuffer[FStrPeekPosition - FStrPeekBufferPosition]; + Inc(FStrPeekPosition); + end + else + if (FStrPeekPosition >= FStrBufferPosition) and (FStrPeekPosition < (FStrBufferPosition + FStrBufferCurrentSize)) then + begin + // read from the read/write buffer + Result := True; + Buffer := FStrBuffer[FStrPeekPosition - FStrBufferPosition]; + Inc(FStrPeekPosition); + end + else + begin + // load a new peek buffer + Result := LoadPeekBuffer; + if Result then + begin + Buffer := FStrPeekBuffer[FStrPeekPosition - FStrPeekBufferPosition]; + Inc(FStrPeekPosition); + end; + end; +end; + function TJclStringStream.PeekWideChar(out Buffer: WideChar): Boolean; var Ch: UCS4; begin - FStream.Seek(FPeekPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := PeekUCS4(Ch); if Result then Buffer := UCS4ToWideChar(Ch); - FPeekPosition := FStream.Seek(0, soCurrent); end; function TJclStringStream.ReadString(var Buffer: string; Start, Count: Longint): Longint; @@ -2364,10 +2530,9 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count - 1 do // avoid overflow on surrogate pairs for WideString begin - if InternalGetNextChar(FStream, Ch) then + if ReadUCS4(Ch) then begin StrPos := Index; if StringSetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2379,8 +2544,6 @@ Break; // end of stream (read) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.ReadString(BufferSize: Longint): string; @@ -2401,12 +2564,9 @@ var Ch: UCS4; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := ReadUCS4(Ch); if Result then Buffer := UCS4ToAnsiChar(Ch); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.ReadAnsiString(var Buffer: AnsiString; Start, Count: Longint): Longint; @@ -2416,10 +2576,9 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin - if InternalGetNextChar(FStream, Ch) then + if ReadUCS4(Ch) then begin StrPos := Index; if AnsiSetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2431,8 +2590,6 @@ Break; // end of stream (read) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.ReadAnsiString(BufferSize: Longint): AnsiString; @@ -2453,24 +2610,40 @@ var Ch: UCS4; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := ReadUCS4(Ch); if Result then Buffer := UCS4ToChar(Ch); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; +function TJclStringStream.ReadUCS4(out Buffer: UCS4): Boolean; +begin + if (FStrPosition >= FStrBufferPosition) and (FStrPosition < (FStrBufferPosition + FStrBufferCurrentSize)) then + begin + // load from buffer + Result := True; + Buffer := FStrBuffer[FStrPosition - FStrBufferPosition]; + Inc(FStrPosition); + end + else + begin + // load a new buffer + Result := LoadBuffer; + if Result then + begin + Buffer := FStrBuffer[FStrPosition - FStrBufferPosition]; + Inc(FStrPosition); + end; + end; + FStrPeekPosition := FStrPosition; +end; + function TJclStringStream.ReadWideChar(out Buffer: WideChar): Boolean; var Ch: UCS4; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalGetNextChar(FStream, Ch); + Result := ReadUCS4(Ch); if Result then Buffer := UCS4ToWideChar(Ch); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.ReadWideString(var Buffer: WideString; Start, Count: Longint): Longint; @@ -2480,10 +2653,9 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count - 1 do // avoid overflow on surrogate pairs begin - if InternalGetNextChar(FStream, Ch) then + if ReadUCS4(Ch) then begin StrPos := Index; if UTF16SetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2495,8 +2667,6 @@ Break; // end of stream (read) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.ReadWideString(BufferSize: Longint): WideString; @@ -2518,20 +2688,28 @@ case Origin of soBeginning: if Offset = 0 then - FPosition := 0 + begin + Flush; + FStrPosition := 0; + FStrBufferPosition := 0; + FStrBufferCurrentSize := 0; + FStrBufferStart := 0; + FStrBufferNext := 0; + FStrPeekBufferPosition := 0; + FStrPeekBufferCurrentSize := 0; + FStrPeekBufferStart := 0; + FStrPeekBufferNext := 0; + end else raise EJclStreamError.CreateRes(@RsStreamsSeekError); soCurrent: if Offset <> 0 then raise EJclStreamError.CreateRes(@RsStreamsSeekError); soEnd: - if Offset = 0 then - FPosition := FStream.Seek(0, soEnd) - else - raise EJclStreamError.CreateRes(@RsStreamsSeekError); + raise EJclStreamError.CreateRes(@RsStreamsSeekError); end; - Result := FPosition; - FPeekPosition := FPosition; + Result := FStrPosition; + FStrPeekPosition := FStrPosition; end; function TJclStringStream.SkipBOM: Longint; @@ -2542,43 +2720,33 @@ begin if Length(FBOM) > 0 then begin + Pos := FStream.Seek(0, soCurrent); SetLength(BOM, Length(FBOM)); - Pos := FPosition; - FStream.Seek(FPosition, soBeginning); Result := FStream.Read(BOM[0], Length(BOM) * SizeOf(BOM[0])); if Result = Length(FBOM) * SizeOf(FBOM[0]) then for I := Low(FBOM) to High(FBOM) do if BOM[I - Low(FBOM)] <> FBOM[I] then Result := 0; - if Result = Length(FBOM) * SizeOf(FBOM[0]) then - FPosition := FStream.Seek(0, soCurrent) - else - FPosition := Pos; + if Result <> Length(FBOM) * SizeOf(FBOM[0]) then + FStream.Seek(Pos, soBeginning); end else Result := 0; - FPeekPosition := FPosition; + InvalidateBuffers; end; function TJclStringStream.WriteBOM: Longint; begin if Length(FBOM) > 0 then - begin - FStream.Seek(FPosition, soBeginning); - Result := FStream.Write(FBOM[0], Length(FBOM) * SizeOf(FBOM[0])); - FPosition := FStream.Seek(0, soCurrent); - end + Result := FStream.Write(FBOM[0], Length(FBOM) * SizeOf(FBOM[0])) else Result := 0; - FPeekPosition := FPosition; + InvalidateBuffers; end; function TJclStringStream.WriteChar(Value: Char): Boolean; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalSetNextChar(FStream, CharToUCS4(Value)); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; + Result := WriteUCS4(CharToUCS4(Value)); end; function TJclStringStream.WriteString(const Buffer: string; Start, Count: Longint): Longint; @@ -2588,27 +2756,21 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := StringGetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then + if (StrPos > 0) and WriteUCS4(Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; function TJclStringStream.WriteAnsiChar(Value: AnsiChar): Boolean; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalSetNextChar(FStream, AnsiCharToUCS4(Value)); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; + Result := WriteUCS4(AnsiCharToUCS4(Value)); end; function TJclStringStream.WriteAnsiString(const Buffer: AnsiString; Start, Count: Longint): Longint; @@ -2618,27 +2780,43 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := AnsiGetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then + if (StrPos > 0) and WriteUCS4(Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; +function TJclStringStream.WriteUCS4(Value: UCS4): Boolean; +var + BufferPos: Int64; +begin + if FStrPosition >= (FStrBufferPosition + FBufferSize) then + // load the next buffer first + LoadBuffer; + // write to current buffer + BufferPos := FStrPosition - FStrBufferPosition; + Result := True; + if Length(FStrBuffer) <> FBufferSize then + SetLength(FStrBuffer, FBufferSize); + FStrBuffer[BufferPos] := Value; + Inc(FStrPosition); + Inc(BufferPos); + if FStrBufferModifiedSize < BufferPos then + FStrBufferModifiedSize := BufferPos; + if FStrBufferCurrentSize < BufferPos then + FStrBufferCurrentSize := BufferPos; + FStrPeekPosition := FStrPosition; +end; + function TJclStringStream.WriteWideChar(Value: WideChar): Boolean; begin - FStream.Seek(FPosition, soBeginning); - Result := InternalSetNextChar(FStream, WideCharToUCS4(Value)); - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; + Result := WriteUCS4(WideCharToUCS4(Value)); end; function TJclStringStream.WriteWideString(const Buffer: WideString; Start, Count: Longint): Longint; @@ -2648,19 +2826,16 @@ Ch: UCS4; begin Index := Start; - FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := UTF16GetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then + if (StrPos > 0) and WriteUCS4(Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; - FPosition := FStream.Seek(0, soCurrent); - FPeekPosition := FPosition; end; //=== { TJclAnsiStream } ====================================================== @@ -2672,6 +2847,15 @@ FCodePage := CP_ACP; end; +function TJclAnsiStream.InternalGetNextBuffer(S: TStream; + var Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + if FCodePage = CP_ACP then + Result := AnsiGetNextBufferFromStream(S, Buffer, Start, Count) + else + Result := AnsiGetNextBufferFromStream(S, FCodePage, Buffer, Start, Count); +end; + function TJclAnsiStream.InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; begin if FCodePage = CP_ACP then @@ -2680,6 +2864,15 @@ Result := AnsiGetNextCharFromStream(S, FCodePage, Ch); end; +function TJclAnsiStream.InternalSetNextBuffer(S: TStream; + const Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + if FCodePage = CP_ACP then + Result := AnsiSetNextBufferToStream(S, Buffer, Start, Count) + else + Result := AnsiSetNextBufferToStream(S, FCodePage, Buffer, Start, Count); +end; + function TJclAnsiStream.InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; begin if FCodePage = CP_ACP then @@ -2700,11 +2893,23 @@ FBOM[I - Low(BOM_UTF8)] := BOM_UTF8[I]; end; +function TJclUTF8Stream.InternalGetNextBuffer(S: TStream; + var Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + Result := UTF8GetNextBufferFromStream(S, Buffer, Start, Count); +end; + function TJclUTF8Stream.InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; begin Result := UTF8GetNextCharFromStream(S, Ch); end; +function TJclUTF8Stream.InternalSetNextBuffer(S: TStream; + const Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + Result := UTF8SetNextBufferToStream(S, Buffer, Start, Count); +end; + function TJclUTF8Stream.InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; begin Result := UTF8SetNextCharToStream(S, Ch); @@ -2722,11 +2927,23 @@ FBOM[I - Low(BOM_UTF16_LSB)] := BOM_UTF16_LSB[I]; end; +function TJclUTF16Stream.InternalGetNextBuffer(S: TStream; + var Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + Result := UTF16GetNextBufferFromStream(S, Buffer, Start, Count); +end; + function TJclUTF16Stream.InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; begin Result := UTF16GetNextCharFromStream(S, Ch); end; +function TJclUTF16Stream.InternalSetNextBuffer(S: TStream; + const Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + Result := UTF16SetNextBufferToStream(S, Buffer, Start, Count); +end; + function TJclUTF16Stream.InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; begin Result := UTF16SetNextCharToStream(S, Ch); @@ -2736,6 +2953,7 @@ constructor TJclAutoStream.Create(AStream: TStream; AOwnsStream: Boolean); var + ResetPos: Boolean; Pos: Int64; I, MaxLength, ReadLength: Integer; BOM: array of Byte; @@ -2745,7 +2963,8 @@ if MaxLength < Length(BOM_UTF16_LSB) then MaxLength := Length(BOM_UTF16_LSB); - Pos := FPosition; + ResetPos := False; + Pos := FStream.Seek(0, soCurrent); SetLength(BOM, MaxLength); ReadLength := FStream.Read(BOM[0], Length(BOM) * SizeOf(BOM[0])) div SizeOf(BOM[0]); @@ -2761,6 +2980,7 @@ if BOM[I - Low(BOM_UTF8)] <> BOM_UTF8[I] then begin FEncoding := seAuto; + ResetPos := True; Break; end; end; @@ -2774,6 +2994,7 @@ if BOM[I - Low(BOM_UTF8)] <> BOM_UTF16_LSB[I] then begin FEncoding := seAuto; + ResetPos := True; Break; end; end; @@ -2785,7 +3006,6 @@ SetLength(FBOM, Length(BOM_UTF8)); for I := Low(BOM_UTF8) to High(BOM_UTF8) do FBOM[I - Low(BOM_UTF8)] := BOM_UTF8[I]; - FPosition := Pos + Length(BOM_UTF8) * SizeOf(BOM_UTF8[0]); end; seUTF16: begin @@ -2793,7 +3013,6 @@ SetLength(FBOM, Length(BOM_UTF16_LSB)); for I := Low(BOM_UTF16_LSB) to High(BOM_UTF16_LSB) do FBOM[I - Low(BOM_UTF16_LSB)] := BOM_UTF16_LSB[I]; - FPosition := Pos + Length(BOM_UTF16_LSB) * SizeOf(BOM_UTF16_LSB[0]); end; seAuto, seAnsi: @@ -2802,12 +3021,28 @@ FCodePage := CP_ACP; FEncoding := seAnsi; SetLength(FBOM, 0); - FPosition := Pos; end; end; - FPeekPosition := FPosition; + if ResetPos then + FStream.Seek(Pos, soBeginning); + InvalidateBuffers; end; +function TJclAutoStream.InternalGetNextBuffer(S: TStream; + var Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + case FCodePage of + CP_UTF8: + Result := UTF8GetNextBufferFromStream(S, Buffer, Start, Count); + CP_UTF16LE: + Result := UTF16GetNextBufferFromStream(S, Buffer, Start, Count); + CP_ACP: + Result := AnsiGetNextBufferFromStream(S, Buffer, Start, Count); + else + Result := AnsiGetNextBufferFromStream(S, CodePage, Buffer, Start, Count); + end; +end; + function TJclAutoStream.InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; begin case FCodePage of @@ -2822,6 +3057,21 @@ end; end; +function TJclAutoStream.InternalSetNextBuffer(S: TStream; + const Buffer: TUCS4Array; Start, Count: Integer): Longint; +begin + case FCodePage of + CP_UTF8: + Result := UTF8SetNextBufferToStream(S, Buffer, Start, Count); + CP_UTF16LE: + Result := UTF16SetNextBufferToStream(S, Buffer, Start, Count); + CP_ACP: + Result := AnsiSetNextBufferToStream(S, Buffer, Start, Count); + else + Result := AnsiSetNextBufferToStream(S, CodePage, Buffer, Start, Count); + end; +end; + function TJclAutoStream.InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; begin case FCodePage of Modified: trunk/jcl/source/common/JclStringConversions.pas =================================================================== --- trunk/jcl/source/common/JclStringConversions.pas 2011-01-18 17:36:54 UTC (rev 3482) +++ trunk/jcl/source/common/JclStringConversions.pas 2011-01-18 23:46:52 UTC (rev 3483) @@ -78,7 +78,9 @@ // otherwise StrPos is set to -1 on return to flag an error (invalid UTF8 sequence) // StrPos will be incremented by the number of chars that were read function UTF8GetNextChar(const S: TUTF8String; var StrPos: SizeInt): UCS4; +function UTF8GetNextBuffer(const S: TUTF8String; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; function UTF8GetNextCharFromStream(S: TStream; out Ch: UCS4): Boolean; +function UTF8GetNextBufferFromStream(S: TStream; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; // UTF8SkipChars = skip NbSeq UTF8 sequences starting from StrPos // returns False if String is too small @@ -96,17 +98,22 @@ // - StrPos > -1 flags string being too small, callee did nothing, caller is responsible for allocating space // StrPos will be incremented by the number of chars that were written function UTF8SetNextChar(var S: TUTF8String; var StrPos: SizeInt; Ch: UCS4): Boolean; +function UTF8SetNextBuffer(var S: TUTF8String; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; function UTF8SetNextCharToStream(S: TStream; Ch: UCS4): Boolean; +function UTF8SetNextBufferToStream(S: TStream; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; // UTF16GetNextChar = read next UTF16 sequence at StrPos // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter // otherwise StrPos is set to -1 on return to flag an error (invalid UTF16 sequence) // StrPos will be incremented by the number of chars that were read function UTF16GetNextChar(const S: TUTF16String; var StrPos: SizeInt): UCS4; overload; +function UTF16GetNextBuffer(const S: TUTF16String; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; {$IFDEF SUPPORTS_UNICODE_STRING} function UTF16GetNextChar(const S: UnicodeString; var StrPos: SizeInt): UCS4; overload; +function UTF16GetNextBuffer(const S: UnicodeString; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; {$ENDIF SUPPORTS_UNICODE_STRING} function UTF16GetNextCharFromStream(S: TStream; out Ch: UCS4): Boolean; +function UTF16GetNextBufferFromStream(S: TStream; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; // UTF16GetPreviousChar = read previous UTF16 sequence starting at StrPos-1 // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter @@ -136,19 +143,26 @@ // - StrPos > -1 flags string being too small, callee did nothing and caller is responsible for allocating space // StrPos will be incremented by the number of chars that were written function UTF16SetNextChar(var S: TUTF16String; var StrPos: SizeInt; Ch: UCS4): Boolean; overload; +function UTF16SetNextBuffer(var S: TUTF16String; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; {$IFDEF SUPPORTS_UNICODE_STRING} function UTF16SetNextChar(var S: UnicodeString; var StrPos: SizeInt; Ch: UCS4): Boolean; overload; +function UTF16SetNextBuffer(var S: UnicodeString; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; {$ENDIF SUPPORTS_UNICODE_STRING} function UTF16SetNextCharToStream(S: TStream; Ch: UCS4): Boolean; +function UTF16SetNextBufferToStream(S: TStream; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; // AnsiGetNextChar = read next character at StrPos // StrPos will be incremented by the number of chars that were read (1) function AnsiGetNextChar(const S: AnsiString; var StrPos: SizeInt): UCS4; overload; +function AnsiGetNextBuffer(const S: AnsiString; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; function AnsiGetNextCharFromStream(S: TStream; out Ch: UCS4): Boolean; overload; +function AnsiGetNextBufferFromStream(S: TStream; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; // same as AnsiGetNextChar* with custom codepage function AnsiGetNextChar(const S: AnsiString; CodePage: Word; var StrPos: SizeInt): UCS4; overload; +function AnsiGetNextBuffer(const S: AnsiString; CodePage: Word; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; function AnsiGetNextCharFromStream(S: TStream; CodePage: Word; out Ch: UCS4): Boolean; overload; +function AnsiGetNextBufferFromStream(S: TStream; CodePage: Word; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; // AnsiSkipChars = skip NbSeq characters starting from StrPos // returns False if String is too small @@ -165,17 +179,22 @@ // - StrPos > -1 flags string being too small, callee did nothing and caller is responsible for allocating space // StrPos will be incremented by the number of chars that were written (1) function AnsiSetNextChar(var S: AnsiString; var StrPos: SizeInt; Ch: UCS4): Boolean; overload; +function AnsiSetNextBuffer(var S: AnsiString; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; function AnsiSetNextCharToStream(S: TStream; Ch: UCS4): Boolean; overload; +function AnsiSetNextBufferToStream(S: TStream; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; // same as AnsiSetNextChar* with custom codepage function AnsiSetNextChar(var S: AnsiString; CodePage: Word; var StrPos: SizeInt; Ch: UCS4): Boolean; overload; +function AnsiSetNextBuffer(var S: AnsiString; CodePage: Word; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; function AnsiSetNextCharToStream(S: TStream; CodePage: Word; Ch: UCS4): Boolean; overload; +function AnsiSetNextBufferToStream(S: TStream; CodePage: Word; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; // StringGetNextChar = read next character/sequence at StrPos // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter // otherwise StrPos is set to -1 on return to flag an error (invalid UTF16 sequence for WideString) // StrPos will be incremented by the number of chars that were read function StringGetNextChar(const S: string; var StrPos: SizeInt): UCS4; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +function StringGetNextBuffer(const S: string; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} // StringSkipChars = skip NbSeq characters/sequences starting from StrPos // returns False if String is too small @@ -192,6 +211,7 @@ // - StrPos > -1 flags string being too small, callee did nothing and caller is responsible for allocating space // StrPos will be incremented by the number of chars that were written function StringSetNextChar(var S: string; var StrPos: SizeInt; Ch: UCS4): Boolean; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +function StringSetNextBuffer(var S: string; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} // one shot conversions between WideString and others function WideStringToUTF8(const S: WideString): TUTF8String; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} @@ -398,8 +418,10 @@ var StrLength: SizeInt; Ch: UCS4; + ReadSuccess: Boolean; begin StrLength := Length(S); + ReadSuccess := True; if (StrPos <= StrLength) and (StrPos > 0) then begin @@ -424,7 +446,7 @@ FlagInvalidSequence(StrPos, 1, Result); end else - FlagInvalidSequence(StrPos, 1, Result); + ReadSuccess := False; end; $E0..$EF: begin @@ -448,7 +470,7 @@ FlagInvalidSequence(StrPos, 1, Result); end else - FlagInvalidSequence(StrPos, 1, Result); + ReadSuccess := False; end; $F0..$F7: begin @@ -479,7 +501,7 @@ FlagInvalidSequence(StrPos, 1, Result); end else - FlagInvalidSequence(StrPos, 1, Result); + ReadSuccess := False; end; $F8..$FB: begin @@ -517,7 +539,7 @@ FlagInvalidSequence(StrPos, 1, Result); end else - FlagInvalidSequence(StrPos, 1, Result); + ReadSuccess := False; end; $FC..$FD: begin @@ -562,11 +584,13 @@ FlagInvalidSequence(StrPos, 1, Result); end else - FlagInvalidSequence(StrPos, 1, Result); + ReadSuccess := False; end; else FlagInvalidSequence(StrPos, 1, Result); end; + if not ReadSuccess then + FlagInvalidSequence(StrPos, 1, Result); end else begin @@ -576,6 +600,177 @@ end; end; +function UTF8GetNextBuffer(const S: TUTF8String; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; +var + B: Byte; + Ch: UCS4; + ReadSuccess: Boolean; + StrLength: SizeInt; +begin + StrLength := Length(S); + Result := 0; + ReadSuccess := True; + while (StrPos <= StrLength) and (StrPos > 0) and (Count > 0) do + begin + Ch := UCS4(S[StrPos]); + + case Ch of + $00..$7F: + // 1 byte to read + Inc(StrPos); + $C0..$DF: + begin + // 2 bytes to read + if StrPos < StrLength then + begin + B := Ord(S[StrPos + 1]); + if (B and $C0) = $80 then + Ch := ((Ch and $1F) shl 6) or (B and $3F) + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + $E0..$EF: + begin + // 3 bytes to read + if (StrPos + 1) < StrLength then + begin + B := Ord(S[StrPos + 1]); + if (B and $C0) = $80 then + begin + Ch := ((Ch and $0F) shl 12) or ((B and $3F) shl 6); + B := Ord(S[StrPos + 2]); + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(StrPos, 2, Ch); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + $F0..$F7: + begin + // 4 bytes to read + if (StrPos + 2) < StrLength then + begin + B := Ord(S[StrPos + 1]); + if (B and $C0) = $80 then + begin + Ch := ((Ch and $07) shl 18) or ((B and $3F) shl 12); + B := Ord(S[StrPos + 2]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + B := Ord(S[StrPos + 3]); + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(StrPos, 3, Ch); + end + else + FlagInvalidSequence(StrPos, 2, Ch); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + $F8..$FB: + begin + // 5 bytes to read + if (StrPos + 3) < StrLength then + begin + B := Ord(S[StrPos + 1]); + if (B and $C0) = $80 then + begin + Ch := ((Ch and $03) shl 24) or ((B and $3F) shl 18); + B := Ord(S[StrPos + 2]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + B := Ord(S[StrPos + 3]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + B := Ord(S[StrPos + 4]); + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(StrPos, 4, Ch); + end + else + FlagInvalidSequence(StrPos, 3, Ch); + end + else + FlagInvalidSequence(StrPos, 2, Ch); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + $FC..$FD: + begin + // 6 bytes to read + if (StrPos + 4) < StrLength then + begin + B := Ord(S[StrPos + 1]); + if (B and $C0) = $80 then + begin + Ch := ((Ch and $01) shl 30) or ((B and $3F) shl 24); + B := Ord(S[StrPos + 2]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 18); + B := Ord(S[StrPos + 3]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + B := Ord(S[StrPos + 4]); + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + B := Ord(S[StrPos + 5]); + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(StrPos, 5, Ch); + end + else + FlagInvalidSequence(StrPos, 4, Ch); + end + else + FlagInvalidSequence(StrPos, 3, Ch); + end + else + FlagInvalidSequence(StrPos, 2, Ch); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end; + if not ReadSuccess then + FlagInvalidSequence(StrPos, 1, Ch); + + Buffer[Start] := Ch; + Inc(Start); + Inc(Result); + Dec(Count); + end; +end; + function UTF8GetNextCharFromStream(S: TStream; out Ch: UCS4): Boolean; var B: Byte; @@ -755,6 +950,215 @@ end; end; +function UTF8GetNextBufferFromStream(S: TStream; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; +var + B: Byte; + Ch: UCS4; + ReadSuccess: Boolean; +begin + Result := 0; + ReadSuccess := True; + while ReadSuccess and (Count > 0) do + begin + if StreamReadByte(S,B) then + begin + Ch := UCS4(B); + + case Ch of + $00..$7F: ; + // 1 byte to read + // nothing to do + $C0..$DF: + begin + // 2 bytes to read + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + Ch := ((Ch and $1F) shl 6) or (B and $3F) + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end; + $E0..$EF: + begin + // 3 bytes to read + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $0F) shl 12) or ((B and $3F) shl 6); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end; + $F0..$F7: + begin + // 4 bytes to read + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $07) shl 18) or ((B and $3F) shl 12); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end; + $F8..$FB: + begin + // 5 bytes to read + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $03) shl 24) or ((B and $3F) shl 18); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end; + $FC..$FD: + begin + // 6 bytes to read + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $01) shl 30) or ((B and $3F) shl 24); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 18); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + if StreamReadByte(S,B) then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end + else + FlagInvalidSequence(Ch); + end; + if ReadSuccess then + begin + Buffer[Start] := Ch; + Inc(Start); + Inc(Result); + end; + end + else + ReadSuccess := False; + Dec(Count); + end; +end; + // returns False if String is too small // if UNICODE_SILENT_FAILURE is not defined StrPos is set to -1 on error (invalid UTF8 sequence) // StrPos will be incremented by the number of ansi chars that were skipped @@ -1082,6 +1486,131 @@ end; end; +function UTF8SetNextBuffer(var S: TUTF8String; var StrPos: SizeInt; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; +var + StrLength: SizeInt; + Ch: UCS4; + Success: Boolean; +begin + StrLength := Length(S); + Success := True; + Result := 0; + while Success and (Count > 0) do + begin + Ch := Buffer[Start]; + if Ch <= $7F then + begin + // 7 bits to store + if (StrPos > 0) and (StrPos <= StrLength) then + begin + S[StrPos] := AnsiChar(Ch); + Inc(StrPos); + end + else + Success := False; + end + else + if Ch <= $7FF then + begin + // 11 bits to store + if (StrPos > 0) and (StrPos < StrLength) then + begin + S[StrPos] := AnsiChar($C0 or (Ch shr 6)); // 5 bits + S[StrPos + 1] := AnsiChar((Ch and $3F) or $80); // 6 bits + Inc(StrPos, 2); + end + else + Success := False; + end + else + if Ch <= $FFFF then + begin + // 16 bits to store + if (StrPos > 0) and (StrPos < (StrLength - 1)) then + begin + S[StrPos] := AnsiChar($E0 or (Ch shr 12)); // 4 bits + S[StrPos + 1] := AnsiChar(((Ch shr 6) and $3F) or $80); // 6 bits + S[StrPos + 2] := AnsiChar((Ch and $3F) or $80); // 6 bits + Inc(StrPos, 3); + end + else + Success := False; + end + else + if Ch <= $1FFFFF then + begin + // 21 bits to store + if (StrPos > 0) and (StrPos < (StrLength - 2)) then + begin + S[StrPos] := AnsiChar($F0 or (Ch shr 18)); // 3 bits + S[StrPos + 1] := AnsiChar(((Ch shr 12) and $3F) or $80); // 6 bits + S[StrPos + 2] := AnsiChar(((Ch shr 6) and $3F) or $80); // 6 bits + S[StrPos + 3] := AnsiChar((Ch and $3F) or $80); // 6 bits + Inc(StrPos, 4); + end + else + Success := False; + end + else + if Ch <= $3FFFFFF then + begin + // 26 bits to store + if (StrPos > 0) and (StrPos < (StrLength - 2)) then + begin + S[StrPos] := AnsiChar($F8 or (Ch shr 24)); // 2 bits + S[StrPos + 1] := AnsiChar(((Ch shr 18) and $3F) or $80); // 6 bits + S[StrPos + 2] := AnsiChar(((Ch shr 12) and $3F) or $80); // 6 bits + S[StrPos + 3] := AnsiChar(((Ch shr 6) and $3F) or $80); // 6 bits + S[StrPos + 4] := AnsiChar((Ch and $3F) or $80); // 6 bits + Inc(StrPos, 5); + end + else + Success := False; + end + else + if Ch <= MaximumUCS4 then + begin + // 31 bits to store + if (StrPos > 0) and (StrPos < (StrLength - 3)) then + begin + S[StrPos] := AnsiChar($FC or (Ch shr 30)); // 1 bits + S[StrPos + 1] := AnsiChar(((Ch shr 24) and $3F) or $80); // 6 bits + S[StrPos + 2] := AnsiChar(((Ch shr 18) and $3F) or $80); // 6 bits + S[StrPos + 3] := AnsiChar(((Ch shr 12) and $3F) or $80); // 6 bits + S[StrPos + 4] := AnsiChar(((Ch shr 6) and $3F) or $80); // 6 bits + S[StrPos + 5] := AnsiChar((Ch and $3F) or $80); // 6 bits + Inc(StrPos, 6); + end + else + Success := False; + end + else + begin + {$IFDEF UNICODE_SILENT_FAILURE} + // add ReplacementCharacter + if (StrPos > 0) and (StrPos < (StrLength - 1)) then + begin + S[StrPos] := AnsiChar($E0 or (UCS4ReplacementCharacter shr 12)); // 4 bits + S[StrPos + 1] := AnsiChar(((UCS4ReplacementCharacter shr 6) and $3F) or $80); // 6 bits + S[StrPos + 2] := AnsiChar((UCS4ReplacementCharacter and $3F) or $80); // 6 bits + Inc(StrPos, 3); + end + else + Success := False; + {$ELSE ~UNICODE_SILENT_FAILURE} + StrPos := -1; + Success := False; + {$ENDIF ~UNICODE_SILENT_FAILURE} + end; + if Success then + begin + Inc(Start); + Inc(Result); + end; + Dec(Count); + end; +end; + function UTF8SetNextCharToStream(S: TStream; Ch: UCS4): Boolean; begin if Ch <= $7F then @@ -1133,6 +1662,72 @@ {$ENDIF ~UNICODE_SILENT_FAILURE} end; +function UTF8SetNextBufferToStream(S: TStream; const Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; +var + Ch: UCS4; + Success: Boolean; +begin + Result := 0; + Success := True; + while Success and (Count > 0) do + begin + Ch := Buffer[Start]; + if Ch <= $7F then + // 7 bits to store + Success := StreamWriteByte(S,Ch) + else + if Ch <= $7FF then + // 11 bits to store + Success := StreamWriteByte(S, $C0 or (Ch shr 6)) and // 5 bits + StreamWriteByte(S, (Ch and $3F) or $80) // 6 bits + else + if Ch <= $FFFF then + // 16 bits to store + Success := StreamWriteByte(S, $E0 or (Ch shr 12)) and // 4 bits + StreamWriteByte(S, ((Ch shr 6) and $3F) or $80) and // 6 bits + StreamWriteByte(S, (Ch and $3F) or $80) // 6 bits + else + if Ch <= $1FFFFF then + // 21 bits to store + Success := StreamWriteByte(S, $F0 or (Ch shr 18)) and // 3 bits + StreamWriteByte(S, ((Ch shr 12) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 6) and $3F) or $80) and // 6 bits + StreamWriteByte(S, (Ch and $3F) or $80) // 6 bits + else + if Ch <= $3FFFFFF then + // 26 bits to store + Success := StreamWriteByte(S, $F8 or (Ch shr 24)) and // 2 bits + StreamWriteByte(S, ((Ch shr 18) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 12) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 6) and $3F) or $80) and // 6 bits + StreamWriteByte(S, (Ch and $3F) or $80) // 6 bits + else + if Ch <= MaximumUCS4 then + // 31 bits to store + Success := StreamWriteByte(S, $FC or (Ch shr 30)) and // 1 bits + StreamWriteByte(S, ((Ch shr 24) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 18) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 12) and $3F) or $80) and // 6 bits + StreamWriteByte(S, ((Ch shr 6) and $3F) or $80) and // 6 bits + StreamWriteByte(S, (Ch and $3F) or $80) // 6 bits + else + {$IFDEF UNICODE_SILENT_FAILURE} + // add ReplacementCharacter + Success := StreamWriteByte(S, $E0 or (UCS4ReplacementCharacter shr 12)) and // 4 bits + StreamWriteByte(S, ((UCS4ReplacementCharacter shr 6) and $3F) or $80) and // 6 bits + StreamWriteByte(S, (UCS4ReplacementCharacter and $3F) or $80); // 6 bits + {$ELSE ~UNICODE_SILENT_FAILURE} + Success := False; + {$ENDIF ~UNICODE_SILENT_FAILURE} + if Success then + begin + Inc(Start); + Inc(Result); + end; + Dec(Count); + end; +end; + // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter // otherwise StrPos is set to -1 on return to flag an error (invalid UTF16 sequence) // StrPos will be incremented by the number of chars that were read @@ -1180,6 +1775,53 @@ end; end; +function UTF16GetNextBuffer(const S: TUTF16String; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; +var + StrLength: SizeInt; + Ch, ChNext: UCS4; + ReadSuccess: Boolean; +begin + StrLength := Length(S); + Result := 0; + ReadSuccess := True; + while (StrPos <= StrLength) and (StrPos > 0) and (Count > 0) do + begin + Ch := UCS4(S[StrPos]); + + case Ch of + SurrogateHighStart..SurrogateHighEnd: + begin + // 2 bytes to read + if StrPos < StrLength then + begin + ChNext := UCS4(S[StrPos + 1]); + if (ChNext >= SurrogateLowStart) and (ChNext <= SurrogateLowEnd) then + begin + Ch := ((Ch - SurrogateHighStart) shl HalfShift) + (ChNext - SurrogateLowStart) + HalfBase; + Inc(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + SurrogateLowStart..SurrogateLowEnd: + FlagInvalidSequence(StrPos, 1, Ch); + else + // 1 byte to read + Inc(StrPos); + end; + if not ReadSuccess then + FlagInvalidSequence(StrPos, 1, Ch); + + Buffer[Start] := Ch; + Inc(Start); + Inc(Result); + Dec(Count); + end; +end; + // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter // otherwise StrPos is set to -1 on return to flag an error (invalid UTF16 sequence) // StrPos will be incremented by the number of chars that were read @@ -1227,6 +1869,53 @@ FlagInvalidSequence(StrPos, 0, Result); end; end; + +function UTF16GetNextBuffer(const S: UnicodeString; var StrPos: SizeInt; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; overload; +var + StrLength: SizeInt; + Ch, ChNext: UCS4; + ReadSuccess: Boolean; +begin + StrLength := Length(S); + Result := 0; + ReadSuccess := True; + while (StrPos <= StrLength) and (StrPos > 0) and (Count > 0) do + begin + Ch := UCS4(S[StrPos]); + + case Ch of + SurrogateHighStart..SurrogateHighEnd: + begin + // 2 bytes to read + if StrPos < StrLength then + begin + ChNext := UCS4(S[StrPos + 1]); + if (ChNext >= SurrogateLowStart) and (ChNext <= SurrogateLowEnd) then + begin + Ch := ((Ch - SurrogateHighStart) shl HalfShift) + (ChNext - SurrogateLowStart) + HalfBase; + Inc(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, 1, Ch); + end + else + ReadSuccess := False; + end; + SurrogateLowStart..SurrogateLowEnd: + FlagInvalidSequence(StrPos, 1, Ch); + else + // 1 byte to read + Inc(StrPos); + end; + if not ReadSuccess then + FlagInvalidSequence(StrPos, 1, Ch); + + Buffer[Start] := Ch; + Inc(Start); + Inc(Result); + Dec(Count); + end; +end; {$ENDIF SUPPORTS_UNICODE_STRING} function UTF16GetNextCharFromStream(S: TStream; out Ch: UCS4): Boolean; @@ -1260,6 +1949,51 @@ end; end; +function UTF16GetNextBufferFromStream(S: TStream; var Buffer: TUCS4Array; var Start: SizeInt; Count: SizeInt): SizeInt; +var + W: Word; + Ch: UCS4; + ReadSuccess: Boolean; +begin + Result := 0; + ReadSuccess := True; + while ReadSuccess and (Count > 0) do + begin + if StreamReadWord(S, W) then + begin + Ch := UCS4(W); + + case W of + SurrogateHighStart..SurrogateHighEnd: + begin + // 2 bytes to read + if StreamReadWord(S, W) then + begin + if (W >= SurrogateLowStart) and (W <= SurrogateLowEnd) then + Ch := ((Ch - SurrogateHighStart) shl HalfShift) + (W - SurrogateLowStart) + HalfBase + else + FlagInvalidSequence(Ch); + end + else + ReadSuccess := False; + end; + SurrogateLowStart..SurrogateLowEnd: + FlagInvalidSequence(Ch); + else + // 1 byte to read + // nothing to do + end; + if ReadSuccess then + begin + Buffer[Start] := Ch; + Inc(Result); + Inc(Start); + end; + end; + Dec(Count); + end; +end; + // if UNICODE_SILENT_FAILURE is defined, invalid sequences will be replaced by ReplacementCharacter // otherwise StrPos is set to -1 on return to flag ... [truncated message content] |
From: <ou...@us...> - 2011-01-18 17:37:00
|
Revision: 3482 http://jcl.svn.sourceforge.net/jcl/?rev=3482&view=rev Author: outchy Date: 2011-01-18 17:36:54 +0000 (Tue, 18 Jan 2011) Log Message: ----------- TJclStringStream is not a TStream child. Disable the TJclStringStream cache for now, will be implemented ASAP ==> TJclSimpleXml might have some performance problems until the cache is implemented. Modified Paths: -------------- trunk/jcl/source/common/JclStreams.pas Modified: trunk/jcl/source/common/JclStreams.pas =================================================================== --- trunk/jcl/source/common/JclStreams.pas 2011-01-18 15:36:39 UTC (rev 3481) +++ trunk/jcl/source/common/JclStreams.pas 2011-01-18 17:36:54 UTC (rev 3482) @@ -445,23 +445,26 @@ property VolumeMaxSizes[Index: Integer]: Int64 read GetVolumeMaxSize; end; - TJclStringStream = class(TJclBufferedStream) + TJclStringStream = class protected + FStream: TStream; + FOwnStream: Boolean; FBOM: array of Byte; - FPeekPosition: Int64; - function GetCalcedSize: Int64; override; + FPosition: Int64; // current read/write position in FStream + FPeekPosition: Int64; // current peek position in FStream function InternalGetNextChar(S: TStream; out Ch: UCS4): Boolean; virtual; abstract; function InternalSetNextChar(S: TStream; Ch: UCS4): Boolean; virtual; abstract; - procedure SetSize(const NewSize: Int64); override; public constructor Create(AStream: TStream; AOwnsStream: Boolean = False); virtual; - function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override; + destructor Destroy; override; + procedure Flush; virtual; function ReadString(var Buffer: string; Start, Count: Longint): Longint; overload; function ReadString(BufferSize: Longint = StreamDefaultBufferSize): string; overload; function ReadAnsiString(var Buffer: AnsiString; Start, Count: Longint): Longint; overload; function ReadAnsiString(BufferSize: Longint = StreamDefaultBufferSize): AnsiString; overload; function ReadWideString(var Buffer: WideString; Start, Count: Longint): Longint; overload; function ReadWideString(BufferSize: Longint = StreamDefaultBufferSize): WideString; overload; + function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; virtual; function WriteString(const Buffer: string; Start, Count: Longint): Longint; function WriteAnsiString(const Buffer: AnsiString; Start, Count: Longint): Longint; function WriteWideString(const Buffer: WideString; Start, Count: Longint): Longint; @@ -477,6 +480,9 @@ function SkipBOM: LongInt; virtual; function WriteBOM: Longint; virtual; property PeekPosition: Int64 read FPeekPosition; + property Position: Int64 read FPosition; + property Stream: TStream read FStream; + property OwnStream: Boolean read FOwnStream; end; TJclStringStreamClass = class of TJclStringStream; @@ -2301,54 +2307,54 @@ constructor TJclStringStream.Create(AStream: TStream; AOwnsStream: Boolean); begin - inherited Create(AStream, AOwnsStream); + inherited Create; + FStream := AStream; + FOwnStream := AOwnsStream; end; -function TJclStringStream.GetCalcedSize: Int64; +destructor TJclStringStream.Destroy; begin - raise EJclStreamError.CreateRes(@RsStreamsSeekError); + if FOwnStream then + FStream.Free; + inherited; end; +procedure TJclStringStream.Flush; +begin + // to be implemented when a character buffer is available +end; + function TJclStringStream.PeekAnsiChar(out Buffer: AnsiChar): Boolean; var - Pos: Int64; Ch: UCS4; begin - Pos := FPosition; - FPosition := FPeekPosition; - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPeekPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToAnsiChar(Ch); - FPeekPosition := FPosition; - FPosition := Pos; + FPeekPosition := FStream.Seek(0, soCurrent); end; function TJclStringStream.PeekChar(out Buffer: Char): Boolean; var - Pos: Int64; Ch: UCS4; begin - Pos := FPosition; - FPosition := FPeekPosition; - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPeekPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToChar(Ch); - FPeekPosition := FPosition; - FPosition := Pos; + FPeekPosition := FStream.Seek(0, soCurrent); end; function TJclStringStream.PeekWideChar(out Buffer: WideChar): Boolean; var - Pos: Int64; Ch: UCS4; begin - Pos := FPosition; - FPosition := FPeekPosition; - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPeekPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToWideChar(Ch); - FPeekPosition := FPosition; - FPosition := Pos; + FPeekPosition := FStream.Seek(0, soCurrent); end; function TJclStringStream.ReadString(var Buffer: string; Start, Count: Longint): Longint; @@ -2358,9 +2364,10 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count - 1 do // avoid overflow on surrogate pairs for WideString begin - if InternalGetNextChar(Self, Ch) then + if InternalGetNextChar(FStream, Ch) then begin StrPos := Index; if StringSetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2372,6 +2379,7 @@ Break; // end of stream (read) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2393,9 +2401,11 @@ var Ch: UCS4; begin - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToAnsiChar(Ch); + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2406,9 +2416,10 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin - if InternalGetNextChar(Self, Ch) then + if InternalGetNextChar(FStream, Ch) then begin StrPos := Index; if AnsiSetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2420,6 +2431,7 @@ Break; // end of stream (read) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2441,9 +2453,11 @@ var Ch: UCS4; begin - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToChar(Ch); + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2451,9 +2465,11 @@ var Ch: UCS4; begin - Result := InternalGetNextChar(Self, Ch); + FStream.Seek(FPosition, soBeginning); + Result := InternalGetNextChar(FStream, Ch); if Result then Buffer := UCS4ToWideChar(Ch); + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2464,9 +2480,10 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count - 1 do // avoid overflow on surrogate pairs begin - if InternalGetNextChar(Self, Ch) then + if InternalGetNextChar(FStream, Ch) then begin StrPos := Index; if UTF16SetNextChar(Buffer, StrPos, Ch) and (StrPos > 0) then @@ -2478,6 +2495,7 @@ Break; // end of stream (read) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2497,16 +2515,25 @@ function TJclStringStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; begin - Result := inherited Seek(Offset, Origin); + case Origin of + soBeginning: + if Offset = 0 then + FPosition := 0 + else + raise EJclStreamError.CreateRes(@RsStreamsSeekError); + soCurrent: + if Offset <> 0 then + raise EJclStreamError.CreateRes(@RsStreamsSeekError); + soEnd: + if Offset = 0 then + FPosition := FStream.Seek(0, soEnd) + else + raise EJclStreamError.CreateRes(@RsStreamsSeekError); + end; + Result := FPosition; FPeekPosition := FPosition; end; -procedure TJclStringStream.SetSize(const NewSize: Int64); -begin - inherited SetSize(NewSize); - FPeekPosition := FPosition; -end; - function TJclStringStream.SkipBOM: Longint; var Pos: Int64; @@ -2516,14 +2543,17 @@ if Length(FBOM) > 0 then begin SetLength(BOM, Length(FBOM)); - Pos := Position; - Result := Read(BOM[0], Length(BOM) * SizeOf(BOM[0])); + Pos := FPosition; + FStream.Seek(FPosition, soBeginning); + Result := FStream.Read(BOM[0], Length(BOM) * SizeOf(BOM[0])); if Result = Length(FBOM) * SizeOf(FBOM[0]) then for I := Low(FBOM) to High(FBOM) do if BOM[I - Low(FBOM)] <> FBOM[I] then Result := 0; - if Result <> Length(FBOM) * SizeOf(FBOM[0]) then - Position := Pos; + if Result = Length(FBOM) * SizeOf(FBOM[0]) then + FPosition := FStream.Seek(0, soCurrent) + else + FPosition := Pos; end else Result := 0; @@ -2534,7 +2564,9 @@ begin if Length(FBOM) > 0 then begin - Result := Write(FBOM[0], Length(FBOM) * SizeOf(FBOM[0])); + FStream.Seek(FPosition, soBeginning); + Result := FStream.Write(FBOM[0], Length(FBOM) * SizeOf(FBOM[0])); + FPosition := FStream.Seek(0, soCurrent); end else Result := 0; @@ -2543,7 +2575,10 @@ function TJclStringStream.WriteChar(Value: Char): Boolean; begin - Result := InternalSetNextChar(Self, CharToUCS4(Value)); + FStream.Seek(FPosition, soBeginning); + Result := InternalSetNextChar(FStream, CharToUCS4(Value)); + FPosition := FStream.Seek(0, soCurrent); + FPeekPosition := FPosition; end; function TJclStringStream.WriteString(const Buffer: string; Start, Count: Longint): Longint; @@ -2553,22 +2588,26 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := StringGetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(Self, Ch) then + if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; function TJclStringStream.WriteAnsiChar(Value: AnsiChar): Boolean; begin - Result := InternalSetNextChar(Self, AnsiCharToUCS4(Value)); + FStream.Seek(FPosition, soBeginning); + Result := InternalSetNextChar(FStream, AnsiCharToUCS4(Value)); + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2579,22 +2618,26 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := AnsiGetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(Self, Ch) then + if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; function TJclStringStream.WriteWideChar(Value: WideChar): Boolean; begin - Result := InternalSetNextChar(Self, WideCharToUCS4(Value)); + FStream.Seek(FPosition, soBeginning); + Result := InternalSetNextChar(FStream, WideCharToUCS4(Value)); + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2605,16 +2648,18 @@ Ch: UCS4; begin Index := Start; + FStream.Seek(FPosition, soBeginning); while Index < Start + Count do begin StrPos := Index; Ch := UTF16GetNextChar(Buffer, StrPos); - if (StrPos > 0) and InternalSetNextChar(Self, Ch) then + if (StrPos > 0) and InternalSetNextChar(FStream, Ch) then Index := StrPos else Break; // end of string (read) or end of stream (write) end; Result := Index - Start; + FPosition := FStream.Seek(0, soCurrent); FPeekPosition := FPosition; end; @@ -2703,7 +2748,7 @@ Pos := FPosition; SetLength(BOM, MaxLength); - ReadLength := Read(BOM[0], Length(BOM) * SizeOf(BOM[0])) div SizeOf(BOM[0]); + ReadLength := FStream.Read(BOM[0], Length(BOM) * SizeOf(BOM[0])) div SizeOf(BOM[0]); FEncoding := seAuto; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-18 15:36:46
|
Revision: 3481 http://jcl.svn.sourceforge.net/jcl/?rev=3481&view=rev Author: outchy Date: 2011-01-18 15:36:39 +0000 (Tue, 18 Jan 2011) Log Message: ----------- Ansi sequences may require more than 1 character. Modified Paths: -------------- trunk/jcl/source/common/JclStringConversions.pas Modified: trunk/jcl/source/common/JclStringConversions.pas =================================================================== --- trunk/jcl/source/common/JclStringConversions.pas 2011-01-18 12:10:20 UTC (rev 3480) +++ trunk/jcl/source/common/JclStringConversions.pas 2011-01-18 15:36:39 UTC (rev 3481) @@ -1790,7 +1790,7 @@ // AnsiSkipChars = skip NbSeq characters starting from StrPos // returns False if String is too small // StrPos will be incremented by the number of chars that were skipped -// On return, NbChar contains the number of UTF16 sequences that were skipped +// On return, NbChar contains the number of chars that were skipped function AnsiSkipChars(const S: AnsiString; var StrPos: SizeInt; var NbSeq: SizeInt): Boolean; var StrLen: SizeInt; @@ -1847,7 +1847,7 @@ // StrPos will be incremented by the number of chars that were written (1) function AnsiSetNextChar(var S: AnsiString; var StrPos: SizeInt; Ch: UCS4): Boolean; var - StrLen, TmpPos: SizeInt; + StrLen, TmpPos, AnsiStrLen: SizeInt; UTF16Buffer: TUTF16String; AnsiBuffer: AnsiString; begin @@ -1859,37 +1859,37 @@ TmpPos := 1; Result := UTF16SetNextChar(UTF16Buffer, TmpPos, Ch); if Result and (TmpPos = 2) then - begin // one wide character - AnsiBuffer := AnsiString(WideString(UTF16Buffer[1])); - S[StrPos] := AnsiBuffer[1]; - Inc(StrPos); - end + AnsiBuffer := AnsiString(WideString(UTF16Buffer[1])) else if Result and (TmpPos = 3) then - begin // one surrogate pair - AnsiBuffer := AnsiString(UTF16Buffer); - S[StrPos] := AnsiBuffer[1]; - Inc(StrPos); - end + AnsiBuffer := AnsiString(UTF16Buffer) else begin - {$IFDEF UNICODE_SILENT_FAILURE} // add ReplacementCharacter - S[StrPos] := AnsiReplacementCharacter; - Inc(StrPos); - {$ELSE ~UNICODE_SILENT_FAILURE} + AnsiBuffer := AnsiReplacementCharacter; + {$IFNDEF UNICODE_SILENT_FAILURE} Result := False; StrPos := -1; {$ENDIF ~UNICODE_SILENT_FAILURE} end; + AnsiStrLen := Length(AnsiBuffer); + Result := Result and ((StrPos + AnsiStrLen) <= (StrLen + 1)); + if Result then + begin + for TmpPos := 1 to AnsiStrLen do + begin + S[StrPos] := AnsiBuffer[TmpPos]; + Inc(StrPos); + end; + end; end; end; function AnsiSetNextCharToStream(S: TStream; Ch: UCS4): Boolean; var - TmpPos: SizeInt; + TmpPos, I: SizeInt; UTF16Buffer: TUTF16String; AnsiBuffer: AnsiString; begin @@ -1898,34 +1898,29 @@ Result := UTF16SetNextChar(UTF16Buffer, TmpPos, Ch); if Result and (TmpPos = 2) then - begin // one wide character - AnsiBuffer := AnsiString(WideString(UTF16Buffer[1])); - Result := StreamWriteByte(S, Ord(AnsiBuffer[1])); - end + AnsiBuffer := AnsiString(WideString(UTF16Buffer[1])) else if Result and (TmpPos = 3) then - begin // one surrogate pair - AnsiBuffer := AnsiString(UTF16Buffer); - Result := StreamWriteByte(S, Ord(AnsiBuffer[1])); - end + AnsiBuffer := AnsiString(UTF16Buffer) else begin - {$IFDEF UNICODE_SILENT_FAILURE} // add ReplacementCharacter - Result := StreamWriteByte(S, Ord(AnsiReplacementCharacter)); - {$ELSE ~UNICODE_SILENT_FAILURE} + AnsiBuffer := AnsiReplacementCharacter; + {$IFNDEF UNICODE_SILENT_FAILURE} Result := False; {$ENDIF ~UNICODE_SILENT_FAILURE} end; + for I := 1 to Length(AnsiBuffer) do + Result := Result and StreamWriteByte(S, Ord(AnsiBuffer[I])); end; function AnsiSetNextChar(var S: AnsiString; CodePage: Word; var StrPos: SizeInt; Ch: UCS4): Boolean; var - StrLen, TmpPos: SizeInt; + StrLen, TmpPos, AnsiStrLen: SizeInt; UTF16Buffer: TUTF16String; - AnsiCharacter: AnsiChar; + AnsiBuffer: AnsiString; begin StrLen := Length(S); Result := (StrPos > 0) and (StrPos <= StrLen); @@ -1934,47 +1929,52 @@ SetLength(UTF16Buffer, 2); TmpPos := 1; Result := UTF16SetNextChar(UTF16Buffer, TmpPos, Ch); - Result := Result and (WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, @AnsiCharacter, 1, nil, nil) > 0); - if Result then - begin - S[StrPos] := AnsiCharacter; - Inc(StrPos); - end; + AnsiStrLen := WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, nil, 0, nil, nil); + SetLength(AnsiBuffer, AnsiStrLen); + Result := Result and (WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, @AnsiBuffer[1], AnsiStrLen, nil, nil) > 0); if not Result then begin - {$IFDEF UNICODE_SILENT_FAILURE} // add ReplacementCharacter - S[StrPos] := AnsiReplacementCharacter; - Inc(StrPos); - {$ELSE ~UNICODE_SILENT_FAILURE} + AnsiBuffer := AnsiReplacementCharacter; + AnsiStrLen := 1; + {$IFNDEF UNICODE_SILENT_FAILURE} Result := False; StrPos := -1; {$ENDIF ~UNICODE_SILENT_FAILURE} end; + Result := Result and ((StrPos + AnsiStrLen) <= (StrLen + 1)); + if Result then + for TmpPos := 1 to AnsiStrLen do + begin + S[StrPos] := AnsiBuffer[TmpPos]; + Inc(StrPos); + end; end; end; function AnsiSetNextCharToStream(S: TStream; CodePage: Word; Ch: UCS4): Boolean; var - TmpPos: SizeInt; + TmpPos, AnsiStrLen: SizeInt; UTF16Buffer: TUTF16String; - AnsiCharacter: AnsiChar; + AnsiBuffer: AnsiString; begin SetLength(UTF16Buffer, 2); TmpPos := 1; Result := UTF16SetNextChar(UTF16Buffer, TmpPos, Ch); - Result := Result and (WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, @AnsiCharacter, 1, nil, nil) > 0); - if Result then - Result := StreamWriteByte(S, Ord(AnsiCharacter)); + AnsiStrLen := WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, nil, 0, nil, nil); + SetLength(AnsiBuffer, AnsiStrLen); + Result := Result and (WideCharToMultiByte(CodePage, 0, PWideChar(UTF16Buffer), TmpPos-1, @AnsiBuffer[1], AnsiStrLen, nil, nil) > 0); if not Result then begin - {$IFDEF UNICODE_SILENT_FAILURE} // add ReplacementCharacter - Result := StreamWriteByte(S, Ord(AnsiReplacementCharacter)); - {$ELSE ~UNICODE_SILENT_FAILURE} + AnsiBuffer := AnsiReplacementCharacter; + AnsiStrLen := 1; + {$IFNDEF UNICODE_SILENT_FAILURE} Result := False; {$ENDIF ~UNICODE_SILENT_FAILURE} end; + for TmpPos := 1 to AnsiStrLen do + Result := Result and StreamWriteByte(S, Ord(AnsiBuffer[TmpPos])); end; // StringGetNextChar = read next character/sequence at StrPos This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-18 12:10:26
|
Revision: 3480 http://jcl.svn.sourceforge.net/jcl/?rev=3480&view=rev Author: outchy Date: 2011-01-18 12:10:20 +0000 (Tue, 18 Jan 2011) Log Message: ----------- new homepage location. Modified Paths: -------------- trunk/website/sourceforge/index.php Modified: trunk/website/sourceforge/index.php =================================================================== --- trunk/website/sourceforge/index.php 2011-01-18 10:35:40 UTC (rev 3479) +++ trunk/website/sourceforge/index.php 2011-01-18 12:10:20 UTC (rev 3480) @@ -1 +1 @@ -<?php header("Location: http://jcl.delphi-jedi.org/"); exit; ?> +<?php header("Location: http://wiki.delphi-jedi.org/index.php?title=JEDI_Code_Library"); exit; ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-18 10:35:48
|
Revision: 3479 http://jcl.svn.sourceforge.net/jcl/?rev=3479&view=rev Author: outchy Date: 2011-01-18 10:35:40 +0000 (Tue, 18 Jan 2011) Log Message: ----------- Some speed improvements in string conversion routines. Modified Paths: -------------- trunk/jcl/source/common/JclStringConversions.pas Modified: trunk/jcl/source/common/JclStringConversions.pas =================================================================== --- trunk/jcl/source/common/JclStringConversions.pas 2011-01-15 10:26:13 UTC (rev 3478) +++ trunk/jcl/source/common/JclStringConversions.pas 2011-01-18 10:35:40 UTC (rev 3479) @@ -397,7 +397,7 @@ function UTF8GetNextChar(const S: TUTF8String; var StrPos: SizeInt): UCS4; var StrLength: SizeInt; - ChNext: UCS4; + Ch: UCS4; begin StrLength := Length(S); @@ -412,161 +412,160 @@ $C0..$DF: begin // 2 bytes to read - if StrPos >= StrLength then + if StrPos < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch and $C0) = $80 then + begin + Result := ((Result and $1F) shl 6) or (Ch and $3F); + Inc(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result and $1F) shl 6) or (ChNext and $3F); - Inc(StrPos, 2); end; $E0..$EF: begin // 3 bytes to read - if (StrPos + 1) >= StrLength then + if (StrPos + 1) < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch and $C0) = $80 then + begin + Result := ((Result and $0F) shl 12) or ((Ch and $3F) shl 6); + Ch := UCS4(S[StrPos + 2]); + if (Ch and $C0) = $80 then + begin + Result := Result or (Ch and $3F); + Inc(StrPos, 3); + end + else + FlagInvalidSequence(StrPos, 2, Result); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result and $0F) shl 12) or ((ChNext and $3F) shl 6); - ChNext := UCS4(S[StrPos + 2]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 2, Result); - Exit; - end; - Result := Result or (ChNext and $3F); - Inc(StrPos, 3); end; $F0..$F7: begin // 4 bytes to read - if (StrPos + 2) >= StrLength then + if (StrPos + 2) < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch and $C0) = $80 then + begin + Result := ((Result and $07) shl 18) or ((Ch and $3F) shl 12); + Ch := UCS4(S[StrPos + 2]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 6); + Ch := UCS4(S[StrPos + 3]); + if (Ch and $C0) = $80 then + begin + Result := Result or (Ch and $3F); + Inc(StrPos, 4); + end + else + FlagInvalidSequence(StrPos, 3, Result); + end + else + FlagInvalidSequence(StrPos, 2, Result); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result and $07) shl 18) or ((ChNext and $3F) shl 12); - ChNext := UCS4(S[StrPos + 2]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 2, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 6); - ChNext := UCS4(S[StrPos + 3]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 3, Result); - Exit; - end; - Result := Result or (ChNext and $3F); - Inc(StrPos, 4); end; $F8..$FB: begin // 5 bytes to read - if (StrPos + 3) >= StrLength then + if (StrPos + 3) < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch and $C0) = $80 then + begin + Result := ((Result and $03) shl 24) or ((Ch and $3F) shl 18); + Ch := UCS4(S[StrPos + 2]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 12); + Ch := UCS4(S[StrPos + 3]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 6); + Ch := UCS4(S[StrPos + 4]); + if (Ch and $C0) = $80 then + begin + Result := Result or (Ch and $3F); + Inc(StrPos, 5); + end + else + FlagInvalidSequence(StrPos, 4, Result); + end + else + FlagInvalidSequence(StrPos, 3, Result); + end + else + FlagInvalidSequence(StrPos, 2, Result); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result and $03) shl 24) or ((ChNext and $3F) shl 18); - ChNext := UCS4(S[StrPos + 2]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 2, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 12); - ChNext := UCS4(S[StrPos + 3]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 3, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 6); - ChNext := UCS4(S[StrPos + 4]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 4, Result); - Exit; - end; - Result := Result or (ChNext and $3F); - Inc(StrPos, 5); end; $FC..$FD: begin // 6 bytes to read - if (StrPos + 4) >= StrLength then + if (StrPos + 4) < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch and $C0) = $80 then + begin + Result := ((Result and $01) shl 30) or ((Ch and $3F) shl 24); + Ch := UCS4(S[StrPos + 2]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 18); + Ch := UCS4(S[StrPos + 3]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 12); + Ch := UCS4(S[StrPos + 4]); + if (Ch and $C0) = $80 then + begin + Result := Result or ((Ch and $3F) shl 6); + Ch := UCS4(S[StrPos + 5]); + if (Ch and $C0) = $80 then + begin + Result := Result or (Ch and $3F); + Inc(StrPos, 6); + end + else + FlagInvalidSequence(StrPos, 5, Result); + end + else + FlagInvalidSequence(StrPos, 4, Result); + end + else + FlagInvalidSequence(StrPos, 3, Result); + end + else + FlagInvalidSequence(StrPos, 2, Result); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result and $01) shl 30) or ((ChNext and $3F) shl 24); - ChNext := UCS4(S[StrPos + 2]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 2, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 18); - ChNext := UCS4(S[StrPos + 3]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 3, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 12); - ChNext := UCS4(S[StrPos + 4]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 4, Result); - Exit; - end; - Result := Result or ((ChNext and $3F) shl 6); - ChNext := UCS4(S[StrPos + 5]); - if (ChNext and $C0) <> $80 then - begin - FlagInvalidSequence(StrPos, 5, Result); - Exit; - end; - Result := Result or (ChNext and $3F); - Inc(StrPos, 6); end; else FlagInvalidSequence(StrPos, 1, Result); - Exit; end; end else @@ -582,172 +581,177 @@ B: Byte; begin Result := StreamReadByte(S,B); - if not Result then - Exit; - Ch := UCS4(B); + if Result then + begin + Ch := UCS4(B); - case Ch of - $00..$7F: ; - // 1 byte to read - // nothing to do - $C0..$DF: - begin - // 2 bytes to read - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then + case Ch of + $00..$7F: ; + // 1 byte to read + // nothing to do + $C0..$DF: begin - FlagInvalidSequence(Ch); - Exit; + // 2 bytes to read + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + Ch := ((Ch and $1F) shl 6) or (B and $3F) + else + FlagInvalidSequence(Ch); + end; end; - Ch := ((Ch and $1F) shl 6) or (B and $3F); - end; - $E0..$EF: - begin - // 3 bytes to read - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then + $E0..$EF: begin - FlagInvalidSequence(Ch); - Exit; + // 3 bytes to read + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $0F) shl 12) or ((B and $3F) shl 6); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; end; - Ch := ((Ch and $0F) shl 12) or ((B and $3F) shl 6); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then + $F0..$F7: begin - FlagInvalidSequence(Ch); - Exit; + // 4 bytes to read + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $07) shl 18) or ((B and $3F) shl 12); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; end; - Ch := Ch or (B and $3F); - end; - $F0..$F7: - begin - // 4 bytes to read - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then + $F8..$FB: begin - FlagInvalidSequence(Ch); - Exit; + // 5 bytes to read + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $03) shl 24) or ((B and $3F) shl 18); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; end; - Ch := ((Ch and $07) shl 18) or ((B and $3F) shl 12); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then + $FC..$FD: begin - FlagInvalidSequence(Ch); - Exit; + // 6 bytes to read + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := ((Ch and $01) shl 30) or ((B and $3F) shl 24); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 18); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 12); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + begin + Ch := Ch or ((B and $3F) shl 6); + Result := StreamReadByte(S,B); + if Result then + begin + if (B and $C0) = $80 then + Ch := Ch or (B and $3F) + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; + end + else + FlagInvalidSequence(Ch); + end; end; - Ch := Ch or ((B and $3F) shl 6); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or (B and $3F); - end; - $F8..$FB: - begin - // 5 bytes to read - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := ((Ch and $03) shl 24) or ((B and $3F) shl 18); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or ((B and $3F) shl 12); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or ((B and $3F) shl 6); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or (B and $3F); - end; - $FC..$FD: - begin - // 6 bytes to read - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := ((Ch and $01) shl 30) or ((B and $3F) shl 24); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or ((B and $3F) shl 18); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or ((B and $3F) shl 12); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or ((B and $3F) shl 6); - Result := StreamReadByte(S,B); - if not Result then - Exit; - if (B and $C0) <> $80 then - begin - FlagInvalidSequence(Ch); - Exit; - end; - Ch := Ch or (B and $3F); - end; - else - FlagInvalidSequence(Ch); - Exit; + else + FlagInvalidSequence(Ch); + end; end; end; @@ -1135,7 +1139,7 @@ function UTF16GetNextChar(const S: TUTF16String; var StrPos: SizeInt): UCS4; var StrLength: SizeInt; - ChNext: UCS4; + Ch: UCS4; begin StrLength := Length(S); @@ -1147,19 +1151,19 @@ SurrogateHighStart..SurrogateHighEnd: begin // 2 bytes to read - if StrPos >= StrLength then + if StrPos < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch >= SurrogateLowStart) and (Ch <= SurrogateLowEnd) then + begin + Result := ((Result - SurrogateHighStart) shl HalfShift) + (Ch - SurrogateLowStart) + HalfBase; + Inc(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext < SurrogateLowStart) or (ChNext > SurrogateLowEnd) then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result - SurrogateHighStart) shl HalfShift) + (ChNext - SurrogateLowStart) + HalfBase; - Inc(StrPos, 2); end; SurrogateLowStart..SurrogateLowEnd: FlagInvalidSequence(StrPos, 1, Result); @@ -1183,7 +1187,7 @@ function UTF16GetNextChar(const S: UnicodeString; var StrPos: SizeInt): UCS4; var StrLength: SizeInt; - ChNext: UCS4; + Ch: UCS4; begin StrLength := Length(S); @@ -1195,19 +1199,19 @@ SurrogateHighStart..SurrogateHighEnd: begin // 2 bytes to read - if StrPos >= StrLength then + if StrPos < StrLength then begin + Ch := UCS4(S[StrPos + 1]); + if (Ch >= SurrogateLowStart) and (Ch <= SurrogateLowEnd) then + begin + Result := ((Result - SurrogateHighStart) shl HalfShift) + (Ch - SurrogateLowStart) + HalfBase; + Inc(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, 1, Result); + end + else FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - ChNext := UCS4(S[StrPos + 1]); - if (ChNext < SurrogateLowStart) or (ChNext > SurrogateLowEnd) then - begin - FlagInvalidSequence(StrPos, 1, Result); - Exit; - end; - Result := ((Result - SurrogateHighStart) shl HalfShift) + (ChNext - SurrogateLowStart) + HalfBase; - Inc(StrPos, 2); end; SurrogateLowStart..SurrogateLowEnd: FlagInvalidSequence(StrPos, 1, Result); @@ -1230,29 +1234,29 @@ W: Word; begin Result := StreamReadWord(S, W); - if not Result then - Exit; - Ch := UCS4(W); + if Result then + begin + Ch := UCS4(W); - case W of - SurrogateHighStart..SurrogateHighEnd: - begin - // 2 bytes to read - Result := StreamReadWord(S, W); - if not Result then - Exit; - if (W < SurrogateLowStart) or (W > SurrogateLowEnd) then + case W of + SurrogateHighStart..SurrogateHighEnd: begin - FlagInvalidSequence(Ch); - Exit; + // 2 bytes to read + Result := StreamReadWord(S, W); + if Result then + begin + if (W >= SurrogateLowStart) and (W <= SurrogateLowEnd) then + Ch := ((Ch - SurrogateHighStart) shl HalfShift) + (W - SurrogateLowStart) + HalfBase + else + FlagInvalidSequence(Ch); + end; end; - Ch := ((Ch - SurrogateHighStart) shl HalfShift) + (W - SurrogateLowStart) + HalfBase; - end; - SurrogateLowStart..SurrogateLowEnd: - FlagInvalidSequence(Ch); - else - // 1 byte to read - // nothing to do + SurrogateLowStart..SurrogateLowEnd: + FlagInvalidSequence(Ch); + else + // 1 byte to read + // nothing to do + end; end; end; @@ -1276,19 +1280,19 @@ SurrogateLowStart..SurrogateLowEnd: begin // 2 bytes to read - if StrPos <= 2 then + if StrPos > 2 then begin + ChPrev := UCS4(S[StrPos - 2]); + if (ChPrev >= SurrogateHighStart) and (ChPrev <= SurrogateHighEnd) then + begin + Result := ((ChPrev - SurrogateHighStart) shl HalfShift) + (Result - SurrogateLowStart) + HalfBase; + Dec(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, -1, Result); + end + else FlagInvalidSequence(StrPos, -1, Result); - Exit; - end; - ChPrev := UCS4(S[StrPos - 2]); - if (ChPrev < SurrogateHighStart) or (ChPrev > SurrogateHighEnd) then - begin - FlagInvalidSequence(StrPos, -1, Result); - Exit; - end; - Result := ((ChPrev - SurrogateHighStart) shl HalfShift) + (Result - SurrogateLowStart) + HalfBase; - Dec(StrPos, 2); end; else // 1 byte to read @@ -1324,19 +1328,19 @@ SurrogateLowStart..SurrogateLowEnd: begin // 2 bytes to read - if StrPos <= 2 then + if StrPos > 2 then begin + ChPrev := UCS4(S[StrPos - 2]); + if (ChPrev >= SurrogateHighStart) and (ChPrev <= SurrogateHighEnd) then + begin + Result := ((ChPrev - SurrogateHighStart) shl HalfShift) + (Result - SurrogateLowStart) + HalfBase; + Dec(StrPos, 2); + end + else + FlagInvalidSequence(StrPos, -1, Result); + end + else FlagInvalidSequence(StrPos, -1, Result); - Exit; - end; - ChPrev := UCS4(S[StrPos - 2]); - if (ChPrev < SurrogateHighStart) or (ChPrev > SurrogateHighEnd) then - begin - FlagInvalidSequence(StrPos, -1, Result); - Exit; - end; - Result := ((ChPrev - SurrogateHighStart) shl HalfShift) + (Result - SurrogateLowStart) + HalfBase; - Dec(StrPos, 2); end; else // 1 byte to read @@ -1359,7 +1363,7 @@ function UTF16SkipChars(const S: TUTF16String; var StrPos: SizeInt; var NbSeq: SizeInt): Boolean; var StrLength, Index: SizeInt; - Ch, ChNext: UCS4; + Ch: UCS4; begin Result := True; StrLength := Length(S); @@ -1377,8 +1381,8 @@ FlagInvalidSequence(StrPos, 1) else begin - ChNext := UCS4(S[StrPos + 1]); - if (ChNext < SurrogateLowStart) or (ChNext > SurrogateLowEnd) then + Ch := UCS4(S[StrPos + 1]); + if (Ch < SurrogateLowStart) or (Ch > SurrogateLowEnd) then FlagInvalidSequence(StrPos, 1) else Inc(StrPos, 2); @@ -1415,8 +1419,8 @@ FlagInvalidSequence(StrPos, -1) else begin - ChNext := UCS4(S[StrPos - 2]); - if (ChNext < SurrogateHighStart) or (ChNext > SurrogateHighEnd) then + Ch := UCS4(S[StrPos - 2]); + if (Ch < SurrogateHighStart) or (Ch > SurrogateHighEnd) then FlagInvalidSequence(StrPos, -1) else Dec(StrPos, 2); @@ -1446,7 +1450,7 @@ function UTF16SkipChars(const S: UnicodeString; var StrPos: SizeInt; var NbSeq: SizeInt): Boolean; var StrLength, Index: SizeInt; - Ch, ChNext: UCS4; + Ch: UCS4; begin Result := True; StrLength := Length(S); @@ -1464,8 +1468,8 @@ FlagInvalidSequence(StrPos, 1) else begin - ChNext := UCS4(S[StrPos + 1]); - if (ChNext < SurrogateLowStart) or (ChNext > SurrogateLowEnd) then + Ch := UCS4(S[StrPos + 1]); + if (Ch < SurrogateLowStart) or (Ch > SurrogateLowEnd) then FlagInvalidSequence(StrPos, 1) else Inc(StrPos, 2); @@ -1502,8 +1506,8 @@ FlagInvalidSequence(StrPos, -1) else begin - ChNext := UCS4(S[StrPos - 2]); - if (ChNext < SurrogateHighStart) or (ChNext > SurrogateHighEnd) then + Ch := UCS4(S[StrPos - 2]); + if (Ch < SurrogateHighStart) or (Ch > SurrogateHighEnd) then FlagInvalidSequence(StrPos, -1) else Dec(StrPos, 2); @@ -1715,12 +1719,13 @@ UTF16Buffer: TUTF16String; begin Result := StreamReadByte(S, B); - if not Result then - Exit; - UTF16Buffer := WideString(AnsiString(Chr(B))); - TmpPos := 1; - Ch := UTF16GetNextChar(UTF16Buffer, TmpPos); - Result := TmpPos <> -1; + if Result then + begin + UTF16Buffer := WideString(AnsiString(Chr(B))); + TmpPos := 1; + Ch := UTF16GetNextChar(UTF16Buffer, TmpPos); + Result := TmpPos <> -1; + end; end; // AnsiGetNextChar = read next character at StrPos @@ -1735,18 +1740,20 @@ if (StrPos <= StrLen) and (StrPos > 0) then begin SetLength(UTF16Buffer, 2); - if MultiByteToWideChar(CodePage, MB_PRECOMPOSED or MB_ERR_INVALID_CHARS, @S[StrPos], 1, PWideChar(UTF16Buffer), 2) = 0 then + if MultiByteToWideChar(CodePage, MB_PRECOMPOSED or MB_ERR_INVALID_CHARS, @S[StrPos], 1, PWideChar(UTF16Buffer), 2) > 0 then begin + TmpPos := 1; + Result := UTF16GetNextChar(UTF16Buffer, TmpPos); + if TmpPos = -1 then + StrPos := -1 + else + Inc(StrPos); + end + else + begin Result := UCS4ReplacementCharacter; - FlagInvalidSequence(StrPos, 0, Result); - Exit; + FlagInvalidSequence(StrPos, 1, Result); end; - TmpPos := 1; - Result := UTF16GetNextChar(UTF16Buffer, TmpPos); - if TmpPos = -1 then - StrPos := -1 - else - Inc(StrPos); end else begin @@ -1763,18 +1770,21 @@ UTF16Buffer: TUTF16String; begin Result := StreamReadByte(S, B); - if not Result then - Exit; - SetLength(UTF16Buffer, 2); - if MultiByteToWideChar(CodePage, MB_PRECOMPOSED or MB_ERR_INVALID_CHARS, @B, 1, PWideChar(UTF16Buffer), 2) = 0 then + if Result then begin - Result := False; - Ch := UCS4ReplacementCharacter; - Exit; + SetLength(UTF16Buffer, 2); + if MultiByteToWideChar(CodePage, MB_PRECOMPOSED or MB_ERR_INVALID_CHARS, @B, 1, PWideChar(UTF16Buffer), 2) <> 0 then + begin + TmpPos := 1; + Ch := UTF16GetNextChar(UTF16Buffer, TmpPos); + Result := TmpPos <> -1; + end + else + begin + Result := False; + Ch := UCS4ReplacementCharacter; + end; end; - TmpPos := 1; - Ch := UTF16GetNextChar(UTF16Buffer, TmpPos); - Result := TmpPos <> -1; end; // AnsiSkipChars = skip NbSeq characters starting from StrPos @@ -2199,19 +2209,18 @@ SrcIndex := 1; DestIndex := 1; - while SrcIndex <= SrcLength do + while (SrcIndex > 0) and (SrcIndex <= SrcLength) do begin Ch := UTF8GetNextChar(S, SrcIndex); - if SrcIndex = -1 then - begin + if SrcIndex > 0 then + UTF16SetNextChar(D, DestIndex, Ch) + else Result := False; - D := ''; - Exit; - end; - - UTF16SetNextChar(D, DestIndex, Ch); end; - SetLength(D, DestIndex - 1); // now fix up length + if Result then + SetLength(D, DestIndex - 1) // now fix up length + else + D := ''; end; end; @@ -2256,19 +2265,18 @@ SrcIndex := 1; DestIndex := 1; - while SrcIndex <= SrcLength do + while (SrcIndex > 0) and (SrcIndex <= SrcLength) do begin Ch := UTF16GetNextChar(S, SrcIndex); - if SrcIndex = -1 then - begin + if SrcIndex > 0 then + UTF8SetNextChar(D, DestIndex, Ch) + else Result := False; - D := ''; - Exit; - end; - - UTF8SetNextChar(D, DestIndex, Ch); end; - SetLength(D, DestIndex - 1); // now fix up length + if Result then + SetLength(D, DestIndex - 1) // now fix up length + else + D := ''; end; end; @@ -2310,20 +2318,21 @@ SrcIndex := 1; DestIndex := 0; - while SrcIndex <= SrcLength do + while (SrcIndex > 0) and (SrcIndex <= SrcLength) do begin Ch := UTF8GetNextChar(S, SrcIndex); - if SrcIndex = -1 then + if SrcIndex > 0 then begin + D[DestIndex] := Ch; + Inc(DestIndex); + end + else Result := False; - SetLength(D, 0); - Exit; - end; - - D[DestIndex] := Ch; - Inc(DestIndex); end; - SetLength(D, DestIndex); // now fix up length + if Result then + SetLength(D, DestIndex) // now fix up length + else + SetLength(D, 0); end; end; @@ -2369,12 +2378,13 @@ if DestIndex = -1 then begin Result := False; - D := ''; - Exit; + Break; end; end; - - SetLength(D, DestIndex - 1); // set to actual length + if Result then + SetLength(D, DestIndex - 1) // set to actual length + else + D := ''; end; end; @@ -2416,20 +2426,21 @@ SrcIndex := 1; DestIndex := 0; - while SrcIndex <= SrcLength do + while (SrcIndex > 0) and (SrcIndex <= SrcLength) do begin Ch := UTF16GetNextChar(S, SrcIndex); - if SrcIndex = -1 then + if SrcIndex > 0 then begin + D[DestIndex] := Ch; + Inc(DestIndex); + end + else Result := False; - SetLength(D, 0); - Exit; - end; - - D[DestIndex] := Ch; - Inc(DestIndex); end; - SetLength(D, DestIndex); // now fix up length + if Result then + SetLength(D, DestIndex) // now fix up length + else + SetLength(D, 0); end; end; @@ -2475,12 +2486,14 @@ if DestIndex = -1 then begin Result := False; - D := ''; - Exit; + Break; end; end; - SetLength(D, DestIndex - 1); // set to actual length + if Result then + SetLength(D, DestIndex - 1) // set to actual length + else + D := ''; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-15 10:26:19
|
Revision: 3478 http://jcl.svn.sourceforge.net/jcl/?rev=3478&view=rev Author: outchy Date: 2011-01-15 10:26:13 +0000 (Sat, 15 Jan 2011) Log Message: ----------- Mantis 5458: TJclSimpleXMLElems.LoadFromStringStream does not test AParent for nil value. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-01-15 10:22:51 UTC (rev 3477) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-01-15 10:26:13 UTC (rev 3478) @@ -2177,7 +2177,7 @@ begin St := ''; lPos := rsWaitingTag; - KeepWhiteSpace := sxoKeepWhitespace in AParent.Options; + KeepWhiteSpace := (AParent <> nil) and (sxoKeepWhitespace in AParent.Options); ContainsText := False; ContainsWhiteSpace := False; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-15 10:22:58
|
Revision: 3477 http://jcl.svn.sourceforge.net/jcl/?rev=3477&view=rev Author: outchy Date: 2011-01-15 10:22:51 +0000 (Sat, 15 Jan 2011) Log Message: ----------- Donation from Tetr?\195?\164m: property and item iterators for for..in loops. Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2011-01-15 10:08:45 UTC (rev 3476) +++ trunk/jcl/source/common/JclSimpleXml.pas 2011-01-15 10:22:51 UTC (rev 3477) @@ -19,6 +19,7 @@ { Contributor(s): } { Christophe Paris, } { Florent Ouchet (move from the JVCL to the JCL) } +{ Tetr\xE4m } { } {**************************************************************************************************} { } @@ -99,6 +100,8 @@ {$ENDIF ~TYPEINFO_ON} TJclSimpleXMLElems = class; TJclSimpleXMLProps = class; + TJclSimpleXMLElemsProlog = class; + TJclSimpleXMLNamedElems = class; TJclSimpleXMLElemComment = class; TJclSimpleXMLElemClassic = class; TJclSimpleXMLElemCData = class; @@ -140,6 +143,19 @@ property Parent: TJclSimpleXMLProps read FParent write FParent; end; + {$IFDEF SUPPORTS_FOR_IN} + TJclSimpleXMLPropsEnumerator = class + private + FIndex: Integer; + FList: TJclSimpleXMLProps; + public + constructor Create(AList: TJclSimpleXMLProps); + function GetCurrent: TJclSimpleXMLProp; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + function MoveNext: Boolean; + property Current: TJclSimpleXMLProp read GetCurrent; + end; + {$ENDIF SUPPORTS_FOR_IN} + TJclSimpleXMLProps = class(TObject) private FProperties: THashedStringList; @@ -168,6 +184,9 @@ procedure Clear; virtual; procedure Delete(const Index: Integer); overload; procedure Delete(const Name: string); overload; + {$IFDEF SUPPORTS_FOR_IN} + function GetEnumerator: TJclSimpleXMLPropsEnumerator; + {$ENDIF SUPPORTS_FOR_IN} function Value(const Name: string; const Default: string = ''): string; function IntValue(const Name: string; const Default: Int64 = -1): Int64; function BoolValue(const Name: string; Default: Boolean = True): Boolean; @@ -179,6 +198,19 @@ property Count: Integer read GetCount; end; + {$IFDEF SUPPORTS_FOR_IN} + TJclSimpleXMLElemsPrologEnumerator = class + private + FIndex: Integer; + FList: TJclSimpleXMLElemsProlog; + public + constructor Create(AList: TJclSimpleXMLElemsProlog); + function GetCurrent: TJclSimpleXMLElem; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + function MoveNext: Boolean; + property Current: TJclSimpleXMLElem read GetCurrent; + end; + {$ENDIF SUPPORTS_FOR_IN} + TJclSimpleXMLElemsProlog = class(TObject) private FElems: THashedStringList; @@ -204,6 +236,9 @@ function AddMSOApplication(const AProgId : string): TJclSimpleXMLElemMSOApplication; procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); procedure SaveToStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); + {$IFDEF SUPPORTS_FOR_IN} + function GetEnumerator: TJclSimpleXMLElemsPrologEnumerator; + {$ENDIF SUPPORTS_FOR_IN} property Item[const Index: Integer]: TJclSimpleXMLElem read GetItem; default; property Count: Integer read GetCount; property Encoding: string read GetEncoding write SetEncoding; @@ -211,6 +246,19 @@ property Version: string read GetVersion write SetVersion; end; + {$IFDEF SUPPORTS_FOR_IN} + TJclSimpleXMLNamedElemsEnumerator = class + private + FIndex: Integer; + FList: TJclSimpleXMLNamedElems; + public + constructor Create(AList: TJclSimpleXMLNamedElems); + function GetCurrent: TJclSimpleXMLElem; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + function MoveNext: Boolean; + property Current: TJclSimpleXMLElem read GetCurrent; + end; + {$ENDIF SUPPORTS_FOR_IN} + TJclSimpleXMLNamedElems = class(TObject) private FElems: TJclSimpleXMLElems; @@ -237,6 +285,9 @@ procedure Move(const CurIndex, NewIndex: Integer); function IndexOf(const Value: TJclSimpleXMLElem): Integer; overload; function IndexOf(const Value: string): Integer; overload; + {$IFDEF SUPPORTS_FOR_IN} + function GetEnumerator: TJclSimpleXMLNamedElemsEnumerator; + {$ENDIF SUPPORTS_FOR_IN} property Elems: TJclSimpleXMLElems read FElems; property Item[const Index: Integer]: TJclSimpleXMLElem read GetItem; default; @@ -244,6 +295,19 @@ property Name: string read FName; end; + {$IFDEF SUPPORTS_FOR_IN} + TJclSimpleXMLElemsEnumerator = class + private + FIndex: Integer; + FList: TJclSimpleXMLElems; + public + constructor Create(AList: TJclSimpleXMLElems); + function GetCurrent: TJclSimpleXMLElem; {$IFDEF SUPPORTS_INLINE}inline;{$ENDIF} + function MoveNext: Boolean; + property Current: TJclSimpleXMLElem read GetCurrent; + end; + {$ENDIF SUPPORTS_FOR_IN} + TJclSimpleXMLElemCompare = function(Elems: TJclSimpleXMLElems; Index1, Index2: Integer): Integer of object; TJclSimpleXMLElems = class(TObject) private @@ -291,6 +355,9 @@ procedure Delete(const Name: string); overload; function Remove(Value: TJclSimpleXMLElem): Integer; procedure Move(const CurIndex, NewIndex: Integer); + {$IFDEF SUPPORTS_FOR_IN} + function GetEnumerator: TJclSimpleXMLElemsEnumerator; + {$ENDIF SUPPORTS_FOR_IN} function IndexOf(const Value: TJclSimpleXMLElem): Integer; overload; function IndexOf(const Name: string): Integer; overload; function Value(const Name: string; const Default: string = ''): string; @@ -1555,6 +1622,29 @@ end; end; +//=== { TJclSimpleXMLNamedElemsEnumerator } ================================== + +{$IFDEF SUPPORTS_FOR_IN} +constructor TJclSimpleXMLNamedElemsEnumerator.Create(AList: TJclSimpleXMLNamedElems); +begin + inherited Create; + FIndex := -1; + FList := AList; +end; + +function TJclSimpleXMLNamedElemsEnumerator.GetCurrent: TJclSimpleXMLElem; +begin + Result := FList[FIndex]; +end; + +function TJclSimpleXMLNamedElemsEnumerator.MoveNext: Boolean; +begin + Result := FIndex < FList.Count - 1; + if Result then + Inc(FIndex); +end; +{$ENDIF SUPPORTS_FOR_IN} + //=== { TJclSimpleXMLNamedElems } ============================================ constructor TJclSimpleXMLNamedElems.Create(const AOwner: TJClSimpleXMLElems; const AName: string); @@ -1635,6 +1725,13 @@ Result := FItems.Count; end; +{$IFDEF SUPPORTS_FOR_IN} +function TJclSimpleXMLNamedElems.GetEnumerator: TJclSimpleXMLNamedElemsEnumerator; +begin + Result := TJclSimpleXMLNamedElemsEnumerator.Create(Self); +end; +{$ENDIF SUPPORTS_FOR_IN} + function TJclSimpleXMLNamedElems.GetItem(const Index: Integer): TJclSimpleXMLElem; begin if (Index >= 0) then @@ -1688,6 +1785,29 @@ FItems.Move(CurIndex, NewIndex); end; +//=== { TJclSimpleXMLElemsEnumerator } ======================================= + +{$IFDEF SUPPORTS_FOR_IN} +constructor TJclSimpleXMLElemsEnumerator.Create(AList: TJclSimpleXMLElems); +begin + inherited Create; + FIndex := -1; + FList := AList; +end; + +function TJclSimpleXMLElemsEnumerator.GetCurrent: TJclSimpleXMLElem; +begin + Result := FList[FIndex]; +end; + +function TJclSimpleXMLElemsEnumerator.MoveNext: Boolean; +begin + Result := FIndex < FList.Count - 1; + if Result then + Inc(FIndex); +end; +{$ENDIF SUPPORTS_FOR_IN} + //=== { TJclSimpleXMLElems } ================================================= function TJclSimpleXMLElems.Add(const Name: string): TJclSimpleXMLElemClassic; @@ -1975,6 +2095,13 @@ Result := FElems.Count; end; +{$IFDEF SUPPORTS_FOR_IN} +function TJclSimpleXMLElems.GetEnumerator: TJclSimpleXMLElemsEnumerator; +begin + Result := TJclSimpleXMLElemsEnumerator.Create(Self); +end; +{$ENDIF SUPPORTS_FOR_IN} + function TJclSimpleXMLElems.GetItem(const Index: Integer): TJclSimpleXMLElem; begin if (FElems = nil) or (Index > FElems.Count) then @@ -2303,6 +2430,29 @@ FElems.Sort; end; +//=== { TJclSimpleXMLPropsEnumerator } ======================================= + +{$IFDEF SUPPORTS_FOR_IN} +constructor TJclSimpleXMLPropsEnumerator.Create(AList: TJclSimpleXMLProps); +begin + inherited Create; + FIndex := -1; + FList := AList; +end; + +function TJclSimpleXMLPropsEnumerator.GetCurrent: TJclSimpleXMLProp; +begin + Result := FList[FIndex]; +end; + +function TJclSimpleXMLPropsEnumerator.MoveNext: Boolean; +begin + Result := FIndex < FList.Count - 1; + if Result then + Inc(FIndex); +end; +{$ENDIF SUPPORTS_FOR_IN} + //=== { TJclSimpleXMLProps } ================================================= function TJclSimpleXMLProps.Add(const Name, Value: string): TJclSimpleXMLProp; @@ -2460,6 +2610,13 @@ Result := FProperties.Count; end; +{$IFDEF SUPPORTS_FOR_IN} +function TJclSimpleXMLProps.GetEnumerator: TJclSimpleXMLPropsEnumerator; +begin + Result := TJclSimpleXMLPropsEnumerator.Create(Self); +end; +{$ENDIF SUPPORTS_FOR_IN} + function TJclSimpleXMLProps.GetItem(const Index: Integer): TJclSimpleXMLProp; begin if FProperties <> nil then @@ -3410,6 +3567,29 @@ AParent.DoSaveProgress; end; +//=== { TJclSimpleXMLElemsPrologEnumerator } ================================= + +{$IFDEF SUPPORTS_FOR_IN} +constructor TJclSimpleXMLElemsPrologEnumerator.Create(AList: TJclSimpleXMLElemsProlog); +begin + inherited Create; + FIndex := -1; + FList := AList; +end; + +function TJclSimpleXMLElemsPrologEnumerator.GetCurrent: TJclSimpleXMLElem; +begin + Result := FList[FIndex]; +end; + +function TJclSimpleXMLElemsPrologEnumerator.MoveNext: Boolean; +begin + Result := FIndex < FList.Count - 1; + if Result then + Inc(FIndex); +end; +{$ENDIF SUPPORTS_FOR_IN} + //=== { TJclSimpleXMLElemsProlog } =========================================== constructor TJclSimpleXMLElemsProlog.Create; @@ -3813,6 +3993,13 @@ Result := 'UTF-8'; end; +{$IFDEF SUPPORTS_FOR_IN} +function TJclSimpleXMLElemsProlog.GetEnumerator: TJclSimpleXMLElemsPrologEnumerator; +begin + Result := TJclSimpleXMLElemsPrologEnumerator.Create(Self); +end; +{$ENDIF SUPPORTS_FOR_IN} + function TJclSimpleXMLElemsProlog.GetStandAlone: Boolean; var Elem: TJclSimpleXMLElemHeader; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-15 10:08:52
|
Revision: 3476 http://jcl.svn.sourceforge.net/jcl/?rev=3476&view=rev Author: outchy Date: 2011-01-15 10:08:45 +0000 (Sat, 15 Jan 2011) Log Message: ----------- some new string index, prefix and suffix functions. Modified Paths: -------------- trunk/jcl/source/common/JclAnsiStrings.pas trunk/jcl/source/common/JclStrings.pas Modified: trunk/jcl/source/common/JclAnsiStrings.pas =================================================================== --- trunk/jcl/source/common/JclAnsiStrings.pas 2011-01-13 17:12:07 UTC (rev 3475) +++ trunk/jcl/source/common/JclAnsiStrings.pas 2011-01-15 10:08:45 UTC (rev 3476) @@ -386,10 +386,15 @@ function StrRepeatChar(C: AnsiChar; Count: SizeInt): AnsiString; function StrFind(const Substr, S: AnsiString; const Index: SizeInt = 1): SizeInt; function StrHasPrefix(const S: AnsiString; const Prefixes: array of AnsiString): Boolean; -function StrIndex(const S: AnsiString; const List: array of AnsiString): SizeInt; +function StrHasSuffix(const S: AnsiString; const Suffixes: array of AnsiString): Boolean; +function StrIHasPrefix(const S: AnsiString; const Prefixes: array of AnsiString): Boolean; +function StrIHasSuffix(const S: AnsiString; const Suffixes: array of AnsiString): Boolean; +function StrIndex(const S: AnsiString; const List: array of AnsiString; CaseSensitive: Boolean = False): SizeInt; function StrILastPos(const SubStr, S: AnsiString): SizeInt; function StrIPos(const SubStr, S: AnsiString): SizeInt; +function StrIPrefixIndex(const S: AnsiString; const Prefixes: array of AnsiString): SizeInt; function StrIsOneOf(const S: AnsiString; const List: array of AnsiString): Boolean; +function StrISuffixIndex(const S: AnsiString; const Suffixes: array of AnsiString): SizeInt; function StrLastPos(const SubStr, S: AnsiString): SizeInt; function StrMatch(const Substr, S: AnsiString; Index: SizeInt = 1): SizeInt; function StrMatches(const Substr, S: AnsiString; const Index: SizeInt = 1): Boolean; @@ -397,6 +402,7 @@ function StrNPos(const S, SubStr: AnsiString; N: SizeInt): SizeInt; function StrPrefixIndex(const S: AnsiString; const Prefixes: array of AnsiString): SizeInt; function StrSearch(const Substr, S: AnsiString; const Index: SizeInt = 1): SizeInt; +function StrSuffixIndex(const S: AnsiString; const Suffixes: array of AnsiString): SizeInt; // String Extraction function StrAfter(const SubStr, S: AnsiString): AnsiString; @@ -2568,14 +2574,29 @@ Result := StrPrefixIndex(S, Prefixes) > -1; end; -function StrIndex(const S: AnsiString; const List: array of AnsiString): SizeInt; +function StrHasSuffix(const S: AnsiString; const Suffixes: array of AnsiString): Boolean; +begin + Result := StrSuffixIndex(S, Suffixes) > -1; +end; + +function StrIHasPrefix(const S: AnsiString; const Prefixes: array of AnsiString): Boolean; +begin + Result := StrIPrefixIndex(S, Prefixes) > -1; +end; + +function StrIHasSuffix(const S: AnsiString; const Suffixes: array of AnsiString): Boolean; +begin + Result := StrISuffixIndex(S, Suffixes) > -1; +end; + +function StrIndex(const S: AnsiString; const List: array of AnsiString; CaseSensitive: Boolean): SizeInt; var I: SizeInt; begin Result := -1; for I := Low(List) to High(List) do begin - if StrSame(S, List[I]) then + if StrCompare(S, List[I], CaseSensitive) = 0 then begin Result := I; Break; @@ -2593,11 +2614,45 @@ Result := Pos(StrUpper(SubStr), StrUpper(S)); end; +function StrIPrefixIndex(const S: AnsiString; const Prefixes: array of AnsiString): SizeInt; +var + I: SizeInt; + Test: AnsiString; +begin + Result := -1; + for I := Low(Prefixes) to High(Prefixes) do + begin + Test := StrLeft(S, Length(Prefixes[I])); + if CompareText(Test, Prefixes[I]) = 0 then + begin + Result := I; + Break; + end; + end; +end; + function StrIsOneOf(const S: AnsiString; const List: array of AnsiString): Boolean; begin Result := StrIndex(S, List) > -1; end; +function StrISuffixIndex(const S: AnsiString; const Suffixes: array of AnsiString): SizeInt; +var + I: SizeInt; + Test: AnsiString; +begin + Result := -1; + for I := Low(Suffixes) to High(Suffixes) do + begin + Test := StrRight(S, Length(Suffixes[I])); + if CompareText(Test, Suffixes[I]) = 0 then + begin + Result := I; + Break; + end; + end; +end; + function StrLastPos(const SubStr, S: AnsiString): SizeInt; var Last, Current: PAnsiChar; @@ -2832,7 +2887,7 @@ for I := Low(Prefixes) to High(Prefixes) do begin Test := StrLeft(S, Length(Prefixes[I])); - if StrSame(Test, Prefixes[I]) then + if CompareStr(Test, Prefixes[I]) = 0 then begin Result := I; Break; @@ -2863,6 +2918,23 @@ Result := 0; end; +function StrSuffixIndex(const S: AnsiString; const Suffixes: array of AnsiString): SizeInt; +var + I: SizeInt; + Test: AnsiString; +begin + Result := -1; + for I := Low(Suffixes) to High(Suffixes) do + begin + Test := StrRight(S, Length(Suffixes[I])); + if CompareStr(Test, Suffixes[I]) = 0 then + begin + Result := I; + Break; + end; + end; +end; + //=== String Extraction ====================================================== function StrAfter(const SubStr, S: AnsiString): AnsiString; Modified: trunk/jcl/source/common/JclStrings.pas =================================================================== --- trunk/jcl/source/common/JclStrings.pas 2011-01-13 17:12:07 UTC (rev 3475) +++ trunk/jcl/source/common/JclStrings.pas 2011-01-15 10:08:45 UTC (rev 3476) @@ -249,12 +249,15 @@ function StrRepeatChar(C: Char; Count: SizeInt): string; function StrFind(const Substr, S: string; const Index: SizeInt = 1): SizeInt; function StrHasPrefix(const S: string; const Prefixes: array of string): Boolean; +function StrHasSuffix(const S: string; const Suffixes: array of string): Boolean; function StrIndex(const S: string; const List: array of string; CaseSensitive: Boolean = False): SizeInt; function StrIHasPrefix(const S: string; const Prefixes: array of string): Boolean; +function StrIHasSuffix(const S: string; const Suffixes: array of string): Boolean; function StrILastPos(const SubStr, S: string): SizeInt; function StrIPos(const SubStr, S: string): SizeInt; function StrIPrefixIndex(const S: string; const Prefixes: array of string): SizeInt; function StrIsOneOf(const S: string; const List: array of string): Boolean; +function StrISuffixIndex(const S: string; const Suffixes: array of string): SizeInt; function StrLastPos(const SubStr, S: string): SizeInt; function StrMatch(const Substr, S: string; Index: SizeInt = 1): SizeInt; function StrMatches(const Substr, S: string; const Index: SizeInt = 1): Boolean; @@ -262,6 +265,7 @@ function StrNPos(const S, SubStr: string; N: SizeInt): SizeInt; function StrPrefixIndex(const S: string; const Prefixes: array of string): SizeInt; function StrSearch(const Substr, S: string; const Index: SizeInt = 1): SizeInt; +function StrSuffixIndex(const S: string; const Suffixes: array of string): SizeInt; // String Extraction function StrAfter(const SubStr, S: string): string; @@ -2314,6 +2318,11 @@ Result := StrPrefixIndex(S, Prefixes) > -1; end; +function StrHasSuffix(const S: string; const Suffixes: array of string): Boolean; +begin + Result := StrSuffixIndex(S, Suffixes) > -1; +end; + function StrIndex(const S: string; const List: array of string; CaseSensitive: Boolean): SizeInt; var I: SizeInt; @@ -2334,6 +2343,11 @@ Result := StrIPrefixIndex(S, Prefixes) > -1; end; +function StrIHasSuffix(const S: string; const Suffixes: array of string): Boolean; +begin + Result := StrISuffixIndex(S, Suffixes) > -1; +end; + function StrILastPos(const SubStr, S: string): SizeInt; begin Result := StrLastPos(StrUpper(SubStr), StrUpper(S)); @@ -2366,6 +2380,23 @@ Result := StrIndex(S, List) > -1; end; +function StrISuffixIndex(const S: string; const Suffixes: array of string): SizeInt; +var + I: SizeInt; + Test: string; +begin + Result := -1; + for I := Low(Suffixes) to High(Suffixes) do + begin + Test := StrRight(S, Length(Suffixes[I])); + if CompareText(Test, Suffixes[I]) = 0 then + begin + Result := I; + Break; + end; + end; +end; + function StrLastPos(const SubStr, S: string): SizeInt; var Last, Current: PChar; @@ -2629,6 +2660,23 @@ Result := 0; end; +function StrSuffixIndex(const S: string; const Suffixes: array of string): SizeInt; +var + I: SizeInt; + Test: string; +begin + Result := -1; + for I := Low(Suffixes) to High(Suffixes) do + begin + Test := StrRight(S, Length(Suffixes[I])); + if CompareStr(Test, Suffixes[I]) = 0 then + begin + Result := I; + Break; + end; + end; +end; + //=== String Extraction ====================================================== function StrAfter(const SubStr, S: string): string; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-13 17:12:13
|
Revision: 3475 http://jcl.svn.sourceforge.net/jcl/?rev=3475&view=rev Author: outchy Date: 2011-01-13 17:12:07 +0000 (Thu, 13 Jan 2011) Log Message: ----------- new tag for JCL 2.2.1.3970. This tag will be updated each time a new JCL is released, it will always contain the latest stable version of the JCL (useful for externals imports). Added Paths: ----------- tags/JCL-Latest/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-13 16:57:32
|
Revision: 3474 http://jcl.svn.sourceforge.net/jcl/?rev=3474&view=rev Author: outchy Date: 2011-01-13 16:57:24 +0000 (Thu, 13 Jan 2011) Log Message: ----------- regenerated after revision 3473. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3473&view=rev Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.RES trunk/jcl/packages/c6/JclBaseExpert.res trunk/jcl/packages/c6/JclContainers.res trunk/jcl/packages/c6/JclDebugExpert.RES trunk/jcl/packages/c6/JclDebugExpertDLL.res trunk/jcl/packages/c6/JclDeveloperTools.res trunk/jcl/packages/c6/JclFavoriteFoldersExpert.RES trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/c6/JclProjectAnalysisExpert.RES trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/c6/JclRepositoryExpert.res trunk/jcl/packages/c6/JclRepositoryExpertDLL.res trunk/jcl/packages/c6/JclSIMDViewExpert.res trunk/jcl/packages/c6/JclSIMDViewExpertDLL.res trunk/jcl/packages/c6/JclStackTraceViewerExpert.res trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/c6/JclThreadNameExpert.RES trunk/jcl/packages/c6/JclThreadNameExpertDLL.res trunk/jcl/packages/c6/JclUsesExpert.RES trunk/jcl/packages/c6/JclUsesExpertDLL.res trunk/jcl/packages/c6/JclVcl.RES trunk/jcl/packages/c6/JclVersionControlExpert.res trunk/jcl/packages/c6/JclVersionControlExpertDLL.res trunk/jcl/packages/cs1/Jcl.RES trunk/jcl/packages/cs1/JclBaseExpert.RES trunk/jcl/packages/cs1/JclContainers.res trunk/jcl/packages/cs1/JclDeveloperTools.res trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.RES trunk/jcl/packages/cs1/JclVersionControlExpertDLL.res trunk/jcl/packages/d10/Jcl.res trunk/jcl/packages/d10/JclBaseExpert.res trunk/jcl/packages/d10/JclContainers.res trunk/jcl/packages/d10/JclDebugExpert.res trunk/jcl/packages/d10/JclDebugExpertDLL.res trunk/jcl/packages/d10/JclDeveloperTools.res trunk/jcl/packages/d10/JclFavoriteFoldersExpert.res trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/d10/JclProjectAnalysisExpert.RES trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/d10/JclRepositoryExpert.res trunk/jcl/packages/d10/JclRepositoryExpertDLL.res trunk/jcl/packages/d10/JclSIMDViewExpert.res trunk/jcl/packages/d10/JclSIMDViewExpertDLL.res trunk/jcl/packages/d10/JclStackTraceViewerExpert.res trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d10/JclVcl.res trunk/jcl/packages/d10/JclVersionControlExpert.res trunk/jcl/packages/d10/JclVersionControlExpertDLL.res trunk/jcl/packages/d11/Jcl.res trunk/jcl/packages/d11/JclBaseExpert.res trunk/jcl/packages/d11/JclContainers.res trunk/jcl/packages/d11/JclDebugExpert.res trunk/jcl/packages/d11/JclDebugExpertDLL.res trunk/jcl/packages/d11/JclDeveloperTools.res trunk/jcl/packages/d11/JclFavoriteFoldersExpert.res trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/d11/JclProjectAnalysisExpert.res trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/d11/JclRepositoryExpert.res trunk/jcl/packages/d11/JclRepositoryExpertDLL.res trunk/jcl/packages/d11/JclSIMDViewExpert.res trunk/jcl/packages/d11/JclSIMDViewExpertDLL.res trunk/jcl/packages/d11/JclStackTraceViewerExpert.res trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d11/JclVcl.res trunk/jcl/packages/d11/JclVersionControlExpert.res trunk/jcl/packages/d11/JclVersionControlExpertDLL.res trunk/jcl/packages/d12/Jcl.res trunk/jcl/packages/d12/JclBaseExpert.res trunk/jcl/packages/d12/JclContainers.res trunk/jcl/packages/d12/JclDebugExpert.res trunk/jcl/packages/d12/JclDebugExpertDLL.res trunk/jcl/packages/d12/JclDeveloperTools.res trunk/jcl/packages/d12/JclFavoriteFoldersExpert.res trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/d12/JclProjectAnalysisExpert.res trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/d12/JclRepositoryExpert.res trunk/jcl/packages/d12/JclRepositoryExpertDLL.res trunk/jcl/packages/d12/JclSIMDViewExpert.res trunk/jcl/packages/d12/JclSIMDViewExpertDLL.res trunk/jcl/packages/d12/JclStackTraceViewerExpert.res trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d12/JclVcl.res trunk/jcl/packages/d12/JclVersionControlExpert.res trunk/jcl/packages/d12/JclVersionControlExpertDLL.res trunk/jcl/packages/d14/Jcl.res trunk/jcl/packages/d14/JclBaseExpert.res trunk/jcl/packages/d14/JclContainers.res trunk/jcl/packages/d14/JclDebugExpert.res trunk/jcl/packages/d14/JclDebugExpertDLL.res trunk/jcl/packages/d14/JclDeveloperTools.res trunk/jcl/packages/d14/JclFavoriteFoldersExpert.res trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/d14/JclProjectAnalysisExpert.res trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/d14/JclRepositoryExpert.res trunk/jcl/packages/d14/JclRepositoryExpertDLL.res trunk/jcl/packages/d14/JclSIMDViewExpert.res trunk/jcl/packages/d14/JclSIMDViewExpertDLL.res trunk/jcl/packages/d14/JclStackTraceViewerExpert.res trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d14/JclVcl.res trunk/jcl/packages/d14/JclVersionControlExpert.res trunk/jcl/packages/d14/JclVersionControlExpertDLL.res trunk/jcl/packages/d15/Jcl.res trunk/jcl/packages/d15/JclBaseExpert.res trunk/jcl/packages/d15/JclContainers.res trunk/jcl/packages/d15/JclDebugExpert.res trunk/jcl/packages/d15/JclDebugExpertDLL.res trunk/jcl/packages/d15/JclDeveloperTools.res trunk/jcl/packages/d15/JclFavoriteFoldersExpert.res trunk/jcl/packages/d15/JclFavoriteFoldersExpertDLL.res trunk/jcl/packages/d15/JclProjectAnalysisExpert.res trunk/jcl/packages/d15/JclProjectAnalysisExpertDLL.res trunk/jcl/packages/d15/JclRepositoryExpert.res trunk/jcl/packages/d15/JclRepositoryExpertDLL.res trunk/jcl/packages/d15/JclSIMDViewExpert.res trunk/jcl/packages/d15/JclSIMDViewExpertDLL.res trunk/jcl/packages/d15/JclStackTraceViewerExpert.res trunk/jcl/packages/d15/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d15/JclVcl.res trunk/jcl/packages/d15/JclVersionControlExpert.res trunk/jcl/packages/d15/JclVersionControlExpertDLL.res trunk/jcl/packages/d6/Jcl.res trunk/jcl/packages/d6/JclBaseExpert.res trunk/jcl/packages/d6/JclContainers.res trunk/jcl/packages/d6/JclDebugExpert.res trunk/jcl/packages/d6/JclDebugExpertDLL.RES trunk/jcl/packages/d6/JclDeveloperTools.res trunk/jcl/packages/d6/JclFavoriteFoldersExpert.res trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.RES trunk/jcl/packages/d6/JclProjectAnalysisExpert.RES trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.RES trunk/jcl/packages/d6/JclRepositoryExpert.res trunk/jcl/packages/d6/JclRepositoryExpertDLL.res trunk/jcl/packages/d6/JclSIMDViewExpert.res trunk/jcl/packages/d6/JclSIMDViewExpertDLL.RES trunk/jcl/packages/d6/JclStackTraceViewerExpert.res trunk/jcl/packages/d6/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d6/JclThreadNameExpert.res trunk/jcl/packages/d6/JclThreadNameExpertDLL.RES trunk/jcl/packages/d6/JclUsesExpert.res trunk/jcl/packages/d6/JclUsesExpertDLL.RES trunk/jcl/packages/d6/JclVcl.res trunk/jcl/packages/d6/JclVersionControlExpert.res trunk/jcl/packages/d6/JclVersionControlExpertDLL.res trunk/jcl/packages/d7/Jcl.res trunk/jcl/packages/d7/JclBaseExpert.res trunk/jcl/packages/d7/JclContainers.res trunk/jcl/packages/d7/JclDebugExpert.res trunk/jcl/packages/d7/JclDebugExpertDLL.RES trunk/jcl/packages/d7/JclDeveloperTools.res trunk/jcl/packages/d7/JclFavoriteFoldersExpert.res trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.RES trunk/jcl/packages/d7/JclProjectAnalysisExpert.RES trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.RES trunk/jcl/packages/d7/JclRepositoryExpert.res trunk/jcl/packages/d7/JclRepositoryExpertDLL.res trunk/jcl/packages/d7/JclSIMDViewExpert.res trunk/jcl/packages/d7/JclSIMDViewExpertDLL.RES trunk/jcl/packages/d7/JclStackTraceViewerExpert.res trunk/jcl/packages/d7/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d7/JclUsesExpert.res trunk/jcl/packages/d7/JclUsesExpertDLL.RES trunk/jcl/packages/d7/JclVcl.res trunk/jcl/packages/d7/JclVersionControlExpert.res trunk/jcl/packages/d7/JclVersionControlExpertDLL.res trunk/jcl/packages/d8/Jcl.RES trunk/jcl/packages/d8/JclBaseExpert.RES trunk/jcl/packages/d8/JclContainers.res trunk/jcl/packages/d8/JclDeveloperTools.res trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.RES trunk/jcl/packages/d8/JclVersionControlExpertDLL.res trunk/jcl/packages/d9/Jcl.RES trunk/jcl/packages/d9/JclBaseExpert.res trunk/jcl/packages/d9/JclContainers.res trunk/jcl/packages/d9/JclDebugExpert.RES trunk/jcl/packages/d9/JclDebugExpertDLL.RES trunk/jcl/packages/d9/JclDeveloperTools.res trunk/jcl/packages/d9/JclFavoriteFoldersExpert.res trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.RES trunk/jcl/packages/d9/JclProjectAnalysisExpert.RES trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.RES trunk/jcl/packages/d9/JclRepositoryExpert.res trunk/jcl/packages/d9/JclRepositoryExpertDLL.res trunk/jcl/packages/d9/JclSIMDViewExpertDLL.RES trunk/jcl/packages/d9/JclSimdViewExpert.RES trunk/jcl/packages/d9/JclStackTraceViewerExpert.res trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.res trunk/jcl/packages/d9/JclVcl.RES trunk/jcl/packages/d9/JclVersionControlExpert.res trunk/jcl/packages/d9/JclVersionControlExpertDLL.res Modified: trunk/jcl/packages/c6/Jcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclDebugExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclThreadNameExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclThreadNameExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclUsesExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclUsesExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclVcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/c6/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/Jcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/JclBaseExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/cs1/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d10/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclProjectAnalysisExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclProjectAnalysisExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclProjectAnalysisExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d14/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclProjectAnalysisExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d15/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclDebugExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclSIMDViewExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclThreadNameExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclThreadNameExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclUsesExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclUsesExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/Jcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclDebugExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclDebugExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclSIMDViewExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclUsesExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclUsesExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/Jcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/JclBaseExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d8/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/Jcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclBaseExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclDebugExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclDebugExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclFavoriteFoldersExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclSIMDViewExpertDLL.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclSimdViewExpert.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclVcl.RES =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d9/JclVersionControlExpertDLL.res =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-13 16:52:59
|
Revision: 3473 http://jcl.svn.sourceforge.net/jcl/?rev=3473&view=rev Author: outchy Date: 2011-01-13 16:52:47 +0000 (Thu, 13 Jan 2011) Log Message: ----------- copyright update. Modified Paths: -------------- trunk/jcl/devtools/pgEdit.xml trunk/jcl/packages/c6/Jcl.rc trunk/jcl/packages/c6/JclBaseExpert.rc trunk/jcl/packages/c6/JclContainers.rc trunk/jcl/packages/c6/JclDebugExpert.rc trunk/jcl/packages/c6/JclDebugExpertDLL.rc trunk/jcl/packages/c6/JclDeveloperTools.rc trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/c6/JclRepositoryExpert.rc trunk/jcl/packages/c6/JclRepositoryExpertDLL.rc trunk/jcl/packages/c6/JclSIMDViewExpert.rc trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/c6/JclThreadNameExpert.rc trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc trunk/jcl/packages/c6/JclUsesExpert.rc trunk/jcl/packages/c6/JclUsesExpertDLL.rc trunk/jcl/packages/c6/JclVcl.rc trunk/jcl/packages/c6/JclVersionControlExpert.rc trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc trunk/jcl/packages/c6/template.rc trunk/jcl/packages/cs1/Jcl.bdsproj trunk/jcl/packages/cs1/Jcl.rc trunk/jcl/packages/cs1/JclBaseExpert.bdsproj trunk/jcl/packages/cs1/JclBaseExpert.rc trunk/jcl/packages/cs1/JclContainers.bdsproj trunk/jcl/packages/cs1/JclContainers.rc trunk/jcl/packages/cs1/JclDeveloperTools.bdsproj trunk/jcl/packages/cs1/JclDeveloperTools.rc trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc trunk/jcl/packages/cs1/template.bdsproj trunk/jcl/packages/cs1/template.rc trunk/jcl/packages/d10/Jcl.bdsproj trunk/jcl/packages/d10/Jcl.rc trunk/jcl/packages/d10/JclBaseExpert.bdsproj trunk/jcl/packages/d10/JclBaseExpert.rc trunk/jcl/packages/d10/JclContainers.bdsproj trunk/jcl/packages/d10/JclContainers.rc trunk/jcl/packages/d10/JclDebugExpert.bdsproj trunk/jcl/packages/d10/JclDebugExpert.rc trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj trunk/jcl/packages/d10/JclDebugExpertDLL.rc trunk/jcl/packages/d10/JclDeveloperTools.bdsproj trunk/jcl/packages/d10/JclDeveloperTools.rc trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d10/JclProjectAnalysisExpert.bdsproj trunk/jcl/packages/d10/JclProjectAnalysisExpert.rc trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.bdsproj trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj trunk/jcl/packages/d10/JclRepositoryExpert.rc trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj trunk/jcl/packages/d10/JclRepositoryExpertDLL.rc trunk/jcl/packages/d10/JclSIMDViewExpert.bdsproj trunk/jcl/packages/d10/JclSIMDViewExpert.rc trunk/jcl/packages/d10/JclSIMDViewExpertDLL.bdsproj trunk/jcl/packages/d10/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d10/JclStackTraceViewerExpert.bdsproj trunk/jcl/packages/d10/JclStackTraceViewerExpert.rc trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.bdsproj trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d10/JclVcl.bdsproj trunk/jcl/packages/d10/JclVcl.rc trunk/jcl/packages/d10/JclVersionControlExpert.bdsproj trunk/jcl/packages/d10/JclVersionControlExpert.rc trunk/jcl/packages/d10/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d10/JclVersionControlExpertDLL.rc trunk/jcl/packages/d10/template.bdsproj trunk/jcl/packages/d10/template.rc trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d11/Jcl.rc trunk/jcl/packages/d11/JclBaseExpert.dproj trunk/jcl/packages/d11/JclBaseExpert.rc trunk/jcl/packages/d11/JclContainers.dproj trunk/jcl/packages/d11/JclContainers.rc trunk/jcl/packages/d11/JclDebugExpert.dproj trunk/jcl/packages/d11/JclDebugExpert.rc trunk/jcl/packages/d11/JclDebugExpertDLL.dproj trunk/jcl/packages/d11/JclDebugExpertDLL.rc trunk/jcl/packages/d11/JclDeveloperTools.dproj trunk/jcl/packages/d11/JclDeveloperTools.rc trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d11/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d11/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d11/JclProjectAnalysisExpert.rc trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d11/JclRepositoryExpert.dproj trunk/jcl/packages/d11/JclRepositoryExpert.rc trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d11/JclRepositoryExpertDLL.rc trunk/jcl/packages/d11/JclSIMDViewExpert.dproj trunk/jcl/packages/d11/JclSIMDViewExpert.rc trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d11/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d11/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d11/JclStackTraceViewerExpert.rc trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d11/JclVcl.dproj trunk/jcl/packages/d11/JclVcl.rc trunk/jcl/packages/d11/JclVersionControlExpert.dproj trunk/jcl/packages/d11/JclVersionControlExpert.rc trunk/jcl/packages/d11/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d11/JclVersionControlExpertDLL.rc trunk/jcl/packages/d11/template.dproj trunk/jcl/packages/d11/template.rc trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d12/Jcl.rc trunk/jcl/packages/d12/JclBaseExpert.dproj trunk/jcl/packages/d12/JclBaseExpert.rc trunk/jcl/packages/d12/JclContainers.dproj trunk/jcl/packages/d12/JclContainers.rc trunk/jcl/packages/d12/JclDebugExpert.dproj trunk/jcl/packages/d12/JclDebugExpert.rc trunk/jcl/packages/d12/JclDebugExpertDLL.dproj trunk/jcl/packages/d12/JclDebugExpertDLL.rc trunk/jcl/packages/d12/JclDeveloperTools.dproj trunk/jcl/packages/d12/JclDeveloperTools.rc trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d12/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d12/JclProjectAnalysisExpert.rc trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d12/JclRepositoryExpert.dproj trunk/jcl/packages/d12/JclRepositoryExpert.rc trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d12/JclRepositoryExpertDLL.rc trunk/jcl/packages/d12/JclSIMDViewExpert.dproj trunk/jcl/packages/d12/JclSIMDViewExpert.rc trunk/jcl/packages/d12/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d12/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d12/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d12/JclStackTraceViewerExpert.rc trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d12/JclVcl.dproj trunk/jcl/packages/d12/JclVcl.rc trunk/jcl/packages/d12/JclVersionControlExpert.dproj trunk/jcl/packages/d12/JclVersionControlExpert.rc trunk/jcl/packages/d12/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d12/JclVersionControlExpertDLL.rc trunk/jcl/packages/d12/template.dproj trunk/jcl/packages/d12/template.rc trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d14/Jcl.rc trunk/jcl/packages/d14/JclBaseExpert.dproj trunk/jcl/packages/d14/JclBaseExpert.rc trunk/jcl/packages/d14/JclContainers.dproj trunk/jcl/packages/d14/JclContainers.rc trunk/jcl/packages/d14/JclDebugExpert.dproj trunk/jcl/packages/d14/JclDebugExpert.rc trunk/jcl/packages/d14/JclDebugExpertDLL.dproj trunk/jcl/packages/d14/JclDebugExpertDLL.rc trunk/jcl/packages/d14/JclDeveloperTools.dproj trunk/jcl/packages/d14/JclDeveloperTools.rc trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d14/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d14/JclProjectAnalysisExpert.rc trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d14/JclRepositoryExpert.dproj trunk/jcl/packages/d14/JclRepositoryExpert.rc trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d14/JclRepositoryExpertDLL.rc trunk/jcl/packages/d14/JclSIMDViewExpert.dproj trunk/jcl/packages/d14/JclSIMDViewExpert.rc trunk/jcl/packages/d14/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d14/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d14/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d14/JclStackTraceViewerExpert.rc trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d14/JclVcl.dproj trunk/jcl/packages/d14/JclVcl.rc trunk/jcl/packages/d14/JclVersionControlExpert.dproj trunk/jcl/packages/d14/JclVersionControlExpert.rc trunk/jcl/packages/d14/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d14/JclVersionControlExpertDLL.rc trunk/jcl/packages/d14/template.dproj trunk/jcl/packages/d14/template.rc trunk/jcl/packages/d15/Jcl.dproj trunk/jcl/packages/d15/Jcl.rc trunk/jcl/packages/d15/JclBaseExpert.dproj trunk/jcl/packages/d15/JclBaseExpert.rc trunk/jcl/packages/d15/JclContainers.dproj trunk/jcl/packages/d15/JclContainers.rc trunk/jcl/packages/d15/JclDebugExpert.dproj trunk/jcl/packages/d15/JclDebugExpert.rc trunk/jcl/packages/d15/JclDebugExpertDLL.dproj trunk/jcl/packages/d15/JclDebugExpertDLL.rc trunk/jcl/packages/d15/JclDeveloperTools.dproj trunk/jcl/packages/d15/JclDeveloperTools.rc trunk/jcl/packages/d15/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d15/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d15/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d15/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d15/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d15/JclProjectAnalysisExpert.rc trunk/jcl/packages/d15/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d15/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d15/JclRepositoryExpert.dproj trunk/jcl/packages/d15/JclRepositoryExpert.rc trunk/jcl/packages/d15/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d15/JclRepositoryExpertDLL.rc trunk/jcl/packages/d15/JclSIMDViewExpert.dproj trunk/jcl/packages/d15/JclSIMDViewExpert.rc trunk/jcl/packages/d15/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d15/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d15/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d15/JclStackTraceViewerExpert.rc trunk/jcl/packages/d15/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d15/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d15/JclVcl.dproj trunk/jcl/packages/d15/JclVcl.rc trunk/jcl/packages/d15/JclVersionControlExpert.dproj trunk/jcl/packages/d15/JclVersionControlExpert.rc trunk/jcl/packages/d15/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d15/JclVersionControlExpertDLL.rc trunk/jcl/packages/d15/template.dproj trunk/jcl/packages/d15/template.rc trunk/jcl/packages/d6/Jcl.rc trunk/jcl/packages/d6/JclBaseExpert.rc trunk/jcl/packages/d6/JclContainers.rc trunk/jcl/packages/d6/JclDebugExpert.rc trunk/jcl/packages/d6/JclDebugExpertDLL.rc trunk/jcl/packages/d6/JclDeveloperTools.rc trunk/jcl/packages/d6/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d6/JclProjectAnalysisExpert.rc trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d6/JclRepositoryExpert.rc trunk/jcl/packages/d6/JclRepositoryExpertDLL.rc trunk/jcl/packages/d6/JclSIMDViewExpert.rc trunk/jcl/packages/d6/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d6/JclStackTraceViewerExpert.rc trunk/jcl/packages/d6/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d6/JclThreadNameExpert.rc trunk/jcl/packages/d6/JclThreadNameExpertDLL.rc trunk/jcl/packages/d6/JclUsesExpert.rc trunk/jcl/packages/d6/JclUsesExpertDLL.rc trunk/jcl/packages/d6/JclVcl.rc trunk/jcl/packages/d6/JclVersionControlExpert.rc trunk/jcl/packages/d6/JclVersionControlExpertDLL.rc trunk/jcl/packages/d6/template.rc trunk/jcl/packages/d7/Jcl.rc trunk/jcl/packages/d7/JclBaseExpert.rc trunk/jcl/packages/d7/JclContainers.rc trunk/jcl/packages/d7/JclDebugExpert.rc trunk/jcl/packages/d7/JclDebugExpertDLL.rc trunk/jcl/packages/d7/JclDeveloperTools.rc trunk/jcl/packages/d7/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d7/JclProjectAnalysisExpert.rc trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d7/JclRepositoryExpert.rc trunk/jcl/packages/d7/JclRepositoryExpertDLL.rc trunk/jcl/packages/d7/JclSIMDViewExpert.rc trunk/jcl/packages/d7/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d7/JclStackTraceViewerExpert.rc trunk/jcl/packages/d7/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d7/JclUsesExpert.rc trunk/jcl/packages/d7/JclUsesExpertDLL.rc trunk/jcl/packages/d7/JclVcl.rc trunk/jcl/packages/d7/JclVersionControlExpert.rc trunk/jcl/packages/d7/JclVersionControlExpertDLL.rc trunk/jcl/packages/d7/template.rc trunk/jcl/packages/d8/Jcl.bdsproj trunk/jcl/packages/d8/Jcl.rc trunk/jcl/packages/d8/JclBaseExpert.bdsproj trunk/jcl/packages/d8/JclBaseExpert.rc trunk/jcl/packages/d8/JclContainers.bdsproj trunk/jcl/packages/d8/JclContainers.rc trunk/jcl/packages/d8/JclDeveloperTools.bdsproj trunk/jcl/packages/d8/JclDeveloperTools.rc trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d8/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d8/JclVersionControlExpertDLL.rc trunk/jcl/packages/d8/template.bdsproj trunk/jcl/packages/d8/template.rc trunk/jcl/packages/d9/Jcl.bdsproj trunk/jcl/packages/d9/Jcl.rc trunk/jcl/packages/d9/JclBaseExpert.bdsproj trunk/jcl/packages/d9/JclBaseExpert.rc trunk/jcl/packages/d9/JclContainers.bdsproj trunk/jcl/packages/d9/JclContainers.rc trunk/jcl/packages/d9/JclDebugExpert.bdsproj trunk/jcl/packages/d9/JclDebugExpert.rc trunk/jcl/packages/d9/JclDebugExpertDLL.bdsproj trunk/jcl/packages/d9/JclDebugExpertDLL.rc trunk/jcl/packages/d9/JclDeveloperTools.bdsproj trunk/jcl/packages/d9/JclDeveloperTools.rc trunk/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpert.rc trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.rc trunk/jcl/packages/d9/JclProjectAnalysisExpert.bdsproj trunk/jcl/packages/d9/JclProjectAnalysisExpert.rc trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.bdsproj trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.rc trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj trunk/jcl/packages/d9/JclRepositoryExpert.rc trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj trunk/jcl/packages/d9/JclRepositoryExpertDLL.rc trunk/jcl/packages/d9/JclSIMDViewExpert.bdsproj trunk/jcl/packages/d9/JclSIMDViewExpert.rc trunk/jcl/packages/d9/JclSIMDViewExpertDLL.bdsproj trunk/jcl/packages/d9/JclSIMDViewExpertDLL.rc trunk/jcl/packages/d9/JclStackTraceViewerExpert.bdsproj trunk/jcl/packages/d9/JclStackTraceViewerExpert.rc trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.bdsproj trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/d9/JclVcl.bdsproj trunk/jcl/packages/d9/JclVcl.rc trunk/jcl/packages/d9/JclVersionControlExpert.bdsproj trunk/jcl/packages/d9/JclVersionControlExpert.rc trunk/jcl/packages/d9/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d9/JclVersionControlExpertDLL.rc trunk/jcl/packages/d9/template.bdsproj trunk/jcl/packages/d9/template.rc trunk/jcl/packages/fpc/Jcl.lpk trunk/jcl/packages/fpc/JclContainers.lpk trunk/jcl/packages/fpc/JclDeveloperTools.lpk trunk/jcl/packages/fpc/template.lpk Modified: trunk/jcl/devtools/pgEdit.xml =================================================================== --- trunk/jcl/devtools/pgEdit.xml 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/devtools/pgEdit.xml 2011-01-13 16:52:47 UTC (rev 3473) @@ -100,6 +100,7 @@ <ProjectProperty name="VersionMinorNumber" value="3"/> <ProjectProperty name="ReleaseNumber" value="0"/> <ProjectProperty name="BuildNumber" value="3847"/> + <ProjectProperty name="Copyright" value="Copyright (C) 1999, 2011 Project JEDI"/> </ProjectProperties> </Model> </models> Modified: trunk/jcl/packages/c6/Jcl.rc =================================================================== --- trunk/jcl/packages/c6/Jcl.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/Jcl.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library RTL package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "Jcl\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclBaseExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclBaseExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclBaseExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Package containing common units for JCL Experts\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclBaseExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclBaseExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclContainers.rc =================================================================== --- trunk/jcl/packages/c6/JclContainers.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclContainers.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library Containers package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclContainers\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclContainersC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclDebugExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclDebugExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclDebugExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug IDE extension\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDebugExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclDebugExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclDebugExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclDebugExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug IDE extension\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDebugExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclDeveloperTools.rc =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclDeveloperTools.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library Developer Tools package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDeveloperTools\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDeveloperToolsC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Open and Save IDE dialogs with favorite folders\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclFavoriteFoldersExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclFavoriteFoldersExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Open and Save IDE dialogs with favorite folders\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclFavoriteFoldersExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclFavoriteFoldersExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Project Analyzer\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclProjectAnalysisExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclProjectAnalysisExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Project Analyzer\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclProjectAnalysisExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclProjectAnalysisExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclRepositoryExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclRepositoryExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Package containing repository wizards\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclRepositoryExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclRepositoryExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Package containing repository wizards\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclRepositoryExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclRepositoryExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclSIMDViewExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclSIMDViewExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug Window of XMM registers\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclSIMDViewExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclSIMDViewExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug Window of XMM registers\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclSIMDViewExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclSIMDViewExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Stack Trace Viewer\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclStackTraceViewerExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclStackTraceViewerExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Stack Trace Viewer\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclStackTraceViewerExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclStackTraceViewerExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclThreadNameExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclThreadNameExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclThreadNameExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Thread Name IDE expert\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclThreadNameExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclThreadNameExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Thread Name IDE expert\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclThreadNameExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclThreadNameExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclUsesExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclUsesExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclUsesExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Uses Wizard\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclUsesExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclUsesExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclUsesExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclUsesExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclUsesExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Uses Wizard\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclUsesExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclUsesExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclVcl.rc =================================================================== --- trunk/jcl/packages/c6/JclVcl.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclVcl.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library VCL package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclVcl\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclVclC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclVersionControlExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclVersionControlExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclVersionControlExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Integration of version control systems in the IDE\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclVersionControlExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclVersionControlExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Integration of version control systems in the IDE\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclVersionControlExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclVersionControlExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/c6/template.rc =================================================================== --- trunk/jcl/packages/c6/template.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/c6/template.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "%DESCRIPTION%\0" VALUE "FileVersion", "%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER%.%RELEASE_NUMBER%.%BUILD_NUMBER%\0" VALUE "InternalName", "%NAME%\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "%COPYRIGHT%\0" VALUE "OriginalFilename", "%NAME%C60%BINEXTENSION%\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER% Build %BUILD_NUMBER%\0" Modified: trunk/jcl/packages/cs1/Jcl.bdsproj =================================================================== --- trunk/jcl/packages/cs1/Jcl.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/Jcl.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JEDI Code Library RTL package</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">Jcl</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">Jcl71.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/Jcl.rc =================================================================== --- trunk/jcl/packages/cs1/Jcl.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/Jcl.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library RTL package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "Jcl\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "Jcl71.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/JclBaseExpert.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclBaseExpert.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclBaseExpert.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JCL Package containing common units for JCL Experts</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclBaseExpert</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclBaseExpert71.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/JclBaseExpert.rc =================================================================== --- trunk/jcl/packages/cs1/JclBaseExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclBaseExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Package containing common units for JCL Experts\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclBaseExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclBaseExpert71.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/JclContainers.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclContainers.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclContainers.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JEDI Code Library Containers package</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclContainers</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclContainers71.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/JclContainers.rc =================================================================== --- trunk/jcl/packages/cs1/JclContainers.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclContainers.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library Containers package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclContainers\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclContainers71.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/JclDeveloperTools.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclDeveloperTools.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclDeveloperTools.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JEDI Code Library Developer Tools package</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclDeveloperTools</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclDeveloperTools71.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/JclDeveloperTools.rc =================================================================== --- trunk/jcl/packages/cs1/JclDeveloperTools.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclDeveloperTools.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library Developer Tools package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDeveloperTools\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDeveloperTools71.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JCL Open and Save IDE dialogs with favorite folders</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclFavoriteFoldersExpertDLL</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclFavoriteFoldersExpertDLL71.dll</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc =================================================================== --- trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Open and Save IDE dialogs with favorite folders\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclFavoriteFoldersExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclFavoriteFoldersExpertDLL71.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">JCL Integration of version control systems in the IDE</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclVersionControlExpertDLL</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclVersionControlExpertDLL71.dll</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc =================================================================== --- trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Integration of version control systems in the IDE\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclVersionControlExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclVersionControlExpertDLL71.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/cs1/template.bdsproj =================================================================== --- trunk/jcl/packages/cs1/template.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/template.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -164,7 +164,7 @@ <VersionInfoKeys Name="FileDescription">%DESCRIPTION%</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER%.%RELEASE_NUMBER%.%BUILD_NUMBER%</VersionInfoKeys> <VersionInfoKeys Name="InternalName">%NAME%</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">%COPYRIGHT%</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">%NAME%71%BINEXTENSION%</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/cs1/template.rc =================================================================== --- trunk/jcl/packages/cs1/template.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/cs1/template.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "%DESCRIPTION%\0" VALUE "FileVersion", "%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER%.%RELEASE_NUMBER%.%BUILD_NUMBER%\0" VALUE "InternalName", "%NAME%\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "%COPYRIGHT%\0" VALUE "OriginalFilename", "%NAME%71%BINEXTENSION%\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER% Build %BUILD_NUMBER%\0" Modified: trunk/jcl/packages/d10/Jcl.bdsproj =================================================================== --- trunk/jcl/packages/d10/Jcl.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/Jcl.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -153,7 +153,7 @@ <VersionInfoKeys Name="FileDescription">JEDI Code Library RTL package</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">Jcl</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">Jcl100.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/d10/Jcl.rc =================================================================== --- trunk/jcl/packages/d10/Jcl.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/Jcl.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library RTL package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "Jcl\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "Jcl100.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/d10/JclBaseExpert.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclBaseExpert.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclBaseExpert.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -153,7 +153,7 @@ <VersionInfoKeys Name="FileDescription">JCL Package containing common units for JCL Experts</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclBaseExpert</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclBaseExpert100.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/d10/JclBaseExpert.rc =================================================================== --- trunk/jcl/packages/d10/JclBaseExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclBaseExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Package containing common units for JCL Experts\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclBaseExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclBaseExpert100.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/d10/JclContainers.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclContainers.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclContainers.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -153,7 +153,7 @@ <VersionInfoKeys Name="FileDescription">JEDI Code Library Containers package</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclContainers</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclContainers100.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/d10/JclContainers.rc =================================================================== --- trunk/jcl/packages/d10/JclContainers.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclContainers.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JEDI Code Library Containers package\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclContainers\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclContainers100.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/d10/JclDebugExpert.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclDebugExpert.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclDebugExpert.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -153,7 +153,7 @@ <VersionInfoKeys Name="FileDescription">JCL Debug IDE extension</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclDebugExpert</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclDebugExpert100.bpl</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/d10/JclDebugExpert.rc =================================================================== --- trunk/jcl/packages/d10/JclDebugExpert.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclDebugExpert.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug IDE extension\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDebugExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpert100.bpl\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj 2011-01-13 16:52:47 UTC (rev 3473) @@ -153,7 +153,7 @@ <VersionInfoKeys Name="FileDescription">JCL Debug IDE extension</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">2.3.0.3847</VersionInfoKeys> <VersionInfoKeys Name="InternalName">JclDebugExpertDLL</VersionInfoKeys> - <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2009 Project JEDI</VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2011 Project JEDI</VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename">JclDebugExpertDLL100.dll</VersionInfoKeys> <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys> Modified: trunk/jcl/packages/d10/JclDebugExpertDLL.rc =================================================================== --- trunk/jcl/packages/d10/JclDebugExpertDLL.rc 2011-01-13 12:34:32 UTC (rev 3472) +++ trunk/jcl/packages/d10/JclDebugExpertDLL.rc 2011-01-13 16:52:47 UTC (rev 3473) @@ -19,7 +19,7 @@ VALUE "FileDescription", "JCL Debug IDE extension\0" VALUE "FileVersion", "2.3.0.3847\0" VALUE "InternalName", "JclDebugExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpertDLL100.dll\0" VALUE "ProductName", "JEDI Code Library\0" VALUE "ProductVersion", "2.3 Build 3847\0" Modified: trunk/jcl/packages/d10/JclDeveloperTools.bdsproj ===============================... [truncated message content] |
From: <ou...@us...> - 2011-01-13 12:34:38
|
Revision: 3472 http://jcl.svn.sourceforge.net/jcl/?rev=3472&view=rev Author: outchy Date: 2011-01-13 12:34:32 +0000 (Thu, 13 Jan 2011) Log Message: ----------- tag for JCL 2.2.1.3970 released on 2011/01/13. Added Paths: ----------- tags/JCL-2.2-Build3970/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-13 11:48:17
|
Revision: 3471 http://jcl.svn.sourceforge.net/jcl/?rev=3471&view=rev Author: outchy Date: 2011-01-13 11:48:04 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Version numbers for JCL 2.2.1.3970. Modified Paths: -------------- branches/JCL_2.2/jcl/devtools/pgEdit.xml branches/JCL_2.2/jcl/docs/Experts.html branches/JCL_2.2/jcl/docs/Readme.html branches/JCL_2.2/jcl/docs/Readme.txt branches/JCL_2.2/jcl/packages/c6/Jcl.RES branches/JCL_2.2/jcl/packages/c6/Jcl.rc branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.res branches/JCL_2.2/jcl/packages/c6/JclContainers.rc branches/JCL_2.2/jcl/packages/c6/JclContainers.res branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.RES branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.RES branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.RES branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclThreadNameExpert.RES branches/JCL_2.2/jcl/packages/c6/JclThreadNameExpert.rc branches/JCL_2.2/jcl/packages/c6/JclThreadNameExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclThreadNameExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclUsesExpert.RES branches/JCL_2.2/jcl/packages/c6/JclUsesExpert.rc branches/JCL_2.2/jcl/packages/c6/JclUsesExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclUsesExpertDLL.res branches/JCL_2.2/jcl/packages/c6/JclVcl.RES branches/JCL_2.2/jcl/packages/c6/JclVcl.rc branches/JCL_2.2/jcl/packages/c6/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/c6/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/c6/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/c6/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/c6/template.rc branches/JCL_2.2/jcl/packages/cs1/Jcl.RES branches/JCL_2.2/jcl/packages/cs1/Jcl.bdsproj branches/JCL_2.2/jcl/packages/cs1/Jcl.rc branches/JCL_2.2/jcl/packages/cs1/JclBaseExpert.RES branches/JCL_2.2/jcl/packages/cs1/JclBaseExpert.bdsproj branches/JCL_2.2/jcl/packages/cs1/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/cs1/JclContainers.bdsproj branches/JCL_2.2/jcl/packages/cs1/JclContainers.rc branches/JCL_2.2/jcl/packages/cs1/JclContainers.res branches/JCL_2.2/jcl/packages/cs1/JclDeveloperTools.bdsproj branches/JCL_2.2/jcl/packages/cs1/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/cs1/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.RES branches/JCL_2.2/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/cs1/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/cs1/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/cs1/template.bdsproj branches/JCL_2.2/jcl/packages/cs1/template.rc branches/JCL_2.2/jcl/packages/d10/Jcl.bdsproj branches/JCL_2.2/jcl/packages/d10/Jcl.rc branches/JCL_2.2/jcl/packages/d10/Jcl.res branches/JCL_2.2/jcl/packages/d10/JclBaseExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d10/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d10/JclContainers.bdsproj branches/JCL_2.2/jcl/packages/d10/JclContainers.rc branches/JCL_2.2/jcl/packages/d10/JclContainers.res branches/JCL_2.2/jcl/packages/d10/JclDebugExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d10/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d10/JclDebugExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclDeveloperTools.bdsproj branches/JCL_2.2/jcl/packages/d10/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d10/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpert.RES branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d10/JclVcl.bdsproj branches/JCL_2.2/jcl/packages/d10/JclVcl.rc branches/JCL_2.2/jcl/packages/d10/JclVcl.res branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpert.bdsproj branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d10/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d10/template.bdsproj branches/JCL_2.2/jcl/packages/d10/template.rc branches/JCL_2.2/jcl/packages/d11/Jcl.dproj branches/JCL_2.2/jcl/packages/d11/Jcl.rc branches/JCL_2.2/jcl/packages/d11/Jcl.res branches/JCL_2.2/jcl/packages/d11/JclBaseExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d11/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d11/JclContainers.dproj branches/JCL_2.2/jcl/packages/d11/JclContainers.rc branches/JCL_2.2/jcl/packages/d11/JclContainers.res branches/JCL_2.2/jcl/packages/d11/JclDebugExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d11/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d11/JclDebugExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclDeveloperTools.dproj branches/JCL_2.2/jcl/packages/d11/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d11/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpert.res branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d11/JclVcl.dproj branches/JCL_2.2/jcl/packages/d11/JclVcl.rc branches/JCL_2.2/jcl/packages/d11/JclVcl.res branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpert.dproj branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpertDLL.dproj branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d11/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d11/template.dproj branches/JCL_2.2/jcl/packages/d11/template.rc branches/JCL_2.2/jcl/packages/d12/Jcl.dproj branches/JCL_2.2/jcl/packages/d12/Jcl.rc branches/JCL_2.2/jcl/packages/d12/Jcl.res branches/JCL_2.2/jcl/packages/d12/JclBaseExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d12/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d12/JclContainers.dproj branches/JCL_2.2/jcl/packages/d12/JclContainers.rc branches/JCL_2.2/jcl/packages/d12/JclContainers.res branches/JCL_2.2/jcl/packages/d12/JclDebugExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d12/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d12/JclDebugExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclDeveloperTools.dproj branches/JCL_2.2/jcl/packages/d12/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d12/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpert.res branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d12/JclVcl.dproj branches/JCL_2.2/jcl/packages/d12/JclVcl.rc branches/JCL_2.2/jcl/packages/d12/JclVcl.res branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpert.dproj branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpertDLL.dproj branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d12/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d12/template.dproj branches/JCL_2.2/jcl/packages/d12/template.rc branches/JCL_2.2/jcl/packages/d14/Jcl.dproj branches/JCL_2.2/jcl/packages/d14/Jcl.rc branches/JCL_2.2/jcl/packages/d14/Jcl.res branches/JCL_2.2/jcl/packages/d14/JclBaseExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d14/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d14/JclContainers.dproj branches/JCL_2.2/jcl/packages/d14/JclContainers.rc branches/JCL_2.2/jcl/packages/d14/JclContainers.res branches/JCL_2.2/jcl/packages/d14/JclDebugExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d14/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d14/JclDebugExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclDeveloperTools.dproj branches/JCL_2.2/jcl/packages/d14/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d14/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpert.res branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d14/JclVcl.dproj branches/JCL_2.2/jcl/packages/d14/JclVcl.rc branches/JCL_2.2/jcl/packages/d14/JclVcl.res branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpert.dproj branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpertDLL.dproj branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d14/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d14/template.dproj branches/JCL_2.2/jcl/packages/d14/template.rc branches/JCL_2.2/jcl/packages/d15/Jcl.dproj branches/JCL_2.2/jcl/packages/d15/Jcl.rc branches/JCL_2.2/jcl/packages/d15/Jcl.res branches/JCL_2.2/jcl/packages/d15/JclBaseExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d15/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d15/JclContainers.dproj branches/JCL_2.2/jcl/packages/d15/JclContainers.rc branches/JCL_2.2/jcl/packages/d15/JclContainers.res branches/JCL_2.2/jcl/packages/d15/JclDebugExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d15/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d15/JclDebugExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclDebugExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclDeveloperTools.dproj branches/JCL_2.2/jcl/packages/d15/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d15/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclFavoriteFoldersExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpert.res branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclProjectAnalysisExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclSIMDViewExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d15/JclVcl.dproj branches/JCL_2.2/jcl/packages/d15/JclVcl.rc branches/JCL_2.2/jcl/packages/d15/JclVcl.res branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpert.dproj branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpertDLL.dproj branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d15/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d15/template.dproj branches/JCL_2.2/jcl/packages/d15/template.rc branches/JCL_2.2/jcl/packages/d6/Jcl.rc branches/JCL_2.2/jcl/packages/d6/Jcl.res branches/JCL_2.2/jcl/packages/d6/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d6/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d6/JclContainers.rc branches/JCL_2.2/jcl/packages/d6/JclContainers.res branches/JCL_2.2/jcl/packages/d6/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d6/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d6/JclDebugExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d6/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d6/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d6/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d6/JclFavoriteFoldersExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclProjectAnalysisExpert.RES branches/JCL_2.2/jcl/packages/d6/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d6/JclProjectAnalysisExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d6/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d6/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d6/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d6/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d6/JclSIMDViewExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d6/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d6/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d6/JclThreadNameExpert.rc branches/JCL_2.2/jcl/packages/d6/JclThreadNameExpert.res branches/JCL_2.2/jcl/packages/d6/JclThreadNameExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclThreadNameExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclUsesExpert.rc branches/JCL_2.2/jcl/packages/d6/JclUsesExpert.res branches/JCL_2.2/jcl/packages/d6/JclUsesExpertDLL.RES branches/JCL_2.2/jcl/packages/d6/JclUsesExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclVcl.rc branches/JCL_2.2/jcl/packages/d6/JclVcl.res branches/JCL_2.2/jcl/packages/d6/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d6/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d6/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d6/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d6/template.rc branches/JCL_2.2/jcl/packages/d7/Jcl.rc branches/JCL_2.2/jcl/packages/d7/Jcl.res branches/JCL_2.2/jcl/packages/d7/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d7/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d7/JclContainers.rc branches/JCL_2.2/jcl/packages/d7/JclContainers.res branches/JCL_2.2/jcl/packages/d7/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d7/JclDebugExpert.res branches/JCL_2.2/jcl/packages/d7/JclDebugExpertDLL.RES branches/JCL_2.2/jcl/packages/d7/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d7/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d7/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d7/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d7/JclFavoriteFoldersExpertDLL.RES branches/JCL_2.2/jcl/packages/d7/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclProjectAnalysisExpert.RES branches/JCL_2.2/jcl/packages/d7/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d7/JclProjectAnalysisExpertDLL.RES branches/JCL_2.2/jcl/packages/d7/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d7/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d7/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d7/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d7/JclSIMDViewExpert.res branches/JCL_2.2/jcl/packages/d7/JclSIMDViewExpertDLL.RES branches/JCL_2.2/jcl/packages/d7/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d7/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d7/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d7/JclUsesExpert.rc branches/JCL_2.2/jcl/packages/d7/JclUsesExpert.res branches/JCL_2.2/jcl/packages/d7/JclUsesExpertDLL.RES branches/JCL_2.2/jcl/packages/d7/JclUsesExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclVcl.rc branches/JCL_2.2/jcl/packages/d7/JclVcl.res branches/JCL_2.2/jcl/packages/d7/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d7/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d7/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d7/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d7/template.rc branches/JCL_2.2/jcl/packages/d8/Jcl.RES branches/JCL_2.2/jcl/packages/d8/Jcl.bdsproj branches/JCL_2.2/jcl/packages/d8/Jcl.rc branches/JCL_2.2/jcl/packages/d8/JclBaseExpert.RES branches/JCL_2.2/jcl/packages/d8/JclBaseExpert.bdsproj branches/JCL_2.2/jcl/packages/d8/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d8/JclContainers.bdsproj branches/JCL_2.2/jcl/packages/d8/JclContainers.rc branches/JCL_2.2/jcl/packages/d8/JclContainers.res branches/JCL_2.2/jcl/packages/d8/JclDeveloperTools.bdsproj branches/JCL_2.2/jcl/packages/d8/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d8/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d8/JclFavoriteFoldersExpertDLL.RES branches/JCL_2.2/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d8/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d8/JclVersionControlExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d8/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d8/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d8/template.bdsproj branches/JCL_2.2/jcl/packages/d8/template.rc branches/JCL_2.2/jcl/packages/d9/Jcl.RES branches/JCL_2.2/jcl/packages/d9/Jcl.bdsproj branches/JCL_2.2/jcl/packages/d9/Jcl.rc branches/JCL_2.2/jcl/packages/d9/JclBaseExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclBaseExpert.rc branches/JCL_2.2/jcl/packages/d9/JclBaseExpert.res branches/JCL_2.2/jcl/packages/d9/JclContainers.bdsproj branches/JCL_2.2/jcl/packages/d9/JclContainers.rc branches/JCL_2.2/jcl/packages/d9/JclContainers.res branches/JCL_2.2/jcl/packages/d9/JclDebugExpert.RES branches/JCL_2.2/jcl/packages/d9/JclDebugExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclDebugExpert.rc branches/JCL_2.2/jcl/packages/d9/JclDebugExpertDLL.RES branches/JCL_2.2/jcl/packages/d9/JclDebugExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclDebugExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclDeveloperTools.bdsproj branches/JCL_2.2/jcl/packages/d9/JclDeveloperTools.rc branches/JCL_2.2/jcl/packages/d9/JclDeveloperTools.res branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpert.rc branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpert.res branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpertDLL.RES branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclFavoriteFoldersExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpert.RES branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpert.rc branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpertDLL.RES branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclProjectAnalysisExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpert.rc branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpert.res branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclRepositoryExpertDLL.res branches/JCL_2.2/jcl/packages/d9/JclSIMDViewExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclSIMDViewExpert.rc branches/JCL_2.2/jcl/packages/d9/JclSIMDViewExpertDLL.RES branches/JCL_2.2/jcl/packages/d9/JclSIMDViewExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclSIMDViewExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclSimdViewExpert.RES branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpert.rc branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpert.res branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclStackTraceViewerExpertDLL.res branches/JCL_2.2/jcl/packages/d9/JclVcl.RES branches/JCL_2.2/jcl/packages/d9/JclVcl.bdsproj branches/JCL_2.2/jcl/packages/d9/JclVcl.rc branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpert.bdsproj branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpert.rc branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpert.res branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpertDLL.bdsproj branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpertDLL.rc branches/JCL_2.2/jcl/packages/d9/JclVersionControlExpertDLL.res branches/JCL_2.2/jcl/packages/d9/template.bdsproj branches/JCL_2.2/jcl/packages/d9/template.rc branches/JCL_2.2/jcl/packages/fpc/Jcl.lpk branches/JCL_2.2/jcl/packages/fpc/JclContainers.lpk branches/JCL_2.2/jcl/packages/fpc/JclDeveloperTools.lpk branches/JCL_2.2/jcl/packages/fpc/template.lpk branches/JCL_2.2/jcl/source/common/JclBase.pas Modified: branches/JCL_2.2/jcl/devtools/pgEdit.xml =================================================================== --- branches/JCL_2.2/jcl/devtools/pgEdit.xml 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/devtools/pgEdit.xml 2011-01-13 11:48:04 UTC (rev 3471) @@ -98,7 +98,7 @@ <ProjectProperty name="VersionMajorNumber" value="2"/> <ProjectProperty name="VersionMinorNumber" value="2"/> <ProjectProperty name="ReleaseNumber" value="1"/> - <ProjectProperty name="BuildNumber" value="3886"/> + <ProjectProperty name="BuildNumber" value="3970"/> </ProjectProperties> </Model> </models> Modified: branches/JCL_2.2/jcl/docs/Experts.html =================================================================== --- branches/JCL_2.2/jcl/docs/Experts.html 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/docs/Experts.html 2011-01-13 11:48:04 UTC (rev 3471) @@ -11,8 +11,8 @@ <hr><br> <h1>JEDI Code Library</h1> <p>Release 2.2<br> -Build 3886<br> -21-October-2010</p> +Build 3970<br> +13-January-2011</p> <hr><br> <h3>Content of this file</h3> <ul> Modified: branches/JCL_2.2/jcl/docs/Readme.html =================================================================== --- branches/JCL_2.2/jcl/docs/Readme.html 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/docs/Readme.html 2011-01-13 11:48:04 UTC (rev 3471) @@ -15,8 +15,8 @@ <h1>JEDI Code Library</h1> <p>Release 2.2<br> -Build 3886<br> -21-October-2010</p> +Build 3970<br> +13-January-2011</p> <hr><br> @@ -49,9 +49,12 @@ <hr><br> <h3><a name="about">About this release</a></h3> -<p>JCL release 2.2 provides support for RAD Studio XE (including -Delphi XE and C++Builder XE) an updated support for all targets.</p> +<p>JCL release 2.2 provides support for RAD Studio XE Update 1 (including +Delphi XE Update 1 and C++Builder XE Update 1) an updated support for all targets.</p> +<p>JCL release 2.2 Build 3970 is not compatible with RAD Studio XE without Update 1, +use previously released JCL 2.2.1.3886 instead.</p> + <p>Multiple bugs have been fixed; for detailed change logs, use the facilities of our Subversion repository at Sourceforge.net Modified: branches/JCL_2.2/jcl/docs/Readme.txt =================================================================== --- branches/JCL_2.2/jcl/docs/Readme.txt 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/docs/Readme.txt 2011-01-13 11:48:04 UTC (rev 3471) @@ -3,8 +3,8 @@ JEDI Code Library Release 2.2 -Build 3886 -21-October-2010 +Build 3970 +13-January-2011 -------------------------------------------------------------------------------- @@ -26,8 +26,10 @@ About this release -JCL release 2.2 provides support for RAD Studio XE (including Delphi XE and C++Builder XE) an updated support for all targets. +JCL release 2.2 provides support for RAD Studio XE Update 1 (including Delphi XE Update 1 and C++Builder XE Update 1) an updated support for all targets. +JCL release 2.2 Build 3970 is not compatible with RAD Studio XE without Update 1, use previously released JCL 2.2.1.3886 instead. + Multiple bugs have been fixed; for detailed change logs, use the facilities of our Subversion repository at Sourceforge.net http://sourceforge.net/projects/jcl/ , see below. Head changes: Modified: branches/JCL_2.2/jcl/packages/c6/Jcl.RES =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/Jcl.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/Jcl.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/Jcl.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JEDI Code Library RTL package\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "Jcl\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Package containing common units for JCL Experts\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclBaseExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclBaseExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclBaseExpert.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclContainers.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclContainers.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclContainers.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JEDI Code Library Containers package\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclContainers\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclContainersC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclContainers.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.RES =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclDebugExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Debug IDE extension\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclDebugExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Debug IDE extension\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclDebugExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDebugExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclDebugExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JEDI Code Library Developer Tools package\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclDeveloperTools\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclDeveloperToolsC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclDeveloperTools.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.RES =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Open and Save IDE dialogs with favorite folders\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclFavoriteFoldersExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclFavoriteFoldersExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Open and Save IDE dialogs with favorite folders\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclFavoriteFoldersExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclFavoriteFoldersExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclFavoriteFoldersExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.RES =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Project Analyzer\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclProjectAnalysisExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclProjectAnalysisExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Project Analyzer\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclProjectAnalysisExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclProjectAnalysisExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclProjectAnalysisExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Package containing repository wizards\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclRepositoryExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclRepositoryExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Package containing repository wizards\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclRepositoryExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclRepositoryExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclRepositoryExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Debug Window of XMM registers\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclSIMDViewExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclSIMDViewExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Debug Window of XMM registers\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclSIMDViewExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclSIMDViewExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclSIMDViewExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Stack Trace Viewer\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclStackTraceViewerExpert\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclStackTraceViewerExpertC60.bpl\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc =================================================================== --- branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc 2011-01-13 11:26:25 UTC (rev 3470) +++ branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc 2011-01-13 11:48:04 UTC (rev 3471) @@ -1,6 +1,6 @@ VS_VERSION_INFO VERSIONINFO -FILEVERSION 2,2,1,3886 -PRODUCTVERSION 2,2,1,3886 +FILEVERSION 2,2,1,3970 +PRODUCTVERSION 2,2,1,3970 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "Project JEDI\0" VALUE "FileDescription", "JCL Stack Trace Viewer\0" - VALUE "FileVersion", "2.2.1.3886\0" + VALUE "FileVersion", "2.2.1.3970\0" VALUE "InternalName", "JclStackTraceViewerExpertDLL\0" - VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2011 Project JEDI\0" VALUE "OriginalFilename", "JclStackTraceViewerExpertDLLC60.dll\0" VALUE "ProductName", "JEDI Code Library\0" - VALUE "ProductVersion", "2.2 Build 3886\0" + VALUE "ProductVersion", "2.2 Build 3970\0" END END BLOCK "VarFileInfo" Modified: branches/JCL_2.2/jcl/packages/c6/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Modified: branches/JCL_2.2/jcl/packages/c6/JclThreadNameExpert.RES =================================================================== (Binary files differ)... [truncated message content] |
From: <ou...@us...> - 2011-01-13 11:26:31
|
Revision: 3470 http://jcl.svn.sourceforge.net/jcl/?rev=3470&view=rev Author: outchy Date: 2011-01-13 11:26:25 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Cleanup of revision 3419. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3419&view=rev Modified Paths: -------------- branches/JCL_2.2/jcl/source/windows/MSTask.pas Modified: branches/JCL_2.2/jcl/source/windows/MSTask.pas =================================================================== --- branches/JCL_2.2/jcl/source/windows/MSTask.pas 2011-01-10 20:58:56 UTC (rev 3469) +++ branches/JCL_2.2/jcl/source/windows/MSTask.pas 2011-01-13 11:26:25 UTC (rev 3470) @@ -33,8 +33,12 @@ unit MSTask; +{$ALIGN ON} +{$MINENUMSIZE 4} + +interface + {$I jcl.inc} -{$I windowsonly.inc} {$IFDEF SUPPORTS_WEAKPACKAGEUNIT} {$IFDEF UNITVERSIONING} @@ -44,11 +48,6 @@ {$ENDIF ~UNITVERSIONING} {$ENDIF SUPPORTS_WEAKPACKAGEUNIT} -{$ALIGN ON} -{$MINENUMSIZE 4} - -interface - uses {$IFDEF UNITVERSIONING} JclUnitVersioning, @@ -56,7 +55,6 @@ ActiveX, Windows; -//DOM-IGNORE-BEGIN (*$HPPEMIT '#include <MSTask.h>' *) @@ -668,8 +666,6 @@ {$EXTERNALSYM CLSID_CSchedulingAgent} CLSID_CSchedulingAgent: TCLSID = (D1: $148BD52A; D2: $A2AB; D3: $11CE; D4: ($B1, $1F, $00, $AA, $00, $53, $05, $03)); -//DOM-IGNORE-END - {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-10 20:59:02
|
Revision: 3469 http://jcl.svn.sourceforge.net/jcl/?rev=3469&view=rev Author: outchy Date: 2011-01-10 20:58:56 +0000 (Mon, 10 Jan 2011) Log Message: ----------- fix some issues with file copies. Modified Paths: -------------- trunk/thirdparty/makedist/MakeDistActions.pas Modified: trunk/thirdparty/makedist/MakeDistActions.pas =================================================================== --- trunk/thirdparty/makedist/MakeDistActions.pas 2011-01-10 20:58:39 UTC (rev 3468) +++ trunk/thirdparty/makedist/MakeDistActions.pas 2011-01-10 20:58:56 UTC (rev 3469) @@ -440,7 +440,7 @@ FileList := TStringList.Create; try - BuildFileList(PathAddSeparator(Directory)+Filter, faNormalFile, FileList); + BuildFileList(PathAddSeparator(Directory)+Filter, faAnyFile and (not faDirectory), FileList); for Index := 0 to FileList.Count - 1 do begin FileName := PathAddSeparator(Directory) + FileList.Strings[Index]; @@ -548,7 +548,7 @@ FileList := TStringList.Create; try - BuildFileList(PathAddSeparator(FromDirectory) + Filter, faNormalFile, FileList); + BuildFileList(PathAddSeparator(FromDirectory) + Filter, faAnyFile, FileList); if FileList.Count > 0 then begin Result := True; @@ -556,7 +556,7 @@ begin FileName := FileList.Strings[Index]; Result := FileCopy(PathAddSeparator(FromDirectory) + FileName, - PathAddSeparator(ToDirectory) + FileName, False); + PathAddSeparator(ToDirectory) + FileName, True); if not Result then begin AMessageHandler('Failed to copy ' + PathAddSeparator(FromDirectory) + FileName This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2011-01-10 20:58:46
|
Revision: 3468 http://jcl.svn.sourceforge.net/jcl/?rev=3468&view=rev Author: outchy Date: 2011-01-10 20:58:39 +0000 (Mon, 10 Jan 2011) Log Message: ----------- help update: - master collection for all Help 2 files; - winhelp contents to include/link other winhelp files; - new MakeDist script to automate help file compilations. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/thirdparty/makedist/JclFiles.xml trunk/thirdparty/makedist/JclTesting.xml Added Paths: ----------- trunk/help/JclHelp.HxC trunk/help/JclHelp.HxT trunk/help/JclHelp.cnt trunk/help/JclHelp.dox trunk/help/JclHelp.dtx trunk/help/JclHelp_A.HxK trunk/help/JclHelp_F.HxK trunk/help/JclHelp_K.HxK trunk/help/JclHelp_NamedURL.HxK trunk/thirdparty/makedist/JclHelp.xml Added: trunk/help/JclHelp.HxC =================================================================== --- trunk/help/JclHelp.HxC (rev 0) +++ trunk/help/JclHelp.HxC 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpCollection> +<HelpCollection + Id = "JclHelp.HxC" + DTDVersion = "1.0" + Title = "JEDI Code Library" + Copyright = "Project JEDI" + FileVersion = "2.3.0.0" +> +<TOCDef File = "JclHelp.HxT" /> +<KeywordIndexDef File = "JclHelp_K.HxK" /> +<KeywordIndexDef File = "JclHelp_F.HxK" /> +<KeywordIndexDef File = "JclHelp_A.HxK" /> +<KeywordIndexDef File = "JclHelp_NamedURL.HxK" /> + <ItemMoniker Name="!DefaultToc" ProgId="HxDs.HxHierarchy" InitData=""/> + <ItemMoniker Name="!DefaultFullTextSearch" ProgId="HxDs.HxFullTextSearch" InitData=""/> + <ItemMoniker Name="!DefaultKeywordIndex" ProgId="HxDs.HxIndex" InitData="K"/> + <ItemMoniker Name="!DefaultAssociativeIndex" ProgId="HxDs.HxIndex" InitData="A" /> + <ItemMoniker Name="!DefaultContextWindowIndex" ProgId="HxDs.HxIndex" InitData="F" /> + <ItemMoniker Name="!DefaultNamedUrlIndex" ProgId="HxDs.HxIndex" InitData="NamedURLIndex"/> +</HelpCollection> Property changes on: trunk/help/JclHelp.HxC ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp.HxT =================================================================== --- trunk/help/JclHelp.HxT (rev 0) +++ trunk/help/JclHelp.HxT 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpTOC> +<HelpTOC + DTDVersion = "1.0" + PluginStyle="Hierarchical" + PluginTitle="JEDI Code Library" +> + +<HelpTOCNode NodeType="TOC" Url="Jcl"/> +<HelpTOCNode NodeType="TOC" Url="JclContainers"/> +<HelpTOCNode NodeType="TOC" Url="JclDeveloperTools"/> +<HelpTOCNode NodeType="TOC" Url="JclVcl"/> +</HelpTOC> Property changes on: trunk/help/JclHelp.HxT ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp.cnt =================================================================== --- trunk/help/JclHelp.cnt (rev 0) +++ trunk/help/JclHelp.cnt 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,14 @@ +:Base JclHelp.hlp>MAIN +:Title JEDI Code Library +:Index Jcl=Jcl.hlp +:Index JclContainers=JclContainers.hlp +:Index JclDeveloperTools=JclDeveloperTools.hlp +:Index JclVcl=JclVcl.hlp +:Link Jcl.hlp +:Link JclContainers.hlp +:Link JclDeveloperTools.hlp +:Link JclVcl.hlp +:Include Jcl.cnt +:Include JclContainers.cnt +:Include JclDeveloperTools.cnt +:Include JclVcl.cnt Property changes on: trunk/help/JclHelp.cnt ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp.dox =================================================================== --- trunk/help/JclHelp.dox (rev 0) +++ trunk/help/JclHelp.dox 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,73 @@ +; This is a Doc-O-Matic version 6.5.1.1382 project file. +; This file is maintained by Doc-O-Matic, do not edit manually. + +[*Control*] +MasterFile=JclTemplate.dox + +[Configurations] +Current=3 + +[Configurations\CHM\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\CHM\Non TOC Topics] +Count=2 +ID1=MergeTopic + +[Configurations\H2\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\H2\Non TOC Topics] +Count=2 +ID1=MergeTopic + +[Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Help Project] +CompressHelp=0 + +[Configurations\HLP\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\HLP\Non TOC Topics] +Count=2 +ID1=MergeTopic + +[Configurations\HTML\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\HTML\Non TOC Topics] +Count=2 +ID1=MergeTopic + +[Configurations\PDF\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\PDF\Non TOC Topics] +Count=1 +ID0=MergeTopic + +[Configurations\XML\Disabled Topics] +Count=1 +ID0=MergeTopic + +[Configurations\XML\Non TOC Topics] +Count=2 +ID1=MergeTopic + +[External Topic Properties] +Count=1 +ID0=MergeTopic + +[External Topic Properties\MergeTopic] +Count=1 +ETPCommand0=3 +ETPGroup0=' !' + +[Source Files] +Count=1 +File0=JclHelp.dtx + Property changes on: trunk/help/JclHelp.dox ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp.dtx =================================================================== --- trunk/help/JclHelp.dtx (rev 0) +++ trunk/help/JclHelp.dtx 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,3 @@ + +@@MergeTopic +Dummy topic for merging all the JCL Help files together. Property changes on: trunk/help/JclHelp.dtx ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp_A.HxK =================================================================== --- trunk/help/JclHelp_A.HxK (rev 0) +++ trunk/help/JclHelp_A.HxK 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpIndex> +<HelpIndex + Name = "A" + DTDVersion = "1.0" + LangId = "1033" +> + +</HelpIndex> Property changes on: trunk/help/JclHelp_A.HxK ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp_F.HxK =================================================================== --- trunk/help/JclHelp_F.HxK (rev 0) +++ trunk/help/JclHelp_F.HxK 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpIndex> +<HelpIndex + Name = "F" + DTDVersion = "1.0" + LangId = "1033" +> + +</HelpIndex> Property changes on: trunk/help/JclHelp_F.HxK ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp_K.HxK =================================================================== --- trunk/help/JclHelp_K.HxK (rev 0) +++ trunk/help/JclHelp_K.HxK 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpIndex> +<HelpIndex + Name = "K" + DTDVersion = "1.0" + Visible="Yes" + LangId = "1033" +> + +</HelpIndex> Property changes on: trunk/help/JclHelp_K.HxK ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/help/JclHelp_NamedURL.HxK =================================================================== --- trunk/help/JclHelp_NamedURL.HxK (rev 0) +++ trunk/help/JclHelp_NamedURL.HxK 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE HelpIndex> +<HelpIndex + Name = "NamedURLIndex" + DTDVersion = "1.0" + LangId = "1033" +> + +</HelpIndex> Property changes on: trunk/help/JclHelp_NamedURL.HxK ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2011-01-09 21:08:14 UTC (rev 3467) +++ trunk/jcl/install/JclInstall.pas 2011-01-10 20:58:39 UTC (rev 3468) @@ -536,7 +536,7 @@ JclVclHxSHelpFile = 'help' + DirDelimiter + JclVclPackage + '.HxS'; JclHelp2NameSpace = 'Jedi.Jcl'; - JclHelp2Collection = 'JCLHelp_COL_MASTER.HxC'; + JclHelp2Collection = 'JclHelp.HxC'; JclHelp2Description = 'JEDI Code Library'; JclHelp2LangId = 1033; // en/english JclOldHelp2Identifier = 'JCLHelp'; Modified: trunk/thirdparty/makedist/JclFiles.xml =================================================================== --- trunk/thirdparty/makedist/JclFiles.xml 2011-01-09 21:08:14 UTC (rev 3467) +++ trunk/thirdparty/makedist/JclFiles.xml 2011-01-10 20:58:39 UTC (rev 3468) @@ -392,7 +392,7 @@ </action> <action classname="TFileCopier"> <configuration index="0" caption="From directory" value="sandbox\help"/> - <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="1" caption="Filter" value="*.HxC;*.HxT;*.HxK"/> <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> </action> <action classname="TDelay"> @@ -400,7 +400,7 @@ </action> <action classname="TFileRemover"> <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.log"/> + <configuration index="1" caption="Filter" value="*_COL_MASTER.HxC;*_COL_MASTER.HxT;*_COL_MASTER_A.HxK;*_COL_MASTER_F.HxK;*_COL_MASTER_K.HxK;*_COL_MASTER_NamedURL.HxK;*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.log"/> <configuration index="2" caption="Move to recycle bin" value="no"/> </action> <action classname="TDirectoryCreator"> @@ -474,6 +474,18 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="sandbox\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclHelp.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="JclHelp.cnt"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox\%PREFIX%"/> </action> Copied: trunk/thirdparty/makedist/JclHelp.xml (from rev 3467, trunk/thirdparty/makedist/JclFiles.xml) =================================================================== --- trunk/thirdparty/makedist/JclHelp.xml (rev 0) +++ trunk/thirdparty/makedist/JclHelp.xml 2011-01-10 20:58:39 UTC (rev 3468) @@ -0,0 +1,331 @@ +<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> +<makedist> + <task name="Jcl-common" selected="0"> + <action classname="TLogCleaner"/> + <action classname="TLogSaver"> + <configuration index="0" caption="File name" value="jcl%SUFFIX%.log"/> + <configuration index="1" caption="Append" value="no"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%ComSpec%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\devtools\"/> + <configuration index="2" caption="Parameters" value="/C included_files.bat"/> + <configuration index="3" caption="Valid exit codes" value=""/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TDelay"> + <configuration index="0" caption="Delay" value="10"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="..\..\jcl\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMajor"/> + <configuration index="2" caption="Environment variable" value="VersionMajor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="..\..\jcl\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMinor"/> + <configuration index="2" caption="Environment variable" value="VersionMinor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="..\..\jcl\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionRelease"/> + <configuration index="2" caption="Environment variable" value="VersionRelease"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="..\..\jcl\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionBuild"/> + <configuration index="2" caption="Environment variable" value="VersionBuild"/> + </action> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%"/> + <configuration index="1" caption="Environment variable" value="PREFIX"/> + </action> + <action classname="TLogSaver"> + <configuration index="0" caption="File name" value="%PREFIX%%SUFFIX%.log"/> + <configuration index="1" caption="Append" value="no"/> + </action> + </task> + <task name="jcl-html.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-html"/> + <configuration index="1" caption="Environment variable" value="SUFFIX"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HTML" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HTML" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HTML" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HTML" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="..\..\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="..\..\jcl\help"/> + </action> + </task> + <task name="jcl-chm.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-chm"/> + <configuration index="1" caption="Environment variable" value="SUFFIX"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "CHM" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "CHM" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "CHM" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "CHM" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="..\..\help"/> + <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="2" caption="To directory" value="..\..\jcl\help"/> + </action> + <action classname="TDelay"> + <configuration index="0" caption="Delay" value="30"/> + </action> + <action classname="TFileRemover"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.hhc;*.hhk;*.hhp"/> + <configuration index="2" caption="Move to recycle bin" value="no"/> + </action> + </task> + <task name="jcl-h2.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-h2"/> + <configuration index="1" caption="Environment variable" value="SUFFIX"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "H2" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "H2" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "H2" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "H2" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="..\..\help"/> + <configuration index="1" caption="Filter" value="*.HxC;*.HxT;*.HxK"/> + <configuration index="2" caption="To directory" value="..\..\jcl\help"/> + </action> + <action classname="TDelay"> + <configuration index="0" caption="Delay" value="30"/> + </action> + <action classname="TFileRemover"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + <configuration index="1" caption="Filter" value="*_COL_MASTER.HxC;*_COL_MASTER.HxT;*_COL_MASTER_A.HxK;*_COL_MASTER_F.HxK;*_COL_MASTER_K.HxK;*_COL_MASTER_NamedURL.HxK;*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.log"/> + <configuration index="2" caption="Move to recycle bin" value="no"/> + </action> + </task> + <task name="jcl-hlp.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-winhelp"/> + <configuration index="1" caption="Environment variable" value="SUFFIX"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclHelp.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="..\..\help"/> + <configuration index="1" caption="Filter" value="JclHelp.cnt"/> + <configuration index="2" caption="To directory" value="..\..\jcl\help"/> + </action> + </task> + <task name="jcl-xml.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-xml"/> + <configuration index="1" caption="Environment variable" value="SUFFIX"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "XML" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "XML" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "XML" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "XML" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + </task> + <task name="jcl-pdf.zip" selected="-1"> + <action classname="TVariableSetter"> + <configuration index="0" caption="Expression" value="-pdf"/> + <configuration index="1" caption="Environment variable" value="%SUFFIX%"/> + </action> + <action classname="TSubTask"> + <configuration index="0" caption="Task name" value="Jcl-common"/> + </action> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="..\..\jcl\help"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "PDF" -noshow -w3 Jcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "PDF" -noshow -w3 JclContainers.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "PDF" -noshow -w3 JclDeveloperTools.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="..\..\jcl\packages\help"/> + <configuration index="2" caption="Parameters" value="-config "PDF" -noshow -w3 JclVcl.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + </task> +</makedist> Modified: trunk/thirdparty/makedist/JclTesting.xml =================================================================== --- trunk/thirdparty/makedist/JclTesting.xml 2011-01-09 21:08:14 UTC (rev 3467) +++ trunk/thirdparty/makedist/JclTesting.xml 2011-01-10 20:58:39 UTC (rev 3468) @@ -197,6 +197,18 @@ <configuration index="3" caption="Valid exit codes" value="0;20;30"/> <configuration index="4" caption="Result file" value=""/> </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DMCC%"/> + <configuration index="1" caption="Working directory" value="sandbox\help"/> + <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclHelp.dox"/> + <configuration index="3" caption="Valid exit codes" value="0;20;30"/> + <configuration index="4" caption="Result file" value=""/> + </action> + <action classname="TFileCopier"> + <configuration index="0" caption="From directory" value="sandbox\help"/> + <configuration index="1" caption="Filter" value="JclHelp.cnt"/> + <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> + </action> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox\%PREFIX%"/> </action> @@ -294,7 +306,7 @@ </action> <action classname="TFileCopier"> <configuration index="0" caption="From directory" value="sandbox\help"/> - <configuration index="1" caption="Filter" value="index.html"/> + <configuration index="1" caption="Filter" value="*.HxC;*.HxT;*.HxK"/> <configuration index="2" caption="To directory" value="sandbox\jcl\help"/> </action> <action classname="TDelay"> @@ -302,7 +314,7 @@ </action> <action classname="TFileRemover"> <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.log"/> + <configuration index="1" caption="Filter" value="*_COL_MASTER.HxC;*_COL_MASTER.HxT;*_COL_MASTER_A.HxK;*_COL_MASTER_F.HxK;*_COL_MASTER_K.HxK;*_COL_MASTER_NamedURL.HxK;*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.log"/> <configuration index="2" caption="Move to recycle bin" value="no"/> </action> <action classname="TDirectoryCreator"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |