forsyth20121205-174063a80cc13 years agoHistory
68 lines · 1.7 KB · Text
RawDownload
.TH SYS-BYTE2CHAR 2.SH NAMEbyte2char, char2byte \- convert between bytes and characters.SH SYNOPSIS.EXinclude "sys.m";sys := load Sys Sys->PATH; byte2char: fn(buf: array of byte, n: int): (int, int, int);char2byte: fn(c: int, buf: array of byte, n: int): int;.EE.SH DESCRIPTION.B Byte2charconverts a byte sequence to one Unicode character..I Bufis an array of bytes and.I nis the index of the first byte to examine in the array.The returned tuple, say.BI ( c ,.IB length ,.IB status )\f1,specifies the result of the translation:.I cis the resulting Unicode character,.I statusis non-zero if the bytes are a valid UTF sequence and zero otherwise,and.I lengthis set to the number of bytes consumed by the translation.If the input sequence is not long enough to determine its validity,.B byte2charconsumes zero bytes;if the input sequence is otherwise invalid,.B byte2charconsumes one input byte and generates an error character.RB ( Sys->UTFerror ,.BR 16r80 ),which prints in most fonts as a boxed question mark..PP.B Char2byteperforms the inverse of.BR byte2char .It translates a Unicode character,.IR c ,to a UTF byte sequence, whichis placed in successive bytes starting at.IR buf [\c.IR n ].The longest UTF sequence for a single Unicode character is.B Sys->UTFmax(3) bytes.If the translation succeeds,.B char2bytereturns the number of bytes placed in the buffer.If the buffer is too small to hold the result,.B char2bytereturns zero and leaves the array unchanged..SH SOURCE.B /libinterp/runt.c.SH SEE ALSO.IR sys-intro (2),.IR sys-utfbytes (2),.IR utf (6).SH DIAGNOSTICSA run-time error occurs if.I nexceeds the bounds of the array.