Import parser construction utility library

svn path=/trunk/libparserutils/; revision=4111
Have some generic dictionary implementation.
Even comes with testcases, which is nice.

svn path=/trunk/libparserutils/; revision=4138
Fix compiler errors when ptrs are 64bit.

svn path=/trunk/libparserutils/; revision=4468
Pedantic spelling changes of encoding names UTF-8, UTF-16 and UCS-4

svn path=/trunk/libparserutils/; revision=4469
Remove unnecessary casting.

svn path=/trunk/libparserutils/; revision=4470
Update filter's input encoding when it's been auto-detected.

svn path=/trunk/libparserutils/; revision=4471
- parserutils_charset_utf16_to_ucs4(): fixed surrogate handling.
- cscodec-utf8.c(run_test): Added more asserts.
- Added UTF-16 tester (based on the UTF-8 one).

svn path=/trunk/libparserutils/; revision=4472
Make comments explicit about the endianness of UCS-4 data

svn path=/trunk/libparserutils/; revision=4473
Make iconv-based filtering produce correct output when encountering encoding errors.
Fix inputstream_peek_slow to flag OOD when the buffer fill routine produces no new data.

svn path=/trunk/libparserutils/; revision=4474
Make parserutils_dict_entry public.
Add basic implementations of a stack and a vector.

svn path=/trunk/libparserutils/; revision=4824
Constify

svn path=/trunk/libparserutils/; revision=4827
Check for error in iconv_open

svn path=/trunk/libparserutils/; revision=4833
Rather more optimal data comparator -- compare data lengths first then, if they're equal, compare the actual data.

svn path=/trunk/libparserutils/; revision=4856
Fixup cross compilation makefile

svn path=/trunk/libparserutils/; revision=4883
Make the lpu alias comparion stuff ignore punctuation characters, as per HTML5

svn path=/trunk/libparserutils/; revision=4947
Fix a logic error, and make a test clearer & more efficient as per jmb's review.

svn path=/trunk/libparserutils/; revision=4973
Add parentheses

svn path=/trunk/libparserutils/; revision=5025
Fix valgrind's aliascmp() warning.

svn path=/trunk/libparserutils/; revision=5026
Move the location of the utf8 buffer every time we're asked for a character in debug mode.
This leaks memory lots, deliberately.

svn path=/trunk/libparserutils/; revision=5081
Only attempt to randomise the utf8 buffer when NDEBUG is not defined.
Note that, if lpu is built with NDEBUG defined, then the randomisation is a NOP.
Therefore, to use the randomisation, you want to build debug versions of both lpu and whatever's using it.

svn path=/trunk/libparserutils/; revision=5085