| commit | ee5074db68f498a5c802dc9f1645f396c219938a | [log] [tgz] |
|---|---|---|
| author | Connor Lane Smith <cls@lubutu.com> | Tue Nov 13 07:43:25 2018 |
| committer | GitHub <noreply@github.com> | Tue Nov 13 07:43:25 2018 |
| tree | 1416c477555ba3ac298f08a2f9183b9d040e0718 | |
| parent | ff4c60635e1f455b0a0b4200f8183fbd5a88225b [diff] | |
| parent | c7812d1b3c333c1e11032de2d078878010c58d7d [diff] |
Merge pull request #12 from finnoleary/fix-missing-funcdefs Add missing function definitions (utfecpy, runestrecpy)
This is a C89 UTF-8 library, with an API compatible with that of Plan 9's libutf, but with a number of improvements:
utflen and utfnlen cannot overflow on 32- or 64-bit machines.chartorune treats all invalid codepoints as though Runeerror.fullrune, utfecpy, and utfnlen do not overestimate the length of malformed runes.charntorune(p,s,n), equivalent to fullrune(s,n) ? chartorune(p,s) : 0.Runeerror may be set to an alternative replacement value, such as -1, to be used instead of U+FFFD.Differences to be aware of:
UTFmax is 6, though runetochar will never write more than 4 bytes. Plan 9's UTFmax is 3.chartorune may consume multiple bytes for each illegal rune. Plan 9 always consumes 1.runelen and runetochar return 0 if the rune is too large to print. Plan 9 erroneously returns UTFmax.