initial commit
fix segfault due to unchecked size in tns_render_value
use repr() to render floats; it parses back more accurately than str()
adding .gitignore
make shootout use randomly-generated test objects
add basic pure-python implementation; it's hundreds of times slower
add py-yajl to the shootout; we are still the fastest
refactor rendering to use a simple "outbuf" struct.

This combines the output buffer, allocated size and used size into a
single value.  Helper functions make writing render functions simpler.
It also lets throwing out work done so far if we need to grow the buffer.
Removed duped 'the'

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
Marketing

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
Removed "len < 0 checks", since size_t is unsigned.

As reported by -Wextra, len cannot be negative (it would have
overflowed).

Also, in order for (remain - data) to be > len, there must be
a bug in tns_parse.

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
Added tns_type_tag enum.

A bit of safety for switches.

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
do/while trickery

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
Stricter verification.

Without the +1, this case

    tns_parse("5:12345,", 7);

will succeed, even though the length argument says not to include the
comma.

Signed-off-by: Guillermo O. Freschi <tordek@tordek.com.ar>
tighter check for invalid length prefix; thanks Tordek
Merge github.com:Tordek/tnetstring into tordek-master
fix returncode of tns_outbuf_itoa
rename tns_X_tag => tns_tag_X for stylistic consistency
fix typo
update comment; tns_render() must be called with non-NULL len arg