xref: /plan9/sys/src/cmd/dict/simple.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier #include <u.h>
2*219b2ee8SDavid du Colombier #include <libc.h>
3*219b2ee8SDavid du Colombier #include <bio.h>
4*219b2ee8SDavid du Colombier #include "dict.h"
5*219b2ee8SDavid du Colombier 
6*219b2ee8SDavid du Colombier /*
7*219b2ee8SDavid du Colombier  * Routines for handling dictionaries in UTF, headword
8*219b2ee8SDavid du Colombier  * separated from entry by tab, entries separated by newline.
9*219b2ee8SDavid du Colombier  */
10*219b2ee8SDavid du Colombier 
11*219b2ee8SDavid du Colombier void
simpleprintentry(Entry e,int cmd)12*219b2ee8SDavid du Colombier simpleprintentry(Entry e, int cmd)
13*219b2ee8SDavid du Colombier {
14*219b2ee8SDavid du Colombier 	uchar *p, *pe;
15*219b2ee8SDavid du Colombier 
16*219b2ee8SDavid du Colombier 	p = (uchar *)e.start;
17*219b2ee8SDavid du Colombier 	pe = (uchar *)e.end;
18*219b2ee8SDavid du Colombier 	while(p < pe){
19*219b2ee8SDavid du Colombier 		if(*p == '\t'){
20*219b2ee8SDavid du Colombier 			if(cmd == 'h')
21*219b2ee8SDavid du Colombier 				break;
22*219b2ee8SDavid du Colombier 			else
23*219b2ee8SDavid du Colombier 				outchar(' '), ++p;
24*219b2ee8SDavid du Colombier 		}else if(*p == '\n')
25*219b2ee8SDavid du Colombier 			break;
26*219b2ee8SDavid du Colombier 		else
27*219b2ee8SDavid du Colombier 			outchar(*p++);
28*219b2ee8SDavid du Colombier 	}
29*219b2ee8SDavid du Colombier 	outnl(0);
30*219b2ee8SDavid du Colombier }
31*219b2ee8SDavid du Colombier 
32*219b2ee8SDavid du Colombier long
simplenextoff(long fromoff)33*219b2ee8SDavid du Colombier simplenextoff(long fromoff)
34*219b2ee8SDavid du Colombier {
35*219b2ee8SDavid du Colombier 	if(Bseek(bdict, fromoff, 0) < 0)
36*219b2ee8SDavid du Colombier 		return -1;
37*219b2ee8SDavid du Colombier 	if(Brdline(bdict, '\n') == 0)
38*219b2ee8SDavid du Colombier 		return -1;
39*219b2ee8SDavid du Colombier 	return Boffset(bdict);
40*219b2ee8SDavid du Colombier }
41*219b2ee8SDavid du Colombier 
42*219b2ee8SDavid du Colombier void
simpleprintkey(void)43*219b2ee8SDavid du Colombier simpleprintkey(void)
44*219b2ee8SDavid du Colombier {
45*219b2ee8SDavid du Colombier 	Bprint(bout, "No pronunciation key.\n");
46*219b2ee8SDavid du Colombier }
47