2007-01-09 Marek Sieradzki <marek.sieradzki@gmail.com>
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / Utilities.cs
index c92e14fb1cc488bbe4f3c335dbf80324fd32fd6c..e3bb5888807ed0e3337709ad265f3fe0e716495f 100644 (file)
@@ -56,14 +56,27 @@ namespace Microsoft.Build.BuildEngine {
                        StringBuilder sb = new StringBuilder ();
                        
                        foreach (char c in unescapedExpression) {
-                               if (charsToEscape.Contains (c)) {
+                               if (charsToEscape.Contains (c))
                                        sb.AppendFormat ("%{0:x2}", (int) c);
-                               else
+                               else
                                        sb.Append (c);
                        }
                        
                        return sb.ToString ();
                }
+               
+               // FIXME: add tests for this
+               internal static string Unescape (string escapedExpression)
+               {
+                       StringBuilder sb = new StringBuilder ();
+                       
+                       int i = 0;
+                       while (i < escapedExpression.Length) {
+                               sb.Append (Uri.HexUnescape (escapedExpression, ref i));
+                       }
+                       
+                       return sb.ToString ();
+               }
        }
 }