Commit Briefs
gotwebd: refactor gotweb_render_content_type/_file
Rework them so that they allow to set the Status header (the HTTP status code; only way since we're behind FastCGI) and optionally a Location. Since they're now unused outside of gotweb.c, mark them as static. They also used to always return NULL so the error is pointless; return the -1 on failure though. While here, rename to gotweb_reply and gotweb_reply_file. ok jamsek
gotwebd: delete now unused code
gotweb_escape_html and gotweb_link are now completely unused. ok jamsek
gotwebd: templateify gotweb_render_blame
ok and tweak from jamsek
gotwebd: bubble up got_get_repo_tags
This bubbles up the call to got_get_repo_tags from gotweb_render_tags to its caller, gotweb_process_request and gotweb_render_summary. It helps simplifying gotweb_render_summary and making it easier to templateify, but also helps in untangling a bit the code. At this point gotweb_render_tags becomes just a wrapper to gotweb_render_tags_tmpl so switch completely to it. ok jamsek
gotwebd: templateify gotweb_render_branches
no functional change intended. Bubble up the allocation of the reflist from gotweb_render_branches to gotweb_render_summary (its only caller) and rewrite it as a template. ok tracey@
gotwebd: templateify gotweb_render_diff
ok tracey@; rebased after recent changes.
gotwebd: templateify gotweb_render_tag
ok tracey@
gotwebd: templateify gotweb_render_tags
ok tracey@
backout 169b163113a6db9878c9166aa05fbd30d05eb832
pushed by mistake, wasn't reviewed.
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.
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@
gotwebd: templateify gotweb_render_tree
ok tracey@
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
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.)
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
gotwebd: tweak gotweb_render_content_type_file parameters type
`type' and `file' are strings so use `const char *' for both.
gotwebd: drop redundant NULL check
qs is guaranteed to be not NULL reached that point.
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.
gotwebd: add an RSS feed for the tags
ok tracey@
gotwebd: templateify gotweb_render_commits
ok tracey@
gotwebd: templateify gotweb_render_navs
ok tracey@
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@