github.com/tcnksm/go@v0.0.0-20141208075154-439b32936367/src/lib9/utf/runetype.c (about)

     1  /*
     2   * The authors of this software are Rob Pike and Ken Thompson.
     3   *              Copyright (c) 2002 by Lucent Technologies.
     4   * Permission to use, copy, modify, and distribute this software for any
     5   * purpose without fee is hereby granted, provided that this entire notice
     6   * is included in all copies of any software which is or includes a copy
     7   * or modification of this software and in all copies of the supporting
     8   * documentation for such software.
     9   * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
    10   * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY
    11   * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
    12   * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
    13   */
    14  #include "utf.h"
    15  #include "utfdef.h"
    16  
    17  static
    18  Rune*
    19  rbsearch(Rune c, Rune *t, int n, int ne)
    20  {
    21  	Rune *p;
    22  	int m;
    23  
    24  	while(n > 1) {
    25  		m = n >> 1;
    26  		p = t + m*ne;
    27  		if(c >= p[0]) {
    28  			t = p;
    29  			n = n-m;
    30  		} else
    31  			n = m;
    32  	}
    33  	if(n && c >= t[0])
    34  		return t;
    35  	return 0;
    36  }
    37  
    38  #include "runetypebody-6.3.0.h"