]> granicus.if.org Git - multimarkdown/commitdiff
FIXED: Ensure newline at end of header contents when importing from OPML/ITMZ
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 8 Sep 2018 18:29:08 +0000 (14:29 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 8 Sep 2018 18:29:08 +0000 (14:29 -0400)
Sources/libMultiMarkdown/itmz-reader.c
Sources/libMultiMarkdown/opml-reader.c

index 838706694c2879664bd08bab1b2fe6455019ad9e..f82957f45e31985e875b46aa51dda9f4a6dcc550 100644 (file)
@@ -301,6 +301,19 @@ void parse_itmz_token_chain(mmd_engine * e, token * chain) {
 
                                        if (out == metadata) {
                                                print_const("  \n");
+                                       } else {
+                                               // Ensure that contents end in newline
+                                               if (out->currentStringLength) {
+                                                       switch (out->str[out->currentStringLength - 1]) {
+                                                               case '\n':
+                                                               case '\r':
+                                                                       break;
+
+                                                               default:
+                                                                       d_string_append_c(out, '\n');
+                                                                       break;
+                                                       }
+                                               }
                                        }
 
                                        if (walker->type == ITMZ_TOPIC_SELF_CLOSE) {
index 7dac9fe8916dc38a48f76a8a0b6b0537ef254021..97741d5b5861dde2a308cc1a2f99f61c31f3b255 100644 (file)
@@ -294,6 +294,19 @@ void parse_opml_token_chain(mmd_engine * e, token * chain) {
 
                                        if (out == metadata) {
                                                print_const("  \n");
+                                       } else {
+                                               // Ensure that contents end in newline
+                                               if (out->currentStringLength) {
+                                                       switch (out->str[out->currentStringLength - 1]) {
+                                                               case '\n':
+                                                               case '\r':
+                                                                       break;
+
+                                                               default:
+                                                                       d_string_append_c(out, '\n');
+                                                                       break;
+                                                       }
+                                               }
                                        }
 
                                        if (walker->type == OPML_OUTLINE_SELF_CLOSE) {