Commit Briefs
gotwebd: fix double free in gotweb_process_request
don't free the querystring, it's already done later by fcgi_celanup_request. ok tracey@
tog: don't block when processing log view 'G' key map
As per stsp's TODO item, make tog respond to key presses while "loading..." history. Initial testing in src.git appears to work as intended. ok stsp@
tog: fix delayed tree index update
If a child blame view has been opened, halfdelay() is reset to a 1 second refresh rate, so the index in the header lags behind subtree navigation as we set the index based on the selected tree entry, which isn't updated till that refresh cycle completes. Don't wait for the selected_entry to update; instead, compute the index from the first displayed entry and the currently selected line index. improved by and ok stsp@
tog: move all 'G' logic into log_move_cursor_down()
Previously, we only handled 'G' in log_move_cursor_down() when all commits had not yet been loaded; move the case where all commits are already loaded into this routine too, and simplify by handling both cases the same. This change was prompted by Mikhail's observation of a redundant assignment in the previous 'G' handling in log_move_cursor_down(). ok stsp@
tog: fix log 'd' keymap when last commit is displayed
When at the end of the log view such that the currently selected line is greater than nlines/2, add--don't assign--the page down value to the selected index so we don't jump up when the user expects tog to scroll down. While here, rework log page down logic for a smoother UX in horizontal split mode by moving the selection cursor down rather than scrolling when 'd' or 'f' is entered if the last commit is already on screen. ok stsp@
portable: fix sys/queue,h detection
When checking for specific sys/queue.h declarations, ensure to add the header file (sys/queue.h) to search, otherwise nothing will be found.
gotwebd: fix alternate colors in tree entries
it was broken in 7ecc454 because now we're emitting tags with multiple `class' attributes (by mistake) and only the first one is used. However, instead of fixing the HTML `class' attribute, use a CSS selector to alternate the background colors. ok tracey@
gotwebd: add a some buffering
This adds some buffering to fcgi_gen_binary_response so that we don't end up sending too many (very) small fastcgi records. While here also make fcgi_send_response non-void and make its errors "sticky". ok tracey@
gotwebd: switch some HTML IDs to classes
HTML IDs are meant to be unique across the page. While here fix two small errors in the generated HTML (one missing closing div and one extra.) ok tracey@
gotwebd: wrap __packed around __attribute__
Needed for -portability reasons. OK op@
portable: provide sockaddr-linux implementation
Someof the socket code has been factored out of gotwebd and put centrally so that platform-specific targets can be created, without the need of heavily modifying the central socket code to contain numerous ifdefs.
remove the last remaining use of sin_len from gotwebd
I don't think this assignment to sin_len is needed at all, because sin_len is already being set via got_sockaddr_inet[6]_init() during the configuration stage. Tested successfully on both fcgi socket types (unix / tcp).
avoid allocating too many errors in cmd_info
got_error_path uses get_custom_err to get a statically allocated error allocated on a buffer that's used a ring. This is nice and simple, but the drawback is that thees custom errors shouldn't be used "for too long" because they might get overwritten later. cmd_info is one offender: change it to store a "simple" error and later re-use it to construct the per-path error. OK and tweaks stsp@
tog: keymaps to jump to next/prev file/hunk in the diff
Add () and {} key maps to navigate to the previous and next file or hunk in the diff. This required changing Got's diff API to collect line type metadata in addition to the line offsets already produced as prompted by stsp. ok stsp@
revert previous commit to sync with diff.git changes; it broke the build
../lib/blame.c:344:11: error: implicit declaration of function 'diff_atom_hash_update'