xref: /inferno-os/libbio/bputrune.c (revision 72335078034e3cd7edcb1739556b405a3e1e9bf8)
137da2899SCharles.Forsyth #include	"lib9.h"
237da2899SCharles.Forsyth #include	<bio.h>
337da2899SCharles.Forsyth 
437da2899SCharles.Forsyth int
Bputrune(Biobuf * bp,long c)537da2899SCharles.Forsyth Bputrune(Biobuf *bp, long c)
637da2899SCharles.Forsyth {
737da2899SCharles.Forsyth 	Rune rune;
8*72335078SCharles Forsyth 	char str[UTFmax];
937da2899SCharles.Forsyth 	int n;
1037da2899SCharles.Forsyth 
1137da2899SCharles.Forsyth 	rune = c;
1237da2899SCharles.Forsyth 	if(rune < Runeself) {
1337da2899SCharles.Forsyth 		Bputc(bp, rune);
1437da2899SCharles.Forsyth 		return 1;
1537da2899SCharles.Forsyth 	}
1637da2899SCharles.Forsyth 	n = runetochar(str, &rune);
1737da2899SCharles.Forsyth 	if(n == 0)
1837da2899SCharles.Forsyth 		return Bbad;
1937da2899SCharles.Forsyth 	if(Bwrite(bp, str, n) != n)
2037da2899SCharles.Forsyth 		return Beof;
2137da2899SCharles.Forsyth 	return n;
2237da2899SCharles.Forsyth }
23