hoedown/hoedown — pull request #130 by MarkLodato (2014-09-22 02:44:19+00:00)
Title: Make tab expansion UTF-8 aware.

Tab expansion during preprocessing should align on UTF-8 characters, not bytes. See [CommonMark spec, example 2](http://jgm.github.io/stmd/spec.html#example-2). Before this patch, hoedown would fail the CommonMark test with the following:

````
✘ Example 2 (line 212)
=== markdown ===============
a→a
ὐ→a
=== expected ===============

a a
ὐ a

=== got ====================

a a
ὐ a

````

Note that, unlike Unicode support for case-insensitive link names (#105), this does not require a special library. We can simply skip over any bytes where `(c & 0xc0) == 0x80`. (This assumes the input is valid UTF-8.)