Note that the test cases are really awkward so this is unlikely to
actually happen normally, but implementation is much easier if it
doesn't have to worry about these cases.
[SVN r86704]
This is based on Rene's implementation, but I used my own glob function,
and adjusted a few things since it's now always using ascii. It would be
nice to support unicode, but that would require at the very least a
normalization library, and perhaps more than that.
[SVN r86699]
Actually a subtle change, as includes and anchors could previously
contain spaces. Possibly should still alow that, although I expect it's
never used.
[SVN r86688]
Fix bug where a code block at the start of a file was not recognised.
I was actually adding this test to check that the `source_mode_unset`
mechanism in `doc_info_grammar.cpp` was working, but it ended exposing
this bug.
[SVN r85590]
There's a minor bug with escaped templates in 1.6 and I don't have time to
fix it, this will help limit its effect. As far as I'm aware no one uses
escaped templates with punctuation templates. Escaped templates are an
undocumented feature anyway.
[SVN r85285]
Doesn't work for: templates in lists or explicit list block elements
(because it detects when it's in a list based on the parser), but it is
usually at least as good as the older version.
This kind of thing would be much easier if I represented the lists in
data rather than translating them as they are parsed. Not sure if I'll
do that soon though.
[SVN r85247]
Since this is often indented, does not treat indented blocks as code
blocks. This is inconsistent for lists, so maybe indented blocks in
lists should always be code, or never be code. Or maybe it should be a
bit smarter about nested indented blocks.
[SVN r85126]
It's about to break because of a 1.6 change, but that doesn't matter because
it's an obsolete test. I've already removed it from my 1.7 development.
[SVN r84935]
If the whitespace to be removed when unindenting a block is not
consistent, then replace all the indentation in that block with spaces
(i.e. expand tabs). This fixes some odd results that could happen, e.g.
....Line 1
--->Line 2
(dots = spaces, arrow = tab) would become:
...Line 1
Line 2
Because the first character was removed from each line. This now works
okay.
But I don't expand tabs when the whitespace that isn't removed is
inconsistent, which can have odd results, for example:
..Line 1
..->Line 2
......Line 3
Will just remove the first two spaces, resulting in:
Line 1
--->Line 2
....Line 3
This should be rare, as tabs after spaces are a bit odd. But maybe I
should convert to spaces more often. Perhaps when indentation is
inconsistent, or perhaps whenever a mixture of tabs and spaces are used,
or even always just do it.
[SVN r84150]