| Age | Commit message (Collapse) | Author | Lines |
|
The avatar checks held a 40000 byte address to half a second, twenty
times tighter than the readme budget that already failed on a slow
host, and in stub mode nearly all of that time went on the fake digest.
Link-commits and link-trailers had no check on a long input at all. The
readme checks' method moves into the harness so all four share it.
A single timing of each length let a busy host that took the CPU away
during the longer one make a linear pass look quadratic. The lengths
now take turns and the fastest timing of each counts, since a busy host
can slow one timing but rarely all five. A ratio under six ends the
turns at once, so only one near the bound of ten waits for all five.
|
|
|
|
|
|
The changelog for 2.12.0 says a list split by a code block keeps
counting, and only the split by a blank line was checked.
|
|
Four checks only looked for something missing, which a dropped or
plain text rendering also satisfies, and the spacing macro check
missed a 0 drawn at the start of a line.
|
|
A repeat's count was keyed on the bare text, so a heading whose text
already ended in that count took the same anchor, as "Twice 1" did
after two of "Twice", and "About 1" after "About". A link to either
then landed on the first. The count now goes on up past any anchor
already handed out, the way GitHub's slugger does.
|
|
The emphasis bomb checked only that the output was not empty, which it
never is, and its input never nests. No input reaches the ceiling on
inline nesting either, since an emphasis cannot hold its own kind, so
the check now proves the nesting that does happen. Past the quote
ceiling only the innermost text was looked for, and any x passed.
|
|
|
|
The fallback through cgit ran only where cgit's own Lua lacked lpeg,
and every machine the suite runs on has it, so the test never ran.
With every Lua search path pointed at an empty directory it runs
anywhere. It now also checks that the readme's markup is escaped, as
its title said, and compares the whole log line.
|
|
Where a standalone Lua had no lpeg, the harness skipped the markdown
and man checks itself, behind a note the test library hides, and the
test passed on the six checks left. The real luaossl checks were left
out the same way. Each now shows as a skip under a prerequisite named
for the interpreter, and a misspelt mode fails rather than running the
default.
|
|
One ten second budget covered several inputs, so a failure did not say
which had regressed, and it allowed ten times the second a readme is
held to while leaving a slow host little room. A linear render costs
four times as much at four times the length and a quadratic one
sixteen, whatever the host. The cap on unclosed brackets had no check
at all, and the line of \h' escapes timed nothing that is bounded.
|
|
|
|
The old check split the scheme with a newline, which ends the line
before a link can form, so it passed with the strip removed.
|
|
|
|
|
|
|
|
Nothing in assets/ or in README's list of hooks reads a fenced block's
data-lang or the manpage class on a man page's wrapper.
|
|
DocBook, pod2man and hand written pages leaked roff onto the page. Font
escapes inside no fill blocks, comments, layout escapes such as \% and
\c, the colours and half line moves around DocBook's links, and the
requests and macro definitions their preambles open with all showed
through. Those now draw nothing, the common named characters and strings
render, .EX and pod2man's .Vb read as code, a .TP tag takes a line of
its own and the alternating font macros switch fonts between their
arguments. Anything rarer still falls back to its text.
|
|
A line of equals signs or dashes under a paragraph now makes a heading
of it, as on GitHub, instead of running into its text, and any other
rule ends the paragraph. Four spaces or a tab start a code block, and an
escaped pipe stays in its table cell. A link opening with two slashes
or backslashes in any mix leads to another site, so it renders as text
like the plain scheme relative one already did.
|
|
cgit takes filter output through a C string sink that stops at the
first NUL, so a readme holding one lost everything after it. Each NUL
now shows as U+FFFD, as a browser would show it.
|
|
The about-render unit test bounds three renders at one second to catch
the cubic trim coming back. They take 0.1 s on a fast host and three
seconds on a slow one, where the check failed, while the old code took
minutes, so ten seconds still tells the two apart.
|
|
A readme's links to its own sections, as in a table of contents, had
nothing on the page to land on.
|
|
|
|
Decoding them here instead would mean carrying every named reference
HTML defines, while the browser already knows them all.
|
|
|
|
|
|
The item's second line became a paragraph of its own and the items
after it a new list, so an ordered list started counting again.
|
|
A table written right under a line of text came out as more of the
paragraph, pipes and all.
|
|
GitHub shows a single newline in a markdown file as a space, and roff
fills the lines of a man page the same way, so text wrapped in the
source came out ragged on the about page.
|
|
A relative image loaded from below the about page, which answers 404
now, and a remote one had every visitor's browser call a third party.
A badge also came out as a link to its own image, wrapped in stray
brackets.
|
|
A browser resolved them against the about page, where nothing lives
now that the page answers 404 below itself. They resolve the way
GitHub resolves a readme's links instead, from the readme's directory
and on the branch it was read from.
|
|
The heading pattern backtracked over a run of spaces in cubic time and
the cell trim in quadratic time, so one crafted line in a readme could
hold a request for half an hour, well inside the size cap. The heading
rule now also keeps a sharp that ends a word, as in "# C#".
|
|
|
|
|