slw2gmi

Конвертор из slweb-а у Џемини
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 22cb39fb23e179d261200ce3ddf9d17053c29190
родитељ 0a33e59b0a126d9f8c183f2feab154e4ed48953f
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Wed, 20 Jul 2022 09:53:18 +0200

Fix entity mode to only activate if & is followed by an English letter; add newline before ```

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mdefs.h | 2++
Mslw2gmi.c | 21++++++++++++---------
измењених датотека: 2, додавања: 14(+), брисања: 9(-)

diff --git a/defs.h b/defs.h @@ -4,6 +4,8 @@ #define __DEFS_H #define _POSIX_C_SOURCE 200809L +#define _DEFAULT_SOURCE +#define _XOPEN_SOURCE #include <ctype.h> #include <dirent.h> diff --git a/slw2gmi.c b/slw2gmi.c @@ -2813,7 +2813,10 @@ do_line: if (!read_yaml_macros_and_links) { - print_output(output, "```%s", + print_output(output, "%s```%s", + IN(state, ST_PRE) && !output_firstcol + ? "\n" + : "", IN(state, ST_PRE) ? "" : "\n\n"); output_firstcol = !IN(state, ST_PRE); } @@ -2852,14 +2855,16 @@ do_line: if (ANY(state, ST_CODE | ST_DISPLAY_FORMULA | ST_FORMULA | ST_HTML_TAG | ST_IMAGE | ST_KBD - | ST_LINK_SECOND_ARG - | ST_LINK_SECOND_ARG_END | ST_MACRO_BODY - /*| ST_PRE*/ | ST_TAG | ST_YAML)) + | ST_LINK_SECOND_ARG | ST_LINK_SECOND_ARG_END + | ST_MACRO_BODY + /*| ST_PRE*/ + | ST_TAG | ST_YAML)) { CHECKCOPY(token, ptoken, token_size, pline); colno++; } - else if (!IN(state, ST_ENT)) + else if (!IN(state, ST_ENT) && *(pline + 1) + && isalpha(*(pline + 1)) && isascii(*(pline + 1))) { state |= ST_ENT; pline++; @@ -2889,15 +2894,13 @@ do_line: } else if (endswith((char*)token, "lt")) { - token[strlen((char*)token) - - strlen("lt")] + token[strlen((char*)token) - strlen("lt")] = 0; strcat((char*)token, "<"); } else if (endswith((char*)token, "gt")) { - token[strlen((char*)token) - - strlen("gt")] + token[strlen((char*)token) - strlen("gt")] = 0; strcat((char*)token, ">"); }