New Code!
Discount has been pushed up to version 1.1.5 with a few assorted cleanups and bugfixes:
- First, try to make it more portable to not-quite-standard
systems (like Windows + MSVC) by not using alloca anywhere and by having
configure look for
strcasecmpvsstricmpandstrncasecmpvsstrnicmp, then - Clean up some horrid interactions with bsearch by converting
blocktags[]into an array ofstruct kws and havingisopentag()construct astruct kwand use that for searching instead ofmalloc()ing a buffer, making a null-terminated string, then comparing against that, and, finally - Catch a horrible parsing bug where I didn’t null-terminate html blocks during
the blocking pass of the compiler, so at cleanup time I ended up double-freeing
blocks and causing the program to dump core if I used anything other than
alloca()insideisopentag().
It still passes the standard Markdown test suite, so it’s bound to be perfect in every way™, and that makes it good enough to be New Code for your compiling amusement.