Commit Briefs

Omar Polo

gotwebd: templateify gotweb_render_diff

ok tracey@; rebased after recent changes.


Omar Polo

gotwebd: templateify gotweb_render_tag

ok tracey@


Omar Polo

gotwebd: templateify gotweb_render_tags

ok tracey@


Omar Polo

backout 169b163113a6db9878c9166aa05fbd30d05eb832

pushed by mistake, wasn't reviewed.


Omar Polo

gotwebd: templateify gotweb_render_diff

To avoid calling functions from got_operations.c directly from a template (which would hide the error), change got_output_repo_diff into got_open_diff_for_output that returns a file with the diff in it, to be then rendered by the template. got_gotweb_flushfile needs to be exposed then. It also bundles a smaller change: the `label' argument of got_repo_match_object_id is optional and not used, so just pass NULL there.


Omar Polo

gotwebd: urlencode also the double quote character

URLs are embedded as part of the HTML and, while it seems legal from RFC3986 to leave that character unquoted, we need it quoted to avoid breaking the HTML output. ok tracey@


Omar Polo

gotwebd: templateify gotweb_render_tree

ok tracey@


Omar Polo

gotwebd: render BLOB inline, add BLOBRAW for serving raw blobs

binary blobs are automatically redirected to the BLOBRAW page (which is the old BLOB.) ok jamske


Omar Polo

change gotweb_render_content_type argument type to const char *

it's a string, `const char *' is fine (and what all the callers use anyway.)


Omar Polo

gotwebd: use Content-Disposition for RSS; sets the filename

Since gotwebd serves the RSS from a path without a file name component, browsers just make up a random string to give the file a name which can be confusing. Furthermore, since it's served as application/rss+xml they try to render the XML (failing.) Use gotweb_render_content_type_file (which sets the Content-Disposition HTTP header) to fix both: the feed is now called <repo-name>.rss and set as attachment (thus saved and not rendered.) Change the function to take an optional filename suffix for the occasion. ok jamsek


Omar Polo

gotwebd: tweak gotweb_render_content_type_file parameters type

`type' and `file' are strings so use `const char *' for both.


Omar Polo

gotwebd: drop redundant NULL check

qs is guaranteed to be not NULL reached that point.


Omar Polo

gotwebd: remove useless comment

should be placed further down, after BLOB and RSS are handled, but the call to `gotweb_render_header' is successfully clear on its own.


Omar Polo

gotwebd: add an RSS feed for the tags

ok tracey@


Omar Polo

gotwebd: templateify gotweb_render_commits

ok tracey@


Omar Polo

gotwebd: templateify gotweb_render_navs

ok tracey@


Omar Polo

gotwebd: drop index_page_str and page_str

gotwebd uses sprintf to update index_page_str and page_str if they were negative. While this specific usage is safe, let's drop it. Since the index_page_str and page_str fields are never read from, remove them. This saves two allocations per request too. ok tracey@


Omar Polo

gotwebd: fix broken navigation in commits page since 8d02314

ok tracey@


Omar Polo

gotwebd: start using the template system

ok tracey@


Omar Polo

gotwebd: simplify bit of gotweb_process_request

ok tracey


Omar Polo

gotwebd: provide maximum value for the description and cloneurl

ok stsp@


Omar Polo

gotwebd: rework gotweb_get_repo_{description,cloneurl}

- use openat(2) since we've already opened the containing dir - use fstat(2) instead of multiple seeks - don't special case len == 0 ok and improvements by stsp


Omar Polo

gotwebd: drop unused path parameter from got_get_repo_{owner,age}

ok jamsek


Omar Polo

gotwebd: simplify gotweb_render_index

- drops the double loop; paginate in one go - avoid lstat + got_path_dir_is_empty for each entry: use dt_type if provided by the underlying filesystem - fixes a memleak: before `continue' we need to call gotweb_free_repo_dir ok stsp


Omar Polo

gotwebd: use prev_disp to decide when to we've reached max_repos

instead of hardcoding d_i - 2 and so expecting only "." and ".." as skipped entries, use t->prev_disp that is the number of repositories traversed until now (both skipped due to the pagination and the ones actually rendered.) ok jamsek