From 3db9823b18a0ae3527f2db7695207deac292cfe8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 18 Mar 2026 23:25:45 +0900 Subject: [PATCH] fix --- src/action/markdown.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/action/markdown.c b/src/action/markdown.c index cec25ef..a109b47 100644 --- a/src/action/markdown.c +++ b/src/action/markdown.c @@ -7,6 +7,7 @@ static char* title = NULL; static int in_title = 0; static int in_section = 0; static int in_message = 0; +static int in_pre = 0; static char** mapping; static int mapping_len; static char* argin = NULL; @@ -117,6 +118,8 @@ static int enter_block(MD_BLOCKTYPE type, void* detail, void* user) { print_indent(); fprintf(out, "
");
 			fprintf(out, "");
+
+			in_pre = 1;
 		}
 	} else if(type == MD_BLOCK_TABLE) {
 		print_indent();
@@ -213,6 +216,8 @@ static int leave_block(MD_BLOCKTYPE type, void* detail, void* user) {
 
 			in_message = 0;
 		} else {
+			in_pre = 0;
+
 			fprintf(out, "
\n"); } } else if(type == MD_BLOCK_TABLE) { @@ -411,13 +416,13 @@ static int text(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size, void* user) } else { char* buf; - print_indent(); + if(!in_pre) print_indent(); buf = encode(text, size); fwrite(buf, 1, strlen(buf), out); free(buf); - fprintf(out, "\n"); + if(!in_pre) fprintf(out, "\n"); } } @@ -496,6 +501,7 @@ int action_markdown(int argc, char** argv) { in_title = 0; in_section = 0; in_message = 0; + in_pre = 0; mode = 0; if(md_parse(buffer, size, &parser, NULL)) { free(buffer); @@ -517,6 +523,7 @@ int action_markdown(int argc, char** argv) { in_title = 0; in_section = 0; in_message = 0; + in_pre = 0; mode = 1; if(md_parse(buffer, size, &parser, NULL)) { free(buffer);