From 2199499e211b2a81976971caa8e6a4e7110c35b8 Mon Sep 17 00:00:00 2001 From: Dario Solera Date: Fri, 23 Oct 2009 09:01:16 +0000 Subject: [PATCH] Fixed #400: filenames used in combination with {UP} are now escaped only when used inside WikiMarkup links. --- AssemblyVersion.cs | 4 ++-- Core/Formatter.cs | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/AssemblyVersion.cs b/AssemblyVersion.cs index ba4d76c..d57d7e3 100644 --- a/AssemblyVersion.cs +++ b/AssemblyVersion.cs @@ -16,5 +16,5 @@ using System.Reflection; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.1.419")] -[assembly: AssemblyFileVersion("3.0.1.419")] +[assembly: AssemblyVersion("3.0.1.420")] +[assembly: AssemblyFileVersion("3.0.1.420")] diff --git a/Core/Formatter.cs b/Core/Formatter.cs index 8651720..9878a5c 100644 --- a/Core/Formatter.cs +++ b/Core/Formatter.cs @@ -232,7 +232,14 @@ namespace ScrewTurn.Wiki { match = ExtendedUpRegex.Match(sb.ToString()); while(match.Success) { if(!IsNoWikied(match.Index, noWikiBegin, noWikiEnd, out end)) { - EncodeFilename(sb, match.Index + match.Length); + // Encode filename only if it's used inside a link, + // i.e. check if {UP} is used just after a '[' + // This works because links are processed afterwards + string sbString = sb.ToString(); + if(match.Index > 0 && sbString[match.Index - 1] == '[') { + EncodeFilename(sb, match.Index + match.Length); + } + sb.Remove(match.Index, match.Length); string prov = match.Groups[1].Value.StartsWith(":") ? match.Value.Substring(4, match.Value.Length - 5) : match.Value.Substring(3, match.Value.Length - 4); string page = null;