| Age | Commit message (Collapse) | Author | Lines |
|
filter_close already runs highlight under pcall and serves the escaped
text when it fails, so the pcalls around detect, load and lex inside it
only turned a raise into the same fallback a step earlier.
|
|
On Lua 5.3 and later a length worked out with a fraction, such as
1.5 * 24 * 60 * 60, is a float, so the signed expiry came out as
1793609024.0, which validate_value refuses, and every login failed.
Max-Age took the same .0, which makes a browser ignore it.
|
|
|
|
The lookups were never the only difference, since the configuration
and trim's place differ as well. The configuration is now set off by
blank lines, as in the other extensions, instead of a heading.
|
|
cgit passes an empty string, never nil, when a request names no
repository, so the check that the index stays up proved nothing, and
auth-file in fact refuses the index too while its repos file cannot be
read. A session_seconds of 0 signs a session that has expired by the
time it comes back, so it needs no branch of its own in set_cookie.
|
|
set_cookie only ever writes an empty value or a token secure_value
built from url-encoded text, digits and hex, so stripping it changed
nothing.
|
|
Every caller hands the helpers a string, and a value with a line break
is refused by validate_value whether or not CR LF is folded on the way.
|
|
Seven of the twelve fields filter_open stored were never read. Naming
all twelve parameters keeps the order cgit passes them in on record.
|
|
The loop let a valid cookie through with a field appended, a doubled
separator or a zero in front of its expiry. The payload now carries the
expiry as written, so only the spelling secure_value issues verifies.
|
|
The table of extensions and the second lookup served only a Scintillua
with no detect(), which now leaves every file uncoloured but escaped.
The fake detect() names a lexer after the file's suffix, so every test
lexer is reached through it.
|
|
|
|
lpeg's constant, query and numbered captures already do what the token
helpers did, and nothing ever read the tokens of an escape that draws
nothing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Without lpeg both renderers stay nil, and the handler lookup already
falls back to plain text for a format it has no renderer for.
|
|
Everything that can raise already runs inside the parse and emit pcalls,
so the outer one in filter_close could only ever have sent the page a
second time.
|
|
|
|
A table capture of a pattern repeated zero or more times matches every
string, the empty one included, so the inline grammars never return nil.
|
|
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.
|
|
|
|
|
|
The cache hook named only the age-file hook, from before the
commit-graph hook came.
|
|
|
|
|
|
The preamble above the filters explains lua: and exec:, and the repo.*
filter entries already read "Value is a command."
|
|
|
|
The filter section names about-render.lua and the source-filter itself.
|
|
|
|
Each config listed every header cgit sends, where only its own nosniff
and strict policy on raw bytes bear on the headers set there. The list
also missed Vary, and the Apache one called Apache a proxy.
|
|
|
|
A snapshot's format comes from the suffix of its filename in the path,
not from the query string.
|
|
The nginx sub-path recipe moved only the stylesheet and the logo, and
left the script and the icon pointing at the domain root.
|
|
Only the footer carries the git version. The reason the versions stay
out by default is left to MANUAL, which already gives it.
|
|
cgit falls back to SCRIPT_NAME followed by a slash when virtual-root
is unset, so its links always take the path form and none take the
?url= form the docs described.
|
|
The quick start says to uncomment scan-path, and in its old place a
scanned repository missed every setting below it, among them the
filters, the snapshots and the enable flags.
|
|
|
|
cgit's log, blame and graph pages read commits from the commit-graph
when a repository has one, and its changed path filters let a walk
limited to one file skip the commits that never touched it. git gc
writes a graph only now and then and starts those filters only when a
write asks for them, so the hook writes a split layer with them after
each push.
|
|
The hook cleared every slot on a push to any repository. cgit writes the
request a slot answers at its head, so the hook now reads it back and
drops only the pushed repository's pages and the index. It finds the
repository's url from scan-path or hooks.cgiturl, and with neither it
clears everything as before.
|
|
Each release named is the one its project's own site listed as current
on 2026-10-29.
|
|
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.
|
|
enable-version-info brings back the cgit and git versions that 872bd7c
took off the footer and the generator tag, for a site that wants them,
and the version f7d2b83 put on the signature of patches now follows it
too. It stays off by default for the reason 872bd7c gave.
|