diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index d7e8d8a9c..6fe6e8721 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "9"; public const string Build = "0"; - public const string Revision = "3341"; + public const string Revision = "3343"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 29d4a855a..60df0bc42 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %MINOR%=9 -%REVISION%=3341 +%REVISION%=3343 %COREVERSION%=0 %MAJOR%=3 diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index b4108542a..6b5ab331c 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.9.0.3341 +3.9.0.3343 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 7b6a1c709..c9cdd0ff6 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.9.0.3341' +!define VERSION '3.9.0.3343' diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas index 8c10a925e..354c2b967 100644 --- a/TestSuite/CompilationSamples/PABCSystem.pas +++ b/TestSuite/CompilationSamples/PABCSystem.pas @@ -8884,9 +8884,10 @@ begin var n := l.Count; for var i := 0 to n - 1 do begin + var ind := Random(n); var v := l[i]; - l[i] := l[Random(n)]; - l[Random(n)] := v; + l[i] := l[ind]; + l[ind] := v; end; end; diff --git a/TestSuite/CompilationSamples/SF.pas b/TestSuite/CompilationSamples/SF.pas index 66128aa79..e7d66433a 100644 --- a/TestSuite/CompilationSamples/SF.pas +++ b/TestSuite/CompilationSamples/SF.pas @@ -298,6 +298,9 @@ function Cart(Self: array of T; n: integer): sequence of array of T; extensio /// Возвращает n-тую декартову степень множества элементов, заданного массивом function Cart(Self: sequence of T; n: integer): sequence of array of T; extensionmethod := Self.Cartesian(n); +/// Возвращает n-тую декартову степень множества символов, заданного строкой +function Cart(Self: string; n: integer): sequence of string; extensionmethod := Self.CartesianPower(n); + /// Возвращает декартово произведение последовательностей в виде последовательности пар function Cart(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod := Self.Cartesian(b); diff --git a/VisualPascalABCNET/DockContent/OutputWindowForm.cs b/VisualPascalABCNET/DockContent/OutputWindowForm.cs index ea8eed398..1dc02ca1e 100644 --- a/VisualPascalABCNET/DockContent/OutputWindowForm.cs +++ b/VisualPascalABCNET/DockContent/OutputWindowForm.cs @@ -18,6 +18,20 @@ namespace VisualPascalABC { InitializeComponent(); Form1StringResources.SetTextForAllControls(this.contextMenuStrip1); + outputTextBox.DetectUrls = true; + outputTextBox.LinkClicked += outputTextBox_LinkClicked; + } + + private void outputTextBox_LinkClicked(object sender, LinkClickedEventArgs e) + { + try + { + System.Diagnostics.Process.Start(e.LinkText); + } + catch (Exception ex) + { + + } } private void OutputWindowForm_FormClosing(object sender, FormClosingEventArgs e) diff --git a/bin/Lib/SF.pas b/bin/Lib/SF.pas index 66128aa79..e7d66433a 100644 --- a/bin/Lib/SF.pas +++ b/bin/Lib/SF.pas @@ -298,6 +298,9 @@ function Cart(Self: array of T; n: integer): sequence of array of T; extensio /// Возвращает n-тую декартову степень множества элементов, заданного массивом function Cart(Self: sequence of T; n: integer): sequence of array of T; extensionmethod := Self.Cartesian(n); +/// Возвращает n-тую декартову степень множества символов, заданного строкой +function Cart(Self: string; n: integer): sequence of string; extensionmethod := Self.CartesianPower(n); + /// Возвращает декартово произведение последовательностей в виде последовательности пар function Cart(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod := Self.Cartesian(b);