AgeCommit message (Collapse)AuthorLines
Tolerate a missing or empty repository URLBryce Kwon-1/+2
`trim_end()` returns NULL when a repo url is empty or all slashes and the later newline trim dereferenced it. The legacy `r=` and `p=about` path also read the last byte of the url without checking it was set.
Reorganize into source, assets and librariesBryce Kwon-0/+595
The C sources move to source/, the served files to assets/, the bundled Git submodule to libraries/git and the filter scripts to extensions/. Everything the build generates now lands in build/, so a clean is a single remove and the tree stays clean.