author | Lars Hjemli <hjemli@gmail.com> | 2007-11-08 11:20:05 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-11-08 11:21:59 (UTC) |
commit | c188c482b3b9ede88891fbcec0b2e6b1bdb8338e (patch) (side-by-side diff) | |
tree | e894b077cd48656507ef1872ba1889b3ba8701c9 /shared.c | |
parent | 72ede12551af320b6d8eade853dbd2cd6f2222cc (diff) | |
download | cgit-c188c482b3b9ede88891fbcec0b2e6b1bdb8338e.zip cgit-c188c482b3b9ede88891fbcec0b2e6b1bdb8338e.tar.gz cgit-c188c482b3b9ede88891fbcec0b2e6b1bdb8338e.tar.bz2 |
Support "/" as virtual-root
When the virtual-root was a single "/", it would be normalized to NULL due
to removal of trailing slashes, which in turn would fool us to belive that
we shouldn't generate virtual urls.
This makes the "/" normalize to "", effectively allowing virtual urls like
http://example.com/projectname to be generated without specifying the
full domain name as the virtual root.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | shared.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -128,67 +128,69 @@ struct repoinfo *add_repo(const char *url) return ret; } struct repoinfo *cgit_get_repoinfo(const char *url) { int i; struct repoinfo *repo; for (i=0; i<cgit_repolist.count; i++) { repo = &cgit_repolist.repos[i]; if (!strcmp(repo->url, url)) return repo; } return NULL; } void cgit_global_config_cb(const char *name, const char *value) { if (!strcmp(name, "root-title")) cgit_root_title = xstrdup(value); else if (!strcmp(name, "css")) cgit_css = xstrdup(value); else if (!strcmp(name, "logo")) cgit_logo = xstrdup(value); else if (!strcmp(name, "index-header")) cgit_index_header = xstrdup(value); else if (!strcmp(name, "index-info")) cgit_index_info = xstrdup(value); else if (!strcmp(name, "logo-link")) cgit_logo_link = xstrdup(value); else if (!strcmp(name, "module-link")) cgit_module_link = xstrdup(value); - else if (!strcmp(name, "virtual-root")) + else if (!strcmp(name, "virtual-root")) { cgit_virtual_root = trim_end(value, '/'); - else if (!strcmp(name, "nocache")) + if (!cgit_virtual_root && (!strcmp(value, "/"))) + cgit_virtual_root = ""; + } else if (!strcmp(name, "nocache")) cgit_nocache = atoi(value); else if (!strcmp(name, "snapshots")) cgit_snapshots = cgit_parse_snapshots_mask(value); else if (!strcmp(name, "enable-index-links")) cgit_enable_index_links = atoi(value); else if (!strcmp(name, "enable-log-filecount")) cgit_enable_log_filecount = atoi(value); else if (!strcmp(name, "enable-log-linecount")) cgit_enable_log_linecount = atoi(value); else if (!strcmp(name, "cache-root")) cgit_cache_root = xstrdup(value); else if (!strcmp(name, "cache-root-ttl")) cgit_cache_root_ttl = atoi(value); else if (!strcmp(name, "cache-repo-ttl")) cgit_cache_repo_ttl = atoi(value); else if (!strcmp(name, "cache-static-ttl")) cgit_cache_static_ttl = atoi(value); else if (!strcmp(name, "cache-dynamic-ttl")) cgit_cache_dynamic_ttl = atoi(value); else if (!strcmp(name, "max-message-length")) cgit_max_msg_len = atoi(value); else if (!strcmp(name, "max-repodesc-length")) cgit_max_repodesc_len = atoi(value); else if (!strcmp(name, "max-commit-count")) cgit_max_commit_count = atoi(value); else if (!strcmp(name, "summary-log")) cgit_summary_log = atoi(value); else if (!strcmp(name, "summary-branches")) cgit_summary_branches = atoi(value); else if (!strcmp(name, "summary-tags")) cgit_summary_tags = atoi(value); else if (!strcmp(name, "agefile")) |