* [PATCH] Use skip_prefix() to get rid of magic constants
@ 2016-10-08 13:46 lfleischer
2016-10-09 11:07 ` john
0 siblings, 1 reply; 2+ messages in thread
From: lfleischer @ 2016-10-08 13:46 UTC (permalink / raw)
Signed-off-by: Lukas Fleischer <lfleischer at lfos.de>
---
cgit.c | 56 ++++++++++++++++++++++++++++++--------------------------
scan-tree.c | 6 ++++--
2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/cgit.c b/cgit.c
index 2f29aa6..bc05f1e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -31,6 +31,7 @@ static void process_cached_repolist(const char *path);
static void repo_config(struct cgit_repo *repo, const char *name, const char *value)
{
+ const char *path;
struct string_list_item *item;
if (!strcmp(name, "name"))
@@ -73,8 +74,8 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
repo->max_stats = cgit_find_stats_period(value, NULL);
else if (!strcmp(name, "module-link"))
repo->module_link= xstrdup(value);
- else if (starts_with(name, "module-link.")) {
- item = string_list_append(&repo->submodules, xstrdup(name + 12));
+ else if (skip_prefix(name, "module-link.", &path)) {
+ item = string_list_append(&repo->submodules, xstrdup(path));
item->util = xstrdup(value);
} else if (!strcmp(name, "section"))
repo->section = xstrdup(value);
@@ -106,14 +107,16 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
static void config_cb(const char *name, const char *value)
{
+ const char *arg;
+
if (!strcmp(name, "section") || !strcmp(name, "repo.group"))
ctx.cfg.section = xstrdup(value);
else if (!strcmp(name, "repo.url"))
ctx.repo = cgit_add_repo(value);
else if (ctx.repo && !strcmp(name, "repo.path"))
ctx.repo->path = trim_end(value, '/');
- else if (ctx.repo && starts_with(name, "repo."))
- repo_config(ctx.repo, name + 5, value);
+ else if (ctx.repo && skip_prefix(name, "repo.", &arg))
+ repo_config(ctx.repo, arg, value);
else if (!strcmp(name, "readme"))
string_list_append(&ctx.cfg.readme, xstrdup(value));
else if (!strcmp(name, "root-title"))
@@ -280,8 +283,8 @@ static void config_cb(const char *name, const char *value)
ctx.cfg.branch_sort = 1;
if (!strcmp(value, "name"))
ctx.cfg.branch_sort = 0;
- } else if (starts_with(name, "mimetype."))
- add_mimetype(name + 9, value);
+ } else if (skip_prefix(name, "mimetype.", &arg))
+ add_mimetype(arg, value);
else if (!strcmp(name, "include"))
parse_configfile(expand_macros(value), config_cb);
}
@@ -470,13 +473,13 @@ static char *find_default_branch(struct cgit_repo *repo)
static char *guess_defbranch(void)
{
- const char *ref;
+ const char *ref, *refname;
unsigned char sha1[20];
ref = resolve_ref_unsafe("HEAD", 0, sha1, NULL);
- if (!ref || !starts_with(ref, "refs/heads/"))
+ if (!ref || !skip_prefix(ref, "refs/heads/", &refname))
return "master";
- return xstrdup(ref + 11);
+ return xstrdup(refname);
}
/* The caller must free filename and ref after calling this. */
static inline void parse_readme(const char *readme, char **filename, char **ref, struct cgit_repo *repo)
@@ -937,6 +940,7 @@ out:
static void cgit_parse_args(int argc, const char **argv)
{
int i;
+ const char *arg;
int scan = 0;
for (i = 1; i < argc; i++) {
@@ -957,28 +961,28 @@ static void cgit_parse_args(int argc, const char **argv)
exit(0);
}
- if (starts_with(argv[i], "--cache=")) {
- ctx.cfg.cache_root = xstrdup(argv[i] + 8);
+ if (skip_prefix(argv[i], "--cache=", &arg)) {
+ ctx.cfg.cache_root = xstrdup(arg);
} else if (!strcmp(argv[i], "--nocache")) {
ctx.cfg.nocache = 1;
} else if (!strcmp(argv[i], "--nohttp")) {
ctx.env.no_http = "1";
- } else if (starts_with(argv[i], "--query=")) {
- ctx.qry.raw = xstrdup(argv[i] + 8);
- } else if (starts_with(argv[i], "--repo=")) {
- ctx.qry.repo = xstrdup(argv[i] + 7);
- } else if (starts_with(argv[i], "--page=")) {
- ctx.qry.page = xstrdup(argv[i] + 7);
- } else if (starts_with(argv[i], "--head=")) {
- ctx.qry.head = xstrdup(argv[i] + 7);
+ } else if (skip_prefix(argv[i], "--query=", &arg)) {
+ ctx.qry.raw = xstrdup(arg);
+ } else if (skip_prefix(argv[i], "--repo=", &arg)) {
+ ctx.qry.repo = xstrdup(arg);
+ } else if (skip_prefix(argv[i], "--page=", &arg)) {
+ ctx.qry.page = xstrdup(arg);
+ } else if (skip_prefix(argv[i], "--head=", &arg)) {
+ ctx.qry.head = xstrdup(arg);
ctx.qry.has_symref = 1;
- } else if (starts_with(argv[i], "--sha1=")) {
- ctx.qry.sha1 = xstrdup(argv[i] + 7);
+ } else if (skip_prefix(argv[i], "--sha1=", &arg)) {
+ ctx.qry.sha1 = xstrdup(arg);
ctx.qry.has_sha1 = 1;
- } else if (starts_with(argv[i], "--ofs=")) {
- ctx.qry.ofs = atoi(argv[i] + 6);
- } else if (starts_with(argv[i], "--scan-tree=") ||
- starts_with(argv[i], "--scan-path=")) {
+ } else if (skip_prefix(argv[i], "--ofs=", &arg)) {
+ ctx.qry.ofs = atoi(arg);
+ } else if (skip_prefix(argv[i], "--scan-tree=", &arg) ||
+ skip_prefix(argv[i], "--scan-path=", &arg)) {
/*
* HACK: The global snapshot bit mask defines the set
* of allowed snapshot formats, but the config file
@@ -992,7 +996,7 @@ static void cgit_parse_args(int argc, const char **argv)
*/
ctx.cfg.snapshots = 0xFF;
scan++;
- scan_tree(argv[i] + 12, repo_config);
+ scan_tree(arg, repo_config);
}
}
if (scan) {
diff --git a/scan-tree.c b/scan-tree.c
index 1cb4e5d..08f3f1d 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -55,6 +55,8 @@ static void repo_config(const char *name, const char *value)
static int gitconfig_config(const char *key, const char *value, void *cb)
{
+ const char *name;
+
if (!strcmp(key, "gitweb.owner"))
config_fn(repo, "owner", value);
else if (!strcmp(key, "gitweb.description"))
@@ -63,8 +65,8 @@ static int gitconfig_config(const char *key, const char *value, void *cb)
config_fn(repo, "section", value);
else if (!strcmp(key, "gitweb.homepage"))
config_fn(repo, "homepage", value);
- else if (starts_with(key, "cgit."))
- config_fn(repo, key + 5, value);
+ else if (skip_prefix(key, "cgit.", &name))
+ config_fn(repo, name, value);
return 0;
}
--
2.10.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] Use skip_prefix() to get rid of magic constants
2016-10-08 13:46 [PATCH] Use skip_prefix() to get rid of magic constants lfleischer
@ 2016-10-09 11:07 ` john
0 siblings, 0 replies; 2+ messages in thread
From: john @ 2016-10-09 11:07 UTC (permalink / raw)
On Sat, Oct 08, 2016 at 03:46:09PM +0200, Lukas Fleischer wrote:
> Signed-off-by: Lukas Fleischer <lfleischer at lfos.de>
Nice clean up!
Reviewed-by: John Keeping <john at keeping.me.uk>
> ---
> cgit.c | 56 ++++++++++++++++++++++++++++++--------------------------
> scan-tree.c | 6 ++++--
> 2 files changed, 34 insertions(+), 28 deletions(-)
>
> diff --git a/cgit.c b/cgit.c
> index 2f29aa6..bc05f1e 100644
> --- a/cgit.c
> +++ b/cgit.c
> @@ -31,6 +31,7 @@ static void process_cached_repolist(const char *path);
>
> static void repo_config(struct cgit_repo *repo, const char *name, const char *value)
> {
> + const char *path;
> struct string_list_item *item;
>
> if (!strcmp(name, "name"))
> @@ -73,8 +74,8 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
> repo->max_stats = cgit_find_stats_period(value, NULL);
> else if (!strcmp(name, "module-link"))
> repo->module_link= xstrdup(value);
> - else if (starts_with(name, "module-link.")) {
> - item = string_list_append(&repo->submodules, xstrdup(name + 12));
> + else if (skip_prefix(name, "module-link.", &path)) {
> + item = string_list_append(&repo->submodules, xstrdup(path));
> item->util = xstrdup(value);
> } else if (!strcmp(name, "section"))
> repo->section = xstrdup(value);
> @@ -106,14 +107,16 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
>
> static void config_cb(const char *name, const char *value)
> {
> + const char *arg;
> +
> if (!strcmp(name, "section") || !strcmp(name, "repo.group"))
> ctx.cfg.section = xstrdup(value);
> else if (!strcmp(name, "repo.url"))
> ctx.repo = cgit_add_repo(value);
> else if (ctx.repo && !strcmp(name, "repo.path"))
> ctx.repo->path = trim_end(value, '/');
> - else if (ctx.repo && starts_with(name, "repo."))
> - repo_config(ctx.repo, name + 5, value);
> + else if (ctx.repo && skip_prefix(name, "repo.", &arg))
> + repo_config(ctx.repo, arg, value);
> else if (!strcmp(name, "readme"))
> string_list_append(&ctx.cfg.readme, xstrdup(value));
> else if (!strcmp(name, "root-title"))
> @@ -280,8 +283,8 @@ static void config_cb(const char *name, const char *value)
> ctx.cfg.branch_sort = 1;
> if (!strcmp(value, "name"))
> ctx.cfg.branch_sort = 0;
> - } else if (starts_with(name, "mimetype."))
> - add_mimetype(name + 9, value);
> + } else if (skip_prefix(name, "mimetype.", &arg))
> + add_mimetype(arg, value);
> else if (!strcmp(name, "include"))
> parse_configfile(expand_macros(value), config_cb);
> }
> @@ -470,13 +473,13 @@ static char *find_default_branch(struct cgit_repo *repo)
>
> static char *guess_defbranch(void)
> {
> - const char *ref;
> + const char *ref, *refname;
> unsigned char sha1[20];
>
> ref = resolve_ref_unsafe("HEAD", 0, sha1, NULL);
> - if (!ref || !starts_with(ref, "refs/heads/"))
> + if (!ref || !skip_prefix(ref, "refs/heads/", &refname))
> return "master";
> - return xstrdup(ref + 11);
> + return xstrdup(refname);
> }
> /* The caller must free filename and ref after calling this. */
> static inline void parse_readme(const char *readme, char **filename, char **ref, struct cgit_repo *repo)
> @@ -937,6 +940,7 @@ out:
> static void cgit_parse_args(int argc, const char **argv)
> {
> int i;
> + const char *arg;
> int scan = 0;
>
> for (i = 1; i < argc; i++) {
> @@ -957,28 +961,28 @@ static void cgit_parse_args(int argc, const char **argv)
>
> exit(0);
> }
> - if (starts_with(argv[i], "--cache=")) {
> - ctx.cfg.cache_root = xstrdup(argv[i] + 8);
> + if (skip_prefix(argv[i], "--cache=", &arg)) {
> + ctx.cfg.cache_root = xstrdup(arg);
> } else if (!strcmp(argv[i], "--nocache")) {
> ctx.cfg.nocache = 1;
> } else if (!strcmp(argv[i], "--nohttp")) {
> ctx.env.no_http = "1";
> - } else if (starts_with(argv[i], "--query=")) {
> - ctx.qry.raw = xstrdup(argv[i] + 8);
> - } else if (starts_with(argv[i], "--repo=")) {
> - ctx.qry.repo = xstrdup(argv[i] + 7);
> - } else if (starts_with(argv[i], "--page=")) {
> - ctx.qry.page = xstrdup(argv[i] + 7);
> - } else if (starts_with(argv[i], "--head=")) {
> - ctx.qry.head = xstrdup(argv[i] + 7);
> + } else if (skip_prefix(argv[i], "--query=", &arg)) {
> + ctx.qry.raw = xstrdup(arg);
> + } else if (skip_prefix(argv[i], "--repo=", &arg)) {
> + ctx.qry.repo = xstrdup(arg);
> + } else if (skip_prefix(argv[i], "--page=", &arg)) {
> + ctx.qry.page = xstrdup(arg);
> + } else if (skip_prefix(argv[i], "--head=", &arg)) {
> + ctx.qry.head = xstrdup(arg);
> ctx.qry.has_symref = 1;
> - } else if (starts_with(argv[i], "--sha1=")) {
> - ctx.qry.sha1 = xstrdup(argv[i] + 7);
> + } else if (skip_prefix(argv[i], "--sha1=", &arg)) {
> + ctx.qry.sha1 = xstrdup(arg);
> ctx.qry.has_sha1 = 1;
> - } else if (starts_with(argv[i], "--ofs=")) {
> - ctx.qry.ofs = atoi(argv[i] + 6);
> - } else if (starts_with(argv[i], "--scan-tree=") ||
> - starts_with(argv[i], "--scan-path=")) {
> + } else if (skip_prefix(argv[i], "--ofs=", &arg)) {
> + ctx.qry.ofs = atoi(arg);
> + } else if (skip_prefix(argv[i], "--scan-tree=", &arg) ||
> + skip_prefix(argv[i], "--scan-path=", &arg)) {
> /*
> * HACK: The global snapshot bit mask defines the set
> * of allowed snapshot formats, but the config file
> @@ -992,7 +996,7 @@ static void cgit_parse_args(int argc, const char **argv)
> */
> ctx.cfg.snapshots = 0xFF;
> scan++;
> - scan_tree(argv[i] + 12, repo_config);
> + scan_tree(arg, repo_config);
> }
> }
> if (scan) {
> diff --git a/scan-tree.c b/scan-tree.c
> index 1cb4e5d..08f3f1d 100644
> --- a/scan-tree.c
> +++ b/scan-tree.c
> @@ -55,6 +55,8 @@ static void repo_config(const char *name, const char *value)
>
> static int gitconfig_config(const char *key, const char *value, void *cb)
> {
> + const char *name;
> +
> if (!strcmp(key, "gitweb.owner"))
> config_fn(repo, "owner", value);
> else if (!strcmp(key, "gitweb.description"))
> @@ -63,8 +65,8 @@ static int gitconfig_config(const char *key, const char *value, void *cb)
> config_fn(repo, "section", value);
> else if (!strcmp(key, "gitweb.homepage"))
> config_fn(repo, "homepage", value);
> - else if (starts_with(key, "cgit."))
> - config_fn(repo, key + 5, value);
> + else if (skip_prefix(key, "cgit.", &name))
> + config_fn(repo, name, value);
>
> return 0;
> }
> --
> 2.10.0
>
> _______________________________________________
> CGit mailing list
> CGit at lists.zx2c4.com
> http://lists.zx2c4.com/mailman/listinfo/cgit
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-10-09 11:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-08 13:46 [PATCH] Use skip_prefix() to get rid of magic constants lfleischer
2016-10-09 11:07 ` john
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).