output: Add support for vertical alignment of cells.
[pspp] / tests / output / render-test.c
index 2c683813319daa7a345b8a7f93b1a5ac7baaa267..e286f6bea4c044ca4573e7d879278a419ba269a2 100644 (file)
@@ -140,15 +140,9 @@ configure_drivers (int width, int length, int min_break)
   string_map_insert (&options, "output-file", "-");
   string_map_insert_nocopy (&options, xstrdup ("width"),
                             xasprintf ("%d", width));
-  string_map_insert_nocopy (&options, xstrdup ("length"),
-                            xasprintf ("%d", length));
   if (min_break >= 0)
-    {
-      string_map_insert_nocopy (&options, xstrdup ("min-hbreak"),
-                                xasprintf ("%d", min_break));
-      string_map_insert_nocopy (&options, xstrdup ("min-vbreak"),
-                                xasprintf ("%d", min_break));
-    }
+    string_map_insert_nocopy (&options, xstrdup ("min-hbreak"),
+                              xasprintf ("%d", min_break));
   if (emphasis != NULL)
     string_map_insert (&options, "emphasis", emphasis);
   if (box != NULL)
@@ -359,6 +353,7 @@ read_table (FILE *stream)
   int n_input = 0;
   int nr, nc, hl, hr, ht, hb;
   int r, c;
+  size_t n_footnotes = 0;
 
   if (fgets (buffer, sizeof buffer, stream) == NULL
       || (n_input = sscanf (buffer, "%d %d %d %d %d %d",
@@ -431,17 +426,17 @@ read_table (FILE *stream)
                 break;
 
               case '(':
-                opt &= ~TAB_ALIGNMENT;
+                opt &= ~TAB_HALIGN;
                 opt |= TAB_LEFT;
                 break;
 
               case ')':
-                opt &= ~TAB_ALIGNMENT;
+                opt &= ~TAB_HALIGN;
                 opt |= TAB_RIGHT;
                 break;
 
               case '|':
-                opt &= ~TAB_ALIGNMENT;
+                opt &= ~TAB_HALIGN;
                 opt |= TAB_CENTER;
                 break;
 
@@ -460,7 +455,13 @@ read_table (FILE *stream)
               tab_joint_text (tab, c, r, c + cs - 1, r + rs - 1, opt,
                               content);
             else
-              tab_footnote (tab, c, r, "%s", content);
+              {
+                char marker[2] = { 'a' + n_footnotes, '\0' };
+                struct footnote *f = tab_create_footnote (
+                  tab, n_footnotes, content, marker);
+                tab_add_footnote (tab, c, r, f);
+                n_footnotes++;
+              }
         }
 
   return &tab->table;
@@ -490,4 +491,5 @@ draw (FILE *stream)
       else
         error (1, 0, "line %d has invalid format", line);
     }
+  ascii_test_flush (ascii_driver);
 }