AgeCommit message (Collapse)AuthorLines
Print each person through one helperBryce Kwon-44/+30
The log, refs and tag pages no longer open a filter of their own, so they stop including filter.h.
Refuse pathspec magic through one helperBryce Kwon-21/+19
Start each history walk through one helperBryce Kwon-18/+20
Order shared.c the way shared.h declares itBryce Kwon-147/+144
The header's blob and pathspec checks move after the diff wrappers so each group reads as one, and each static helper now sits directly above its only user.
Free commit and tag records beside their parsersBryce Kwon-34/+30
With the frees gone from shared.h, five page files need nothing else from it, so they stop including it.
Keep the cache's trailing slash helper in cache.cBryce Kwon-10/+12
Move cgit.c's own helpers out of shared.cBryce Kwon-86/+78
Move the mimetype lookup into ui-plain.cBryce Kwon-52/+50
Move the ref list code into ui-refs.cBryce Kwon-88/+85
Move the die wrappers into filter.cBryce Kwon-34/+30
Ask for every path below the about page in one testBryce Kwon-22/+12
All of them stop at the same early return in about_fn, so each now gets the status, the html error page and a clean log.
Name the missing home without searching for oneBryce Kwon-10/+1
strace logs a call that names the path whether or not it succeeds, so a home that existed would still be caught, and cgit unsets HOME before git runs anyway.
Work out each gitlink's target onceBryce Kwon-11/+2
Test bodies run in the main shell, so the target named in the fixture reaches every check that greps for it.
Serve both readme escaping checks from one configBryce Kwon-16/+9
Ask each page that sorts odd branches in one loopBryce Kwon-23/+8
Write the test filter scripts with write_scriptBryce Kwon-9/+3
Derive the API test's config from the loud oneBryce Kwon-6/+1
Check the filter flush on the pages already fetchedBryce Kwon-16/+7
The about check already finds the div right before the filtered text, so its copy went, and the tree page is flattened where it was first read.
Cut test comments that repeat what is said nearbyBryce Kwon-13/+4
Correct two test comments that went staleBryce Kwon-3/+3
Drop test lines that add nothingBryce Kwon-4/+0
The trash directory starts empty and setup.sh already made the cache, the clamp check already fails on a short query, and the commit the setup named is still there to pin.
Leave two log checks to the log testsBryce Kwon-12/+0
t0103 already renders foo/log and finds commit 5, and its search for a bracket fails the same way this literal search did if --fixed-strings ever goes.
Leave the blob size refusals to the limits testsBryce Kwon-22/+5
t0204 asks the tree, plain, blob and blame pages for one oversized blob and checks the exact status and message, so the looser copy here went.
Drop the hidden form fields' unused page argumentBryce Kwon-6/+6
Leave the log's history simplification to gitBryce Kwon-1/+0
Spell the version banner cgitBryce Kwon-1/+1
Build a literal pathspec in one placeBryce Kwon-62/+35
Git's pathspec item holds a const string now, so a path needs no writable copy to be matched.
Look up a request's commit in one placeBryce Kwon-88/+66
The diff page now names a revision that is no commit the way the request wrote it, as the other pages already did, rather than as the full id it resolved to. The helpers sit beside the error page in ui-shared.c, since shared.c prints nothing.
Count the log's columns in ui-log.c aloneBryce Kwon-22/+21
Spell the signature suffix once for both filesBryce Kwon-4/+5
Drop ui-blob's constant file_only argumentsBryce Kwon-13/+13
Keep a commit's encoding local to its parserBryce Kwon-11/+11
Keep the query string parser beside its one callerBryce Kwon-19/+17
Drop cgit_read_first_line's unread size outputBryce Kwon-9/+5
Write the repository list's description link inlineBryce Kwon-24/+4
Return nothing from html_includeBryce Kwon-15/+4
No caller reads the result, and a void html_include fits the Lua binding's callback as it is, so the wrapper that dropped it goes too.
Open and close each page through the layout callsBryce Kwon-51/+37
Sort with git's QSORTBryce Kwon-21/+9
QSORT skips a list of fewer than two entries, so an empty list's null base never reaches qsort, which is what cgit_qsort was written for.
Allocate formatted strings with git's xstrfmtBryce Kwon-30/+15
Spell non-zero the way the tree doesBryce Kwon-3/+3
Say the highlighter needs Scintillua's detect()Bryce Kwon-2/+3
Reuse the ids t0109 has already looked upBryce Kwon-2/+0
Drop the patch greps the comparisons already makeBryce Kwon-20/+0
The From, Date, Subject and signature lines are part of what the next test compares in full against git format-patch, for the single commit and for the range alike.
Put the valgrind comment above the loop it explainsBryce Kwon-3/+3
Drop two setup.sh lines that change nothingBryce Kwon-5/+3
The library has read TEST_RESULTS_SAN_DIR for the last time by the time it returns, and the trash directory it makes is empty, so there is no cache to remove.
Tighten the checks that match stray textBryce Kwon-8/+8
Every page holds foo in its footer element, the foo+bar row holds bar, the branch switcher holds master, and commit 1 and file-1 also match commits 10 to 19 and file-10 to file-19. A search page repeats its term in the search box. So these checks passed on pages that lacked what they look for, and each now matches the link itself.
Require a whole page when a filter exits earlyBryce Kwon-2/+3
When a filter cannot run, cgit dies mid-page with its Status line already out, so the check passed with no filter at all. That is the case wherever true lives only in /bin, as on busybox. true now comes from the PATH, and the page has to reach its end.
Make the main cgitrc filter check run the filterBryce Kwon-3/+6
The check asked for the summary page, which never runs an about filter, so it passed with exec:/bin/true on macOS, which has no such file, and with a filter that does not exist at all. Its first line read the stderr the previous test left behind. execvp searches the PATH, so a plain true runs the same on macOS, Debian and busybox.
Let go of a slot lock that cannot take its keyBryce Kwon-0/+18
A failed truncate or key write returned with the descriptor still open, so the lock was held while the page rendered uncached and the file was left behind. It is removed before its last close, as every holder does.
Keep lock contention out of the error logBryce Kwon-13/+45
process_slot logged every failure to lock, so each request that found its slot being filled left a line, while refresh_slot logged none, so an expired slot in a directory the server cannot write was served stale for good without a word. lock_slot now logs the step that failed, as the scan does, and leaves out only another request at work.