AgeCommit message (Collapse)AuthorLines
Hold the mailmap to max-blob-sizeBryce Kwon-1/+11
git's read_mailmap_blob inflates the whole blob, so a pusher could make every page of a repository read as much as they liked. git reads a note and the .gitmodules file whole as well, and capping those would mean bounding the lookups where the log, commit and tree pages make them, so the manual names them instead. Nothing tested that mailmap.file and mailmap.blob are ignored either.
Free commit and tag records beside their parsersBryce Kwon-1/+26
With the frees gone from shared.h, five page files need nothing else from it, so they stop including it.
Keep a commit's encoding local to its parserBryce Kwon-9/+11
Drop reencode's fixed target and unread resultBryce Kwon-12/+11
Every call converted into the page encoding and dropped what came back, and a commit's encoding is always set by the time it runs.
Copy the encoding and subject with xmemdupzBryce Kwon-18/+2
substr was xmemdupz with a branch for an end before the start, and both callers find the end by searching forward from the start.
Show an odd pushed date rather than die on itBryce Kwon-2/+16
A date past what the system holds, a zone that is no hhmm offset, or a date earlier than its own westward offset all made git die inside show_date, which took the summary, refs, log, commit and feed pages of the repository down. They are now clamped as git's own log clamps them.
Make two branch conditions say what they rely onBryce Kwon-1/+1
cgit_parse_url tested ctx.repo where the loop sets repo_end alongside it, and the log's closing link kept a commit it never read. The Clang Static Analyzer tripped on both.
Hold object sizes in size_t as git 2.55 doesBryce Kwon-1/+1
Git 2.55 moved object sizes from unsigned long to size_t. The two are the same type on 64-bit hosts, but not on a 32-bit one, where GCC 14 rejects the mismatched pointers, so cgit stopped compiling there.
Replace the stray bytes of text that is not UTF-8Bryce Kwon-9/+18
A commit whose encoding header names something iconv cannot convert, or whose text is labelled UTF-8 without being it, reached a page declared UTF-8 with its bytes untouched. The atom feed already replaced them, so its UTF-8 reader moves to shared.c and every ident, subject, message and tag text passes through it.
Harden the request path, scan and error recoveryBryce Kwon-9/+7
Read the encoding header without its newlineBryce Kwon-1/+1
The newline made the charset name unknown to the converter, so a message in another charset was left unconverted.
Apply the mailmap at HEAD to every identBryce Kwon-8/+33
Clean up the whole treeBryce Kwon-10/+5
Trim the comments and dead code across the treeBryce Kwon-8/+3
Restyle the sources and fix the audit's findingsBryce Kwon-134/+144
Stop the index and the log repeating workBryce Kwon-2/+8
Settle the names, types and layout of the sourcesBryce Kwon-1/+1
Backfill an absent commit messageBryce Kwon-7/+13
Point the fork's links and credits at itselfBryce Kwon-1/+1
AUTHORS now records the upstream developers as the project's history rather than as maintainers of the fork.
Reorganise into source, assets and librariesBryce Kwon-0/+0
Everything the build generates now lands in build/, so a clean is a single remove and the source tree stays free of build output.