cmark

My personal build of CMark ✏️

Commit
1d9b4cb920db48b426a4eb9482480db0f921ba43
Parent
11a29f6219ab9c72c0863e47ba386d7b3e1162d5
Author
John MacFarlane <jgm@berkeley.edu>
Date

Added a minimal man renderer test to api tests.

Diffstat

1 file changed, 44 insertions, 0 deletions

Status File Name N° Changes Insertions Deletions
Modified api_test/main.c 44 44 0
diff --git a/api_test/main.c b/api_test/main.c
@@ -508,6 +508,49 @@ static void render_html(test_batch_runner *runner) {
   cmark_node_free(doc);
 }
 
+static void render_man(test_batch_runner *runner) {
+  char *man;
+
+  static const char markdown[] = "foo *bar*\n"
+                                 "\n"
+                                 "- Lorem ipsum dolor sit amet,\n"
+                                 "  consectetur adipiscing elit,\n"
+                                 "- sed do eiusmod tempor incididunt\n"
+                                 "  ut labore et dolore magna aliqua.\n";
+  cmark_node *doc =
+    cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+  man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 20);
+  STR_EQ(runner, man,
+            ".PP\n"
+            "foo \\f[I]bar\\f[]\n"
+            ".IP \\[bu] 2\n"
+            "Lorem ipsum dolor\n"
+            "sit amet,\n"
+            "consectetur\n"
+            "adipiscing elit,\n"
+            ".IP \\[bu] 2\n"
+            "sed do eiusmod\n"
+            "tempor incididunt ut\n"
+            "labore et dolore\n"
+            "magna aliqua.\n",
+         "render document with wrapping");
+  free(man);
+  man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 0);
+  STR_EQ(runner, man,
+            ".PP\n"
+            "foo \\f[I]bar\\f[]\n"
+            ".IP \\[bu] 2\n"
+            "Lorem ipsum dolor sit amet,\n"
+            "consectetur adipiscing elit,\n"
+            ".IP \\[bu] 2\n"
+            "sed do eiusmod tempor incididunt\n"
+            "ut labore et dolore magna aliqua.\n",
+         "render document without wrapping");
+  free(man);
+  cmark_node_free(doc);
+}
+
 static void utf8(test_batch_runner *runner) {
   // Ranges
   test_char(runner, 1, "\x01", "valid utf8 01");
@@ -690,6 +733,7 @@ int main() {
   hierarchy(runner);
   parser(runner);
   render_html(runner);
+  render_man(runner);
   utf8(runner);
   line_endings(runner);
   numeric_entities(runner);