From 8eaffdceed0741c848abdebfae36d6b1b24e8e6c Mon Sep 17 00:00:00 2001 From: Charlie Gordon Date: Fri, 31 Jul 2026 09:13:35 +0200 Subject: [PATCH] markdown: fix language selection for code blocks --- modes/markdown.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modes/markdown.c b/modes/markdown.c index 2b16dd3..a9141f2 100644 --- a/modes/markdown.c +++ b/modes/markdown.c @@ -112,7 +112,7 @@ static int mkd_add_lang(QEmacsState *qs, const char *lang_name, char c) { ModeDef *m; int lang = 0; - if (lang_name && (m = qe_find_mode(qs, lang_name, MODEF_SYNTAX)) != NULL) { + if ((m = qe_find_mode(qs, lang_name, MODEF_SYNTAX)) != NULL) { for (lang = 1; lang < MKD_LANG_MAX; lang++) { if (mkd_lang_def[lang] == NULL) mkd_lang_def[lang] = m; @@ -180,8 +180,7 @@ static void mkd_colorize_line(QEColorizeContext *cp, || ustrstart(str + j, "```", NULL) || (indent < 4 && mkd_lang_char[lang] == ':')) { colstate &= ~IN_MKD_BLOCK; - i = n; - SET_STYLE(sbuf, start, i, MKD_STYLE_TILDE); + SET_STYLE(sbuf, start, n, MKD_STYLE_TILDE); } else { if (mkd_lang_def[lang]) { cp->colorize_state = colstate & IN_MKD_LANG_STATE; @@ -191,7 +190,6 @@ static void mkd_colorize_line(QEColorizeContext *cp, } else { SET_STYLE(sbuf, start, n, MKD_STYLE_CODE); } - i = n; } cp->colorize_state = colstate; return; @@ -260,7 +258,7 @@ static void mkd_colorize_line(QEColorizeContext *cp, int len; int lang = (colstate & IN_MKD_LANG) >> MKD_LANG_SHIFT; - colstate &= ~(IN_MKD_BLOCK | IN_MKD_LANG_STATE); + colstate &= ~(IN_MKD_BLOCK | IN_MKD_LANG | IN_MKD_LANG_STATE); i = cp_skip_blanks(str, j + 3, n); /* extract info-string */ for (len = 0; i < n && !qe_isblank(str[i]); i++) { @@ -279,8 +277,9 @@ static void mkd_colorize_line(QEColorizeContext *cp, // use last specified lang for current buffer } colstate |= IN_MKD_BLOCK | (lang << MKD_LANG_SHIFT); - i = n; - SET_STYLE(sbuf, start, i, MKD_STYLE_TILDE); + SET_STYLE(sbuf, start, n, MKD_STYLE_TILDE); + cp->colorize_state = colstate; + return; } /* [X] unordered lists: /[-*+] / */