diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ac1153dda485d1e71f0ab8cb0c122dec9bed468d..e2887226ada43d03594950131c16441d3c8b7b76 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -511,17 +511,17 @@ module ApplicationHelper # Forum messages: # message#1218 -> Link to message with id 1218 text = text.gsub(%r{([\s\(,\-\>]|^)(!)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|<|$)}) do |m| - leading, esc, prefix, sep, oid = $1, $2, $3, $5 || $7, $6 || $8 + leading, esc, prefix, sep, identifier = $1, $2, $3, $5 || $7, $6 || $8 link = nil if esc.nil? if prefix.nil? && sep == 'r' - if project && (changeset = project.changesets.find_by_revision(oid)) - link = link_to("r#{oid}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => oid}, + if project && (changeset = project.changesets.find_by_revision(identifier)) + link = link_to("r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision}, :class => 'changeset', :title => truncate_single_line(changeset.comments, :length => 100)) end elsif sep == '#' - oid = oid.to_i + oid = identifier.to_i case prefix when nil if issue = Issue.visible.find_by_id(oid, :include => :status) @@ -557,7 +557,7 @@ module ApplicationHelper end elsif sep == ':' # removes the double quotes if any - name = oid.gsub(%r{^"(.*)"$}, "\\1") + name = identifier.gsub(%r{^"(.*)"$}, "\\1") case prefix when 'document' if project && document = project.documents.find_by_title(name) @@ -599,7 +599,7 @@ module ApplicationHelper end end end - leading + (link || "#{prefix}#{sep}#{oid}") + leading + (link || "#{prefix}#{sep}#{identifier}") end text diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 11abc473c21ae3b3809d6ffb899d99bd202d6635..f5b0fb7d3b8d7c025ff8b27f2b063fd1421a00e2 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -200,6 +200,8 @@ RAW '!version:1.0' => 'version:1.0', '!version:"1.0"' => 'version:"1.0"', '!source:/some/file' => 'source:/some/file', + # not found + '#0123456789' => '#0123456789', # invalid expressions 'source:' => 'source:', # url hash