| Index: source/common/uchar.c
|
| diff --git a/source/common/uchar.c b/source/common/uchar.c
|
| index 57e00afc10f8b124052cbfdbaf65ea800de39f6a..496df86f4ce1bf37f55a7df0465f6feded7b8522 100644
|
| --- a/source/common/uchar.c
|
| +++ b/source/common/uchar.c
|
| @@ -1,6 +1,8 @@
|
| +// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
| +// License & terms of use: http://www.unicode.org/copyright.html
|
| /*
|
| ********************************************************************************
|
| -* Copyright (C) 1996-2014, International Business Machines
|
| +* Copyright (C) 1996-2016, International Business Machines
|
| * Corporation and others. All Rights Reserved.
|
| ********************************************************************************
|
| *
|
| @@ -434,7 +436,7 @@ u_getNumericValue(UChar32 c) {
|
| }
|
|
|
| return numValue;
|
| - } else if(ntv<UPROPS_NTV_RESERVED_START) {
|
| + } else if(ntv<UPROPS_NTV_FRACTION20_START) {
|
| /* sexagesimal (base 60) integer */
|
| int32_t numValue=(ntv>>2)-0xbf;
|
| int32_t exp=(ntv&3)+1;
|
| @@ -458,6 +460,12 @@ u_getNumericValue(UChar32 c) {
|
| }
|
|
|
| return numValue;
|
| + } else if(ntv<UPROPS_NTV_RESERVED_START) {
|
| + // fraction-20 e.g. 3/80
|
| + int32_t frac20=ntv-UPROPS_NTV_FRACTION20_START; // 0..0x17
|
| + int32_t numerator=2*(frac20&3)+1;
|
| + int32_t denominator=20<<(frac20>>2);
|
| + return (double)numerator/denominator;
|
| } else {
|
| /* reserved */
|
| return U_NO_NUMERIC_VALUE;
|
|
|