Libuninum Changes
2.7
- Adds support for Kayah Li, Lepcha, Ol Chiki, Saurashtra, Shan, Sundanese, and Vai.
- Full width numerals and hex digits are now accepted on input.
2.6
- When generating Roman numerals, M is now the default for thousands.
The variable Uninum_Generate_Roman_With_Bar_P now controls the choice
between M and a bar over the unit character. A parallel option has
been added to numconv and to NumberConverter (only via the init file).
- A README file containing documentation for NumberConverter has been added.
2.5
- Roman numerals in which overlining is used to mark thousands are now recognized
and generated.
- Roman numerals containing the reversed C symbol are now understood.
- Roman numeral compatibility characters are now recognized.
2.4
- Added graphical number conversion program NumberConverter.
- Added Tcl_ListNumberSystems to Tcl interface.
- Now reset uninum_err to NS_ERROR_OKAY at beginning of GuessNumberSystem.
- Fixed problems with stringnames for Hexadecimal.
- Added Armenian to UninumStringMaximumValue.
- Changed NS_ERROR_UNKNOWN to NS_ERROR_NUMBER_SYSTEM_UNKNOWN for clarity.
- Added error code NS_ERROR_OKAY.
- Fixed bug in GreekAlphabeticIntToString due to failure to assign data pointer before
referencing it.
2.3
- The default input number system for numconv is now "all", the default output "Western_Lower".
- Fixed bug in which Hebrew integral thousands had unit added, e.g. 5000 -> 5005.
- Fixed bug in which Roman 900 was being written DM rather than CM.
- Fixed HebrewIntToString to special case 15 and 16.
- Western numbers now support base 1.
- Added support for Verdurian.
- Completely redid Tengwar and added Tengwar duodecimal.
- Rewrote EthiopicIntToString.
- Support for conversion of Ethiopic strings to numbers has been temporarily disabled
while bugs are corrected.
- Added public function UninumStringMaximumValue() which returns the maximum value representable
in the specified number system as a string.
- Added compatibility ideographs for Chinese.
- Added check for negative argument to IntToString.
- Added tests for zero argument to the IntToString functions for systems with no zero.
- Added the error code NS_ERROR_NOZERO for number systems that cannot represent zero when given zero as input.
- Renamed error codes consistently. Added explanatory comments.
Some old error macros are retained for backwards compatibility but are deprecated.
- Fixed storage allocation for single digits in Tamil_Traditional.
- Eliminated a number of memory leaks.
2.2.2
- Fixed bug in GuessNumberSystem introduced in 2.2.1 in which any 0
in the string triggered categorization as NS_ALLZERO by GuessNumberSystem.
- False positive detection of Roman numerals by GuessNumberSystem was eliminated.
- Fixed bug in Armenian string generation with 0x053 for 7 instead of 0x0537.
2.2.1
- Corrects GuessNumberSystem to detect Chinese/Western mixture as Chinese.
2.2
- Added support for Aegean numbers, Ewellic_Decimal, Ewellic_Hexadecimal, Common Braille, French Braille, and Russian Braille.
- The numconv flag for identifying the number system has been changed from
-i to -I.
- Added the flags -i and -o to numconv for specifying input and output files.
- Errors in input are no longer treated as fatal by numconv.
- The function wcDelimitNumber(), previously used internally, is now available for
public use.
- Fixed several instances in which U+0969F was substituted for U+96F9.
- A number of memory leaks have been eliminated.
- Storage management has been cleaned up so that the wide strings returned by
IntToString and the ascii strings returned by StringToInt if strings are requested
as the return value are all in malloced storage and can safely be freed by the
caller.
- Fixed a fencepost error in wcDelimitNumber.
- Fixed incorrect normalization of U+534C "40" portmanteau.
- Fixed bug in wcgetline that caused weirdness in numconv with long input strings.
- Added several variants to NormalizeChineseCharacters.
- Corrected definition of KANNADA_ZERO, which made Kannada digits off by one.
- Fixed typo that left ROMAN_ZERO undefined.
- If IntToString does not recognize the number system, uninum_err is now
set to NS_UNKNOWN_ERR.
- StringToNumberSystem now sets the global variable uninum_ns_type to a value
indicating the acceptable use of the code returned. This can be used among
other things to check whether the number system is one suitable for string
generation.
- Replaced call to strcasecmp() with call to my own mystrcasecmp() for portability.
- Rewrote the Chinese, Braille, Counting Rod and Tamil digit tables without the
wide string notation so as to avoid failure to null terminate on MS Windows.
- Removed the superfluous functions wcStripChar and WesternToInt.
2.1
- Added support for Kharoshthi.
- Added support for Georgian (Mxedruli and both upper- and lower-case Xucuri)
- Added supported for Chinese Counting Rod numbers, in four variants.
- Extends generation of Hebrew numbers to 9,999.
- All input strings are now stripped of delimiters before conversion to integer.
- Group delimitation ("thousands separators") is now available for any output string.
The user may set the general group size, the size of the low group, and the separator
character or may specify that these parameters should be set according to the
current locale (if the user's system supports locales).
- For Western numbers, bases 2-36 are now supported for both input and output.
- The function that returns the library version has been renamed "uninum_version".
The old name, "Tell_Library_Version" remains temporarily available but is
deprecated and will eventually be removed.
- The function ListNumberSystem now takes a second argument, which specifies
whether to list specific number systems, which may be used for string generation,
or cover terms, which may be used only for converting from string to number.
- Numconv has been rewritten to provide access to more of the library's facilities.
In its main configuration, it converts strings from one number system to another.
- Numconv now has a manual page.
2.0.3
- Bugs that prevented the number systems "all" and "any" from being recognized
have been fixed.
2.0.2
- The function wcpcpy is now defined in uninum.c so as to avoid portability
problems on non-GNU systems.
- The elimination of unicode.h is retracted as causing too much trouble.
2.0.1
- This release fixes a bug in which UTF8in.c continued to include unicode.h
despite my intention of eliminating it, but unicode.h was not included
in the distribution. UTF8in.c has been modified to include uninum.h
instead.
2.0
- It is now possible to convert from numbers to Unicode strings.
- The Tcl command UNStrToWNStr is now protected against
crashing when given an invalid number system name as argument.
- Since one must be more specific in generating strings than in interpreting them,
more specific number system names have been adopted. Number system detection
still returns the generic names, e.g. "Chinese" rather than "Chinese_Legal_Simplified"
and so forth.
- The Tcl Makefile now sets up the Tcl package system.
- An ancillary script has been provided for finding out where to install
the Tcl library.
- It is no longer necessary for programs using the library to include
the header file unicode.h; the necessary definitions are now included in
uninum.h.
1.3
- A Tcl API has been added. See the README for installation information and
README_TCL for documentation.
1.2.2
- Bugfix: removed declaration of GreekAlphabetic as static.
1.2
- Added support for Armenian alphabetic numbers.
- Added support for Cyrillic alphabetic numbers.
- Added support for Glagolitic alphabetic numbers.
- Extended the ability of Chinese to handle traditional units through
as large as 極 1.0e48.
- Extended Chinese to handle mixed Chinese/Western numbers of the type not infrequently
found in Japan, e.g. 2500万.
Added additional variants to the set of Chinese numerals handled by NormalizeChineseNumbers.
1.1.1
- Bugfix: removed declaration of ArabicAlphabetic as static.
1.1
- Values may now be requested as objects of type mpz_t for those who wish to engage in further arbitrary precision computation.
- Fixed a bug in Chinese.
- Added support for Arabic Alphabetic, Greek Alphabetic, Hexadecimal, Limbu,
New Tai Lue, and Osmanya.
- Added a function WesternGeneralToInt, which accepts strings in bases 2-36.
This overlaps with strtoul(3) but may be useful to those dealing with values
that cannot be represented in an unsigned long.
- Added an additional return value from GuessNumberSystem, NS_ALLZERO, to deal with
the indeterminacy that results from a string containing only zeroes.
- Made system-specific routines return a little earlier on
detecting an invalid character.
- The installation process has, I hope, been improved. The include files
should now be installed in the correct directory.