summaryrefslogtreecommitdiff
path: root/cbits
diff options
context:
space:
mode:
Diffstat (limited to 'cbits')
-rw-r--r--cbits/escapexml.c49
1 files changed, 0 insertions, 49 deletions
diff --git a/cbits/escapexml.c b/cbits/escapexml.c
deleted file mode 100644
index 6eb366d..0000000
--- a/cbits/escapexml.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <string.h>
-#include <stdint.h>
-
-// https://hackage-content.haskell.org/package/mustache-2.4.3.1/src/src/Text/Mustache/Internal.hs
-//
-// escapeXML :: String -> String
-// escapeXML = concatMap $ \x -> IntMap.findWithDefault [x] (ord x) mp
-// where mp = IntMap.fromList [(ord b, "&"++a++";") | (a,[b]) <- xmlEntities]
-//
-// xmlEntities :: [(String, String)]
-// xmlEntities =
-// [ ("quot", "\"")
-// , ("#39", "'")
-// , ("amp" , "&")
-// , ("lt" , "<")
-// , ("gt" , ">")
-// ]
-
-#define ENTITIES_XLIST \
- X('"', 6, "&quot;") \
- X('\'', 5, "&#39;") \
- X('&', 5, "&amp;") \
- X('<', 4, "&lt;") \
- X('>', 4, "&gt;")
-
-size_t tirclogv_escapexml_len(const uint8_t *src, size_t src_off, size_t src_len) {
- size_t reslen = 0;
- for (size_t i = 0; i < src_len; i++) {
- switch (src[src_off + i]) {
-#define X(ch, len, _str) case ch: reslen += len; break;
- ENTITIES_XLIST
-#undef X
- default: reslen += 1; break;
- }
- }
- return reslen;
-}
-
-void tirclogv_escapexml(uint8_t *dst, const uint8_t *src, size_t src_off, size_t src_len) {
- for (size_t i = 0, j = 0; i < src_len; i++) {
- const uint8_t c = src[src_off + i];
- switch (c) {
-#define X(ch, len, str) case ch: memcpy(&dst[j], str, len); j += len; break;
- ENTITIES_XLIST
-#undef X
- default: dst[j++] = c; break;
- }
- }
-}