From: Jean-Philippe Lang Date: Sun, 14 Mar 2010 09:05:58 +0000 (+0000) Subject: Do not html escape code that is going to be highlighted (#2985, #3359). X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7621463acb1c687680e1bdf5923255d980692845;p=redminele%2Fredmine.git Do not html escape code that is going to be highlighted (#2985, #3359). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3582 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 2470fa5a..fb969163 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -1060,7 +1060,7 @@ class RedCloth3 < String codepre, used_offtags = 0, {} text.gsub!( OFFTAG_MATCH ) do |line| if $3 - offtag, aftertag = $4, $5 + first, offtag, aftertag = $3, $4, $5 codepre += 1 used_offtags[offtag] = true if codepre - used_offtags.length > 0 @@ -1068,9 +1068,13 @@ class RedCloth3 < String @pre_list.last << line line = "" else - htmlesc( aftertag, :NoQuotes ) if aftertag && escape_aftertag + ### htmlesc is disabled between CODE tags which will be parsed with highlighter + ### Regexp in formatter.rb is : /\s?(.+)/m + ### NB: some changes were made not to use $N variables, because we use "match" + ### and it breaks following lines + htmlesc( aftertag, :NoQuotes ) if aftertag && escape_aftertag && !first.match(//) line = "" - $3.match(/<#{ OFFTAGS }([^>]*)>/) + first.match(/<#{ OFFTAGS }([^>]*)>/) tag = $1 $2.to_s.match(/(class\=\S+)/i) tag << " #{$1}" if $1 diff --git a/lib/redmine/wiki_formatting/textile/formatter.rb b/lib/redmine/wiki_formatting/textile/formatter.rb index ab66ba5b..2010986f 100644 --- a/lib/redmine/wiki_formatting/textile/formatter.rb +++ b/lib/redmine/wiki_formatting/textile/formatter.rb @@ -54,7 +54,7 @@ module Redmine content = @pre_list[$1.to_i] if content.match(/\s?(.+)/m) content = "" + - CodeRay.scan($2, $1.downcase).html(:escape => false, :line_numbers => :inline) + CodeRay.scan($2, $1.downcase).html(:line_numbers => :inline) end content end