Rename the site name in the negative test.

--- Kudu.FunctionalTests/GitRepositoryManagementTests.cs
+++ Kudu.FunctionalTests/GitRepositoryManagementTests.cs
@@ -89,8 +89,8 @@
         public void PushSimpleWapWithFailingCustomDeploymentScript()
         {
             // Arrange
-            string repositoryName = "WapWithCustomDeploymentScript";
-            string appName = KuduUtils.GetRandomWebsiteName("WapWithCustomDeploymentScript");
+            string repositoryName = "WapWithFailingCustomDeploymentScript";
+            string appName = KuduUtils.GetRandomWebsiteName("WapWithFailingCustomDeploymentScript");
             string cloneUrl = "https://github.com/KuduApps/CustomBuildScript.git";

             using (var repo = Git.Clone(repositoryName, cloneUrl))


Fix for issue #86

Fix for issue #86

--- MahApps.Metro/Behaviours/BorderlessWindowBehavior.cs
+++ MahApps.Metro/Behaviours/BorderlessWindowBehavior.cs
@@ -84,16 +84,23 @@
                                                        Border.BorderThickness = new Thickness(1);
                                                };

-                if (AssociatedObject.ResizeMode == ResizeMode.NoResize)
+                switch (AssociatedObject.ResizeMode)
                 {
-                    window.ShowMaxRestoreButton = false;
-                    window.ShowMinButton = false;
-                    ResizeWithGrip = false;
-                }
-                else if (AssociatedObject.ResizeMode == ResizeMode.CanMinimize)
-                {
-                    window.ShowMaxRestoreButton = false;
-                    ResizeWithGrip = false;
+                    case ResizeMode.NoResize:
+                        window.ShowMaxRestoreButton = false;
+                        window.ShowMinButton = false;
+                        ResizeWithGrip = false;
+                        break;
+                    case ResizeMode.CanMinimize:
+                        window.ShowMaxRestoreButton = false;
+                        ResizeWithGrip = false;
+                        break;
+                    case ResizeMode.CanResize:
+                        ResizeWithGrip = false;
+                        break;
+                    case ResizeMode.CanResizeWithGrip:
+                        ResizeWithGrip = true;
+                        break;
                 }
             }
             else {


HandleMaximize fix

HandleMaximize fix

--- MahApps.Metro/Behaviours/BorderlessWindowBehavior.cs
+++ MahApps.Metro/Behaviours/BorderlessWindowBehavior.cs
@@ -97,7 +97,7 @@
                 mmi.ptMaxSize.X = Math.Abs(rcWorkArea.right - rcWorkArea.left);
                 mmi.ptMaxSize.Y = Math.Abs(rcWorkArea.bottom - rcWorkArea.top);

-                bool ignoreTaskBar = AssociatedObject as MetroWindow != null && ((MetroWindow)this.AssociatedObject).IgnoreTaskbarOnMaximize;
+                bool ignoreTaskBar = AssociatedObject as MetroWindow != null && (((MetroWindow)this.AssociatedObject).IgnoreTaskbarOnMaximize || ((MetroWindow)this.AssociatedObject).UseNoneWindowStyle);

                 if (!ignoreTaskBar)
                 {
@@ -128,6 +128,7 @@
             var window = AssociatedObject as MetroWindow;
             if (window != null)
             {
+                AssociatedObject.Activated += (s, e) => HandleMaximize();
                 //MetroWindow already has a border we can use
                 AssociatedObject.Loaded += (s, e) =>
                 {
@@ -215,7 +216,7 @@
             {
                 var monitorInfo = new MONITORINFO();
                 UnsafeNativeMethods.GetMonitorInfo(monitor, monitorInfo);
-                bool ignoreTaskBar = AssociatedObject as MetroWindow != null && ((MetroWindow)this.AssociatedObject).IgnoreTaskbarOnMaximize;
+                bool ignoreTaskBar = AssociatedObject as MetroWindow != null && (((MetroWindow)this.AssociatedObject).IgnoreTaskbarOnMaximize || ((MetroWindow)this.AssociatedObject).UseNoneWindowStyle);
                 var x = ignoreTaskBar ? monitorInfo.rcMonitor.left : monitorInfo.rcWork.left;
                 var y = ignoreTaskBar ? monitorInfo.rcMonitor.top : monitorInfo.rcWork.top;
                 var cx = ignoreTaskBar ? Math.Abs(monitorInfo.rcMonitor.right - x) : Math.Abs(monitorInfo.rcWork.right - x);


Ensure the count down event has enough time

--- test/Foundatio.Tests/Utility/ScheduledTimerTests.cs
+++ test/Foundatio.Tests/Utility/ScheduledTimerTests.cs
@@ -55,7 +55,7 @@
                 await countdown.WaitAsync(TimeSpan.FromMilliseconds(100));
                 Assert.Equal(1, countdown.CurrentCount);

-                await countdown.WaitAsync(TimeSpan.FromMilliseconds(600));
+                await countdown.WaitAsync(TimeSpan.FromSeconds(1.5));
                 Assert.Equal(0, countdown.CurrentCount);
             }
         }


[mod_mono] Fix for bug #642176. Make sure the application server has correct physical root set

When creating the ApplicationServer instance from a new domain, make sure that IApplicationHost
instance for the current application is associated with the correct ApplicationServer instance,
or otherwise MapPath for applications served from non-root virtual paths will fail to map paths
properly (physical root will remain at '/')

--- src/Mono.WebServer.Apache/main.cs
+++ src/Mono.WebServer.Apache/main.cs
@@ -247,6 +247,9 @@
 		public int RealMain (string [] args, bool root, IApplicationHost ext_apphost, bool quiet)
 		{
 			ApplicationSettings settings = new ApplicationSettings ();
+			if (ext_apphost != null)
+				settings.RootDir = ext_apphost.Path;
+
 			Options options = 0;
 			int hash = 0;
 			for (int i = 0; i < args.Length; i++){
@@ -415,9 +418,10 @@
 				webSource.Dispose ();
 				return svr.RealMain (args, false, vh.AppHost, quiet);
 			}
-			if (ext_apphost != null)
+			if (ext_apphost != null) {
+				ext_apphost.Server = server;
 				server.AppHost = ext_apphost;
-
+			}
 			if (!useTCP && !quiet) {
 				Console.Error.WriteLine ("Listening on: {0}", settings.FileName);
 			} else if (!quiet) {


Added new type

Added new type

--- src/NJsonSchema/JsonObjectType.cs
+++ src/NJsonSchema/JsonObjectType.cs
@@ -1,50 +1,54 @@
-//-----------------------------------------------------------------------
-// <copyright file="JsonObjectType.cs" company="NJsonSchema">
-//     Copyright (c) Rico Suter. All rights reserved.
-// </copyright>
-// <license>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</license>
-// <author>Rico Suter, mail@rsuter.com</author>
-//-----------------------------------------------------------------------
-
-using System;
-using Newtonsoft.Json;
-
-namespace NJsonSchema
-{
-    /// <summary>Enumeration of the possible object types. </summary>
-    [Flags]
-    public enum JsonObjectType
-    {
-        /// <summary>No object type. </summary>
-        [JsonProperty("none")]
-        None = 0,
-
-        /// <summary>An array. </summary>
-        [JsonProperty("array")]
-        Array = 1,
-
-        /// <summary>A boolean value. </summary>
-        [JsonProperty("boolean")]
-        Boolean = 2,
-
-        /// <summary>An integer value. </summary>
-        [JsonProperty("integer")]
-        Integer = 4,
-
-        /// <summary>A null. </summary>
-        [JsonProperty("null")]
-        Null = 8,
-
-        /// <summary>An number value. </summary>
-        [JsonProperty("number")]
-        Number = 16,
-
-        /// <summary>An object. </summary>
-        [JsonProperty("object")]
-        Object = 32,
-
-        /// <summary>A string. </summary>
-        [JsonProperty("string")]
-        String = 64,
-    }
+//-----------------------------------------------------------------------
+// <copyright file="JsonObjectType.cs" company="NJsonSchema">
+//     Copyright (c) Rico Suter. All rights reserved.
+// </copyright>
+// <license>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</license>
+// <author>Rico Suter, mail@rsuter.com</author>
+//-----------------------------------------------------------------------
+
+using System;
+using Newtonsoft.Json;
+
+namespace NJsonSchema
+{
+    /// <summary>Enumeration of the possible object types. </summary>
+    [Flags]
+    public enum JsonObjectType
+    {
+        /// <summary>No object type. </summary>
+        [JsonProperty("none")]
+        None = 0,
+
+        /// <summary>An array. </summary>
+        [JsonProperty("array")]
+        Array = 1,
+
+        /// <summary>A boolean value. </summary>
+        [JsonProperty("boolean")]
+        Boolean = 2,
+
+        /// <summary>An integer value. </summary>
+        [JsonProperty("integer")]
+        Integer = 4,
+
+        /// <summary>A null. </summary>
+        [JsonProperty("null")]
+        Null = 8,
+
+        /// <summary>An number value. </summary>
+        [JsonProperty("number")]
+        Number = 16,
+
+        /// <summary>An object. </summary>
+        [JsonProperty("object")]
+        Object = 32,
+
+        /// <summary>A string. </summary>
+        [JsonProperty("string")]
+        String = 64,
+
+        /// <summary>A file (used in Swagger specifications). </summary>
+        [JsonProperty("file")]
+        File = 128,
+    }
 }


Improve missing FileResponse

Improve missing FileResponse

--- src/NSwag.Core/OpenApiResponse.cs
+++ src/NSwag.Core/OpenApiResponse.cs
@@ -121,9 +121,14 @@
             {
                 if (ActualResponse.Content.Any())
                 {
+                    if (ActualResponse.Content.All(c => c.Value.Schema?.ActualSchema.IsBinary == true))
+                    {
+                        return true;
+                    }
+
                     var contentIsBinary =
                         ActualResponse.Content.All(c => c.Value.Schema?.ActualSchema.IsAnyType != false ||
-                                                        c.Value.Schema?.ActualSchema.IsBinary != false) && // is binary only if there is no JSON schema defined
+                                                        c.Value.Schema?.ActualSchema.IsBinary != false) &&
                         !ActualResponse.Content.Keys.Any(p => p.Contains("application/json")) &&
                         !ActualResponse.Content.Keys.Any(p => p.Contains("text/plain")) &&
                         !ActualResponse.Content.Keys.Any(p => p.StartsWith("application/") && p.EndsWith("+json"));
@@ -137,6 +142,11 @@
                 var actualProduces = (ActualResponse.Parent as OpenApiOperation)?.ActualProduces;
                 if (actualProduces?.Any() == true)
                 {
+                    if (Schema?.ActualSchema.IsBinary == true)
+                    {
+                        return true;
+                    }
+
                     var producesIsBinary =
                         (Schema?.ActualSchema.IsAnyType != false ||
                          Schema?.ActualSchema.IsBinary != false) && // is binary only if there is no JSON schema defined


Improved document

Improved document

--- src/NSwag.Core/SwaggerDocument.cs
+++ src/NSwag.Core/SwaggerDocument.cs
@@ -115,10 +115,19 @@
         /// <returns>The JSON string.</returns>
         public string ToJson(SchemaType schemaType)
         {
+            return ToJson(schemaType, Formatting.Indented);
+        }
+
+        /// Converts the description object to JSON.
+        /// <param name="schemaType">The schema type.</param>
+        /// <param name="formatting">The formatting.</param>
+        /// <returns>The JSON string.</returns>
+        public string ToJson(SchemaType schemaType, Formatting formatting)
+        {
             GenerateOperationIds();

             var contractResolver = CreateJsonSerializerContractResolver(schemaType);
-            return JsonSchemaSerialization.ToJson(this, schemaType, contractResolver);
+            return JsonSchemaSerialization.ToJson(this, schemaType, contractResolver, formatting);
         }

         /// Creates a Swagger specification from a JSON string.


chore: case change

chore: case change

--- src/Nautilus/NautilusException.cs
+++ src/Nautilus/NautilusException.cs
@@ -1,58 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-using Octopus.Client.Exceptions;
-
-namespace Nautilus
-{
-    [Serializable]
-    public class NautilusException : Exception
-    {
-        public NautilusException(int errorCode, string message) : base(message)
-        {
-            ErrorCode = errorCode;
-        }
-
-        public NautilusException(int errorCode, string message, string messageDetails) : base(message)
-        {
-            ErrorCode = errorCode;
-            MessageDetails = messageDetails;
-        }
-
-        public NautilusException(int errorCode, string message, Exception inner) : base(message, inner)
-        {
-            ErrorCode = errorCode;
-        }
-
-        protected NautilusException(SerializationInfo info, StreamingContext context) : base(info, context)
-        { }
-
-        public int ErrorCode { get; }
-
-        public string MessageDetails { get; }
-
-        public static NautilusException UnknownError(Exception ex)
-        {
-            return new NautilusException(1, "An unknown error occured. See inner exception for details.", ex);
-        }
-
-        public static NautilusException OctopusError(OctopusException ex)
-        {
-            return new NautilusException(2, "An Octopus error occured. See inner exception for details.", ex);
-        }
-
-        public static NautilusException MachineNotRegistered(string machineName)
-        {
-            return new NautilusException(3, $"The target machine ({machineName}) is not registered with Octopus.");
-        }
-
-        public static NautilusException TentacleInstallationFailed(string messageDetails)
-        {
-            return new NautilusException(4, "Tentacle installation failed.", messageDetails);
-        }
-
-        public static NautilusException TentacleThumbprintNotFound(string messageDetails)
-        {
-            return new NautilusException(5, "Could not find the Tentacle thumbprint.", messageDetails);
-        }
-    }
-}


Modified objecto to IDocument

Modified objecto to IDocument

--- src/Nest/ElasticClient-Reindex.cs
+++ src/Nest/ElasticClient-Reindex.cs
@@ -16,7 +16,7 @@
 		}

 		/// <inheritdoc />
-		public IObservable<IReindexResponse<object>> Reindex(Func<ReindexDescriptor<object>, ReindexDescriptor<object>> reindexSelector)
+		public IObservable<IReindexResponse<IDocument>> Reindex(Func<ReindexDescriptor<object>, ReindexDescriptor<object>> reindexSelector)
 		{
 			return Reindex<object>(reindexSelector);
 		}


Fixes #820 - opacity of the old transition slide is now always set to 0

Previously, the old slide's opacity was only being set to 0 under very specific circumstances, rather than every time.

--- MaterialDesignThemes.Wpf/Transitions/Transitioner.cs
+++ MaterialDesignThemes.Wpf/Transitions/Transitioner.cs
@@ -197,17 +197,23 @@
             }

             if (newSlide != null)
-                newSlide.Opacity = 1;
+            {
+                newSlide.Opacity = 1;
+            }
+
             if (oldSlide != null && newSlide != null)
             {
                 var wipe = selectedIndex > unselectedIndex ? oldSlide.ForwardWipe : oldSlide.BackwardWipe;
-                if (wipe != null)
-                    wipe.Wipe(oldSlide, newSlide, GetTransitionOrigin(newSlide), this);
+                if (wipe != null)
+                {
+                    wipe.Wipe(oldSlide, newSlide, GetTransitionOrigin(newSlide), this);
+                }
                 else
                 {
                     DoStack(newSlide, oldSlide);
-                    oldSlide.Opacity = 0;
-                }
+                }
+
+                oldSlide.Opacity = 0;
             }
             else if (oldSlide != null || newSlide != null)
             {


Revise Open Recent filter

Revise Open Recent filter

--- MatterControlLib/PartPreviewWindow/ViewControls3D.cs
+++ MatterControlLib/PartPreviewWindow/ViewControls3D.cs
@@ -171,9 +171,8 @@
 				{
 					int maxItemWidth = 0;

-					// Select the 25 most recent files and project onto FileSystemItems
 					var recentFiles = new DirectoryInfo(ApplicationDataStorage.Instance.PlatingDirectory).GetFiles("*.mcx").OrderByDescending(f => f.LastWriteTime);
-					foreach (var item in recentFiles.Where(f => f.Length > 500).Select(f => new SceneReplacementFileItem(f.FullName)).Take(12))
+					foreach (var item in recentFiles.Where(f => f.Length > 215).Select(f => new SceneReplacementFileItem(f.FullName)).Take(12))
 					{
 						var imageBuffer = new ImageBuffer(thumbWidth, thumbWidth);


- (broken)

- (broken)

git-svn-id: 61c3ae23f3a6520e9bc357b51591209af2ede9d8@745 45b04e34-05f1-4d87-a130-40a8491d5c8b

--- Mosa/Platforms/x86/LongOperandTransformationStage.cs
+++ Mosa/Platforms/x86/LongOperandTransformationStage.cs
@@ -219,8 +219,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandDiv(Context ctx, IL.DivInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 7, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(7);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			SigType U4 = new SigType(CilElementType.U4);
 			SigType I1 = new SigType(CilElementType.I1);
@@ -290,6 +291,7 @@
                 new Instructions.SbbInstruction(eax, new ConstantOperand(I4, 0)),
                 new Instructions.MoveInstruction(op2H, eax),
                 new Instructions.MoveInstruction(op2L, edx),
+				new IR.JmpInstruction(blocks[1].Label),
             });

 			// L2:
@@ -394,12 +396,14 @@
 			// L6:
 			blocks[4].Instructions.AddRange(new Instruction[] {
                 new Instructions.DecInstruction(esi),
+				new IR.JmpInstruction(blocks[5].Label),
             });

 			// L7:
 			blocks[5].Instructions.AddRange(new Instruction[] {
                 new Instructions.LogicalXorInstruction(edx, edx),
                 new Instructions.MoveInstruction(eax, esi),
+				new IR.JmpInstruction(blocks[6].Label),
             });

 			;
@@ -418,6 +422,7 @@
                 new Instructions.NegInstruction(edx),
                 new Instructions.NegInstruction(eax),
                 new Instructions.SbbInstruction(edx, new ConstantOperand(I4, 0)),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			nextBlock.Instructions.InsertRange(0, new Instruction[] {
@@ -449,8 +454,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandRem(Context ctx, IL.RemInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 7, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(7);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			SigType U4 = new SigType(CilElementType.U4);
 			SigType U1 = new SigType(CilElementType.U1);
@@ -493,7 +499,7 @@
                 new Instructions.NegInstruction(edx),
                 new Instructions.SbbInstruction(eax, new ConstantOperand(I4, 0)),
                 new Instructions.MoveInstruction(op1H, eax),
-                new Instructions.MoveInstruction(op1L, edx),
+                new Instructions.MoveInstruction(op1L, edx),
             });

 			// L1:
@@ -517,7 +523,8 @@
                 new Instructions.SbbInstruction(eax, new ConstantOperand(I4, 0)),
                 new Instructions.MoveInstruction(op2H, eax),
                 new Instructions.MoveInstruction(op2L, edx),
-            });
+				new IR.JmpInstruction(blocks[1].Label),
+			});

 			// L2:
 			//
@@ -567,6 +574,7 @@
                 new Instructions.MoveInstruction(ecx, op2L),
                 new Instructions.MoveInstruction(edx, op1H),
                 new Instructions.MoveInstruction(eax, op1L),
+				new IR.JmpInstruction(blocks[3].Label),
             });

 			// L5:
@@ -689,8 +697,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandUDiv(Context ctx, IR.UDivInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 4, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(7);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			SigType U4 = new SigType(CilElementType.U4);
 			SigType U1 = new SigType(CilElementType.U1);
@@ -730,7 +739,8 @@
                 new Instructions.MoveInstruction(ebx, op2L),
                 new Instructions.MoveInstruction(edx, op1H),
                 new Instructions.MoveInstruction(eax, op1L),
-            });
+				new IR.JmpInstruction(blocks[2].Label),
+			});

 			// L3
 			blocks[1].Instructions.AddRange(new Instruction[] {
@@ -753,18 +763,21 @@
                 new IR.BranchInstruction(IR.ConditionCode.UnsignedLessThan, blocks[3].Label),
                 new Instructions.CmpInstruction(eax, op1L),
                 new IR.BranchInstruction(IR.ConditionCode.UnsignedLessOrEqual, blocks[3].Label),
+				new IR.JmpInstruction(blocks[4].Label),
             });

 			// L4:
 			blocks[2].Instructions.AddRange(new Instruction[] {
                 new Instructions.DecInstruction(esi),
-            });
+				new IR.JmpInstruction(blocks[3].Label),
+			});

 			// L5
 			blocks[3].Instructions.AddRange(new Instruction[] {
                 new Instructions.LogicalXorInstruction(edx, edx),
                 new Instructions.MoveInstruction(eax, esi),
-            });
+				new IR.JmpInstruction(nextBlock.Label),
+			});

 			// L2
 			nextBlock.Instructions.InsertRange(0, new Instruction[] {
@@ -793,8 +806,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandURem(Context ctx, IR.URemInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 4, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			SigType U4 = new SigType(CilElementType.U4);
 			SigType U1 = new SigType(CilElementType.U1);
@@ -838,7 +852,6 @@
                 new Instructions.UDivInstruction(eax, ecx),
                 new Instructions.MoveInstruction(eax, edx),
                 new Instructions.LogicalXorInstruction(edx, edx),
-                new IR.JmpInstruction(nextBlock.Label),
             });

 			// L1:
@@ -847,7 +860,8 @@
                 new Instructions.MoveInstruction(ebx, op2L),
                 new Instructions.MoveInstruction(edx, op1H),
                 new Instructions.MoveInstruction(eax, op1L),
-            });
+				new IR.JmpInstruction(blocks[1].Label),
+			});

 			// L3:
 			blocks[1].Instructions.AddRange(new Instruction[] {
@@ -869,12 +883,14 @@
                 new IR.BranchInstruction(IR.ConditionCode.UnsignedLessThan, blocks[3].Label),
                 new Instructions.CmpInstruction(eax, op1L),
                 new IR.BranchInstruction(IR.ConditionCode.UnsignedLessOrEqual, blocks[3].Label),
+				new IR.JmpInstruction(blocks[2].Label),
             });

 			// L4:
 			blocks[2].Instructions.AddRange(new Instruction[] {
                 new Instructions.SubInstruction(eax, op2L),
                 new Instructions.SbbInstruction(edx, op2H),
+				new IR.JmpInstruction(blocks[3].Label),
             });

 			// L5:
@@ -884,6 +900,7 @@
                 new Instructions.NegInstruction(edx),
                 new Instructions.NegInstruction(eax),
                 new Instructions.SbbInstruction(edx, new ConstantOperand(U4, (int)0)),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			nextBlock.Instructions.InsertRange(0, new Instruction[] {
@@ -912,8 +929,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandArithmeticShiftRight(Context ctx, IR.ArithmeticShiftRightInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 3, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			MemoryOperand op0 = instruction.Operand0 as MemoryOperand;
 			MemoryOperand op1 = instruction.Operand1 as MemoryOperand;
@@ -936,7 +954,8 @@
                 new Instructions.MoveInstruction(edx, op1H),
                 new Instructions.MoveInstruction(eax, op1L),
                 new Instructions.CmpInstruction(ecx, new ConstantOperand(I4, 64)),
-                new IR.BranchInstruction(IR.ConditionCode.UnsignedGreaterOrEqual, blocks[2].Label)
+                new IR.BranchInstruction(IR.ConditionCode.UnsignedGreaterOrEqual, blocks[2].Label),
+				new IR.JmpInstruction(blocks[0].Label),
             });

 			// small_shift:
@@ -973,6 +992,7 @@
 			blocks[2].Instructions.AddRange(new Instruction[] {
                 new Instructions.SarInstruction(edx, new ConstantOperand(new SigType(CilElementType.I1), 31)),
                 new Instructions.MoveInstruction(eax, edx),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			// done:
@@ -999,8 +1019,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandShiftLeft(Context ctx, IR.ShiftLeftInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 3, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			MemoryOperand op0 = instruction.Operand0 as MemoryOperand;
 			MemoryOperand op1 = instruction.Operand1 as MemoryOperand;
@@ -1023,7 +1044,8 @@
                 new Instructions.MoveInstruction(edx, op1H),
                 new Instructions.MoveInstruction(eax, op1L),
                 new Instructions.CmpInstruction(ecx, new ConstantOperand(I4, 64)),
-                new IR.BranchInstruction(IR.ConditionCode.UnsignedGreaterOrEqual, blocks[2].Label)
+                new IR.BranchInstruction(IR.ConditionCode.UnsignedGreaterOrEqual, blocks[2].Label),
+				new IR.JmpInstruction(blocks[0].Label),
             });

 			// small_shift:
@@ -1060,6 +1082,7 @@
 			blocks[2].Instructions.AddRange(new Instruction[] {
                 new Instructions.LogicalXorInstruction(edx, edx),
                 new Instructions.LogicalXorInstruction(eax, eax),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			// done:
@@ -1086,8 +1109,9 @@
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandShiftRight(Context ctx, IR.ShiftRightInstruction instruction)
 		{
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 3, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[0]);
+
 			SigType I4 = new SigType(CilElementType.I4);
 			MemoryOperand op0 = instruction.Operand0 as MemoryOperand;
 			MemoryOperand op1 = instruction.Operand1 as MemoryOperand;
@@ -1147,6 +1171,7 @@
 			blocks[2].Instructions.AddRange(new Instruction[] {
                 new Instructions.LogicalXorInstruction(edx, edx),
                 new Instructions.LogicalXorInstruction(eax, eax),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			// done:
@@ -1488,14 +1513,207 @@
 		}

 		/// <summary>
+		/// Create an empty block.
+		/// </summary>
+		/// <returns></returns>
+		private BasicBlock CreateEmptyBlock()
+		{
+			BasicBlock block = new BasicBlock(_blocks.Count + 0x10000000);
+			block.Index = _blocks.Count;
+			_blocks.Add(block);
+			return block;
+		}
+
+		/// <summary>
+		/// Creates empty blocks.
+		/// </summary>
+		/// <param name="blocks">The blocks.</param>
+		/// <returns></returns>
+		private BasicBlock[] CreateEmptyBlocks(int blocks)
+		{
+			// Allocate the block array
+			BasicBlock[] result = new BasicBlock[blocks];
+
+			for (int index = 0; index < blocks; index++)
+				result[index] = CreateEmptyBlock();
+
+			return result;
+		}
+
+		/// <summary>
+		/// Splits the block.
+		/// </summary>
+		/// <param name="ctx">The context.</param>
+		/// <param name="instruction">The instruction index to split on.</param>
+		/// <param name="insert">The insert to be called after the split.</param>
+		/// <returns></returns>
+		private BasicBlock SplitBlock(Context ctx, Instruction instruction, BasicBlock insert)
+		{
+			int label = _blocks.Count + 0x10000000;
+
+			BasicBlock nextBlock = ctx.Block.Split(ctx.Index + 1, label);
+			nextBlock.Index = _blocks.Count - 1;
+			_blocks.Add(nextBlock);
+
+			foreach (BasicBlock block in ctx.Block.NextBlocks)
+				nextBlock.NextBlocks.Add(block);
+
+			ctx.Block.NextBlocks.Clear();
+
+			if (insert != null) {
+				ctx.Block.NextBlocks.Add(insert);
+				insert.PreviousBlocks.Add(ctx.Block);
+				ctx.Block.Instructions.Add(new IR.JmpInstruction(insert.Label));
+			}
+			else {
+				ctx.Block.NextBlocks.Add(nextBlock);
+				nextBlock.PreviousBlocks.Add(ctx.Block);
+				ctx.Block.Instructions.Add(new IR.JmpInstruction(label));
+			}
+
+			ctx.Block.NextBlocks.Add(nextBlock);
+
+			return nextBlock;
+		}
+
+		/// <summary>
 		/// Expands the binary branch instruction for 64-bits.
 		/// </summary>
 		/// <param name="ctx">The context.</param>
 		/// <param name="instruction">The instruction.</param>
 		private void ExpandBinaryBranch(Context ctx, IL.BinaryBranchInstruction instruction)
 		{
-			throw new NotSupportedException();
-		}
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[2]);
+
+			SigType I4 = new SigType(CilElementType.I4);
+			SigType U4 = new SigType(CilElementType.U4);
+			SigType U1 = new SigType(CilElementType.U1);
+
+			Operand op1H, op1L, op2H, op2L;
+			SplitLongOperand(instruction.Operands[0], out op1L, out op1H);
+			SplitLongOperand(instruction.Operands[1], out op2L, out op2H);
+
+			int[] targets = instruction.BranchTargets;
+
+			IR.ConditionCode code;
+
+			switch (instruction.Code) {
+				// Signed
+				case IL.OpCode.Beq_s: code = IR.ConditionCode.Equal; break;
+				case IL.OpCode.Bge_s: code = IR.ConditionCode.GreaterOrEqual; break;
+				case IL.OpCode.Bgt_s: code = IR.ConditionCode.GreaterThan; break;
+				case IL.OpCode.Ble_s: code = IR.ConditionCode.LessOrEqual; break;
+				case IL.OpCode.Blt_s: code = IR.ConditionCode.LessThan; break;
+
+				// Unsigned
+				case IL.OpCode.Bne_un_s: code = IR.ConditionCode.NotEqual; break;
+				case IL.OpCode.Bge_un_s: code = IR.ConditionCode.UnsignedGreaterOrEqual; break;
+				case IL.OpCode.Bgt_un_s: code = IR.ConditionCode.UnsignedGreaterThan; break;
+				case IL.OpCode.Ble_un_s: code = IR.ConditionCode.UnsignedLessOrEqual; break;
+				case IL.OpCode.Blt_un_s: code = IR.ConditionCode.UnsignedLessThan; break;
+
+				// Long form signed
+				case IL.OpCode.Beq: goto case IL.OpCode.Beq_s;
+				case IL.OpCode.Bge: goto case IL.OpCode.Bge_s;
+				case IL.OpCode.Bgt: goto case IL.OpCode.Bgt_s;
+				case IL.OpCode.Ble: goto case IL.OpCode.Ble_s;
+				case IL.OpCode.Blt: goto case IL.OpCode.Blt_s;
+
+				// Long form unsigned
+				case IL.OpCode.Bne_un: goto case IL.OpCode.Bne_un_s;
+				case IL.OpCode.Bge_un: goto case IL.OpCode.Bge_un_s;
+				case IL.OpCode.Bgt_un: goto case IL.OpCode.Bgt_un_s;
+				case IL.OpCode.Ble_un: goto case IL.OpCode.Ble_un_s;
+				case IL.OpCode.Blt_un: goto case IL.OpCode.Blt_un_s;
+
+				default:
+					throw new NotImplementedException();
+			}
+
+			IR.ConditionCode conditionHigh = GetHighCondition(code);
+
+			/*Replace(ctx, new Instruction[] {
+				new Instructions.CmpInstruction(op1H, op2H),
+				new IR.BranchInstruction(conditionHigh, targets[1]),
+				new Instructions.CmpInstruction(op1L, op2L),
+				new IR.BranchInstruction(conditionLow, targets[1]),
+				new IR.JmpInstruction(targets[0])
+			});*/
+
+			// I8 is stored LO-HI in x86 LE
+			Instruction[] instructions = null;
+
+			if (code != Mosa.Runtime.CompilerFramework.IR.ConditionCode.Equal) {
+				instructions = new Instruction[] {
+                    // Compare high dwords
+                    new Instructions.CmpInstruction(op1H, op2H),
+                    new IR.BranchInstruction(IR.ConditionCode.Equal, blocks[0].Label),
+                    // Branch if check already gave results
+                    new IR.BranchInstruction(GetHighCondition(code), blocks[2].Label),
+                };
+				blocks[0].Instructions.AddRange(new Instruction[] {
+                    // Compare low dwords
+                    new Instructions.CmpInstruction(op1L, op2L),
+                    // Set the unsigned result...
+                    new IR.BranchInstruction(code, blocks[1].Label),
+                    new IR.JmpInstruction(blocks[2].Label),
+                });
+				blocks[1].Instructions.AddRange(new Instruction[] {
+                    new IR.JmpInstruction(targets[0]),
+                });
+				blocks[2].Instructions.AddRange(new Instruction[] {
+                    new IR.JmpInstruction(targets[1]),
+                });
+			}
+			else {
+				instructions = new Instruction[] {
+                    // Compare high dwords
+                    new Instructions.CmpInstruction(op1H, op2H),
+                    // Branch if check already gave results
+                    new IR.BranchInstruction(GetHighCondition(code), blocks[2].Label),
+                };
+				blocks[0].Instructions.AddRange(new Instruction[] {
+                    // Compare low dwords
+                    new Instructions.CmpInstruction(op1L, op2L),
+                    // Set the unsigned result...
+                    new IR.BranchInstruction(code, blocks[1].Label),
+                    new IR.JmpInstruction(blocks[2].Label),
+                });
+				blocks[1].Instructions.AddRange(new Instruction[] {
+                    new IR.JmpInstruction(targets[0]),
+                });
+				blocks[2].Instructions.AddRange(new Instruction[] {
+                    new IR.JmpInstruction(targets[1]),
+                });
+			}
+
+			Replace(ctx, instructions);
+
+			LinkBlocks(blocks[0], blocks[1]);
+			LinkBlocks(blocks[1], blocks[2]);
+			LinkBlocks(blocks[0], blocks[2]);
+		}
+
+		/// <summary>
+		///
+		/// </summary>
+		/// <param name="code"></param>
+		/// <returns></returns>
+		private Mosa.Runtime.CompilerFramework.IR.ConditionCode GetHighCondition(Mosa.Runtime.CompilerFramework.IR.ConditionCode code)
+		{
+			switch (code) {
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.Equal: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.NotEqual;
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.GreaterOrEqual: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.LessThan;
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.GreaterThan: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.LessThan;
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.LessOrEqual: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.GreaterThan;
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.LessThan: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.GreaterThan;
+				case Mosa.Runtime.CompilerFramework.IR.ConditionCode.NotEqual: return Mosa.Runtime.CompilerFramework.IR.ConditionCode.Equal;
+				default: return code;
+			}
+		}
+
+

 		/// <summary>
 		/// Expands the binary comparison instruction for 64-bits.
@@ -1522,8 +1740,9 @@
 			SplitLongOperand(op2, out op2L, out op2H);

 			// Create an additional block to split the comparison
-			BasicBlock nextBlock;
-			BasicBlock[] blocks = CreateBlocks(ctx, instruction, 1, out nextBlock);
+			BasicBlock[] blocks = CreateEmptyBlocks(3);
+			BasicBlock nextBlock = SplitBlock(ctx, instruction, blocks[1]);
+
 			Debug.Assert(nextBlock != null, @"No follower block?");
 			IR.BranchInstruction branch = new IR.BranchInstruction(IR.ConditionCode.NotEqual, nextBlock.Label);

@@ -1535,6 +1754,7 @@
                 new SetccInstruction(op0, instruction.ConditionCode),
                 // Branch if check already gave results
                 branch,
+				new IR.JmpInstruction(blocks[0].Label),
             };
 			Replace(ctx, instructions);

@@ -1542,7 +1762,8 @@
                 // Compare low dwords
                 new Instructions.CmpInstruction(op1L, op2L),
                 // Set the unsigned result...
-                new SetccInstruction(op0, GetUnsignedConditionCode(instruction.ConditionCode))
+                new SetccInstruction(op0, GetUnsignedConditionCode(instruction.ConditionCode)),
+				new IR.JmpInstruction(nextBlock.Label),
             });

 			LinkBlocks(ctx.Block, nextBlock);
@@ -1576,42 +1797,6 @@
 		}

 		/// <summary>
-		/// Creates an additional number of basic blocks required to expand an operation.
-		/// </summary>
-		/// <param name="ctx">The transformation context.</param>
-		/// <param name="instruction">The instruction being expanded.</param>
-		/// <param name="blocks">The number of basic blocks needed.</param>
-		/// <param name="nextBlock">The block, which follows the current block.</param>
-		/// <returns>An array of basic blocks.</returns>
-		private BasicBlock[] CreateBlocks(Context ctx, Instruction instruction, int blocks, out BasicBlock nextBlock)
-		{
-			BasicBlock[] result;
-			int label = _blocks.Count + 0x10000000;
-
-			// Is there a statement after the instruction?
-			if (ctx.Index + 1 < ctx.Block.Instructions.Count) {
-				nextBlock = ctx.Block.Split(ctx.Index + 1, label++);
-			}
-			else if (0 != ctx.Block.NextBlocks.Count) {
-				nextBlock = ctx.Block.NextBlocks[0];
-				UnlinkBlocks(ctx.Block, nextBlock);
-			}
-			else {
-				nextBlock = null;
-			}
-
-			// Allocate the block array
-			result = new BasicBlock[blocks];
-			for (int index = 0; index < blocks; index++)
-				result[index] = new BasicBlock(label++);
-			_blocks.InsertRange(_currentBlock + 1, result);
-			if (null != nextBlock)
-				_blocks.Insert(_currentBlock + blocks + 1, nextBlock);
-
-			return result;
-		}
-
-		/// <summary>
 		/// Links the blocks.
 		/// </summary>
 		/// <param name="from">The block issuing the jump.</param>


corrigindo data do evento

corrigindo data do evento

--- DotNetFloripa/DotNetFloripa.Web/Modules/HomeModule.cs
+++ DotNetFloripa/DotNetFloripa.Web/Modules/HomeModule.cs
@@ -23,8 +23,8 @@
             var eventos = new[]{
                 new Event {
                     Description = "O grupo DotNetFloripa está voltando a ativa e já temos um novo evento marcado!",
-                    Start = new DateTime(2014,3,19,19,00,0),
-                    End = new DateTime(2014,3,19,21,30,0),
+                    Start = new DateTime(2014,2,19,19,00,0),
+                    End = new DateTime(2014,2,19,21,30,0),
                     EventickId = 4846,
                     EventickUrl = "http://www.eventick.com.br/dotnetfloripa-fevereiro",
                     ImageUrl = "http://i.imgur.com/2ls3CgF.png",
@@ -33,19 +33,19 @@
                     Talks = new[]{
                         new Talk {
                             Description = "NancyFX é um framework HTTP super leve que serve de alternativa para o ASP.NET MVC ou ASP.NET Web API",
-                            Start = new DateTime(2014,3,19,19,30,0),
-                            End = new DateTime(2014,3,19,20,15,0),
+                            Start = new DateTime(2014,2,19,19,30,0),
+                            End = new DateTime(2014,2,19,20,15,0),
                             Speaker = "Luís Deschamps Rudge",
                             Title = "Conheça o NancyFX!"
                         },new Talk {
-                            Start = new DateTime(2014,3,19,20,15,0),
-                            End = new DateTime(2014,3,19,20,30,0),
+                            Start = new DateTime(2014,2,19,20,15,0),
+                            End = new DateTime(2014,2,19,20,30,0),
                             Title = "coffee-break",
                             Description = "Sim! Agora temos coffee-break com deliciosos salgadinhos!"
                         },new Talk {
                             Description = "NancyFX é um framework HTTP super leve que serve de alternativa para o ASP.NET MVC ou ASP.NET Web API",
-                            Start = new DateTime(2014,3,19,19,30,0),
-                            End = new DateTime(2014,3,19,20,15,0),
+                            Start = new DateTime(2014,2,19,19,30,0),
+                            End = new DateTime(2014,2,19,20,15,0),
                             Speaker = "Luís Deschamps Rudge",
                             Title = "Conheça o NancyFX!"
                         }


Level 14

Level 14

--- EarthMagicCharacters/Classes/Monk/Monk/GenericMonk.cs
+++ EarthMagicCharacters/Classes/Monk/Monk/GenericMonk.cs
@@ -473,8 +473,15 @@
         /// </summary>
         private void Level14()
         {
-            List<string> levelUpReport = new List<string> {   };
-
+            List<string> levelUpReport = new List<string> { "Title: Elite Master", "+5% hide in shadows", "+5% walk silently", "To hit: +1", "AC: +1"};
+
+            this.Title = "Elite Master";
+            this.Abilities.HideInShadows += 5;
+            this.Abilities.WalkSilently += 5;
+            this.Attributes.ToHit++;
+            this.Attributes.AC++;
+
+            Util.WriteLine(levelUpReport);
         }

         /// <summary>


Fix resources lookup to use satellite assembly resouce lookup inside AppX when the assembly is Private.Corelib (#12954)

--- src/mscorlib/src/System/Resources/ResourceManager.cs
+++ src/mscorlib/src/System/Resources/ResourceManager.cs
@@ -889,7 +889,7 @@
         //       contains the PRI resources.
         private bool ShouldUseSatelliteAssemblyResourceLookupUnderAppX(RuntimeAssembly resourcesAssembly)
         {
-            bool fUseSatelliteAssemblyResourceLookupUnderAppX = true; // TODO: https://github.com/dotnet/coreclr/issues/12178 once we fix our uap testhost
+            bool fUseSatelliteAssemblyResourceLookupUnderAppX = typeof(Object).Assembly == resourcesAssembly;

             if (!fUseSatelliteAssemblyResourceLookupUnderAppX)
             {
@@ -1038,6 +1038,11 @@
                                         if (e.HResult != __HResults.ERROR_MRM_MAP_NOT_FOUND)
                                             throw; // Unexpected exception code. Bubble it up to the caller.
                                     }
+
+                                    if (!_PRIonAppXInitialized)
+                                    {
+                                        _bUsingModernResourceManagement = false;
+                                    }
                                     // Allow all other exception types to bubble up to the caller.

                                     // Yes, this causes us to potentially throw exception types that are not documented.
@@ -1122,7 +1127,7 @@
                 {
                     // When running inside AppX we want to ignore the languages list when trying to come up with our CurrentUICulture.
                     // This line behaves the same way as CultureInfo.CurrentUICulture would have in .NET 4
-                    culture = CultureInfo.GetCurrentUICultureNoAppX();
+                    culture = CultureInfo.CurrentUICulture;
                 }

                 ResourceSet last = GetFirstResourceSet(culture);


Update AssemblyInfo.cs

Update AssemblyInfo.cs

--- Easy.Compression.Benchmark/Properties/AssemblyInfo.cs
+++ Easy.Compression.Benchmark/Properties/AssemblyInfo.cs
@@ -3,5 +3,5 @@
 [assembly: AssemblyTitle("Easy.Compression.Benchmark")]
 [assembly: AssemblyCopyright("Copyright ©  2016")]

-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]


Disable Musicstore from ILLink test

Disable Musicstore from ILLink test

MusicStore is currently a very flaky scenario so for now I am disabling
the MusicStore test of ILLink.  We will add this back when we move this
scenario test over to its own leg.

--- tests/src/performance/linkbench/linkbench.cs
+++ tests/src/performance/linkbench/linkbench.cs
@@ -251,14 +251,15 @@
                 "WebAPI\\bin\\release\\netcoreapp2.0\\win10-x64\\linked",
                 () => { Benchmark.AddLinkerReference("WebAPI\\WebAPI.csproj");
                         Benchmark.PreventPublishFiltering("WebAPI\\WebAPI.csproj"); }),
-            new Benchmark("MusicStore",
+            //Remove the MusicStore from the run as the scenario is currently flaky and breaking performance runs
+            /*new Benchmark("MusicStore",
                 "JitBench\\src\\MusicStore\\bin\\release\\netcoreapp2.0\\win10-x64\\unlinked",
                 "JitBench\\src\\MusicStore\\bin\\release\\netcoreapp2.0\\win10-x64\\linked",
                 () => { Benchmark.AddLinkerReference("JitBench\\src\\MusicStore\\MusicStore.csproj");
                        Benchmark.SetRuntimeFrameworkVersion("JitBench\\src\\MusicStore\\MusicStore.csproj"); }),
             new Benchmark("MusicStore_R2R",
                 "JitBench\\src\\MusicStore\\bin\\release\\netcoreapp2.0\\win10-x64\\R2R\\unlinked",
-                "JitBench\\src\\MusicStore\\bin\\release\\netcoreapp2.0\\win10-x64\\R2R\\linked"),
+                "JitBench\\src\\MusicStore\\bin\\release\\netcoreapp2.0\\win10-x64\\R2R\\linked"),*/
             new Benchmark("Corefx",
                 "corefx\\bin\\ILLinkTrimAssembly\\netcoreapp-Windows_NT-Release-x64\\pretrimmed",
                 "corefx\\bin\\ILLinkTrimAssembly\\netcoreapp-Windows_NT-Release-x64\\trimmed"),


Handling hotreload when sent url is null

--- Neutronium.Core/Navigation/DoubleBrowserNavigator.cs
+++ Neutronium.Core/Navigation/DoubleBrowserNavigator.cs
@@ -214,12 +214,12 @@
             _WebSessionLogger.Info($"Switching to uri: {target}");
             var newUri = new UriBuilder(target)
             {
-                Fragment = CurrentUrl.Fragment.Replace("#",String.Empty)
+                Fragment = CurrentUrl.Fragment.Replace("#", String.Empty)
             };
             return SafeReloadAsync(newUri.Uri);
         }

-        private Task SafeReloadAsync(Uri target= null)
+        private Task SafeReloadAsync(Uri target = null)
         {
             var dispatcher = _CurrentWebControl?.UiDispatcher;
             return dispatcher?.RunAsync(() => Reload(true, target)) ?? Task.CompletedTask;
@@ -234,7 +234,8 @@
         private void ModernWindow_OnClientReload(object sender, ClientReloadArgs e)
         {
             _WebSessionLogger.Info("Page changes detected reloading bindings.");
-            Reload(true, new Uri(e.Url));
+            var uri = (e.Url != null) ? new Uri(e.Url) : null;
+            Reload(true, uri);
         }

         private void Reload(bool hotReloadContext, Uri url = null)


FirstAsync takes a predicate

FirstAsync takes a predicate

--- Espera/Espera.View/ViewModels/YoutubeSongViewModel.cs
+++ Espera/Espera.View/ViewModels/YoutubeSongViewModel.cs
@@ -39,8 +39,7 @@

             // Wait for the opening of the context menu to download the YouTube information
             this.WhenAnyValue(x => x.IsContextMenuOpen)
-                .Where(x => x)
-                .FirstAsync()
+                .FirstAsync(x => x)
                 .Subscribe(_ => this.LoadContextMenu());

             // We have to set a dummy here, so that we can connect the commands


Return the normalized value for NormalizeFloat16

--- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -3394,7 +3394,7 @@
         private float NormalizeFloat16(float value, float magnitude)
         {
             float val = Utils.UInt16ToFloat(Utils.FloatToUInt16(value, -magnitude, magnitude), -magnitude, magnitude);
-            return value;
+            return val;
         }

         private ObjectUpdatePacket.ObjectDataBlock GenerateObjectBlock(


139: Application crashes on Windows User switch

--- Eve-O-Preview/Services/Implementation/DwmThumbnail.cs
+++ Eve-O-Preview/Services/Implementation/DwmThumbnail.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Runtime.InteropServices;
 using EveOPreview.Services.Interop;

 namespace EveOPreview.Services.Implementation
@@ -45,6 +46,12 @@
 				// a thumbnail source
 				this._handle = IntPtr.Zero;
 			}
+			catch (COMException)
+			{
+				// This exception is raised if DWM is suddenly not available
+				// (f.e. when switching between Windows user accounts)
+				this._handle = IntPtr.Zero;
+			}
 		}

 		public void Unregister()
@@ -60,6 +67,10 @@
 			}
 			catch (ArgumentException)
 			{
+			}
+			catch (COMException)
+			{
+				// This exception is raised when DWM is not available for some reason
 			}
 		}

@@ -81,7 +92,11 @@
 			}
 			catch (ArgumentException)
 			{
-				//This exception will be thrown if the EVE client disappears while this method is running
+				// This exception will be thrown if the EVE client disappears while this method is running
+			}
+			catch (COMException)
+			{
+				// This exception is raised when DWM is not available for some reason
 			}
 		}
 	}


Add support for exact filenames for searches

In the `File Paths` text box of `Code Search`, double quotes can now be used
to prevent implicitly surrounding simple searches with "*".

For example,

* Typing `foo` results in matching any filename containing `foo`
  (e.g. `barfoo`, `foo.h`, `bar.foo`

* Typing `"foo"` results in matching files that are named exactly `foo`,
  and nothing else.

Fix feature request #56

--- src/Server/Search/SearchEngine.cs
+++ src/Server/Search/SearchEngine.cs
@@ -321,27 +321,23 @@
         .Split(new[] { ';' })
         .Where(x => !string.IsNullOrWhiteSpace(x.Trim()))
         .Select(x => x.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar))
-        .Select(x => {
-          // Exception to ".gitignore" syntax: If the search string doesn't contain any special
-          // character, surround the pattern with "*" so that we match sub-strings.
-          // TODO(rpaquay): What about "."? Special or not?
-          if (x.IndexOf(Path.DirectorySeparatorChar) < 0 && x.IndexOf('*') < 0) {
-            if (!searchParams.MatchWholeWord) {
-              x = "*" + x + "*";
-            }
-          }
-          return x;
-        })
-        .ToReadOnlyCollection();
+        .ToList();

       // Split patterns into "include" and "exclude" patterns.
       // "exclude" patterns are defined as any pattern starting with "-".
-      var includePatterns = patterns.Where(x => !x.StartsWith("-")).ToList();
+      var includePatterns = patterns
+        .Where(x => !x.StartsWith("-"))
+        .ToList();
+
       var excludePatterns = patterns
-        .Except(includePatterns)
+        .Where(x => x.StartsWith("-"))
         .Select(x => x.Substring(1))
         .Where(x => !string.IsNullOrWhiteSpace(x))
         .ToList();
+
+      // Process qouble quotes, and add implicit wildcards if needed
+      includePatterns = MapQuotesAndImplicitWildcards(searchParams, includePatterns).ToList();
+      excludePatterns = MapQuotesAndImplicitWildcards(searchParams, excludePatterns).ToList();

       // If no include pattern, assume implicit "*"
       if (includePatterns.Count == 0) {
@@ -374,6 +370,33 @@
       }
     }

+    private IEnumerable<string> MapQuotesAndImplicitWildcards(SearchParams searchParams, IEnumerable<string> patterns) {
+      return patterns.Select(x => {
+          // Exception to ".gitignore" syntax: If the search string doesn't contain any special
+          // character, surround the pattern with "*" so that we match sub-strings.
+          // TODO(rpaquay): What about "."? Special or not?
+          if (x.IndexOf(Path.DirectorySeparatorChar) < 0 && x.IndexOf('*') < 0 && !IsSurroundedByDoubleQuotes(x)) {
+            if (!searchParams.MatchWholeWord) {
+              x = "*" + x + "*";
+            }
+          }
+          return x;
+        })
+        .Select(x => RemoveSurroundingDoubleQuotes(x))
+        .Where(x => !string.IsNullOrEmpty(x));
+    }
+
+    private string RemoveSurroundingDoubleQuotes(string text) {
+      if (IsSurroundedByDoubleQuotes(text)) {
+        return text.Substring(1, text.Length - 2);
+      }
+      return text;
+    }
+
+    private bool IsSurroundedByDoubleQuotes(string text) {
+      return (text.Length > 2) && (text[0] == '"') && (text[text.Length - 1] == '"');
+    }
+
     private SearchPreProcessResult<T> PreProcessFileSystemNameRegularExpressionSearch<T>(SearchParams searchParams,
       Func<IPathMatcher, T, IPathComparer, bool> matchName,
       Func<IPathMatcher, T, IPathComparer, bool> matchRelativeName) {


Typo in comment

Typo in comment

--- Eve-O-Preview/Services/Implementation/DwmThumbnail.cs
+++ Eve-O-Preview/Services/Implementation/DwmThumbnail.cs
@@ -42,7 +42,7 @@
 			{
 				// This exception is raised if the source client is already closed
 				// Can happen on a really slow CPU's that the window is still being
-				// lised in the process list yet it already cannot be used as
+				// listed in the process list yet it already cannot be used as
 				// a thumbnail source
 				this._handle = IntPtr.Zero;
 			}


支援檢查章節是否為空章節

支援檢查章節是否為空章節

--- src/SharpMarkdown/Area/Section.cs
+++ src/SharpMarkdown/Area/Section.cs
@@ -45,6 +45,16 @@
         public override string InnerText {
             get {
                 return ToText(Children, IsSingleLine);
+            }
+        }
+
+        /// <summary>
+        /// 檢驗是否為空
+        /// </summary>
+        public bool IsEmpty {
+            get {
+                return string.IsNullOrWhiteSpace(HeaderText) &&
+                    Children.Count == 0;
             }
         }


Added SenderName

Added SenderName

--- EveLib.EveOnline/Models/Character/NotificationList.cs
+++ EveLib.EveOnline/Models/Character/NotificationList.cs
@@ -21,6 +21,9 @@
             [XmlAttribute("senderID")]
             public long SenderId { get; set; }

+            [XmlAttribute("senderName")]
+            public string SenderName { get; set; }
+
             [XmlIgnore]
             public DateTime SentDate { get; private set; }


Removes events duplication on stacked Applying

--- src/core/Akka.Persistence/Fsm/PersistentFSMBase.cs
+++ src/core/Akka.Persistence/Fsm/PersistentFSMBase.cs
@@ -955,7 +955,7 @@
                 var events = new List<TEvent>();
                 events.AddRange(DomainEvents);
                 events.Add(e);
-                return Copy(null, null, null, new ArrayLinearSeq<TEvent>(DomainEvents.Concat(events).ToArray()));
+                return Copy(null, null, null, new ArrayLinearSeq<TEvent>(events.ToArray()));
             }


MessageEventクラスのSetメソッドの名称変更

MessageEventクラスのSetメソッドの名称変更

--- src/Sitrine/Event/MessageEvent.cs
+++ src/Sitrine/Event/MessageEvent.cs
@@ -78,7 +78,7 @@
         /// </summary>
         /// <param name="value">設定される値。</param>
         /// <returns>このイベントのオブジェクトを返します。</returns>
-        public MessageEvent SetPosition(PointF value)
+        public MessageEvent Position(PointF value)
         {
             this.Storyboard.AddAction(() => this.texture.Position = value);

@@ -91,7 +91,7 @@
         /// </summary>
         /// <param name="value">設定される値。</param>
         /// <returns>このイベントのオブジェクトを返します。</returns>
-        public MessageEvent SetColor(Color4 value)
+        public MessageEvent Color(Color4 value)
         {
             this.Storyboard.AddAction(() => this.texture.Color = value);

@@ -104,7 +104,7 @@
         /// </summary>
         /// <param name="value">設定される値。</param>
         /// <returns>このイベントのオブジェクトを返します。</returns>
-        public MessageEvent SetInterval(int value)
+        public MessageEvent Interval(int value)
         {
             this.Storyboard.AddAction(() => this.texture.Interval = value);

@@ -117,7 +117,7 @@
         /// </summary>
         /// <param name="value">設定される値。</param>
         /// <returns>このイベントのオブジェクトを返します。</returns>
-        public MessageEvent SetProgressCount(int value)
+        public MessageEvent ProgressCount(int value)
         {
             this.Storyboard.AddAction(() => this.texture.ProgressCount = value);


remove initialize() from playground.touch

--- Fetcher.Playground.Touch/Views/FirstViewController.cs
+++ Fetcher.Playground.Touch/Views/FirstViewController.cs
@@ -76,8 +76,6 @@

         private async Task DoFetch()
         {
-            await ((FetcherRepositoryService)_repository).Initialize();
-
             //_fetcher.Preload(url, "<html>Hello world!</html>");
             try
             {


No need for new property

No need for new property

--- src/SixLabors.Fonts/TextLayout.cs
+++ src/SixLabors.Fonts/TextLayout.cs
@@ -788,8 +788,7 @@
                         }
                     }

-                    float advanceScale = pointSize / (isHorizontal ? glyph.ScaleFactor.X : glyph.ScaleFactor.Y);
-                    glyphAdvance *= advanceScale;
+                    glyphAdvance *= (float)(pointSize / (isHorizontal ? glyph.ScaleFactor.X : glyph.ScaleFactor.Y));

                     // Should we start a new line?
                     bool requiredBreak = false;
@@ -916,7 +915,6 @@
                         metrics,
                         pointSize,
                         glyphAdvance,
-                        advanceScale,
                         lineHeight,
                         ascender,
                         descender,
@@ -995,7 +993,6 @@
                 IReadOnlyList<GlyphMetrics> metrics,
                 float pointSize,
                 float scaledAdvance,
-                float advanceScale,
                 float scaledLineHeight,
                 float scaledAscender,
                 float scaledDescender,
@@ -1015,7 +1012,7 @@
                 this.ScaledMaxDescender = MathF.Max(this.ScaledMaxDescender, scaledDescender);
                 this.ScaledMaxLineGap = MathF.Max(this.ScaledMaxLineGap, scaledLineGap);

-                this.data.Add(new(metrics, pointSize, scaledAdvance, advanceScale, scaledLineHeight, scaledAscender, scaledDescender, scaledLineGap, bidiRun, graphemeIndex, offset));
+                this.data.Add(new(metrics, pointSize, scaledAdvance, scaledLineHeight, scaledAscender, scaledDescender, scaledLineGap, bidiRun, graphemeIndex, offset));
             }

             public TextLine SplitAt(LineBreak lineBreak, bool keepAll)
@@ -1324,7 +1321,6 @@
                     IReadOnlyList<GlyphMetrics> metrics,
                     float pointSize,
                     float scaledAdvance,
-                    float advanceScale,
                     float scaledLineHeight,
                     float scaledAscender,
                     float scaledDescender,
@@ -1336,7 +1332,6 @@
                     this.Metrics = metrics;
                     this.PointSize = pointSize;
                     this.ScaledAdvance = scaledAdvance;
-                    this.AdvanceScale = advanceScale;
                     this.ScaledLineHeight = scaledLineHeight;
                     this.ScaledAscender = scaledAscender;
                     this.ScaledDescender = scaledDescender;
@@ -1354,8 +1349,6 @@

                 public float ScaledAdvance { get; set; }

-                public float AdvanceScale { get; }
-
                 public float ScaledLineHeight { get; }

                 public float ScaledAscender { get; }


formatting

formatting

--- src/SpeakEasy/AsyncHttpRequest.cs
+++ src/SpeakEasy/AsyncHttpRequest.cs
@@ -27,7 +27,8 @@

         public Task Start()
         {
-            return runner.RunAsync(request).ContinueWith(r => completeHandler(r.Result));
+            return runner.RunAsync(request)
+                .ContinueWith(r => completeHandler(r.Result));
         }
     }
 }


Fixing test to only include generated themes from a clean working copy

--- Fluent.Ribbon.Tests/ThemeManager/ThemeManagerTests.cs
+++ Fluent.Ribbon.Tests/ThemeManager/ThemeManagerTests.cs
@@ -125,10 +125,10 @@
         [Test]
         public void GetThemes()
         {
-            Assert.That(ThemeManager.Themes, Has.Count.EqualTo(50));
+            Assert.That(ThemeManager.Themes, Has.Count.EqualTo(48));

-            Assert.That(ThemeManager.Themes.Where(x => x.BaseColorScheme == "Dark").ToList(), Has.Count.EqualTo(24));
-            Assert.That(ThemeManager.Themes.Where(x => x.BaseColorScheme == "Light").ToList(), Has.Count.EqualTo(24));
+            Assert.That(ThemeManager.Themes.Where(x => x.BaseColorScheme == "Dark").ToList(), Has.Count.EqualTo(23));
+            Assert.That(ThemeManager.Themes.Where(x => x.BaseColorScheme == "Light").ToList(), Has.Count.EqualTo(23));
             Assert.That(ThemeManager.Themes.Where(x => x.BaseColorScheme == "Colorful").ToList(), Has.Count.EqualTo(2));
         }


32: initUserNts

32: initUserNts

--- ParserKit.Core/4_SubParsers_2/ReflectionSubParser.cs
+++ ParserKit.Core/4_SubParsers_2/ReflectionSubParser.cs
@@ -13,7 +13,7 @@
         public static TokenInfoCollection s_tkInfoCollection;
         public static GetProperFieldNameDel s_getProperFieldName;

-        List<UserNTDefinition> _initUserNts;
+

         protected abstract UserNTDefinition GetRegisteredProxyUserNt(System.Reflection.FieldInfo fieldInfo);

@@ -59,15 +59,7 @@
         {
             return new OneOfSymbol(symbols);
         }
-
-
-
-        internal SyncSymbol skip(TokenDefinition begin, TokenDefinition end)
-        {
-            //TODO: review here
-            //ignor this pair
-            return new SyncSymbol(begin, end, SyncSymbolKind.Ignor);
-        }
+

         static FieldInfo[] GetFields(Type instanceType)
         {
@@ -85,8 +77,9 @@
         }

         protected override void InternalSetup(TokenInfoCollection tkInfoCollection)
-        {
-            _initUserNts = new List<UserNTDefinition>();
+        {
+            //TODO: review how to get field and its convetion here
+            var initUserNts = new List<UserNTDefinition>();
             //get all static user nt
             List<UserNTDefinition> lateNts = null;
             FieldInfo[] fields = GetFields(this.GetType());
@@ -137,7 +130,7 @@
                         }
                     }
                     unt.OwnerSubParser = this;
-                    _initUserNts.Add(unt);
+                    initUserNts.Add(unt);

                     List<UserNTDefinition> lateUserNts = unt.GetLateNts();
                     if (lateUserNts != null)
@@ -183,20 +176,20 @@
             }
             if (lateNts != null)
             {
-                _initUserNts.AddRange(lateNts);
-            }
-
+                initUserNts.AddRange(lateNts);
+            }
+            //--------------------------------------------------------------------
             //check if all user nt is define
-            for (int i = _initUserNts.Count - 1; i >= 0; --i)
-            {
-                UserNTDefinition unt = _initUserNts[i];
+            for (int i = initUserNts.Count - 1; i >= 0; --i)
+            {
+                UserNTDefinition unt = initUserNts[i];
                 if (unt.UserSeqCount == 0)
                 {
                     //this nt is not defined!
                     unt.MarkedAsUnknownNT = true;
                 }
-            }
-
+                //we anala
+            }
             //---------------------------------------
             if (this._rootNtDef == null)
             {
@@ -207,7 +200,7 @@
             //---------------------------------------
             _miniGrammarSheet = new MiniGrammarSheet();
             _miniGrammarSheet.LoadTokenInfo(tkInfoCollection);
-            _miniGrammarSheet.LoadUserNts(_initUserNts);
+            _miniGrammarSheet.LoadUserNts(initUserNts);
             //---------------------------------------
             _augmentedNTDefinition = _miniGrammarSheet.PrepareUserGrammarForAnyLR(this.RootNt);
             _parsingTable = _miniGrammarSheet.CreateLR1Table(_augmentedNTDefinition);


Only load resources ending in ".g.resources"

--- Fluent.Ribbon.Tests/ThemeManager/ThemeManagerTests.cs
+++ Fluent.Ribbon.Tests/ThemeManager/ThemeManagerTests.cs
@@ -126,7 +126,7 @@
         {
             var assembly = typeof(ThemeManager).Assembly;
             var resourceDictionaries = assembly.GetManifestResourceNames();
-            foreach (var resourceName in resourceDictionaries)
+            foreach (var resourceName in resourceDictionaries.Where(x => x.EndsWith(".g.resources")))
             {
                 var info = assembly.GetManifestResourceInfo(resourceName);
                 if (info.ResourceLocation != ResourceLocation.ContainedInAnotherAssembly)


Reorganized our game loop, created methods for all tasks inside the main loop to organize stuff a little bit better.

--- GameLibrary/Xemio.GameLibrary/Game/Timing/GameLoop.cs
+++ GameLibrary/Xemio.GameLibrary/Game/Timing/GameLoop.cs
@@ -8,7 +8,7 @@

 namespace Xemio.GameLibrary.Game.Timing
 {
-    public class GameLoop : IComponent
+    public class GameLoop : IConstructable
     {
         #region Constructors
         /// <summary>
@@ -25,10 +25,25 @@

         #region Fields
         private Task _loopTask;
+        private ThreadInvoker _invoker;
+        private Stopwatch _gameTime;
+
         private readonly List<IGameHandler> _handlers;

         private double _renderTime;
         private double _tickTime;
+
+        private bool _requestRender;
+        private double _unprocessedTicks;
+
+        private double _elapsedTickTime;
+        private double _elapsedRenderTime;
+
+        private int _fpsCount;
+        private double _lastFpsMeasure;
+
+        private double _lastTick;
+        private double _lastRender;
         #endregion

         #region Properties
@@ -41,11 +56,14 @@
         /// </summary>
         public long FrameIndex { get; private set; }
         /// <summary>
-        /// Gets or sets the precision.
+        /// Gets or sets the precision. The precision level determines the amount of "Thread.Sleep"
+        /// used to wait for the next frame. The higher the precision level, the lower the amount
+        /// of Thread.Sleep used.
         /// </summary>
         public PrecisionLevel Precision { get; set; }
         /// <summary>
-        /// Gets or sets the lag compensation.
+        /// Gets or sets the lag compensation. If set to ExecuteMissedTicks, the game loop will
+        /// always run at the same tick frequency.
         /// </summary>
         public LagCompensation LagCompensation { get; set; }
         /// <summary>
@@ -55,15 +73,24 @@
         /// <summary>
         /// Gets the frame time (render time + tick time).
         /// </summary>
-        public double FrameTime { get; private set; }
+        public double FrameTime
+        {
+            get { return this._tickTime + this._renderTime; }
+        }
         /// <summary>
         /// Gets the tick time.
         /// </summary>
-        public double TickTime { get; private set; }
+        public double TickTime
+        {
+            get { return this._tickTime; }
+        }
         /// <summary>
         /// Gets the render time.
         /// </summary>
-        public double RenderTime { get; private set; }
+        public double RenderTime
+        {
+            get { return this._renderTime; }
+        }
         /// <summary>
         /// Gets the target tick time.
         /// </summary>
@@ -139,16 +166,22 @@
         /// </summary>
         public void Run()
         {
-            this.Active = true;
-            this._loopTask = Task.Factory.StartNew(InternalLoop);
+            if (!this.Active)
+            {
+                this.Active = true;
+                this._loopTask = Task.Factory.StartNew(InternalLoop);
+            }
         }
         /// <summary>
         /// Stops the game loop.
         /// </summary>
         public void Stop()
         {
-            this.Active = false;
-            this._loopTask.Wait();
+            if (this.Active)
+            {
+                this.Active = false;
+                this._loopTask.Wait();
+            }
         }
         /// <summary>
         /// Subscribes and adds the handler to the gameloop.
@@ -171,82 +204,103 @@
         /// </summary>
         private void InternalLoop()
         {
-            Stopwatch gameTime = Stopwatch.StartNew();
-            ThreadInvoker invoker = XGL.Components.Get<ThreadInvoker>();
-
-            bool requestRender = true;
-
-            double unprocessedTicks = 0;
-
-            double elapsedTickTime = 0;
-            double elapsedRenderTime = 0;
-
-            double lastFrameCount = gameTime.Elapsed.TotalMilliseconds;
-
-            double lastTick = gameTime.Elapsed.TotalMilliseconds;
-            double lastRender = gameTime.Elapsed.TotalMilliseconds;
-
-            int frames = 0;
+            this._gameTime = Stopwatch.StartNew();
+            this._requestRender = true;
+
+            this._lastFpsMeasure = this._gameTime.Elapsed.TotalMilliseconds;
+            this._lastTick = this._gameTime.Elapsed.TotalMilliseconds;
+            this._lastRender = this._gameTime.Elapsed.TotalMilliseconds;

             while (this.Active)
             {
-                if (requestRender)
+                this.HandleRenderRequest();
+                this.HandleUnprocessedTicks();
+
+                this.CheckRenderRequest();
+                this.UpdateFramesPerSecond();
+            }
+        }
+        /// <summary>
+        /// Handles all unprocessed ticks.
+        /// </summary>
+        private void HandleUnprocessedTicks()
+        {
+            //Time since the last handled tick.
+            double elapsed = this._gameTime.Elapsed.TotalMilliseconds - this._lastTick;
+
+            this._elapsedTickTime += elapsed;
+            this._unprocessedTicks += elapsed / this.TargetTickTime;
+            this._lastTick = this._gameTime.Elapsed.TotalMilliseconds;
+
+            //If there are unprocessed ticks, call OnTick.
+            if (this._unprocessedTicks >= 1)
+            {
+                int tickCount = (int)this._unprocessedTicks;
+
+                //Subtract unprocessed ticks as an integer, since we want
+                //to keep digits for the next tick. (Example: unprocessedTicks = 3.11, => tickCount = 3)
+                this._unprocessedTicks -= tickCount;
+
+                switch (this.LagCompensation)
                 {
-                    frames++;
-
-                    elapsedRenderTime = gameTime.Elapsed.TotalMilliseconds - lastRender;
-                    lastRender = gameTime.Elapsed.TotalMilliseconds;
-
-                    invoker.Invoke(() => this.OnRender((float)elapsedRenderTime));
-
-                    requestRender = false;
+                    case LagCompensation.None:
+                        this._invoker.Invoke(() => this.OnTick((float)this._elapsedTickTime));
+                        break;
+                    case LagCompensation.ExecuteMissedTicks:
+                        //Handle unprocessed ticks by calling the OnTick method as often
+                        //as needed for the elapsed tick time.
+                        //Example: elapsedTickTime = 32ms, TargetFrameTime = 16ms => call OnTick twice.
+
+                        float tickElapsed = (float)(this._elapsedTickTime / tickCount);
+                        for (int i = 0; i < tickCount; i++)
+                        {
+                            this._invoker.Invoke(() => this.OnTick(tickElapsed));
+                        }
+                        break;
                 }

-                double elapsed = gameTime.Elapsed.TotalMilliseconds - lastTick;
-
-                elapsedTickTime += elapsed;
-                unprocessedTicks += elapsed / this.TargetTickTime;
-                lastTick = gameTime.Elapsed.TotalMilliseconds;
-
-                int tickCount = (int)unprocessedTicks;
-                if (unprocessedTicks >= 1)
-                {
-                    float tickElapsed = (float)(elapsedTickTime / tickCount);
-                    unprocessedTicks -= tickCount;
-
-                    switch (this.LagCompensation)
-                    {
-                        case LagCompensation.None:
-                            invoker.Invoke(() => this.OnTick((float)elapsedTickTime));
-                            break;
-                        case LagCompensation.ExecuteMissedTicks:
-                            for (int i = 0; i < tickCount; i++)
-                            {
-                                invoker.Invoke(() => this.OnTick(tickElapsed));
-                            }
-                            break;
-                    }
-
-                    elapsedTickTime = 0;
-                    this.ManagePrecisionLevel();
-                }
-
-                if (gameTime.Elapsed.TotalMilliseconds - lastRender >= this.TargetFrameTime)
-                {
-                    requestRender = true;
-                }
-
-                if (gameTime.Elapsed.TotalMilliseconds - lastFrameCount >= 1000.0)
-                {
-                    this.TickTime = this._tickTime;
-                    this.RenderTime = this._renderTime;
-
-                    this.FrameTime = this._tickTime + this._renderTime;
-                    this.FramesPerSecond = frames;
-
-                    lastFrameCount = gameTime.Elapsed.TotalMilliseconds;
-                    frames = 0;
-                }
+                this._elapsedTickTime = 0;
+                this.ManagePrecisionLevel();
+            }
+        }
+        /// <summary>
+        /// Checks for render requests.
+        /// </summary>
+        private void CheckRenderRequest()
+        {
+            if (this._gameTime.Elapsed.TotalMilliseconds - this._lastRender >= this.TargetFrameTime)
+            {
+                this._requestRender = true;
+            }
+        }
+        /// <summary>
+        /// Updates the timing properties for FramesPerSecond.
+        /// </summary>
+        private void UpdateFramesPerSecond()
+        {
+            if (this._gameTime.Elapsed.TotalMilliseconds - this._lastFpsMeasure >= 1000.0)
+            {
+                this.FramesPerSecond = this._fpsCount;
+
+                this._lastFpsMeasure = this._gameTime.Elapsed.TotalMilliseconds;
+                this._fpsCount = 0;
+            }
+        }
+        /// <summary>
+        /// Handles render requests.
+        /// </summary>
+        private void HandleRenderRequest()
+        {
+            if (this._requestRender)
+            {
+                this._fpsCount++;
+
+                this._elapsedRenderTime = this._gameTime.Elapsed.TotalMilliseconds - this._lastRender;
+                this._lastRender = this._gameTime.Elapsed.TotalMilliseconds;
+
+                this._invoker.Invoke(() => this.OnRender((float)this._elapsedRenderTime));
+
+                this._requestRender = false;
             }
         }
         /// <summary>
@@ -278,6 +332,16 @@
                     Thread.Sleep(timeTillNextFrame);
                     break;
             }
+        }
+        #endregion
+
+        #region Implementation of IConstructable
+        /// <summary>
+        /// Constructs this instance.
+        /// </summary>
+        public void Construct()
+        {
+            this._invoker = XGL.Components.Get<ThreadInvoker>();
         }
         #endregion
     }


[IDE] Prevent assert when a tool tip showing.

--- Ide/NitraCommonVSIX/QuickInfo/NitraQuickInfoSource.cs
+++ Ide/NitraCommonVSIX/QuickInfo/NitraQuickInfoSource.cs
@@ -63,9 +63,19 @@

       _wpfTextView = (IWpfTextView)session.TextView;
       _fileModel = VsUtils.TryGetFileModel(_textBuffer);
-      Debug.Assert(_fileModel != null);
+      if (_fileModel == null) // TODO: Add logging Debug.Assert(_fileModel != null);
+      {
+        applicableToSpan = null;
+        return;
+      }
+
       _textViewModel = VsUtils.GetOrCreateTextViewModel(_wpfTextView, _fileModel);
-      Debug.Assert(_textViewModel != null);
+      if (_textViewModel == null) // TODO: Add logging Debug.Assert(_textViewModel != null);
+      {
+        applicableToSpan = null;
+        return;
+      }
+
       Hint.SetCallbacks(SubHintText, SpanClassToBrush);
       Hint.Click += Hint_Click;


refs #23 Check a new field in a constructor test

--- Application/MatchGeneratorTest/ViewModel/MemberListItemViewModelTest.cs
+++ Application/MatchGeneratorTest/ViewModel/MemberListItemViewModelTest.cs
@@ -98,6 +98,8 @@
 			Assert.Same(expectedModel, actualReturn.GetPrivateField("Model"));
 			Assert.NotNull(actualReturn.MemberClickCommand);
 			Assert.IsType<Microsoft.Practices.Prism.Commands.DelegateCommand>(actualReturn.MemberClickCommand);
+			Assert.NotNull(actualReturn.MemberExtendedClickCommand);
+			Assert.IsType<Microsoft.Practices.Prism.Commands.DelegateCommand>(actualReturn.MemberExtendedClickCommand);
 		}
 	}


Remove the InsertOrReplaceAsync APIs, since they're probably too fine grain to be actually useful.

--- SQLitePCL.pretty.Orm/TableMapping.InsertOrReplace.cs
+++ SQLitePCL.pretty.Orm/TableMapping.InsertOrReplace.cs
@@ -37,18 +37,6 @@
             return This.YieldInsertOrReplaceAll(tableMapping, new T[] {obj}).First().Value;
         }

-        // These are internal for now. Probably will be removed. More likely than not an insert will want to wrapped in a larger transaction.
-        // Using the async inserts is terrible for perf as you jump threads.
-        internal static Task<T> InsertOrReplaceAsync<T>(this IAsyncDatabaseConnection This, ITableMapping<T> tableMapping, T obj, CancellationToken cancellationToken)
-        {
-            return This.Use((x, ct) => x.InsertOrReplace(tableMapping, obj), cancellationToken);
-        }
-
-        internal static Task<T> InsertOrReplaceAsync<T>(this IAsyncDatabaseConnection This, ITableMapping<T> tableMapping, T obj)
-        {
-            return This.InsertOrReplaceAsync(tableMapping, obj, CancellationToken.None);
-        }
-
         public static IReadOnlyDictionary<T,T> InsertOrReplaceAll<T>(this IDatabaseConnection This, ITableMapping<T> tableMapping, IEnumerable<T> objects)
         {
             return This.RunInTransaction(_ =>


Fixed a problem in the sample program. When the method parameter was missing, then an exception was thrown.

--- Samples/CommandLineParser.Samples.Console/Program.cs
+++ Samples/CommandLineParser.Samples.Console/Program.cs
@@ -111,25 +111,13 @@
         /// </summary>
         private class CommandLineParameters
         {
-            #region Constructors
-
-            /// <summary>
-            /// Initializes a new <see cref="CommandLineParameters"/> instance.
-            /// </summary>
-            /// <param name="method">The "method" command line parameter.</param>
-            public CommandLineParameters(string method)
-            {
-                this.Method = method;
-            }
-
-            #endregion
-
             #region Public Properties

             /// <summary>
             /// Gets the "method" command line parameter.
             /// </summary>
-            public string Method { get; private set; }
+            [ParameterName("method")]
+            public string Method { get; set; }

             /// <summary>
             /// Gets or sets the "numberOfBytes" command line parameter.


WfsSample: make labels show up

WfsSample: make labels show up

--- Samples/Mapsui.Samples.Common/Maps/Data/WfsSample.cs
+++ Samples/Mapsui.Samples.Common/Maps/Data/WfsSample.cs
@@ -29,7 +29,7 @@
         private const string crs = "EPSG:3857";  // originally: "EPSG:25832"
         private const string layerName = "MAPS_DISTRICTS_VW";
         private const string nsPrefix = "gvcc_maps";
-        private const string labelField = "CAMM_NOME_DE";
+        private const string labelField = "DIST_DESCR_DE";

         public static Map CreateMap()
         {


Put publication id only into siteLocalizations array

--- Sdl.Web.Templating/Templates/PublishConfiguration.cs
+++ Sdl.Web.Templating/Templates/PublishConfiguration.cs
@@ -160,7 +160,8 @@
                 var filter = new UsingItemsFilter(Engine.GetSession()) { ItemTypes = new List<ItemType> { ItemType.Publication } };
                 foreach (XmlElement item in GetPublication().GetListUsingItems(filter).ChildNodes)
                 {
-                    pubIds.Add(item.GetAttribute("ID"));
+                    var id = new TcmUri(item.GetAttribute("ID"));
+                    pubIds.Add(id.ItemId.ToString());
                 }
             }
             else


Performance optimization of StreamTokenizer used when parsing WKT (using Stringbuilder instead of Concat and reading chars directly instead via Encoding.GetChars)

git-tfs-id: [https://tfs.codeplex.com/tfs/TFS01]$/SharpMap/Trunk;C95309

--- SharpMap/Converters/WellKnownText/StreamTokenizer.cs
+++ SharpMap/Converters/WellKnownText/StreamTokenizer.cs
@@ -60,7 +60,7 @@
     internal class StreamTokenizer
     {
         private int _colNumber = 1;
-        private string _currentToken;
+        private StringBuilder _currentToken;
         private TokenType _currentTokenType;
         private bool _ignoreWhitespace = false;
         private int _lineNumber = 1;
@@ -81,6 +81,7 @@
             }
             _reader = reader;
             _ignoreWhitespace = ignoreWhitespace;
+            _currentToken = new StringBuilder();
         }

         #endregion
@@ -132,7 +133,7 @@
         /// </summary>
         public string GetStringValue()
         {
-            return _currentToken;
+            return _currentToken.ToString();
         }

         /// <summary>
@@ -176,26 +177,18 @@
         {
             TokenType nextTokenType = TokenType.Eof;
             char[] chars = new char[1];
-            _currentToken = "";
+            _currentToken.Clear();
             _currentTokenType = TokenType.Eof;
             int finished = _reader.Read(chars, 0, 1);

             bool isNumber = false;
             bool isWord = false;
-            byte[] ba = null;
-            ASCIIEncoding AE = new ASCIIEncoding();
-            char[] ascii = null;
             Char currentCharacter;
             Char nextCharacter;
             while (finished != 0)
             {
-                // convert int to char
-                ba = new Byte[] {(byte) _reader.Peek()};
-
-                ascii = AE.GetChars(ba);
-
                 currentCharacter = chars[0];
-                nextCharacter = ascii[0];
+                nextCharacter = (char)_reader.Peek();
                 _currentTokenType = GetType(currentCharacter);
                 nextTokenType = GetType(nextCharacter);

@@ -263,7 +256,7 @@
                     _colNumber = 1;
                 }

-                _currentToken = _currentToken + currentCharacter;
+                _currentToken.Append(currentCharacter);
                 //if (_currentTokenType==TokenType.Word && nextCharacter=='_')
                 //{
                 // enable words with _ inbetween


Remove un-existing configurations from Pyproj

--- Sharpmake.Generators/VisualStudio/Pyproj.Template.cs
+++ Sharpmake.Generators/VisualStudio/Pyproj.Template.cs
@@ -38,7 +38,6 @@

                 public static string ProjectDescription =
 @"  <PropertyGroup>
-    <Configuration Condition="" '$(Configuration)' == '' "">Debug</Configuration>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>[guid]</ProjectGuid>
     <ProjectHome>[projectHome]</ProjectHome>
@@ -51,7 +50,6 @@
     <InterpreterId>[interpreterId]</InterpreterId>
     <InterpreterVersion>[interpreterVersion]</InterpreterVersion>
   </PropertyGroup>
-  <PropertyGroup Condition=""'$(Configuration)' == 'Debug'"" />
   <PropertyGroup>
     <VisualStudioVersion Condition="" '$(VisualStudioVersion)' == '' "">10.0</VisualStudioVersion>
     <PtvsTargetsFile>[ptvsTargetsFile]</PtvsTargetsFile>