From 69072efc004f656c4da831a170e45516dd3f287c Mon Sep 17 00:00:00 2001
From: fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>
Date: Mon, 9 Jul 2007 01:36:53 +0000
Subject: [PATCH] Text.Pandoc.Blocks: + Fixed a bug in hPad, which previously
 padded the rightmost   cell.  This is fixed by introducing a case for a
 singleton   list. + Fixed Markdown writer so that the space after a table is
 not   nested two spaces. + Adjusted Markdown table tests accordingly.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@660 788f1e2b-df1e-0410-8736-df70ead52e1b
---
 src/Text/Pandoc/Blocks.hs           |  1 +
 src/Text/Pandoc/Writers/Markdown.hs |  4 +-
 tests/tables.markdown               | 58 ++++++++++++++---------------
 3 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/src/Text/Pandoc/Blocks.hs b/src/Text/Pandoc/Blocks.hs
index 3e1411e04..ef0d444f8 100644
--- a/src/Text/Pandoc/Blocks.hs
+++ b/src/Text/Pandoc/Blocks.hs
@@ -97,6 +97,7 @@ hPad width line =
 -- which they appear side by side.
 hcatBlocks :: [TextBlock] -> TextBlock
 hcatBlocks [] = TextBlock 0 0 []
+hcatBlocks [x] = x -- This is not redundant!  We don't want last item hPad'd.
 hcatBlocks ((TextBlock width1 height1 lns1):xs) = 
   let (TextBlock width2 height2 lns2) = hcatBlocks xs
       height = max height1 height2
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 66f0acc59..6792a1935 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -205,8 +205,8 @@ blockToMarkdown opts (Table caption aligns widths headers rows) =  do
                   then text ""
                   else empty
   let body = vcat $ intersperse spacer $ map blockToDoc rows'
-  return $ nest 2 $ border $$ (blockToDoc head) $$ underline $$ body $$ 
-                    border $$ caption'' $$ text ""
+  return $ (nest 2 $ border $$ (blockToDoc head) $$ underline $$ body $$ 
+                     border $$ caption'') $$ text ""
 blockToMarkdown opts (BulletList items) = do
   contents <- mapM (bulletListItemToMarkdown opts) items
   return $ (vcat contents) <> text "\n"
diff --git a/tests/tables.markdown b/tests/tables.markdown
index 60389ea94..7e6816a58 100644
--- a/tests/tables.markdown
+++ b/tests/tables.markdown
@@ -1,59 +1,59 @@
 Simple table with caption:
 
-        Right Left      Center    Default  
+        Right Left      Center    Default
   ----------- ------ ------------ ---------
-           12 12          12      12       
-          123 123        123      123      
-            1 1           1       1        
+           12 12          12      12
+          123 123        123      123
+            1 1           1       1
   
   Table: Demonstration of simple table syntax.
-  
+
 Simple table without caption:
 
-        Right Left      Center    Default  
+        Right Left      Center    Default
   ----------- ------ ------------ ---------
-           12 12          12      12       
-          123 123        123      123      
-            1 1           1       1        
-  
+           12 12          12      12
+          123 123        123      123
+            1 1           1       1
+
 Simple table indented two spaces:
 
-        Right Left      Center    Default  
+        Right Left      Center    Default
   ----------- ------ ------------ ---------
-           12 12          12      12       
-          123 123        123      123      
-            1 1           1       1        
+           12 12          12      12
+          123 123        123      123
+            1 1           1       1
   
   Table: Demonstration of simple table syntax.
-  
+
 Multiline table with caption:
 
   --------------------------------------------------------------
-   Centered   Left              Right Default aligned           
+   Centered   Left              Right Default aligned
     Header    Aligned         Aligned
   ----------- ---------- ------------ --------------------------
-     First    row                12.0 Example of a row that     
-                                      spans multiple lines.     
+     First    row                12.0 Example of a row that
+                                      spans multiple lines.
   
-    Second    row                 5.0 Here's another one. Note  
-                                      the blank line between    
-                                      rows.                     
+    Second    row                 5.0 Here's another one. Note
+                                      the blank line between
+                                      rows.
   --------------------------------------------------------------
   
   Table: Here's the caption. It may span multiple lines.
-  
+
 Multiline table without caption:
 
   --------------------------------------------------------------
-   Centered   Left              Right Default aligned           
+   Centered   Left              Right Default aligned
     Header    Aligned         Aligned
   ----------- ---------- ------------ --------------------------
-     First    row                12.0 Example of a row that     
-                                      spans multiple lines.     
+     First    row                12.0 Example of a row that
+                                      spans multiple lines.
   
-    Second    row                 5.0 Here's another one. Note  
-                                      the blank line between    
-                                      rows.                     
+    Second    row                 5.0 Here's another one. Note
+                                      the blank line between
+                                      rows.
   --------------------------------------------------------------
-  
+