aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 20:10:01 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 20:10:01 +0200
commitaa24cfb344b1b3eaef7217d996359023cd72ba28 (patch)
treeee0d981d3add58451a83de13ac56be4a8b165eea /docs
parent00aae60378982902b871a87850e0ed427b28a347 (diff)
downloadkrino-aa24cfb344b1b3eaef7217d996359023cd72ba28.tar.gz
krino-aa24cfb344b1b3eaef7217d996359023cd72ba28.zip
plan 8: fuzz decoders; fold ẞ and invalid UTF-8 correctly, refuse non-UTF-8 paths in krino new
Diffstat (limited to 'docs')
-rw-r--r--docs/design.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/design.md b/docs/design.md
index 411eeba..11e859e 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -233,7 +233,8 @@ quantifiers, and inline flags `(?i)` `(?-i)`; no backreferences or lookaround.
data and the pattern. `type` is always case-insensitive. A regex can
override `case` locally with `(?i)` or `(?-i)`. Folding decomposes letters
(Unicode NFD), drops combining marks, and maps the letters that do not
-decompose (ł ø đ ħ ß æ œ and their capitals) to ASCII.
+decompose (ł ø đ ħ ß æ œ and their capitals, ẞ included) to ASCII. Invalid
+UTF-8 is replaced by U+FFFD before folding.
### 5.4 Evaluation
@@ -348,7 +349,7 @@ appear in the config.
Failures (unreadable, tool missing, timeout) are never cached.
- The cache is discarded whole when the extractor fingerprint changes: a
tool installed, removed or replaced, or krino's extraction code changing
- (`extract.Version`).
+ (`extract.Version`), or its text normalisation changing (`norm.Version`).
- Planning a run (`-n` included) reads the cache and writes it back holding
only files still in the directory, under the directory's lock, via a
temporary file renamed into place; the directory is 0700, the file 0600.