Really not sure about this, but filesystem doesn't have great support
anyway[1], and this handles some unusual cases better.
[1]: https://svn.boost.org/trac10/ticket/5448
Before the idea was that check_glob would throw out any invalid globs, and then
if they somehow got through glob would just fail to match. I now feel it would
be better if it also complained on finding an invalid glob, although it will
only detect an invalid glob if the pattern matches up to that point.
It was incorrect because it was following symlinks. That means that a
build system wouldn't detect is a symlink changed. It's probably best
not to do any normalization at all and leave it to the build system.
Specifically std::auto_ptr. The master branch of spirit still dependends
on std::auto_ptr, but develop doesn't, and hopefully that will be merged
eventually.
This implementation uses a linked list, which isn't the fastest
implementation but is simple to implement.
It was trying to link unlinked text, but got in a bit of a mess when
links are nested in other markup. Also reads the 'quickbook-escape'
content, now it's just checking for the presence of links that should be
fine.
When adding links, don't add them around other links. If there's
anything outside of existing links, they'll still get linked. Although,
maybe it would be better to only add link tags when the title doesn't
contain any links. This might be over-complicated and confusing.
Which messes up testing. `include_paths.cpp` depends on `quickbook.cpp`
which depends on `program_options`. These kind of problems are mainly
with the use of globals, so I'll need to sort that out sooner or later.
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]
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]
`value` doesn't track what a string is encoded as, and sometimes it's
plain text not boostbook. It would be nice to track the encoding and
automatically do the right thing, but I'm not sure if it's worth the
effort just now.
[SVN r75619]
Needs to store the version in the file object, since it's only known
after the file is read in, had to make files non-const. Put some checks
in to make sure this isn't abused but pretty messy.
[SVN r75260]
Files are now permanently loaded. Quickbook substrings are stored as
references into the file. Now positions are stored as iterators into
the original file, the line and column is calculated when messages are
output.
This doesn't have much effect on efficiency but it simplifies a few
things.
[SVN r75253]
This encapsulates more in the id and section handling code. Fixes a few
edge cases and separates implementation of the new and old section
handling code. Always normalizes and truncates generated ids in quickbook
1.6.
[SVN r75251]