1*eaba85aaSDavid du Colombier #include <u.h> 2*eaba85aaSDavid du Colombier #include <libc.h> 3*eaba85aaSDavid du Colombier 4*eaba85aaSDavid du Colombier Rune* _runebsearch(Rune c,Rune * t,int n,int ne)5*eaba85aaSDavid du Colombier_runebsearch(Rune c, Rune *t, int n, int ne) 6*eaba85aaSDavid du Colombier { 7*eaba85aaSDavid du Colombier Rune *p; 8*eaba85aaSDavid du Colombier int m; 9*eaba85aaSDavid du Colombier 10*eaba85aaSDavid du Colombier while(n > 1) { 11*eaba85aaSDavid du Colombier m = n/2; 12*eaba85aaSDavid du Colombier p = t + m*ne; 13*eaba85aaSDavid du Colombier if(c >= p[0]) { 14*eaba85aaSDavid du Colombier t = p; 15*eaba85aaSDavid du Colombier n = n-m; 16*eaba85aaSDavid du Colombier } else 17*eaba85aaSDavid du Colombier n = m; 18*eaba85aaSDavid du Colombier } 19*eaba85aaSDavid du Colombier if(n && c >= t[0]) 20*eaba85aaSDavid du Colombier return t; 21*eaba85aaSDavid du Colombier return 0; 22*eaba85aaSDavid du Colombier } 23