/* Values of numeric Unicode characters.
- Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This program is free software: you can redistribute it and/or modify it
{
int lookup1 = u_numeric.level1[index1];
if (lookup1 >= 0)
- {
- unsigned int index2 = (uc >> numeric_header_2) & numeric_header_3;
- int lookup2 = u_numeric.level2[lookup1 + index2];
- if (lookup2 >= 0)
- {
- unsigned int index3 = ((uc & numeric_header_4) + lookup2) * 7;
- /* level3 contains 7-bit values, packed into 16-bit words. */
- unsigned int lookup3 =
- ((u_numeric.level3[index3>>4]
- | (u_numeric.level3[(index3>>4)+1] << 16))
- >> (index3 % 16))
- & 0x7f;
-
- return u_numeric_values[lookup3];
- }
- }
+ {
+ unsigned int index2 = (uc >> numeric_header_2) & numeric_header_3;
+ int lookup2 = u_numeric.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = ((uc & numeric_header_4) + lookup2) * 7;
+ /* level3 contains 7-bit values, packed into 16-bit words. */
+ unsigned int lookup3 =
+ ((u_numeric.level3[index3>>4]
+ | (u_numeric.level3[(index3>>4)+1] << 16))
+ >> (index3 % 16))
+ & 0x7f;
+
+ return u_numeric_values[lookup3];
+ }
+ }
}
{
const uc_fraction_t default_value = { 0, 0 };