stubs - headers_sent, headers_list

stubs - headers_sent, headers_list

--- src/Peachpie.Library/Web.cs
+++ src/Peachpie.Library/Web.cs
@@ -155,5 +155,83 @@
         }

         #endregion
+
+        #region headers_sent, headers_list
+
+        /// <summary>
+        /// Checks whether all headers has been sent.
+        /// </summary>
+        /// <param name="ctx">Runtime context.</param>
+        /// <returns>Whether headers has already been sent.</returns>
+        public static bool headers_sent(Context ctx)
+        {
+            var webctx = ctx.HttpContext;
+            return webctx != null && webctx.HeadersSent;
+        }
+
+        /// <summary>
+        /// Checks whether all headers has been sent.
+        /// </summary>
+        /// <param name="ctx">Runtime context.</param>
+        /// <param name="file">The name of a source file which has sent headers or an empty string
+        /// headers has not been sent yet. Not supported.</param>
+        /// <returns>Whether headers has already been sent.</returns>
+        /// <exception cref="PhpException">Web server variables are not available (Warning).</exception>
+        /// <exception cref="PhpException">Function is not supported in this version (Warning).</exception>
+        public static bool headers_sent(Context ctx, out string file)
+        {
+            // TODO: Err // PhpException.FunctionNotSupported();
+            file = string.Empty;
+            return headers_sent(ctx);
+        }
+
+        /// <summary>
+        /// Checks whether all headers has been sent.
+        /// </summary>
+        /// <param name="ctx">Runtime context.</param>
+        /// <param name="file">The name of a source file which has sent headers or an empty string  if
+        /// headers has not been sent yet. Not supported.</param>
+        /// <param name="line">The line in a source file where headers has been sent or 0 if
+        /// headers has not been sent yet. Not supported.</param>
+        /// <returns>Whether headers has already been sent.</returns>
+        public static bool headers_sent(Context ctx, out string file, out long line)
+        {
+            // TODO: Err // PhpException.FunctionNotSupported();
+            file = string.Empty;
+            line = 0;
+            return headers_sent(ctx);
+        }
+
+        /// <summary>
+        /// headers_list() will return a list of headers to be sent to the browser / client.
+        /// To determine whether or not these headers have been sent yet, use headers_sent().
+        /// </summary>
+        public static PhpArray headers_list(Context ctx)
+        {
+            var webctx = ctx.HttpContext;
+            if (webctx == null)
+            {
+                return null;
+            }
+
+            var list = new PhpArray();
+
+            //foreach (var x in ScriptContext.CurrentContext.Headers)
+            //{
+            //    list.Add(x.Key + ": " + x.Value);
+            //}
+
+            /*foreach (var x in context.Response.Cookies.AllKeys)
+            {
+                var cookie = context.Response.Cookies[x];
+                list.Add("set-cookie: " + cookie.Name + "=" + cookie.Value);    // TODO: full cookie spec
+            }*/
+
+            // TODO: cookies, session
+
+            return list;
+        }
+
+        #endregion
     }
 }


FileUtilities.DeleteWithoutTrailingBackslash

Introduce a method that we can use in tests to avoid
https://github.com/dotnet/corefx/issues/3780.

--- src/Shared/FileUtilities.cs
+++ src/Shared/FileUtilities.cs
@@ -809,6 +809,18 @@
         }

         /// <summary>
+        /// Deletes a directory, ensuring that Directory.Delete does not get a path ending in a slash.
+        /// </summary>
+        /// <remarks>
+        /// This is a workaround for https://github.com/dotnet/corefx/issues/3780, which clashed with a common
+        /// pattern in our tests.
+        /// </remarks>
+        internal static void DeleteWithoutTrailingBackslash(string path, bool recursive = false)
+        {
+            Directory.Delete(EnsureNoTrailingSlash(path), recursive);
+        }
+
+        /// <summary>
         /// A variation of Path.IsRooted that not throw any IO exception.
         /// </summary>
         internal static bool IsRootedNoThrow(string path)


Typo slipped through whilst trying to commit to git.

--- NMG.Core/MetadataFactory.cs
+++ NMG.Core/MetadataFactory.cs
@@ -24,4 +24,4 @@
             }
         }
     }
-}git +}


rename "variable" into "output"

rename "variable" into "output"

--- NUnit-VS-TagJump/Program.cs
+++ NUnit-VS-TagJump/Program.cs
@@ -51,22 +51,22 @@
             Environment.Exit(errorCount);
         }

-        static bool checkMatch(string str, Regex reg, ref string variable) {
+        static bool checkMatch(string str, Regex reg, ref string output) {
             MatchCollection mc = reg.Matches(str);
             if (mc.Count > 0) {
                 Match m = mc[0];
-                variable = m.Groups["target"].Value;
+                output = m.Groups["target"].Value;
                 return true;
             } else {
                 return false;
             }
         }

-        static bool checkMatchLineInFile(string str, Regex reg, ref string variable) {
+        static bool checkMatchLineInFile(string str, Regex reg, ref string output) {
             MatchCollection mc = reg.Matches(str);
             if (mc.Count > 0) {
                 Match m = mc[0];
-                variable = String.Format(
+                output = String.Format(
                     "{0}\n{1}({2})",
                     m.Groups["head"].Value, m.Groups["file"].Value, m.Groups["line"].Value
                 );


Fixed string comment in x64 mode.

Fixed string comment in x64 mode.

--- Nodes/BaseHexCommentNode.cs
+++ Nodes/BaseHexCommentNode.cs
@@ -67,7 +67,7 @@
 					var txt = view.Memory.Process.ReadRemoteRawUTF8String(ivalue, 64);
 					if (!string.IsNullOrEmpty(txt))
 					{
-						if (!txt.Take(4).Where(c => !c.IsPrintable()).Any())
+						if (!txt.Take(IntPtr.Size).Where(c => !c.IsPrintable()).Any())
 						{
 							x = AddText(view, x, y, Program.Settings.TextColor, HotSpot.NoneId, $"'{txt}'");
 						}


Make sure to check UwCoreCommand<T>.CanExecute before .ExecuteAsync

--- src/UwCore/UwCoreCommand.cs
+++ src/UwCore/UwCoreCommand.cs
@@ -117,6 +117,9 @@
         {
             try
             {
+                if (this.CanExecute)
+                    return default(T);
+
                 return await this._innerCommand.Execute();
             }
             catch


Removes a dangling null from the app runtime.

--- src/Workbench/AppRuntime.cs
+++ src/Workbench/AppRuntime.cs
@@ -8,6 +8,14 @@
     public class AppRuntime : IAppRuntime
     {
         private const string ProgramName = "Constraint Capers Workbench";
+
+        /// <summary>
+        /// Initialize an application runtime with default values.
+        /// </summary>
+        public AppRuntime()
+        {
+            this.CurrentFileName = string.Empty;
+        }

         /// <summary>
         /// Gets or sets the workspace view model.


Updating ImportExportAnchorManager with event handler cleanup

Updating ImportExportAnchorManager with event handler cleanup

--- Assets/HoloToolkit/Tests/Sharing/ImportExportAnchorManager.cs
+++ Assets/HoloToolkit/Tests/Sharing/ImportExportAnchorManager.cs
@@ -138,6 +138,20 @@
         roomManagerCallbacks.AnchorsDownloadedEvent += RoomManagerCallbacks_AnchorsDownloaded;
         roomManagerCallbacks.AnchorUploadedEvent += RoomManagerCallbacks_AnchorUploaded;
         roomManager.AddListener(roomManagerCallbacks);
+    }
+
+    void OnDestroy()
+    {
+        if (roomManagerCallbacks != null)
+        {
+            roomManagerCallbacks.AnchorsDownloadedEvent -= RoomManagerCallbacks_AnchorsDownloaded;
+            roomManagerCallbacks.AnchorUploadedEvent -= RoomManagerCallbacks_AnchorUploaded;
+
+            if (roomManager != null)
+            {
+                roomManager.RemoveListener(roomManagerCallbacks);
+            }
+        }
     }

     /// <summary>
@@ -367,6 +381,8 @@
             Debug.Log("Failed to locate local anchor (super bad!)");
             currentState = ImportExportState.Failed;
         }
+
+        self.OnTrackingChanged -= Anchor_OnTrackingChanged_InitialAnchor;
     }

     /// <summary>


implement ignore support for shader update

--- Assets/MRTK/StandardAssets/EditorUtilities/OnLoadUtilities.cs
+++ Assets/MRTK/StandardAssets/EditorUtilities/OnLoadUtilities.cs
@@ -11,34 +11,52 @@
     [InitializeOnLoad]
     static class OnLoadUtilities
     {
-        private const string SessionStateKey = "StandardAssetsOnLoadUtilitiesSessionStateKey";
-
         private const string ShaderSentinelGuid = "05852dd420bb9ec4cb7318bfa529d37c";
         private const string ShaderSentinelFile = "MRTK.Shaders.sentinel";

         private const string ShaderImportDestination = "MRTK/Shaders";

+        private const string IgnoreFileName = "IgnoreUpdateCheck.sentinel";
+
         static OnLoadUtilities()
         {
-            // This InitializeOnLoad handler only runs once at editor launch in order to adjust for Unity version
-            // differences. These don't need to (and should not be) run on an ongoing basis. This uses the
-            // volatile SessionState which is clear when Unity launches to ensure that this only runs the
-            // expensive work (file system i/o) once.
-            if (!SessionState.GetBool(SessionStateKey, false))
-            {
-                SessionState.SetBool(SessionStateKey, true);
-                EnsureShaders();
-            }
+            EnsureShaders(false);
+        }
+
+        /// <summary>
+        /// Checks for updated shaders and bypasses the ignore update check.
+        /// </summary>
+        [MenuItem("Mixed Reality Toolkit/Utilities/Check for Shader Updates")]
+        private static void CheckForShaderUpdates()
+        {
+            EnsureShaders(true);
         }

         /// <summary>
         /// Ensures that MRTK shader files are present in a writable location. To support the
         /// Universal Render Pipeline, shader modifications must be persisted.
         /// </summary>
-        [MenuItem("Mixed Reality Toolkit/Utilities/Check for Shader Updates")]
-        private static void EnsureShaders()
+        /// <param name="bypassIgnore"></param>
+        private static void EnsureShaders(bool bypassIgnore)
         {
             DirectoryInfo packageShaderFolder = FindShaderFolderInPackage();
+
+            if (bypassIgnore)
+            {
+                // The customer is manually checking for updates, delete the ignore file
+                string sentinelPath = AssetDatabase.GUIDToAssetPath(ShaderSentinelGuid);
+                if (!string.IsNullOrWhiteSpace(sentinelPath))
+                {
+                    FileInfo ignoreFile = new FileInfo(Path.Combine(new FileInfo(sentinelPath).Directory.FullName, IgnoreFileName));
+                    Debug.Log(ignoreFile.FullName);
+                    if (ignoreFile.Exists)
+                    {
+                        ignoreFile.Delete();
+                        AssetDatabase.Refresh();
+                    }
+                    ignoreFile.Refresh();
+                }
+            }

             if (!AssetsContainsShaders(packageShaderFolder))
             {
@@ -53,14 +71,22 @@
         private static bool AssetsContainsShaders(DirectoryInfo packageShaderFolder)
         {
             string sentinelPath = AssetDatabase.GUIDToAssetPath(ShaderSentinelGuid);
+            Debug.LogWarning(sentinelPath);

             // If we do not find the sentinel, we need to import the shaders.
             if (string.IsNullOrWhiteSpace(sentinelPath))
-            {
-                return false;
+            {
+                return false;
             }

             // Getting here indicates that the project's Assets folder contains the shader sentinel.
+
+            // Check for the "ignore this check" file, if present we do NOT import
+            FileInfo ignoreFile = new FileInfo(Path.Combine(new FileInfo(sentinelPath).Directory.FullName, IgnoreFileName));
+            if (ignoreFile.Exists)
+            {
+                return true;
+            }

             // If the package shader folder does not exist, there is nothing for us to do.
             if ((packageShaderFolder == null) || !packageShaderFolder.Exists)
@@ -73,25 +99,38 @@
             int assetVer = ReadSentinelVersion(sentinelPath);

             // No need to copy if the versions are the same.
-            if (packageVer == assetVer)
-            {
-                return true;
+            if (packageVer == assetVer)
+            {
+                return true;
             }

             string message = (packageVer < assetVer) ?
                 "The MRTK shaders older than those in your project, do you wish to overwrite the existing shaders?" :
                 "Updated MRTK shaders are available, do you wish to overwrite the existing shaders?";

-            bool dialogResponse = EditorUtility.DisplayDialog(
+            int dialogResponse = EditorUtility.DisplayDialogComplex(
                 "Mixed Reality Toolkit Standard Assets",
-                message +
+                message +
                 "\n\nNOTE: Overwriting will lose any customizations and may require reconfiguring the render pipeline.",
-                "Yes",
-                "No");
+                "Yes",      // returns 0
+                "Ignore",   // returns 1 - placed in the cancel slot to force the button order as Yes, No, Ignore
+                "No");      // returns 2
+
+            if (dialogResponse == 1)
+            {
+                // Write an "ignore this check" file to prevent future prompting
+                if (!ignoreFile.Directory.Exists)
+                {
+                    ignoreFile.Directory.Create();
+                }
+                ignoreFile.Create();
+                AssetDatabase.Refresh();
+            }
+            ignoreFile.Refresh();

             // Return the inverse of the dialog result. Result of true means we want to overwrite, this method returns false
             // to cause an overwrite.
-            return (!dialogResponse);
+            return (dialogResponse != 0);
         }

         /// <summary>
@@ -146,6 +185,8 @@
             {
                 fi.CopyTo(Path.Combine(destination.FullName, fi.Name), true);
             }
+
+            AssetDatabase.Refresh();
         }

         /// <summary>


fix(Location): make GetRotation in DestinationPoint to use eulerAngles

Changed the SetLocation function in VRTK_DestinationPoint.cs.

It now uses eulerAngles instead of localEulerAngles.

--- Assets/VRTK/Prefabs/DestinationPoint/VRTK_DestinationPoint.cs
+++ Assets/VRTK/Prefabs/DestinationPoint/VRTK_DestinationPoint.cs
@@ -453,7 +453,7 @@
             }

             float offset = (snapToRotation == RotationTypes.RotateWithHeadsetOffset && playArea != null && headset != null ? playArea.eulerAngles.y - headset.eulerAngles.y : 0f);
-            return Quaternion.Euler(0f, destinationLocation.localEulerAngles.y + offset, 0f);
+            return Quaternion.Euler(0f, destinationLocation.eulerAngles.y + offset, 0f);
         }
     }
 }


Additional test.

Additional test.

--- AudioWorks/tests/AudioWorks.Api.Tests/TaggedAudioFileTests.cs
+++ AudioWorks/tests/AudioWorks.Api.Tests/TaggedAudioFileTests.cs
@@ -394,6 +394,23 @@
                 .Metadata.CoverArt?.Data.ToArray();

             Assert.Equal(expectedHash, result == null ? null : HashUtility.CalculateHash(result));
+        }
+
+        [Theory(DisplayName = "TaggedAudioFile's Rename method throws an exception if the name is null")]
+        [MemberData(nameof(RenameValidFileDataSource.FileNames), MemberType = typeof(RenameValidFileDataSource))]
+        public void RenameNullNameThrowsException(
+            [NotNull] string fileName)
+        {
+            var path = Path.Combine("Output", "Rename", fileName);
+            Directory.CreateDirectory(Path.GetDirectoryName(path));
+            File.Copy(Path.Combine(
+                new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName,
+                "TestFiles",
+                "Valid",
+                fileName), path, true);
+
+            Assert.Throws<ArgumentNullException>(() =>
+                new TaggedAudioFile(path).Rename(null, true));
         }

         [Theory(DisplayName = "TaggedAudioFile's Rename method renames the file")]


MSBuildCustomLocator require MonoHack as well

--- src/main/dotnet/ProjectFileParser/Program.cs
+++ src/main/dotnet/ProjectFileParser/Program.cs
@@ -10,10 +10,9 @@
     {
         private static int Main(string[] args)
         {
-            MSBuildCustomLocator.Register();
-
             using (new MonoHack())
             {
+                MSBuildCustomLocator.Register();
                 try
                 {
                     var customPropertiesText = Console.In.ReadToEnd();
@@ -58,4 +57,4 @@
             return dic;
         }
     }
-}+}


Forgot to inherit MembershipRequest from BaseRequest.

--- Chiro.CiviCrm.Api/DataContracts/Requests/MembershipRequest.cs
+++ Chiro.CiviCrm.Api/DataContracts/Requests/MembershipRequest.cs
@@ -16,17 +16,16 @@

 using System;
-using System.Runtime.Serialization;
 using Chiro.CiviCrm.Api.Converters;
 using Newtonsoft.Json;

 namespace Chiro.CiviCrm.Api.DataContracts.Requests
 {
     /// <summary>
-    /// A CiviCRM membership.
+    /// A CiviCRM membership request.
     /// </summary>
     [CiviRequest]
-    public class MembershipRequest
+    public class MembershipRequest: BaseRequest
     {
         [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
         public int? Id { get; set; }


Fix tab order in restart dialog

Fix tab order in restart dialog

--- Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs
+++ Core/Other/Settings/Dialogs/DialogSettingsRestart.Designer.cs
@@ -44,7 +44,7 @@
             this.btnCancel.Name = "btnCancel";
             this.btnCancel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
             this.btnCancel.Size = new System.Drawing.Size(56, 23);
-            this.btnCancel.TabIndex = 7;
+            this.btnCancel.TabIndex = 9;
             this.btnCancel.Text = "Cancel";
             this.btnCancel.UseVisualStyleBackColor = true;
             this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
@@ -56,7 +56,7 @@
             this.btnRestart.Name = "btnRestart";
             this.btnRestart.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
             this.btnRestart.Size = new System.Drawing.Size(57, 23);
-            this.btnRestart.TabIndex = 6;
+            this.btnRestart.TabIndex = 8;
             this.btnRestart.Text = "Restart";
             this.btnRestart.UseVisualStyleBackColor = true;
             this.btnRestart.Click += new System.EventHandler(this.btnRestart_Click);
@@ -114,7 +114,7 @@
             this.tbShortcutTarget.Name = "tbShortcutTarget";
             this.tbShortcutTarget.ReadOnly = true;
             this.tbShortcutTarget.Size = new System.Drawing.Size(257, 20);
-            this.tbShortcutTarget.TabIndex = 10;
+            this.tbShortcutTarget.TabIndex = 7;
             this.tbShortcutTarget.Click += new System.EventHandler(this.tbShortcutTarget_Click);
             //
             // labelLocale
@@ -144,7 +144,7 @@
             this.labelShortcutTarget.Margin = new System.Windows.Forms.Padding(3, 12, 3, 0);
             this.labelShortcutTarget.Name = "labelShortcutTarget";
             this.labelShortcutTarget.Size = new System.Drawing.Size(155, 13);
-            this.labelShortcutTarget.TabIndex = 9;
+            this.labelShortcutTarget.TabIndex = 6;
             this.labelShortcutTarget.Text = "Shortcut Target (click to select)";
             //
             // DialogSettingsRestart


fix doc-comment

fix doc-comment

--- bl4n/Backlog.cs
+++ bl4n/Backlog.cs
@@ -1461,7 +1461,7 @@
         /// Get Issue
         /// Returns information about issue.
         /// </summary>
-        /// <param name="issueKey">issue key string</param>
+        /// <param name="issueKey">issue key to get (like XXX-123)</param>
         /// <returns><see cref="IIssue"/></returns>
         public IIssue GetIssue(string issueKey)
         {
@@ -1524,7 +1524,7 @@
         /// Delete Issue
         /// Deletes issue.
         /// </summary>
-        /// <param name="issueKey">issue id to delete</param>
+        /// <param name="issueKey">issue key to delete (like XXX-123)</param>
         /// <returns>deleted <see cref="IIssue"/></returns>
         public IIssue DeleteIssue(string issueKey)
         {


fix crash on api <17

fix crash on api <17

--- Dialog/artm.MvxPlugins.Dialog.Droid/Services/DialogService.cs
+++ Dialog/artm.MvxPlugins.Dialog.Droid/Services/DialogService.cs
@@ -164,7 +164,11 @@
                     Console.WriteLine("Unable to set ORG_CHECKED_ITEMS result in builder");
                 }
             });
-            builder.SetOnDismissListener(new MyDismissListener(tcs, orgCheckedItemsIndex));
+
+            if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.JellyBeanMr1)
+            {
+                builder.SetOnDismissListener(new MyDismissListener(tcs, orgCheckedItemsIndex));
+            }
         }

         private void UpdateTaskCompletionSource(AlertDialog dialog, DialogServiceMultiItemsBundle bundle, TaskCompletionSource<List<int>> tcs)


Minor fixes in 'Swap DLC' tab design

Minor fixes in 'Swap DLC' tab design

--- DissDlcToolkit/Forms/MainFormSwapSlotsUserControl.Designer.cs
+++ DissDlcToolkit/Forms/MainFormSwapSlotsUserControl.Designer.cs
@@ -65,9 +65,9 @@
             // tableLayoutPanel1
             //
             this.tableLayoutPanel1.ColumnCount = 3;
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
-            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.85678F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 59.84655F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.55243F));
             this.tableLayoutPanel1.Controls.Add(this.label4, 0, 0);
             this.tableLayoutPanel1.Controls.Add(this.swapSlotsCharacterControllerBrowseButton, 2, 0);
             this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
@@ -91,7 +91,7 @@
             this.label4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
             this.label4.Location = new System.Drawing.Point(3, 11);
             this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(124, 13);
+            this.label4.Size = new System.Drawing.Size(55, 13);
             this.label4.TabIndex = 18;
             this.label4.Text = "Controller";
             this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@@ -100,7 +100,7 @@
             //
             this.swapSlotsCharacterControllerBrowseButton.Anchor = System.Windows.Forms.AnchorStyles.None;
             this.swapSlotsCharacterControllerBrowseButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-            this.swapSlotsCharacterControllerBrowseButton.Location = new System.Drawing.Point(289, 7);
+            this.swapSlotsCharacterControllerBrowseButton.Location = new System.Drawing.Point(306, 7);
             this.swapSlotsCharacterControllerBrowseButton.Name = "swapSlotsCharacterControllerBrowseButton";
             this.swapSlotsCharacterControllerBrowseButton.Size = new System.Drawing.Size(72, 22);
             this.swapSlotsCharacterControllerBrowseButton.TabIndex = 16;
@@ -115,18 +115,18 @@
             this.label2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
             this.label2.Location = new System.Drawing.Point(3, 47);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(124, 13);
+            this.label2.Size = new System.Drawing.Size(55, 13);
             this.label2.TabIndex = 15;
             this.label2.Text = "DLC Slot";
             this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             //
             // swapSlotsCharacterControllerTextBox
             //
-            this.swapSlotsCharacterControllerTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+            this.swapSlotsCharacterControllerTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
             this.swapSlotsCharacterControllerTextBox.Enabled = false;
-            this.swapSlotsCharacterControllerTextBox.Location = new System.Drawing.Point(133, 8);
+            this.swapSlotsCharacterControllerTextBox.Location = new System.Drawing.Point(64, 8);
             this.swapSlotsCharacterControllerTextBox.Name = "swapSlotsCharacterControllerTextBox";
-            this.swapSlotsCharacterControllerTextBox.Size = new System.Drawing.Size(124, 20);
+            this.swapSlotsCharacterControllerTextBox.Size = new System.Drawing.Size(227, 20);
             this.swapSlotsCharacterControllerTextBox.TabIndex = 17;
             //
             // swapSlotsCharacterSlotComboBox
@@ -135,9 +135,9 @@
             this.swapSlotsCharacterSlotComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
             this.swapSlotsCharacterSlotComboBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
             this.swapSlotsCharacterSlotComboBox.FormattingEnabled = true;
-            this.swapSlotsCharacterSlotComboBox.Location = new System.Drawing.Point(133, 43);
+            this.swapSlotsCharacterSlotComboBox.Location = new System.Drawing.Point(64, 43);
             this.swapSlotsCharacterSlotComboBox.Name = "swapSlotsCharacterSlotComboBox";
-            this.swapSlotsCharacterSlotComboBox.Size = new System.Drawing.Size(124, 21);
+            this.swapSlotsCharacterSlotComboBox.Size = new System.Drawing.Size(227, 21);
             this.swapSlotsCharacterSlotComboBox.TabIndex = 14;
             this.swapSlotsCharacterSlotComboBox.SelectedIndexChanged += new System.EventHandler(this.swapSlotsCharacterSlotComboBox_SelectedIndexChanged);
             this.swapSlotsCharacterSlotComboBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.swapSlotsCharacterSlotComboBox_KeyDown);
@@ -146,9 +146,9 @@
             // swapSlotsCharacterSwapButton
             //
             this.swapSlotsCharacterSwapButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
-            this.swapSlotsCharacterSwapButton.Location = new System.Drawing.Point(133, 79);
+            this.swapSlotsCharacterSwapButton.Location = new System.Drawing.Point(64, 79);
             this.swapSlotsCharacterSwapButton.Name = "swapSlotsCharacterSwapButton";
-            this.swapSlotsCharacterSwapButton.Size = new System.Drawing.Size(124, 23);
+            this.swapSlotsCharacterSwapButton.Size = new System.Drawing.Size(227, 23);
             this.swapSlotsCharacterSwapButton.TabIndex = 19;
             this.swapSlotsCharacterSwapButton.Text = "Swap!";
             this.swapSlotsCharacterSwapButton.UseVisualStyleBackColor = true;
@@ -158,9 +158,9 @@
             //
             this.swapSlotsCharacterChangeIdCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
             this.swapSlotsCharacterChangeIdCheckBox.AutoSize = true;
-            this.swapSlotsCharacterChangeIdCheckBox.Location = new System.Drawing.Point(263, 45);
+            this.swapSlotsCharacterChangeIdCheckBox.Location = new System.Drawing.Point(297, 45);
             this.swapSlotsCharacterChangeIdCheckBox.Name = "swapSlotsCharacterChangeIdCheckBox";
-            this.swapSlotsCharacterChangeIdCheckBox.Size = new System.Drawing.Size(125, 17);
+            this.swapSlotsCharacterChangeIdCheckBox.Size = new System.Drawing.Size(91, 17);
             this.swapSlotsCharacterChangeIdCheckBox.TabIndex = 20;
             this.swapSlotsCharacterChangeIdCheckBox.Text = "Change ID";
             this.swapSlotsCharacterChangeIdCheckBox.UseVisualStyleBackColor = true;
@@ -178,9 +178,9 @@
             // tableLayoutPanel2
             //
             this.tableLayoutPanel2.ColumnCount = 3;
-            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
-            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
-            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F));
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.85678F));
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60.35806F));
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.04092F));
             this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0);
             this.tableLayoutPanel2.Controls.Add(this.swapSlotsBgmControllerBrowseButton, 2, 0);
             this.tableLayoutPanel2.Controls.Add(this.label3, 0, 1);
@@ -204,7 +204,7 @@
             this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
             this.label1.Location = new System.Drawing.Point(3, 12);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(124, 13);
+            this.label1.Size = new System.Drawing.Size(55, 13);
             this.label1.TabIndex = 18;
             this.label1.Text = "Controller";
             this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@@ -213,7 +213,7 @@
             //
             this.swapSlotsBgmControllerBrowseButton.Anchor = System.Windows.Forms.AnchorStyles.None;
             this.swapSlotsBgmControllerBrowseButton.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-            this.swapSlotsBgmControllerBrowseButton.Location = new System.Drawing.Point(289, 7);
+            this.swapSlotsBgmControllerBrowseButton.Location = new System.Drawing.Point(307, 7);
             this.swapSlotsBgmControllerBrowseButton.Name = "swapSlotsBgmControllerBrowseButton";
             this.swapSlotsBgmControllerBrowseButton.Size = new System.Drawing.Size(72, 22);
             this.swapSlotsBgmControllerBrowseButton.TabIndex = 16;
@@ -228,18 +228,18 @@
             this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
             this.label3.Location = new System.Drawing.Point(3, 49);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(124, 13);
+            this.label3.Size = new System.Drawing.Size(55, 13);
             this.label3.TabIndex = 15;
             this.label3.Text = "DLC Slot";
             this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             //
             // swapSlotsBgmControllerTextBox
             //
-            this.swapSlotsBgmControllerTextBox.Anchor = System.Windows.Forms.AnchorStyles.None;
+            this.swapSlotsBgmControllerTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
             this.swapSlotsBgmControllerTextBox.Enabled = false;
-            this.swapSlotsBgmControllerTextBox.Location = new System.Drawing.Point(133, 8);
+            this.swapSlotsBgmControllerTextBox.Location = new System.Drawing.Point(64, 8);
             this.swapSlotsBgmControllerTextBox.Name = "swapSlotsBgmControllerTextBox";
-            this.swapSlotsBgmControllerTextBox.Size = new System.Drawing.Size(124, 20);
+            this.swapSlotsBgmControllerTextBox.Size = new System.Drawing.Size(229, 20);
             this.swapSlotsBgmControllerTextBox.TabIndex = 17;
             //
             // swapSlotsBgmSlotComboBox
@@ -268,9 +268,9 @@
             "17",
             "18",
             "19"});
-            this.swapSlotsBgmSlotComboBox.Location = new System.Drawing.Point(133, 45);
+            this.swapSlotsBgmSlotComboBox.Location = new System.Drawing.Point(64, 45);
             this.swapSlotsBgmSlotComboBox.Name = "swapSlotsBgmSlotComboBox";
-            this.swapSlotsBgmSlotComboBox.Size = new System.Drawing.Size(124, 21);
+            this.swapSlotsBgmSlotComboBox.Size = new System.Drawing.Size(229, 21);
             this.swapSlotsBgmSlotComboBox.TabIndex = 14;
             this.swapSlotsBgmSlotComboBox.SelectedIndexChanged += new System.EventHandler(this.swapSlotsBgmSlotComboBox_SelectedIndexChanged);
             this.swapSlotsBgmSlotComboBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.swapSlotsBgmSlotComboBox_KeyDown);
@@ -279,9 +279,9 @@
             // swapSlotsBgmSwapButton
             //
             this.swapSlotsBgmSwapButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
-            this.swapSlotsBgmSwapButton.Location = new System.Drawing.Point(133, 81);
+            this.swapSlotsBgmSwapButton.Location = new System.Drawing.Point(64, 81);
             this.swapSlotsBgmSwapButton.Name = "swapSlotsBgmSwapButton";
-            this.swapSlotsBgmSwapButton.Size = new System.Drawing.Size(124, 23);
+            this.swapSlotsBgmSwapButton.Size = new System.Drawing.Size(229, 23);
             this.swapSlotsBgmSwapButton.TabIndex = 19;
             this.swapSlotsBgmSwapButton.Text = "Swap!";
             this.swapSlotsBgmSwapButton.UseVisualStyleBackColor = true;
@@ -291,9 +291,9 @@
             //
             this.swapSlotsBgmChangeIdsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
             this.swapSlotsBgmChangeIdsCheckBox.AutoSize = true;
-            this.swapSlotsBgmChangeIdsCheckBox.Location = new System.Drawing.Point(263, 47);
+            this.swapSlotsBgmChangeIdsCheckBox.Location = new System.Drawing.Point(299, 47);
             this.swapSlotsBgmChangeIdsCheckBox.Name = "swapSlotsBgmChangeIdsCheckBox";
-            this.swapSlotsBgmChangeIdsCheckBox.Size = new System.Drawing.Size(125, 17);
+            this.swapSlotsBgmChangeIdsCheckBox.Size = new System.Drawing.Size(89, 17);
             this.swapSlotsBgmChangeIdsCheckBox.TabIndex = 20;
             this.swapSlotsBgmChangeIdsCheckBox.Text = "Change IDs";
             this.swapSlotsBgmChangeIdsCheckBox.UseVisualStyleBackColor = true;


Fixed the conflict between Chill and the Silverlight Test Runner.


Fix formatting

Fix formatting

--- src/Features/Core/Portable/Completion/Providers/ImportCompletionProvider/AbstractTypeImportCompletionProvider.cs
+++ src/Features/Core/Portable/Completion/Providers/ImportCompletionProvider/AbstractTypeImportCompletionProvider.cs
@@ -81,7 +81,7 @@
             foreach (var aliasNode in aliasDeclarations)
             {
                 var symbol = syntaxContext.SemanticModel.GetDeclaredSymbol(aliasNode, cancellationToken);
-                if (symbol is IAliasSymbol {Target: ITypeSymbol target}
+                if (symbol is IAliasSymbol { Target: ITypeSymbol target }
                     && target.TypeKind != TypeKind.Error)
                 {
                     // If the target type is a type constructs from generics type, e.g.


Fixed dumb mistake

Fixed dumb mistake

--- csharp/HOLMS.Platform/HOLMS.Platform/Support/ReservationTags/TaxExemptTag.cs
+++ csharp/HOLMS.Platform/HOLMS.Platform/Support/ReservationTags/TaxExemptTag.cs
@@ -17,7 +17,7 @@
         }

         protected override string[] GetDescriptorPartsAfterCategory() {
-            return new string[]
+            return new string[] { };
         }
     }
 }


Fixed: Added 'be' verb to AV1715

Fixed: Added 'be' verb to AV1715

--- src/CSharpGuidelinesAnalyzer/CSharpGuidelinesAnalyzer/Rules/Naming/NamePropertyWithAnAffirmativePhraseAnalyzer.cs
+++ src/CSharpGuidelinesAnalyzer/CSharpGuidelinesAnalyzer/Rules/Naming/NamePropertyWithAnAffirmativePhraseAnalyzer.cs
@@ -31,10 +31,10 @@
             ImmutableArray.Create(SymbolKind.Property, SymbolKind.Method, SymbolKind.Field);

         [ItemNotNull]
-        private static readonly ImmutableArray<string> WordsWhitelist = ImmutableArray.Create("Are", "Is", "Was", "Were", "Has",
-            "Have", "Can", "Could", "Shall", "Should", "May", "Might", "Will", "Need", "Needs", "Allow", "Allows", "Support",
-            "Supports", "Do", "Does", "Did", "Hide", "Hides", "Contain", "Contains", "Require", "Requires", "Return", "Returns",
-            "Starts", "Consists", "Targets");
+        private static readonly ImmutableArray<string> WordsWhitelist = ImmutableArray.Create("Are", "Be", "Is", "Was", "Were",
+            "Has", "Have", "Can", "Could", "Shall", "Should", "May", "Might", "Will", "Need", "Needs", "Allow", "Allows",
+            "Support", "Supports", "Do", "Does", "Did", "Hide", "Hides", "Contain", "Contains", "Require", "Requires", "Return",
+            "Returns", "Starts", "Consists", "Targets");

         [NotNull]
         private static readonly Action<SymbolAnalysisContext> AnalyzeMemberAction =


Use loop instead of enumerator

Use loop instead of enumerator

--- src/Features/Core/Portable/Completion/Providers/ImportCompletionProvider/ExtensionMethodImportCompletionHelper.cs
+++ src/Features/Core/Portable/Completion/Providers/ImportCompletionProvider/ExtensionMethodImportCompletionHelper.cs
@@ -303,45 +303,39 @@

                 // This is also affected by the symbol resolving issue mentioned above, which means in case referenced projects
                 // are targeting different framework, we will miss extension methods with any framework type in their signature from those projects.
-                var methodsInCurrentCompilation = methodSymbols.Select(s => SymbolFinder.FindSimilarSymbols(s, semanticModel.Compilation).FirstOrDefault()).WhereNotNull();
-
-                var enumerator = methodsInCurrentCompilation.GetEnumerator();
-                if (!enumerator.MoveNext())
-                {
-                    continue;
-                }
-
-                var methodInCurrentCompilation = enumerator.Current;
-
-                // We haven't seen this receiver type yet. Try to check by reducing one extension method
-                // to the given receiver type and save the result.
-                if (!cachedResult)
-                {
-                    // If this is the first symbol we retrived from current compilation,
-                    // try to check if we can apply it to given receiver type, and save result to our cache.
-                    var reducedMethodSymbol = methodInCurrentCompilation.ReduceExtensionMethod(receiverTypeSymbol);
-                    cachedResult = reducedMethodSymbol != null;
-                    checkedReceiverTypes[declaredReceiverTypeInCurrentCompilation] = cachedResult;
-                }
-
-                // Now, cachedResult being false means method doesn't match the receiver type,
-                // stop processing methods from this group.
-                if (!cachedResult)
-                {
-                    continue;
-                }
-
-                // Add all methods to item list
-                do
-                {
-                    methodInCurrentCompilation = enumerator.Current;
+                var isFirstMethod = true;
+                foreach (var methodInCurrentCompilation in methodSymbols.Select(s => SymbolFinder.FindSimilarSymbols(s, semanticModel.Compilation).FirstOrDefault()).WhereNotNull())
+                {
+                    if (isFirstMethod)
+                    {
+                        isFirstMethod = false;
+
+                        // We haven't seen this receiver type yet. Try to check by reducing one extension method
+                        // to the given receiver type and save the result.
+                        if (!cachedResult)
+                        {
+                            // If this is the first symbol we retrived from current compilation,
+                            // try to check if we can apply it to given receiver type, and save result to our cache.
+                            // Since method symbols are grouped by their declared receiver type, they are either all matches to the receiver type
+                            // or all mismatches. So we only need to call ReduceExtensionMethod on one of them.
+                            var reducedMethodSymbol = methodInCurrentCompilation.ReduceExtensionMethod(receiverTypeSymbol);
+                            cachedResult = reducedMethodSymbol != null;
+                            checkedReceiverTypes[declaredReceiverTypeInCurrentCompilation] = cachedResult;
+
+                            // Now, cachedResult being false means method doesn't match the receiver type,
+                            // stop processing methods from this group.
+                            if (!cachedResult)
+                            {
+                                break;
+                            }
+                        }
+                    }

                     if (semanticModel.IsAccessible(position, methodInCurrentCompilation))
                     {
                         CreateAndAddItem(methodInCurrentCompilation, builder, stringCache);
                     }
                 }
-                while (enumerator.MoveNext());
             }
         }


tests(Diagnostics): Adds a test for an overload of the extension methods.

--- apis/Google.Cloud.Diagnostics.AspNetCore3/Google.Cloud.Diagnostics.AspNetCore3.IntegrationTests/DiagnosticsTests.cs
+++ apis/Google.Cloud.Diagnostics.AspNetCore3/Google.Cloud.Diagnostics.AspNetCore3.IntegrationTests/DiagnosticsTests.cs
@@ -139,6 +139,50 @@
             await TestErrorReporting(testId, client);
         }

+        [Fact]
+        public async Task AddGoogleDiagnosticsForAspNetCore_ConfiguresComponents_FullyIndividually()
+        {
+            var testId = IdGenerator.FromDateTime();
+            var startTime = DateTime.UtcNow;
+            string projectId = TestEnvironment.GetTestProjectId();
+            string serviceName = EntryData.Service;
+            string version = EntryData.Version;
+
+            var hostBuilder = GetHostBuilder(webHostBuilder =>
+                webHostBuilder
+                    .UseDefaultServiceProvider(options => options.ValidateScopes = true)
+                    .ConfigureServices(services =>
+                        services.AddGoogleDiagnosticsForAspNetCore(
+                            traceOptions: new AspNetCoreTraceOptions
+                            {
+                                ServiceOptions = new TraceServiceOptions
+                                {
+                                    ProjectId = projectId,
+                                    Options = TraceOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
+                                }
+                            },
+                            loggingOptions: new LoggingServiceOptions
+                            {
+                                ProjectId = projectId,
+                                ServiceName = serviceName,
+                                Version = version,
+                                Options = LoggingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
+                            },
+                            errorReportingOptions: new ErrorReportingServiceOptions
+                            {
+                                ProjectId = projectId,
+                                ServiceName = serviceName,
+                                Version = version,
+                                Options = ErrorReportingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
+                            })));
+
+            using var server = GetTestServer(hostBuilder);
+            using var client = server.CreateClient();
+            await TestTrace(testId, startTime, client);
+            await TestLogging(testId, startTime, client);
+            await TestErrorReporting(testId, client);
+        }
+
         private static async Task TestLogging(string testId, DateTime startTime, HttpClient client)
         {
             await client.GetAsync($"/Main/Warning/{testId}");


Remove incorrect comment

Remove incorrect comment

--- StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/Lightup/StackAllocArrayCreationExpressionSyntaxExtensionsTests.cs
+++ StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/Lightup/StackAllocArrayCreationExpressionSyntaxExtensionsTests.cs
@@ -22,12 +22,8 @@
         public void TestWithInitializer()
         {
             var stackAllocSyntax = SyntaxFactory.StackAllocArrayCreationExpression(SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.IntKeyword)));
-
-            // With default value is allowed
             var stackAllocWithDefaultInitializer = StackAllocArrayCreationExpressionSyntaxExtensions.WithInitializer(stackAllocSyntax, null);
             Assert.Null(StackAllocArrayCreationExpressionSyntaxExtensions.Initializer(stackAllocWithDefaultInitializer));
-
-            // Non-default throws an exception
             var initializer = SyntaxFactory.InitializerExpression(SyntaxKind.ArrayInitializerExpression);
             var stackAllocWithInitializer = StackAllocArrayCreationExpressionSyntaxExtensions.WithInitializer(stackAllocSyntax, initializer);
             Assert.NotNull(stackAllocWithInitializer.Initializer);


add special case for arrays of strings, 33% perf improvement for this scenario

--- dotnet/Razorvine.Pyrolite/Pyrolite/Pickle/Internals/PicklerImplementation.cs
+++ dotnet/Razorvine.Pyrolite/Pyrolite/Pickle/Internals/PicklerImplementation.cs
@@ -76,7 +76,7 @@
             // null type?
             if (o == null)
             {
-                output.WriteByte(Opcodes.NONE);
+                put_null();
                 recurse--;
                 return;
             }
@@ -158,6 +158,10 @@
                 if (componentType != null && componentType.IsPrimitive)
                 {
                     put_arrayOfPrimitives(componentType, o);
+                }
+                else if (o is string[] strings)
+                {
+                    put_arrayOfStrings(strings);
                 }
                 else
                 {
@@ -404,6 +408,42 @@
             WriteMemo(array);       // tuples cannot contain self-references so it is fine to put this at the end
         }

+        // special case of put_arrayOfObjects to improve perf for arrays of strings scenario
+        private void put_arrayOfStrings(string[] array)
+        {
+            switch (array.Length)
+            {
+                case 0:
+                    output.WriteByte(Opcodes.EMPTY_TUPLE);
+                    break;
+                case 1:
+                    put_string(array[0]);
+                    output.WriteByte(Opcodes.TUPLE1);
+                    break;
+                case 2:
+                    put_string(array[0]);
+                    put_string(array[1]);
+                    output.WriteByte(Opcodes.TUPLE2);
+                    break;
+                case 3:
+                    put_string(array[0]);
+                    put_string(array[1]);
+                    put_string(array[2]);
+                    output.WriteByte(Opcodes.TUPLE3);
+                    break;
+                default:
+                    output.WriteByte(Opcodes.MARK);
+                    foreach (string o in array)
+                    {
+                        put_string(o);
+                    }
+                    output.WriteByte(Opcodes.TUPLE);
+                    break;
+            }
+
+            WriteMemo(array);       // tuples cannot contain self-references so it is fine to put this at the end
+        }
+
         private static void ThrowRecursiveArrayNotSupported() =>
             throw new PickleException("recursive array not supported, use list");

@@ -554,11 +594,20 @@
             WriteMemo(d);
         }

+        private void put_null() => output.WriteByte(Opcodes.NONE);
+
         private void put_string(string str)
         {
-            output.WriteByte(Opcodes.BINUNICODE);
-            output.WriteAsUtf8String(str);
-            WriteMemo(str);
+            if (str == null)
+            {
+                put_null();
+            }
+            else
+            {
+                output.WriteByte(Opcodes.BINUNICODE);
+                output.WriteAsUtf8String(str);
+                WriteMemo(str);
+            }
         }

         private void put_float(double d)


Fixed typo in snippet tag.

Fixed typo in snippet tag.

--- dotnetv3/Translate/DescribeTextTranslationExample/DescribeTextTranslation.cs
+++ dotnetv3/Translate/DescribeTextTranslationExample/DescribeTextTranslation.cs
@@ -8,7 +8,7 @@
 /// </summary>
 namespace DescribeTextTranslationExample
 {
-    // snippet-start:[Translate.dotnetv3.DescribeTextTranslationExample]
+    // snippet-start:[Translate.dotnetv3.DescribeTextTranslationJobExample]
     using System;
     using System.Threading.Tasks;
     using Amazon.Translate;


Adding SumEvenBelow implementation

Adding SumEvenBelow implementation

--- 002.EvenFibonacciNumbers.cs
+++ 002.EvenFibonacciNumbers.cs
@@ -1,5 +1,6 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 using System.Collections.Generic;
+using System.Linq;

 namespace Euler
 {
@@ -15,10 +16,16 @@
             CollectionAssert.AreEqual(expected, FibonacciNumbers.NumbersBelow(90));
         }

-        [TestMethod, Ignore]
+        [TestMethod]
         public void SumEvensBelow_90_Returns44()
         {
             Assert.AreEqual(44, FibonacciNumbers.SumEvensBelow(90));
+        }
+
+        [TestMethod]
+        public void SumEvenBelow_4000000_ReturnsCorrectNumber()
+        {
+            Assert.AreEqual(4613732, FibonacciNumbers.SumEvensBelow(4000000));
         }
     }

@@ -40,7 +47,7 @@
             var sum = 0;

             var fibs = NumbersBelow(upperBound);
-
+            sum = fibs.Where(f => f % 2 == 0).Sum();
             return sum;
         }


changed back to send push data over secure connection

--- mainline/Samples/SuperWebSocketWeb/Global.asax.cs
+++ mainline/Samples/SuperWebSocketWeb/Global.asax.cs
@@ -35,9 +35,9 @@

         void OnSecureSocketPushTimerCallback(object state)
         {
-            lock (m_SessionSyncRoot)
+            lock (m_SecureSessionSyncRoot)
             {
-                m_Sessions.ForEach(s => s.SendResponseAsync("Push data from WebSocket. Current Time: " + DateTime.Now));
+                m_SecureSessions.ForEach(s => s.SendResponseAsync("Push data from WebSocket. Current Time: " + DateTime.Now));
             }
         }


swallow TaskCancelledException in threads

--- CompatBot/Program.cs
+++ CompatBot/Program.cs
@@ -38,17 +38,19 @@
                                     });
             var rpcs3UpdateCheckThread = new Thread(client =>
                                                     {
-                                                        while (!Config.Cts.IsCancellationRequested)
+                                                        try
                                                         {
-                                                            try
+                                                            while (!Config.Cts.IsCancellationRequested)
                                                             {
-                                                                CompatList.CheckForRpcs3Updates((DiscordClient)client, null).ConfigureAwait(false).GetAwaiter().GetResult();
+                                                                try
+                                                                {
+                                                                    CompatList.CheckForRpcs3Updates((DiscordClient)client, null).ConfigureAwait(false).GetAwaiter().GetResult();
+                                                                }
+                                                                catch { }
+                                                                Task.Delay(TimeSpan.FromMinutes(1), Config.Cts.Token).ConfigureAwait(false).GetAwaiter().GetResult();
                                                             }
-                                                            catch
-                                                            {
-                                                            }
-                                                            Task.Delay(TimeSpan.FromMinutes(1), Config.Cts.Token).ConfigureAwait(false).GetAwaiter().GetResult();
                                                         }
+                                                        catch (TaskCanceledException) { }
                                                     });

             try


Added docs to IService.ChangeServiceConfig

--- winsvc/IService.cs
+++ winsvc/IService.cs
@@ -16,6 +16,68 @@
         /// <exception cref="Win32Exception">Thrown if the underlying API call fails.</exception>
         string Description { get; set; }

+        /// <summary>
+        /// Changes the configuration parameters of a service.
+        /// </summary>
+        /// <param name="serviceType">
+        /// The type of service. Specify SERVICE_NO_CHANGE if you are not changing the existing service type.
+        /// </param>
+        /// <param name="startType">
+        /// The service start options. Specify SERVICE_NO_CHANGE if you are not changing the existing start type.
+        /// </param>
+        /// <param name="errorControl">
+        /// The severity of the error, and action taken, if this service fails to start. Specify SERVICE_NO_CHANGE
+        /// if you are not changing the existing error control.
+        /// </param>
+        /// <param name="binaryPathName">
+        /// The fully qualified path to the service binary file. Specify null if you are not changing the existing
+        /// path. If the path contains a space, it must be quoted so that it is correctly interpreted. For
+        /// example, "d:\\my share\\myservice.exe" should be specified as "\"d:\\my share\\myservice.exe\""
+        ///
+        /// The path can also include arguments for an auto-start service. For example,
+        /// "d:\\myshare\\myservice.exe arg1 arg2". These arguments are passed to the service entry point
+        /// (typically the main function).
+        ///
+        /// If you specify a path on another computer, the share must be accessible by the computer account
+        /// of the local computer because this is the security context used in the remote call. However,
+        /// this requirement allows any potential vulnerabilities in the remote computer to affect the
+        /// local computer. Therefore, it is best to use a local file.
+        /// </param>
+        /// <param name="loadOrderGroup">
+        /// The name of the load ordering group of which this service is a member. Specify null if you are
+        /// not changing the existing group. Specify an empty string if the service does not belong to a group.
+        /// </param>
+        /// <param name="tagId">
+        /// A pointer to a variable that receives a tag value that is unique in the group specified in the
+        /// lpLoadOrderGroup parameter. Specify null if you are not changing the existing tag.
+        /// </param>
+        /// <param name="dependencies">
+        /// Enumerable names of services or load ordering groups that the system must start before this
+        /// service can be started. (Dependency on a group means that this service can run if at least
+        /// one member of the group is running after an attempt to start all members of the group.)
+        /// Specify null if you are not changing the existing dependencies. Specify an empty collection
+        /// if the service has no dependencies.
+        /// </param>
+        /// <param name="serviceStartName">
+        /// The name of the account under which the service should run. Specify null if you are not
+        /// changing the existing account name. If the service type is SERVICE_WIN32_OWN_PROCESS,
+        /// use an account name in the form DomainName\UserName. The service process will be logged
+        ///  on as this user. If the account belongs to the built-in domain, you can
+        /// specify .\UserName (note that the corresponding C/C++ string is ".\\UserName").
+        /// </param>
+        /// <param name="password">
+        /// The password to the account name specified by the lpServiceStartName parameter. Specify null
+        /// if you are not changing the existing password. Specify an empty string if the account has
+        /// no password or if the service runs in the LocalService, NetworkService, or LocalSystem
+        /// account.
+        /// </param>
+        /// <param name="displayName">
+        /// The display name to be used by applications to identify the service for its users. Specify
+        /// null if you are not changing the existing display name; otherwise, this string has a
+        /// maximum length of 256 characters. The name is case-preserved in the service control
+        /// manager. Display name comparisons are always case-insensitive.
+        /// </param>
+        /// <exception cref="Win32Exception">Thrown if the underlying API call fails.</exception>
         void ChangeServiceConfig(
             SERVICE_TYPE       serviceType,
             SERVICE_START_TYPE       startType,


Remove land that is being abandoned from search. This is now consistent with sale and reclaim.

--- OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -1166,6 +1166,7 @@
                     land.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
                     land.LandData.GroupID = UUID.Zero;
                     land.LandData.IsGroupOwned = false;
+                    land.LandData.Flags &= ~(uint) (ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects | ParcelFlags.ShowDirectory);
                     m_scene.ForEachClient(SendParcelOverlay);
                     land.SendLandUpdateToClient(true, remote_client);
                 }


minor update

minor update

--- PanoramicDataWin8/controller/data/tuppleware/ClassifierJob.cs
+++ PanoramicDataWin8/controller/data/tuppleware/ClassifierJob.cs
@@ -112,10 +112,10 @@
                 resultDescriptionModel.ConfusionMatrices.Add(label, new List<List<double>>());
                 resultDescriptionModel.ConfusionMatrices[label].Add(new List<double>());
                 resultDescriptionModel.ConfusionMatrices[label][0].Add((double) classifyResult.tp);
-                resultDescriptionModel.ConfusionMatrices[label][0].Add((double) classifyResult.fp);
+                resultDescriptionModel.ConfusionMatrices[label][0].Add((double) classifyResult.fn);

                 resultDescriptionModel.ConfusionMatrices[label].Add(new List<double>());
-                resultDescriptionModel.ConfusionMatrices[label][1].Add((double) classifyResult.fn);
+                resultDescriptionModel.ConfusionMatrices[label][1].Add((double) classifyResult.fp);
                 resultDescriptionModel.ConfusionMatrices[label][1].Add((double) classifyResult.tn);

                 var xs = classifyResult.fpr;


fix error on unit covetsion when ration is changed

--- Services/Cats.Services.EarlyWarning/RegionalRequestService.cs
+++ Services/Cats.Services.EarlyWarning/RegionalRequestService.cs
@@ -90,7 +90,9 @@
                 _unitOfWork.RationDetailRepository.FindBy(t => t.RationID == rationID && t.CommodityID == commodityId).
                     FirstOrDefault();
             if (ration == null) return 0;
-            return ration.Amount;
+            if (ration.Amount > 0)
+                return ration.Amount/1000;
+            return ration.Amount ;
         }

         public bool DeleteRegionalRequest(RegionalRequest reliefRequistion)


Smart Link disabled

Smart Link disabled

--- PayPalIosBinding/PayPalIosBinding/libPayPalMobile.linkwith.cs
+++ PayPalIosBinding/PayPalIosBinding/libPayPalMobile.linkwith.cs
@@ -1,4 +1,10 @@
 using System;
 using ObjCRuntime;

-[assembly: LinkWith ("libPayPalMobile.a", LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator | LinkTarget.Simulator64 | LinkTarget.Arm64, SmartLink = true, Frameworks = "AVFoundation GLKit OpenGLES MobileCoreServices UIKit CoreVideo Foundation AudioToolbox CoreBluetooth CoreTelephony MediaPlayer SystemConfiguration QuartzCore CoreLocation CoreMedia MessageUI Accelerate", ForceLoad = true)]+[assembly: LinkWith ("libPayPalMobile.a",
+	LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator | LinkTarget.Simulator64 |LinkTarget.Arm64,
+	SmartLink = false,
+	Frameworks = "AVFoundation GLKit OpenGLES MobileCoreServices UIKit CoreVideo Foundation AudioToolbox CoreBluetooth CoreTelephony MediaPlayer SystemConfiguration QuartzCore CoreLocation CoreMedia MessageUI Accelerate",
+	ForceLoad = true,
+	IsCxx = true,
+	LinkerFlags="-lz -lxml2 -lc++ -lstdc++")]


Cleanup.

Cleanup.

--- src/Cuemon.Core/DayParts.cs
+++ src/Cuemon.Core/DayParts.cs
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace Cuemon
-{
-    /// <summary>
-    /// Provides a roughly way to determine if a given part of day is either; Night, Morning, Forenoon, Afternoon og Evening.
-    /// </summary>
-    public static class DayParts
-    {
-
-
-
-    }
-}


Fix test case TestXSSFCellStyle.TestCloneStyleDiffWB

git-svn-id: c2c5d07e262ed50e40b747c12a6c75ebdd83f29b@538 3d0cb27c-5942-9f1f-b0c8-b51bd5f61ba7

--- ooxml/OpenXmlFormats/Spreadsheet/Styles.cs
+++ ooxml/OpenXmlFormats/Spreadsheet/Styles.cs
@@ -79,7 +79,14 @@
         {
             serializer.Serialize(stream, font, namespaces);
         }
-
+        public override string ToString()
+        {
+            using (StringWriter stream = new StringWriter())
+            {
+                serializer.Serialize(stream, this, namespaces);
+                return stream.ToString();
+            }
+        }

         public bool IsSetFontId()
         {


GeometricPrimitive now supports an all PrimitiveTypes

--- Source/Toolkit/SharpDX.Toolkit.Graphics/GeometricPrimitive.cs
+++ Source/Toolkit/SharpDX.Toolkit.Graphics/GeometricPrimitive.cs
@@ -153,15 +153,29 @@
         }

         /// <summary>
-        /// Draws this <see cref="GeometricPrimitive" /> using an optional specific pass
+        /// Draws this <see cref="GeometricPrimitive" /> using an optional specific pass, and
+        /// a <see cref="PrimitiveType"/> of TriangleList.
         /// </summary>
         /// <param name="graphicsDevice">The graphics device.</param>
         /// <param name="pass">The effect pass, null by default.</param>
-        /// <param name="usePatches">usePatches makes the draw call use the appropriate patch list primitive type.</param>
         /// <remarks>If an effect pass is passed to this method, the effect pass will be applied before drawing the geometry.
         /// If no effect pass is passed, an <see cref="EffectPass"/> must have been applied previously.
         /// </remarks>
-        public void Draw(GraphicsDevice graphicsDevice, EffectPass pass = null, bool usePatches = false)
+        public void Draw(GraphicsDevice graphicsDevice, EffectPass pass = null)
+        {
+            Draw(graphicsDevice, PrimitiveType.TriangleList, pass);
+        }
+
+        /// <summary>
+        /// Draws this <see cref="GeometricPrimitive" /> using an optional specific pass
+        /// </summary>
+        /// <param name="graphicsDevice">The graphics device.</param>
+        /// <param name="primitiveType">The primitive type to use when drawing.</param>
+        /// <param name="pass">The effect pass, null by default.</param>
+        /// <remarks>If an effect pass is passed to this method, the effect pass will be applied before drawing the geometry.
+        /// If no effect pass is passed, an <see cref="EffectPass"/> must have been applied previously.
+        /// </remarks>
+        public void Draw(GraphicsDevice graphicsDevice, PrimitiveType primitiveType, EffectPass pass)
         {
             if (pass != null)
                 pass.Apply();
@@ -176,7 +190,7 @@
             graphicsDevice.SetIndexBuffer(indexBuffer, isIndex32Bits);

             // Finally Draw this mesh
-            graphicsDevice.DrawIndexed(usePatches ? PrimitiveType.PatchList(3) : PrimitiveType.TriangleList, indexBuffer.ElementCount);
+            graphicsDevice.DrawIndexed(primitiveType, indexBuffer.ElementCount);
         }

         /// <summary>


End to end test forward slash argument

End to end test forward slash argument

--- Source/UnitTests/Samples/Samples.Ping.Tests/PingSystemTest.cs
+++ Source/UnitTests/Samples/Samples.Ping.Tests/PingSystemTest.cs
@@ -38,5 +38,12 @@
             Program.Main(new [] {"-Host", "google.com"});
             StringAssert.Contains("Reply from google.com", _consoleOut.ToString());
         }
+
+        [Test]
+        public void Main_ValidHost_RendersResult2()
+        {
+            Program.Main(new[] { "-Host", "google.com/q" });
+            StringAssert.Contains("Reply from google.com", _consoleOut.ToString());
+        }
     }
 }