runetype.c revision 3050
13050Sache#include <stdio.h> 23050Sache#include <rune.h> 33050Sache 43050Sacheunsigned long 53050Sache___runetype(c) 63050Sache _BSD_RUNE_T_ c; 73050Sache{ 83050Sache int x; 93050Sache _RuneRange *rr = &_CurrentRuneLocale->runetype_ext; 103050Sache _RuneEntry *re = rr->ranges; 113050Sache 123050Sache if (c == EOF) 133050Sache return(0); 143050Sache for (x = 0; x < rr->nranges; ++x, ++re) { 153050Sache if (c < re->min) 163050Sache return(0L); 173050Sache if (c <= re->max) { 183050Sache if (re->types) 193050Sache return(re->types[c - re->min]); 203050Sache else 213050Sache return(re->map); 223050Sache } 233050Sache } 243050Sache return(0L); 253050Sache} 263050Sache 27