Defect #29247


Textile phrase modifiers break wiki macros

Added by Stephan Wenzel about 6 years ago. Updated almost 6 years ago.

Text formatting
Target version:
Start date:
Due date:
% Done:


Estimated time:
Affected version:


redcloth.rb, Redmine's textile interpreter, has a long standing bug or "glitch". That glitch relates to using modifiers (bold, italic, underline, etc.) together with a macro.


will not produce the desired result, namely a link to a user in bold face. Instead, it will produce a "}" in boldface like here: {{}}

I propose the following fix to lib/redmine/wiki_formatting/textile/redcloth3.rb:

<     C_STYL = '(?:\{[^"}]+\})'
> #   C_STYL = '(?:\{[^"}]+\})' 
>     C_STYL = '(?:\{[^{][^"}]+\})' 

The proposed fix will catch double curly brackets and still apply styles (boldface, underline, italic, etc.)


29247.patch (1.12 KB) 29247.patch Added a test to Stephan Wenzel's patch Go MAEDA, 2018-07-19 02:48
Actions #1

Updated by Go MAEDA about 6 years ago

  • File 29247.patch 29247.patch added
  • Subject changed from Long standing bug in redcloth.rb and proposal for solution to Textile phrase modifiers break wiki macros
  • Status changed from New to Confirmed

Confirmed the issue in Textile mode. No problem in Markdown mode.

I added a test which can catch the issue to Stephan Wenzel's patch.

Actions #2

Updated by Gregor Schmidt about 6 years ago

Disclaimer: I don't know a lot about the inner workings of redcloth.

I can see, how the proposed change fixes the problem at hand. I assume it does not have negative side effects.

The C_STYLE var seems to be used to match css style expressions, e.g. p{background:red}. Red paragraph. After the change, expressions that start with { are no longer matched. This should not be a problem. As far as I can tell, { will never appear at the beginning of such an expression.

That being said, I don't see a reason, to reject the proposed change.

Actions #3

Updated by Go MAEDA almost 6 years ago

  • Target version set to 3.4.7

Gregor, thank you for reviewing the patch. I am setting the target version to 3.4.7.

Actions #4

Updated by Go MAEDA almost 6 years ago

  • Status changed from Confirmed to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed. Thank you for your contribution.


Also available in: Atom PDF