From 52c8ac0ca065c516f3195a532d83a132ca3f7b7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Sat, 21 Aug 2021 09:13:06 +0200 Subject: [PATCH] * Fix by Mark Paley to add IfThen for StringList and TStringDynArray. Issue #39314 --- packages/rtl-objpas/src/inc/strutils.pp | 10 ++++++++++ rtl/objpas/classes/classes.inc | 9 +++++++++ rtl/objpas/classes/classesh.inc | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/rtl-objpas/src/inc/strutils.pp b/packages/rtl-objpas/src/inc/strutils.pp index 6e21eca548..9fb91795d9 100644 --- a/packages/rtl-objpas/src/inc/strutils.pp +++ b/packages/rtl-objpas/src/inc/strutils.pp @@ -74,6 +74,7 @@ Function AnsiReverseString(const AText: AnsiString): AnsiString;inline; Function StuffString(const AText: string; AStart, ALength: Cardinal; const ASubText: string): string; Function RandomFrom(const AValues: array of string): string; overload; Function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string = ''): string; overload; +Function IfThen(AValue: Boolean; const ATrue: TStringDynArray; const AFalse: TStringDynArray = nil): TStringDynArray; overload; function NaturalCompareText (const S1 , S2 : string ): Integer ; function NaturalCompareText(const Str1, Str2: string; const ADecSeparator, AThousandSeparator: Char): Integer; @@ -1227,6 +1228,15 @@ begin result:=afalse; end; +Function IfThen(AValue: Boolean; const ATrue: TStringDynArray; const AFalse: TStringDynArray = nil): TStringDynArray; overload; + +begin + if avalue then + result:=atrue + else + result:=afalse; +end; + function NaturalCompareText(const Str1, Str2: string; const ADecSeparator, AThousandSeparator: Char): Integer; { NaturalCompareBase compares strings in a collated order and diff --git a/rtl/objpas/classes/classes.inc b/rtl/objpas/classes/classes.inc index 97eb5d4dbb..e6519cd9b9 100644 --- a/rtl/objpas/classes/classes.inc +++ b/rtl/objpas/classes/classes.inc @@ -2459,6 +2459,15 @@ end; { Utility routines } + +Function IfThen(AValue: Boolean; const ATrue: TStringList; const AFalse: TStringList = nil): TStringList; overload; +begin + if avalue then + result:=atrue + else + result:=afalse; +end; + function LineStart(Buffer, BufPos: PChar): PChar; begin diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc index b4df19c840..d03cca3428 100644 --- a/rtl/objpas/classes/classesh.inc +++ b/rtl/objpas/classes/classesh.inc @@ -2469,4 +2469,4 @@ function LineStart(Buffer, BufPos: PChar): PChar; procedure BinToHex(BinValue, HexValue: PChar; BinBufSize: Integer); deprecated 'use procedures from unit StrUtils'; function HexToBin(HexValue, BinValue: PChar; BinBufSize: Integer): Integer; function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings; AddEmptyStrings : Boolean = False): Integer; - +Function IfThen(AValue: Boolean; const ATrue: TStringList; const AFalse: TStringList = nil): TStringList; overload;