From 5e286443a879e8cb65b77d0dbd209306c22f3f57 Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Sat, 24 Aug 2013 13:24:27 -0400
Subject: [PATCH] FIX: Code blocks were trimming leading spaces sometimes when
 they should have only trimmed trailing spaces.

---
 .../javascripts/discourse/dialects/github_code_dialect.js     | 2 +-
 test/javascripts/components/markdown_test.js                  | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/app/assets/javascripts/discourse/dialects/github_code_dialect.js b/app/assets/javascripts/discourse/dialects/github_code_dialect.js
index ffa747e58..515c4d0ed 100644
--- a/app/assets/javascripts/discourse/dialects/github_code_dialect.js
+++ b/app/assets/javascripts/discourse/dialects/github_code_dialect.js
@@ -61,7 +61,7 @@ Discourse.Dialect.on("register", function(event) {
             next.unshift(MD.mk_block(n[2]));
           }
 
-          codeContents.push(n[1].trim());
+          codeContents.push(n[1].replace(/\s+$/, ""));
           break;
         } else {
           codeContents.push(b);
diff --git a/test/javascripts/components/markdown_test.js b/test/javascripts/components/markdown_test.js
index 877ecb6dd..8bea0094c 100644
--- a/test/javascripts/components/markdown_test.js
+++ b/test/javascripts/components/markdown_test.js
@@ -217,6 +217,10 @@ test("Code Blocks", function() {
   cooked("    ```\n    hello\n    ```",
          "<pre><code>&#x60;&#x60;&#x60;\nhello\n&#x60;&#x60;&#x60;</code></pre>",
          "only detect ``` at the begining of lines");
+
+  cooked("```ruby\ndef self.parse(text)\n\n  text\nend\n```",
+         "<p><pre><code class=\"ruby\">def self.parse(text)\n\n  text\nend</code></pre></p>",
+         "it allows leading spaces on lines in a code block.");
 });
 
 test("SanitizeHTML", function() {