RUNE(2)                                                   RUNE(2)

     NAME
          runetochar, chartorune, runelen, fullrune, utflen, utfrune,
          utfrrune, utfutf - rune/UTF conversion

     SYNOPSIS
          int  runetochar(char *s, Rune *r)

          int  chartorune(Rune *r, char *s)

          int  runelen(long r)

          int  fullrune(char *s, int n)

          int  utflen(char *s)

          char*     utfrune(char *s, long c)

          char*     utfrrune(char *s, long c)

          char*     utfutf(char *s1, char *s2)

     DESCRIPTION
          These routines convert to and from a UTF byte stream and
          runes.

          Runetochar copies one rune at r to at most UTFmax characters
          starting at s and returns the number of characters copied.
          UTFmax, defined as 3 in <libc.h>, is the maximum number of
          bytes required to represent a rune.

          Chartorune copies at most UTFmax characters starting at s to
          one rune at r and returns the number of characters copied.
          If the characters are not exactly in UTF format, chartorune
          will convert to 0x80 and return 1.

          Runelen returns the number of characters required to convert
          r into UTF.

          Fullrune returns 1 if the string s of length n is long
          enough to be decoded by chartorune and 0 otherwise.  This
          does not guarantee that the string contains a legal UTF
          encoding.  This routine is used by programs that obtain
          input a character at a time and need to know when a full
          rune has arrived.

          The following routines are analogous to the corresponding
          string routines with utf substituted for str and rune sub-
          stituted for chr.

          Utflen returns the number of runes that are represented by

     Page 1                       Plan 9            (printed 11/18/24)

     RUNE(2)                                                   RUNE(2)

          the UTF string s.

          Utfrune (utfrrune) returns a pointer to the first (last)
          occurrence of rune c in the UTF string s, or 0 if c does not
          occur in the string.  The NUL character terminating a string
          is considered to be part of the string s.

          Utfutf returns a pointer to the first occurrence of the UTF
          string s2 as a UTF substring of s1, or 0 if there is none.
          If s2 is the null string, utfutf returns s1.

     SEE ALSO
          utf(6), tcs(1),

     Page 2                       Plan 9            (printed 11/18/24)