Blame


1 b2cfc4e2 2003-09-30 devnull #include "lib9.h"
2 b2cfc4e2 2003-09-30 devnull #include <bio.h>
3 b2cfc4e2 2003-09-30 devnull #include <utf.h>
4 b2cfc4e2 2003-09-30 devnull
5 b2cfc4e2 2003-09-30 devnull int
6 b2cfc4e2 2003-09-30 devnull Bputrune(Biobuf *bp, long c)
7 b2cfc4e2 2003-09-30 devnull {
8 b2cfc4e2 2003-09-30 devnull Rune rune;
9 0cadb430 2009-09-11 russcox char str[UTFmax];
10 b2cfc4e2 2003-09-30 devnull int n;
11 b2cfc4e2 2003-09-30 devnull
12 b2cfc4e2 2003-09-30 devnull rune = c;
13 b2cfc4e2 2003-09-30 devnull if(rune < Runeself) {
14 b2cfc4e2 2003-09-30 devnull Bputc(bp, rune);
15 b2cfc4e2 2003-09-30 devnull return 1;
16 b2cfc4e2 2003-09-30 devnull }
17 b2cfc4e2 2003-09-30 devnull n = runetochar(str, &rune);
18 b2cfc4e2 2003-09-30 devnull if(n == 0)
19 b2cfc4e2 2003-09-30 devnull return Bbad;
20 b2cfc4e2 2003-09-30 devnull if(Bwrite(bp, str, n) != n)
21 b2cfc4e2 2003-09-30 devnull return Beof;
22 b2cfc4e2 2003-09-30 devnull return n;
23 b2cfc4e2 2003-09-30 devnull }