This only adds newline characters to make the existing text blocks act like
"blockquote" or "code block" syntax in Markdown, asciidoc, and others.
This was accomplished by manually reviewing the output of this script:
```bash
for f in *.txt; do
cat $f | python -c "import sys,re;print(re.sub(r'(\n {0,3}[^ \n][^\n]*\n)( {4,}[^\n]*)', r'\1\n\2', sys.stdin.read()))" > ${f}.tmp
mv ${f}.tmp $f
done
```
For the correct definition of lexical order, search for "lexical
comparison". It's what your favorite language does for string
comparison, unless your favorite language is something really
esoteric.
In short:
If A and B are equal at every position, they are lexically equal.
Otherwise, if A is a prefix of B, A precedes B.
Otherwise, let i be the first position where A differs from
B. If A[i] precedes B[i], A precedes B.
Tor versions often contain information about the SCM commit they came from, for
instance...
0.2.3.16-alpha-dev (git-8be6058d8f31e578)
This isn't part of the spec, which in turn choked stem when I tried to parse
those versions. Adding this in and better defining a couple other points...
- The STATUS_TAG should only contain non-whitespace. Otherwise... well, just
about *anything* could be a 'valid' status tag.
- The spec says that status tags should be "compared lexically". The ASCII
value of 'Z' is greater than 'A' so I guess this means that they're sorted in
a reverse alphabetical order. This seems weird, but clarifying it.