libutf 0.0.0-1.ff4c606 Plan 9 compatible UTF-8 library

This is a C89 UTF-8 library, with an API compatible with that of Plan 9's libutf, but with a number of improvements:

  • Support for runes beyond the Basic Multilingual Plane.

  • 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.

  • An extra function, 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.