2007-09-22 Bill Poser * uninum.c (RomanIntToString): Made M for thousand the default even for multiple thousands and added flag Generate_Roman_Numerals_With_Bar_P. 2007-06-11 Bill Poser * uninum.c: Added support for roman numerals containing reversed C to RomanToInt. Added support for overline as thousands indicator in roman numerals to RomanIntToString. 2007-06-10 Bill Poser * uninum.c: Added support for overline as thousands indicator in roman numerals to RomanToInt. Added support for specialized roman numeral characters to RomanToInt. 2007-04-11 Bill Poser * uninum.c: Now reset uninum_err to NS_ERROR_OKAY at beginning of GuessNumberSystem. Added Tcl_ListNumberSystems. Fixed problems with stringnames for Hexadecimal. Added Armenian to UninumStringMaximumValue. 2007-04-10 Bill Poser * nsdefs.h: Changed NS_ERROR_UNKNWON to NS_ERROR_NUMBER_SYSTEM_UNKNOWN for clarity. Added NS_ERROR_OKAY. * uninum.c (GreekAlphabeticIntToString): Fixed bug due to failure to assign data pointer before referencing it. 2007-03-29 Bill Poser Release of version 2.3. 2007-03-26 Bill Poser * uninum.c: Temporarily disabled EthiopicToInt for repairs. * Makefile.am: Merged uout.c and UTF8in.c into uniio.c. 2007-03-22 Bill Poser * uninum.c: Renamed utf16len to uninum_utf16len to avoid conflict with other libraries. 2007-03-14 Bill Poser * numconv.c: Made default input number system "all" and default output number system "Western_Lower". 2007-03-13 Bill Poser * uninum.c: Fixed bug in which Hebrew integral thousands had unit added, e.g. 5000 -> 5005. (BA patch) Fixed bug in which Roman 900 was being written DM rather than CM. (BA patch) Fixed fencepost error in GreekAlphabeticIntToString. (BA patch) Fixed HebrewIntToString to special case 15 and 16. * nsdefs.h: Renamed error codes consistently. Added explanatory comments. * uninum.c: Modified WesternGeneralIntToString to support base 1. Modified WesternGeneralToInt to support base 1. 2007-03-11 Bill Poser * uninum.c: Fixed storage allocation for single digits in Tamil_Traditional. Now use an mpz_t object for the return value from the StringToInt functions instead of an rval union. Added support for Verdurian. Added check for negative argument to IntToString. Added tests for zero argument to the IntToString functions for systems with no zero. Eliminated potential memory leak from PlaceNonContiguousIntToString. * nsdefs.h: Added the error code NS_NOZEROR_ERROR for number systems that cannot represent zero when given zero as input. * uninum.c: Completely redid Tengwar and added Tengwar duodecimal. 2007-03-10 Bill Poser * uninum.c: Fixed bug in GuessNumberSystem introduced in 2.2.1 in which any 0 in the string triggered categorization as all zero. Added compatibility ideographs to NormalizeChineseCharacters(). 2007-03-08 Bill Poser * uninum.c: Eliminated false positive detection of Roman numerals. Eliminated memory leak in TamilToInt_MPZ. Eliminated memory leak in ChineseWesternIntToString. Fixed bug arising only on error in TengwarToInt. Added public function MaximumValue(). Fixed bug in Armenian string generation with 0x053 for 7 instead of 0x0537. Removed the code for producing ulong and string return types from the individual string-to-int functions and moved it to StringToInt, thereby eliminating much repetition. 2007-03-08 Bill Poser Release of 2.2.1. * uninum.c: Corrected GuessNumberSystem to detect Chinese/Western mix as a kind of Chinese. 2007-03-07 Bill Poser Release of version 2.2. * uninum.c: Fixed fencepost error in wcDelimitNumber()). * numconv.c: Changed the handling of several types of errors to be non-fatal. 2007-03-06 Bill Poser * uninum.c: Removed superflous function wcStripChar(). 2007-03-05 Bill Poser * uninum.c: Fixed several typos in which U+0969F was substituted for U+96F9. Eliminated various memory leaks. Modified Chinese string functions to return a freshly allocated string for single digits. 2007-03-02 Bill Poser * uninum.c: IntToString now sets its return paramater to zero on error. This prevents Tcl from issuing error messages about invalid attempts to free pointers and allows calling functions to free the returned string (if the return type is NS_TYPE_STRING) without testing for errors. 2007-03-01 Bill Poser * uninum.c: Removed WesternToInt() as it is subsumed by WesternGeneralToInt(). Fixed incorrect normalization of U+534C "40" portmanteau. Added several variants to NormalizeChineseCharacters() and corrected several typos. * wcgetline.c: Fixed bug (incorrect argument to realloc) that caused weirdness in numconv with long input strings. 2007-02-28 Bill Poser * uninum.c: Corrected definition of KANNADA_ZERO, which made Kannada digits off by one. Fixed bug that left ROMAN_ZERO undefined. 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. Replaced call to strcasecmp() with call to my own mystrcasecmp() for portability. Removed a bunch of memory leaks from string generation functions in which mpz objects were created too early and not cleared before an early return. If IntToString does not recognize the number system, uninum_err is now set to NS_UNKNOWN_ERR. * uninum.c uninum.h nsdefs.h uninum.i numconv.c: 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. 2007-02-11 Bill Poser * uninum.c: Replaced wchar_t with UTF32 for portability. Replaced calls to wcslen, wcscat, wcscpy, wcschr, and wcsrchr with calls to ucslen, ucscat, ucscpy, ucschr, and ucsrchr, and defined the latter as macros which expand to the original wc functions with suitable casts. 2007-02-10 Bill Poser * uninum.c: Added support for Ewellic_Decimal and Ewellic_Hexadecimal Removed Tell_Library_Version(), which was deprecated in the previous release. Made all of the string->int functions static so that StringToInt provides the only interface. 2007-02-09 Bill Poser * uninum.c: Added support for Aegean numbers. Added support for Common Braille (English and most other languages). Added support for French (Antoine)/Czech Braille. Added support for Russian Braille. 2007-02-08 Bill Poser * numconv.c: Changed flag for identifying number system from -i to -I. Added flags -i and -o for specifying input and output files. 2007-02-06 Bill Poser Release of version 2.1. * uninum.c: Rationalized number system names and added a flag to the list generator for obtaining either the specific names or the cover terms. 2007-02-05 Bill Poser * numconv.c: Changed input routine to one that accepts input lines of any length. 2007-02-04 Bill Poser * uninum.c: Added ability to set grouping parameters according to current locale. 2007-02-03 Bill Poser * uninum.c: Added Chinese Counting Rod numbers, in four variants. 2007-02-01 Bill Poser * nunmconv.c: Rewrote. Now can set group parameters, input and output bases, and input and output number systems. * uninum.c: Added the three Georgian alphabetic systems. Extended the set of characters stripped when stripping group separators to include apostrophe, ideographic space, ethiopic space, and the arabic thousands separator. (wcDelimitNumber): Added ability to specify decimal separator and separate group size for first group. Added global variables for input base, output base, and delimitation parameters. 2007-01-31 Bill Poser * uninum.c: Extended generation of Hebrew numbers to thousands. 2007-01-27 Bill Poser * uninum.c: Added Kharoshthi. Changed name of Tell_Library_Version to uninum_version. * uninum.c: (2.0.3) Fixed bug that prevents "all" and "any" number system names from being recognized. 2007-01-25 Bill Poser * numconv.c: Added check for number argument to numconv with -s flag. 2007-01-24 Bill Poser * uninum.c: (2.0.2) Defined wcpcpy() internally instead of relying on glibc so as to avoid portability problems. Retracted replacement of unicode.h as too problematic. * UTF8in.c: (2.0.1) Completed replacement of "unicode.h" with . 2007-01-23 Bill Poser * uninum.c: Protected the Tcl command UNStrToWNStr against crashing when given an invalid number system name as argument. Added the function Tell_Library_Version which returns the library version number. * FindTclLibDir.tcl: Added script for finding out where to install Tcl library. 2007-01-22 Bill Poser * uninum.c: Added inverse functions, for generating strings. Eliminated need to include unicode.h by moving the necessary definitions into uninum.h. 2007-01-14 Bill Poser * uninum.i: Added Tcl API. 2007-01-05 Bill Poser * uninum.c: Modified Chinese to handle mixed Chinese Western numbers of the sort not infrequently found in Japan (e.g. 2500 man). 2007-01-04 Bill Poser * numconv.c: Added -i option which identifies number system. * uninum.c: Added Cyrillic alphabetic. Added Glagolitic alphabetic. Added Sinhala in accordance with Unicode proposal. Extended Chinese to handle traditional units through 10^48. 2007-01-01 Bill Poser * uninum.c: Bugfix: removed declaration of ArabicAlphabeticToInt as static. Added Armenian alphabetic. Added characters to NormalizeChineseNumbers. 2006-12-31 Bill Poser * uninum.c: Release 1.1. Added a third return type. For those who wish to do further arbitrary precision computation using the results of the conversion, the result may now be requested as an object of type mpz_t. Fixed bug in Chinese. Added support for Greek Alphabetic (only through 999). Added support for Arabic Alphabetic. Added WesternGeneralToInt. Added type NS_HEX. Made system-specific routines return a little earlier on detecting an invalid character. 2006-12-30 Bill Poser * uninum.c: Added support for Limbu. Added support for New Tai Lue. GuessNumberSystem now tests for the case in which the string consists entirely of U+0030 and if it detects it returns the new value NS_ALLZERO. A string containing all zeroes has two special properties. One is that it can be assumed to have the value 0. The other is that it is ambiguous as to number system since some non-Western systems use the Western zero character. The number system specifier returned is distinct from NS_UNKNOWN both because the value of the string is determinate and because the number system can be determinate from additional data if it is available. 2006-12-28 Bill Poser *Release of version 1.0. * uninum.c: Now do internal calculations using bignums and return results as decimal ascii strings. This allows lossless conversion regardless of the machine word sizes available on the machine. Added 0x0030 to NormalizeChinese since it may be used. Added Mongolian. Added Balinese. Added Khmer.