AgeCommit message (Collapse)AuthorLines
Strip control characters from the location aloneBryce Kwon-20/+12
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.
Drop the URL helpers' guards that cannot fireBryce Kwon-18/+2
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.
Keep only the request fields the auth filters readBryce Kwon-42/+10
Seven of the twelve fields filter_open stored were never read. Naming all twelve parameters keeps the order cgit passes them in on record.
Take a signed cookie apart with one matchBryce Kwon-82/+11
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.
Drop a highlighter check that tested the harnessBryce Kwon-6/+0
The filter hands a NUL through untouched, and only the harness's copy of cgit's sink cut the text there, so the check would have failed the day the filter replaced NULs the way about-render does.
Drop the highlighter's extension fallbackBryce Kwon-61/+13
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.
Call string.match like the rest of the highlighterBryce Kwon-1/+1
Drop a stray blank line from the about-render testsBryce Kwon-1/+0
Carry a man page's text as plain stringsBryce Kwon-23/+16
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.
Take a no fill line's plain text from its nodesBryce Kwon-7/+1
Wrap a man page's font runs with the macros' helperBryce Kwon-27/+11
Reuse the digit pattern where it is spelt outBryce Kwon-2/+2
Build the block start test from the line grammarsBryce Kwon-2/+1
Count a rule among the blocks that end a paragraphBryce Kwon-7/+4
Inline the list check before indented codeBryce Kwon-6/+2
Read a setext heading's level off its captureBryce Kwon-10/+4
Build every code block in one placeBryce Kwon-17/+11
Replace a readme's NUL bytes in one substitutionBryce Kwon-19/+3
Let the dispatch serve markdown without lpegBryce Kwon-5/+0
Without lpeg both renderers stay nil, and the handler lookup already falls back to plain text for a format it has no renderer for.
Render markdown and man pages through one functionBryce Kwon-28/+18
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. The size check moves to the dispatch with it.
Drop three needless forward declarationsBryce Kwon-9/+3
Drop fallbacks for a match that cannot failBryce Kwon-3/+3
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.
Drop the readme hooks that nothing readsBryce Kwon-20/+12
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, so the header now names the two wrappers the stylesheet does style.
Declare the repository variables' struct in placeBryce Kwon-6/+4
Build cgit_ensure_end's copy in one expressionBryce Kwon-9/+1
Leave the zeroed repository fields to the memsetBryce Kwon-3/+0
Grow the repository and ref lists with ALLOC_GROWBryce Kwon-24/+6
Join a diff line's pieces within one callBryce Kwon-32/+8
Xdiff hands out_line a whole line each time, as the prefix, the record and any no-newline marker, and the fragment was already flushed before the call returned, so nothing ever carried over to the next call.
Cut two comments that repeat the header or a nameBryce Kwon-5/+3
Explain the encoded ampersand and plus at the tableBryce Kwon-6/+5
Map the markup characters to entities in one placeBryce Kwon-28/+34
Keep the permission triplet beside its one callerBryce Kwon-13/+8
Keep the clone row and title docs in the headerBryce Kwon-11/+15
Keep three helpers beside their only callersBryce Kwon-62/+62
Build cgit_date_mode's result on the stackBryce Kwon-2/+1
Write the meta description in one placeBryce Kwon-6/+4
Read a title's path from the end with strrchrBryce Kwon-20/+7
Trim trailing slashes with git's strbuf helperBryce Kwon-12/+4
Build the full current url from the current urlBryce Kwon-8/+3
Fold the va_list error page into its one callerBryce Kwon-13/+4
Ask head_is_named before carrying the branchBryce Kwon-1/+1
Let self_link's fallback be a plain reporevlinkBryce Kwon-8/+2
Escape a submodule link's class like the othersBryce Kwon-6/+6
Open site and repository links through one helperBryce Kwon-24/+17
Write each query argument through one helperBryce Kwon-49/+30
Return repolink's delimiter without copying itBryce Kwon-1/+1
Drop the query-string form of every linkBryce Kwon-86/+31
cgit falls back to SCRIPT_NAME for virtual_root whenever cgitrc leaves it out, so the ?url= and ?r= forms only ever reached an error page raised while cgitrc was still being read. The page argument of cgit_add_hidden_formfields fed only the url field, so it is unused until its callers stop passing it.
Stop leaking the host on an embedded pageBryce Kwon-3/+3
Stop leaking the short hash of an object linkBryce Kwon-7/+4
Trim a snapshot name without reading out of boundsBryce Kwon-29/+42
For a url of .git, or an empty one, repo_basename stepped its index to the byte before its buffer, read it, and would have cleared it had it held a slash. Git's strbuf trims take the same steps safely, and they lift the 1024-byte cap that failed the page for a longer url.