From 007c4d58627e08bb14be7d909010327194d47b6c Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Mon, 25 Feb 2013 20:17:04 +0600 Subject: [PATCH 1/4] Fixes: #U4-1773 --- src/Umbraco.Web/HtmlHelperRenderExtensions.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs index 4e7f06cf06..14e8e7ece4 100644 --- a/src/Umbraco.Web/HtmlHelperRenderExtensions.cs +++ b/src/Umbraco.Web/HtmlHelperRenderExtensions.cs @@ -244,8 +244,7 @@ namespace Umbraco.Web Mandate.ParameterNotNullOrEmpty(action, "action"); Mandate.ParameterNotNullOrEmpty(controllerName, "controllerName"); - var area = Umbraco.Core.Configuration.GlobalSettings.UmbracoMvcArea; - return html.BeginUmbracoForm(action, controllerName, area, additionalRouteVals, htmlAttributes); + return html.BeginUmbracoForm(action, controllerName, "", additionalRouteVals, htmlAttributes); } /// From 93d7cf4dc3587b2c4d1d164faa65b2f0e3f24083 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 25 Feb 2013 13:28:54 -0100 Subject: [PATCH 2/4] Fixes U4-1776 SafeAlias culture problem --- src/umbraco.cms/helpers/Casing.cs | 43 ++++++++++--------------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/src/umbraco.cms/helpers/Casing.cs b/src/umbraco.cms/helpers/Casing.cs index 4b25deb96e..e44a29156c 100644 --- a/src/umbraco.cms/helpers/Casing.cs +++ b/src/umbraco.cms/helpers/Casing.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Linq; using System.Text; namespace umbraco.cms.helpers @@ -22,15 +20,15 @@ namespace umbraco.cms.helpers /// An alias guaranteed not to contain illegal characters public static string SafeAlias(string alias) { - StringBuilder safeString = new StringBuilder(); - int aliasLength = alias.Length; - for (int i = 0; i < aliasLength;i++ ) + var safeString = new StringBuilder(); + var aliasLength = alias.Length; + for (var i = 0; i < aliasLength;i++ ) { - string currentChar = alias.Substring(i, 1); - if (VALID_ALIAS_CHARACTERS.Contains(currentChar.ToLower())) + var currentChar = alias.Substring(i, 1); + if (VALID_ALIAS_CHARACTERS.Contains(currentChar.ToLowerInvariant())) { // check for camel (if previous character is a space, we'll upper case the current one - if (safeString.Length == 0 && INVALID_FIRST_CHARACTERS.Contains(currentChar.ToLower())) + if (safeString.Length == 0 && INVALID_FIRST_CHARACTERS.Contains(currentChar.ToLowerInvariant())) { currentChar = ""; } @@ -38,10 +36,8 @@ namespace umbraco.cms.helpers { // first char should always be lowercase (camel style) // Skipping this check as it can cause incompatibility issues with 3rd party packages -// if (safeString.Length == 0) -// currentChar = currentChar.ToLower(); if (i < aliasLength - 1 && i > 0 && alias.Substring(i - 1, 1) == " ") - currentChar = currentChar.ToUpper(); + currentChar = currentChar.ToUpperInvariant(); safeString.Append(currentChar); } @@ -53,34 +49,24 @@ namespace umbraco.cms.helpers public static string SafeAliasWithForcingCheck(string alias) { - if (UmbracoSettings.ForceSafeAliases) - { - return SafeAlias(alias); - } - else - { - return alias; - } + return UmbracoSettings.ForceSafeAliases ? SafeAlias(alias) : alias; } public static string SpaceCamelCasing(string text) { - string s = text; + var s = text; if (2 > s.Length) - { return s; - } - - var sb = new System.Text.StringBuilder(); + var sb = new StringBuilder(); var ca = s.ToCharArray(); - ca[0] = char.ToUpper(ca[0]); + ca[0] = char.ToUpperInvariant(ca[0]); sb.Append(ca[0]); - for (int i = 1; i < ca.Length - 1; i++) + for (var i = 1; i < ca.Length - 1; i++) { - char c = ca[i]; + var c = ca[i]; if (char.IsUpper(c) && (char.IsLower(ca[i + 1]) || char.IsLower(ca[i - 1]))) { sb.Append(' '); @@ -89,7 +75,6 @@ namespace umbraco.cms.helpers } sb.Append(ca[ca.Length - 1]); return sb.ToString(); - } } } From b6d5b7d60312c67c70aadf22415875e0506a9ef9 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 25 Feb 2013 13:33:51 -0100 Subject: [PATCH 3/4] Fixes U4-1776 SafeAlias culture problem --- src/Umbraco.Core/StringExtensions.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Core/StringExtensions.cs b/src/Umbraco.Core/StringExtensions.cs index 9413225622..dd7f8fdb79 100644 --- a/src/Umbraco.Core/StringExtensions.cs +++ b/src/Umbraco.Core/StringExtensions.cs @@ -204,22 +204,22 @@ namespace Umbraco.Core public static string EnsureStartsWith(this string input, char value) { - return input.StartsWith(value.ToString()) ? input : value + input; + return input.StartsWith(value.ToString(CultureInfo.InvariantCulture)) ? input : value + input; } public static string EnsureEndsWith(this string input, char value) { - return input.EndsWith(value.ToString()) ? input : input + value; + return input.EndsWith(value.ToString(CultureInfo.InvariantCulture)) ? input : input + value; } public static bool IsLowerCase(this char ch) { - return ch.ToString(CultureInfo.InvariantCulture) == ch.ToString(CultureInfo.InvariantCulture).ToLower(); + return ch.ToString(CultureInfo.InvariantCulture) == ch.ToString(CultureInfo.InvariantCulture).ToLowerInvariant(); } public static bool IsUpperCase(this char ch) { - return ch.ToString(CultureInfo.InvariantCulture) == ch.ToString(CultureInfo.InvariantCulture).ToUpper(); + return ch.ToString(CultureInfo.InvariantCulture) == ch.ToString(CultureInfo.InvariantCulture).ToUpperInvariant(); } /// Is null or white space. @@ -327,7 +327,7 @@ namespace Umbraco.Core Enumerable.Range(97, 26)); var sb = new StringBuilder(); - foreach (var c in value.Where(c => charReplacements.Values.Contains(c.ToString()) || validCodeRanges.Contains(c))) + foreach (var c in value.Where(c => charReplacements.Values.Contains(c.ToString(CultureInfo.InvariantCulture)) || validCodeRanges.Contains(c))) { sb.Append(c); } @@ -388,7 +388,7 @@ namespace Umbraco.Core { if (splittedPhraseChars.Length > 0) { - splittedPhraseChars[0] = ((new String(splittedPhraseChars[0], 1)).ToUpper().ToCharArray())[0]; + splittedPhraseChars[0] = ((new String(splittedPhraseChars[0], 1)).ToUpperInvariant().ToCharArray())[0]; } sb.Append(new String(splittedPhraseChars)); } @@ -403,15 +403,15 @@ namespace Umbraco.Core var match = pattern.Match(result); if (match.Success) { - result = match.Groups[1].Value.ToLower() + match.Groups[2].Value; + result = match.Groups[1].Value.ToLowerInvariant() + match.Groups[2].Value; - return result.Substring(0, 1).ToLower() + result.Substring(1); + return result.Substring(0, 1).ToLowerInvariant() + result.Substring(1); } return result; } - return result.ToLower(); + return result.ToLowerInvariant(); } return result; From 13b1191aad8320d2adc8356cffcee047c6e16d8f Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 25 Feb 2013 13:44:31 -0100 Subject: [PATCH 4/4] Additional fixes for U4-1776 SafeAlias culture problem --- src/Umbraco.Core/StringExtensions.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/StringExtensions.cs b/src/Umbraco.Core/StringExtensions.cs index 259b55b228..45b08f9784 100644 --- a/src/Umbraco.Core/StringExtensions.cs +++ b/src/Umbraco.Core/StringExtensions.cs @@ -837,17 +837,17 @@ namespace Umbraco.Core for (int i = 0; i < aliasLength; i++) { string currentChar = alias.Substring(i, 1); - if (validAliasCharacters.Contains(currentChar.ToLower())) + if (validAliasCharacters.Contains(currentChar.ToLowerInvariant())) { // check for camel (if previous character is a space, we'll upper case the current one - if (safeString.Length == 0 && invalidFirstCharacters.Contains(currentChar.ToLower())) + if (safeString.Length == 0 && invalidFirstCharacters.Contains(currentChar.ToLowerInvariant())) { currentChar = ""; } else { if (i < aliasLength - 1 && i > 0 && alias.Substring(i - 1, 1) == " ") - currentChar = currentChar.ToUpper(); + currentChar = currentChar.ToUpperInvariant(); safeString.Append(currentChar); }