ChangeLog Yeah, I know this isn't quite the right format. 22-Sep-2016 * Fix nasty rounding bug in dtoa functions * Change license from New BSD to MIT * Reformat whitespace * Fix URLs and other documentation 01-Nov-2013: * Added new XML, HTML and UTF-8 functions * Fixed warnings for latest compilers * CHANGE: various functions return the amount of data consumed instead of void 06-Oct-2012: * ADDED new modp_b64r which is a base64 encoding that follows RFC XYZ 18-Mar-2012: * ADDED new file/function: modp_qsiter memory-free query string key-value pair iterator 25-Feb-2012: * ADDED 'make valgrind' to run all tests through valgrind * Fixed Issue 26 where uint64_t != unsigned long on some platforms. Thanks to ndivx * Fixed Issue 21 valgrind complains on modp_b16 in some cases. Thanks calfeld@qualys.com * Fixed Issue 18 copying versions of C++ functions tolower(), toupper(), toprint() modify original string, thanks ilya.m...@gmail.com 23-Feb-2012 * Fixed bootstrap code on Mac OS 10. * Fixed Issue 25 speedtest fails to compile with gcc 4.6+ -Wextra. Thanks to rakesh.pandit 19-Mar-2010 * Added "modp_dtoa2" same as dtoa2 but strips trailing zeros (Issue 9) * FIXED Issue 10 -- NaN not handled correctly in modp_dtoa(2). * ADDED more tests for NaN/Inf handling * FIXED some build issues under Ubuntu (64-bit) (sprintf annoyances in testing code) * REGENERATED that autoconf stuff. Groan. Hopefully it works for you. If not file a ticket, please! * VERSION 3.10 RELEASED 12-Feb-2010 * FIXED Issue 7 - silent overflow error * FIXED Incorrect autoconf version * Issue 6 -- attempt to make VS2008 happy * VERSION 3.9 RELEASED 05-Jan-2008 * Regenerated libtool/autoconf/autoheader/etc to fix problem where ranlib was improperly being invoked on some systems * Added "std::" to some raw "string" in C++ methods * Added "#include " to some headers for C++ * Tested with latest snapshot of gcc/g++ with -Wall -Wextra * No logic changes 20-Nov-2007 * modp_dtoa Fixed round-to-even "rollovers" (e.g. 0.99, prec 1 -> 1.0) Simplified "very small number" logic Unit tests greatly improved. thanks again to Johannes Otepka for finding bugs * VERSION 3.6 RELEASED 19-Nov-2007 * modp_dtoa Fixed round-to-even, and precision 0 rules to match printf thanks to Johannes Otepka * VERSION 3.5 RELEASED 27-Jun-2007 * VERSION 3.4 RELEASED 21-Jun-2007 * Ugh. Fix bug in url decode where core dump can occur if someone passes in %XX, where X has high bit set (> 0x80). Due to signed chars, this is interpreted as a negative, and bad things happen. Thanks to Andrei Khemmelis. * Improve more C++ methods, b64, b64w, b16 all have string, const string, const char* and and (const char*, length) inputs now. * Added "make help" to give list of options 05-Jun-2007 * VERSION 3.3 RELEASED 05-Jun-2007 * Fix bug in modp_b16_gen that could core dump (doesn't not effect output, only occurs during building). Thanks to Constantine Verutin. 04-Jun-2007 * toupper/lower now 2x faster than before! Based on an alogirthm by Hsieh http://www.azillionmonkeys.com/qed/asmexample.html * C++ added more C++ methods for url_decode 24-May-2007 * Version 3.2 released * Cleaned-up include guards, and 'extern c' stuff for C++. 23-May-2007 * Add C++ "const" methods everywhere in case you don't want to modify the original input 15-May-2007 * Removed CuTest since it's crap and leaks memory. 14-May-2007 * added modp_ascii -- ascii transformations (upper/lower/etc) -- 25x faster than ctype toupper,etc 13-May-2007 * made b64_encode be about 30% faster on Intel based chip. Minimal performance loss on AMD, G4 (now all platforms are faster than the apache encoder) * added modp_b2 -- ascii binary string encode/decode 22-Apr-2007 * Release 3.1 * fixes some compliation problems on 64-bit platforms * add modp_numtoa, fast number to string conversions 06-Apr-2007 * Release 3.0 03-Mar-2007: * initial import into google code 02-Sep-2006 * New modp_64w which is the configurable base 64 alphabet. The original modp_b64 will now be the standard base 64 alphabet and is unchangable. This way you can dump binary data into XML use the standard, and make web urls (web-safe version) * Made modp_url_encode escape more characters. This makes it more standard. * Add modp_url_min_encode which does a more "minimal" encoding RFC 3986 actually recommends encoding less characters (the original was based for HTML form processing). * Improved documentation 28-Aug-2006 * Added javascript encoding. Convert c-string to a format suitable for embedding into javascript (dynamically generated by the server for instance). * INTERFACE CHANGE use namespaces for C++ functions, and changed their names 16-May-2006: Release 2.0.0 * New Prefix: everything is prefixed with modp_bXX, where XX is the encoding type * Massive unit test coverage using CuTest library * New! bfasturl -- high performance url encode/decode! * New bfast16 -- high performance hex encode/decode * New! C++ bindings using std::string 15-Mar-2006: Release v1.3 * Version 1.2 b64fast_decode wrote a few extra bytes after the data as an optimization. This have been changed so it write ONLY the extact number of byte encoded. THis makes it more compatible with existing implementations and allows some tricks. (decoding directly into a C-struct). 10-Mar-2006: Release v1.2 * INTERFACE CHANGE -- b65fast_encode returns strlen of the result. Not strlen+1 like apache. * Change b64 decode to only write the exact bytes (previously wrote a few extra 0s at the end for performance reasons) * Change b85 default alphabet to exclude "," This allows use with V0/Netscape and V1 HTTP cookies. 20-Feb-2006: Release v1.1 * CRITICAL BUG FIX -- in some cases b64encode will produce bad output this may only occur on some compilers * Added base85 functionality! * Cleaned up source code, added mode-lines, reindented * Renamed files to better reflect function 25-Dec-2005: Initial Release v1.0.0