slweb

Једноставни генератор статичких веб страна
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 841ccb2a55622a01cc81026397f5fe59cf1c6e8e
родитељ 2ca36d5699610d66a0b164cfc724fa522a1d2222
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Sun,  3 Oct 2021 15:14:33 +0200

Add conversion of standalone & -> &amp;

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

Diffstat:
MTODO | 2+-
Mdefs.h | 1+
Mslweb.c | 18++++++++++++++++++
измењених датотека: 3, додавања: 20(+), брисања: 1(-)

diff --git a/TODO b/TODO @@ -5,7 +5,7 @@ [ ] Investigate multiline links - [ ] Investigate & in headings + [x] Investigate & in headings [x] Add {tsv} directive diff --git a/defs.h b/defs.h @@ -5,6 +5,7 @@ #define _POSIX_C_SOURCE 200809L +#include <ctype.h> #include <dirent.h> #include <errno.h> #include <stdarg.h> diff --git a/slweb.c b/slweb.c @@ -4397,6 +4397,24 @@ do_line: break; + case '&': + if (ANY(state, ST_CODE | ST_KBD | ST_PRE) + || !*(pline+1) + || isspace(*(pline+1))) + { + size_t quot_len = strlen("&amp;"); + *ptoken = 0; + strncat((char*)token, "&amp;", + BUFSIZE - (ptoken - token) - 1); + ptoken += quot_len; + pline++; + } + else + CHECKCOPY(token, ptoken, token_size, pline); + colno++; + + break; + default: CHECKCOPY(token, ptoken, token_size, pline); colno++;