чување 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:
измењених датотека: 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, ">");
}