aboutsummaryrefslogtreecommitdiffstats
path: root/html.c
Commit message (Expand)AuthorAgeFilesLines
* html.c: use '+' to escape spaces in urls•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2010-11-101-2/+2
* prefer html_raw() to write()•••To make the code more consistent, and to not rely on the implementation of html(), always use html_raw(...) instead of write(htmlfd, ...). Signed-off-by: Mark Lodato <lodatom@gmail.com> Mark Lodato2010-09-041-9/+9
* Merge branch 'stable'Lars Hjemli2010-08-291-4/+5
|\
| * html: fix strcpy bug in convert_query_hexchar•••The source and destination strings in strcpy() may not overlap. Instead, use memmove(), which allows overlap. This fixes test t0104, where 'url=foo%2bbar/tree' was being parsed improperly. Signed-off-by: Mark Lodato <lodatom@gmail.com> Mark Lodato2010-08-291-4/+5
* | html: properly percent-escape URLs•••The only valid characters for a URL are unreserved characters a-zA-Z0-9_-.~ and the reserved characters !*'();:@&=+$,/?%#[] , as per RFC 3986. Everything else must be escaped. Additionally, the # and ? always have special meaning, and the &, =, and + have special meaning in a query string, so they too must be escaped. To make this easier, a table of escapes is now used so that we do not have to call fmt() for each character; if the entry is 0, no escaping is needed. Signed-off-by: Mark Lodato <lodatom@gmail.com> Mark Lodato2010-02-091-4/+32
* | html: make all strings 'const char *'•••None of the html_* functions modify their argument, so they can all be 'const char *' instead of a simple 'char *'. This removes the need to cast (or copy) when trying to print a const string. Signed-off-by: Mark Lodato <lodatom@gmail.com> Mark Lodato2010-02-081-17/+17
|/
* html.c: use correct escaping in html attributes•••First, an apostrophe is not a quote. Second, we also need to escape quotes. And finally, quotes are encoded as '&quot;', not '&quote;'. Sighned-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2009-01-291-2/+4
* html.c: add html_url_path•••This function can be used to generate properly escaped path-components for links. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-10-051-0/+16
* html.c: add html_url_arg•••This function can be used to properly escape querystring parameter values. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-10-051-0/+16
* Supply status description to html_status()•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-08-061-2/+2
* Implement plain view•••This implements a way to access plain blobs by path (similar to the tree view) instead of by sha1. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-08-061-0/+5
* Add support for cloning over http•••This patch implements basic support for cloning over http, based on the work on git-http-backend by Shawn O. Pearce. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-08-061-0/+7
* Print an error if filename is not found in html_include.•••Normally when html_include cannot open the file it fails silently and things can be a bit hard to figure out from just looking at apache's log. This will be beneficial for those initially setting up their server with cgit. Signed-off-by: Harley Laue <losinggeneration@aim.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Harley Laue2008-04-291-1/+5
* Merge branch 'lh/cleanup'•••* lh/cleanup: (21 commits) Reset ctx.repo to NULL when the config parser is finished Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring() Move function for configfile parsing into configfile.[ch] Add cache.h Remove global and obsolete cgit_cmd Makefile: copy the QUIET constructs from the Makefile in git.git Move cgit_version from shared.c to cgit.c Makefile: autobuild dependency rules Initial Makefile cleanup Move non-generic functions from shared.c to cgit.c Add ui-shared.h Add separate header-files for each page/view Refactor snapshot support Add command dispatcher Remove obsolete cacheitem parameter to ui-functions Add struct cgit_page to cgit_context Introduce html.h Improve initialization of git directory Move cgit_repo into cgit_context Add all config variables into struct cgit_context ... Lars Hjemli2008-04-081-19/+76
|\
| * Move cgit_parse_query() from parsing.c to html.c as http_parse_querystring()•••This is a generic http-function. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-04-081-0/+64
| * Introduce html.h•••All html-functions can be quite easily separated from the rest of cgit, so lets do it; the only issue was html_filemode which uses some git-defined macros so the function is moved into ui-shared.c::cgit_print_filemode(). Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-03-181-19/+12
* | Merge branch 'stable'•••* stable: Fix segfault Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2008-02-231-15/+5
|\ \ | |/ |/|
| * Fix segfault•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Hiroki Hattori2008-02-231-15/+5
* | Fix html error detected by test-suite•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-11-111-1/+1
|/
* Add html_option() function•••This is a generic function used to output html "option" tags. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-10-281-0/+12
* Rename dirlink to gitlink.•••Git changed from dirlink to gitlink in 302b9282c9ddfcc704ca759bdc98c1d5f75eba2f. Signed-off-by: Jeffrey C. Ollie <jeff@ocjtech.us> Jeffrey C. Ollie2007-06-041-1/+1
* Add html_include()•••This is a function used to include external htmlfiles in cgit- generated pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-05-181-0/+14
* Add submodule links in tree listing•••When a submodule occurs in a tree, generate a link to show the module/commit. The link is specified as a sprintf string in /etc/cgitrc, using parameters 'module-link' and 'repo.module-link'. This should probably be extended with repo.module-link.$path. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2007-05-111-1/+2
* Add generic support for search box in page header•••This adds the ability to show a search box in any pageheader with correct href and hidden form data, but does not enable the box on any pages. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-281-0/+10
* Test for NULL-pointers in html_txt() and friends•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-281-4/+3
* Only show first 80 characters of commit subject in log and summary•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-221-0/+28
* Show list of modified files in ui-commit.c•••Compare current commit with 1.parent, and for each affected file display current filemode, old filemode if changed, current filename and source filename if it was a copy/rename. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-171-0/+20
* Add license file and copyright notices•••Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-101-0/+8
* Add caching infrastructure•••This enables internal caching of page output. Page requests are split into four groups: 1) repo listing (front page) 2) repo summary 3) repo pages w/symbolic references in query string 4) repo pages w/constant sha1's in query string Each group has a TTL specified in minutes. When a page is requested, a cached filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired (or the file didn't exist), the cached file is regenerated. When generating a cached file, locking is used to avoid parallell processing of the request. If multiple processes tries to aquire the same lock, the ones who fail to get the lock serves the (expired) cached file. If the cached file don't exist, the process instead calls sched_yield(2) before restarting the request processing. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-101-2/+4
* Import cgit prototype from git tree•••This enables basic cgit functionality, using libgit.a and xdiff/lib.a from git + a custom "git.h" + openssl for sha1 routines. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Lars Hjemli2006-12-091-0/+100