xref: /plan9/sys/src/cmd/disk/9660/rune.c (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1*80ee5cbfSDavid du Colombier #include <u.h>
2*80ee5cbfSDavid du Colombier #include <libc.h>
3*80ee5cbfSDavid du Colombier #include <bio.h>
4*80ee5cbfSDavid du Colombier #include <libsec.h>
5*80ee5cbfSDavid du Colombier 
6*80ee5cbfSDavid du Colombier #include "iso9660.h"
7*80ee5cbfSDavid du Colombier 
8*80ee5cbfSDavid du Colombier Rune*
strtorune(Rune * r,char * s)9*80ee5cbfSDavid du Colombier strtorune(Rune *r, char *s)
10*80ee5cbfSDavid du Colombier {
11*80ee5cbfSDavid du Colombier 	Rune *or;
12*80ee5cbfSDavid du Colombier 
13*80ee5cbfSDavid du Colombier 	if(s == nil)
14*80ee5cbfSDavid du Colombier 		return nil;
15*80ee5cbfSDavid du Colombier 
16*80ee5cbfSDavid du Colombier 	or = r;
17*80ee5cbfSDavid du Colombier 	while(*s)
18*80ee5cbfSDavid du Colombier 		s += chartorune(r++, s);
19*80ee5cbfSDavid du Colombier 	*r = L'\0';
20*80ee5cbfSDavid du Colombier 	return or;
21*80ee5cbfSDavid du Colombier }
22*80ee5cbfSDavid du Colombier 
23*80ee5cbfSDavid du Colombier Rune*
runechr(Rune * s,Rune c)24*80ee5cbfSDavid du Colombier runechr(Rune *s, Rune c)
25*80ee5cbfSDavid du Colombier {
26*80ee5cbfSDavid du Colombier 	for(; *s; s++)
27*80ee5cbfSDavid du Colombier 		if(*s == c)
28*80ee5cbfSDavid du Colombier 			return s;
29*80ee5cbfSDavid du Colombier 	return nil;
30*80ee5cbfSDavid du Colombier }
31*80ee5cbfSDavid du Colombier 
32*80ee5cbfSDavid du Colombier int
runecmp(Rune * s,Rune * t)33*80ee5cbfSDavid du Colombier runecmp(Rune *s, Rune *t)
34*80ee5cbfSDavid du Colombier {
35*80ee5cbfSDavid du Colombier 	while(*s && *t && *s == *t)
36*80ee5cbfSDavid du Colombier 		s++, t++;
37*80ee5cbfSDavid du Colombier 	return *s - *t;
38*80ee5cbfSDavid du Colombier }
39*80ee5cbfSDavid du Colombier 
40