From f04b8d5c99afdc55178f1a06ff1594f5f0cc4be6 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 10 Jan 2014 12:44:37 +0100 Subject: Refactor cgit_parse_snapshots_mask() Use Git string lists instead of str{spn,cspn,ncmp}() magic. This significantly improves readability. Signed-off-by: Lukas Fleischer --- shared.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/shared.c b/shared.c index 1f6310a..01197f1 100644 --- a/shared.c +++ b/shared.c @@ -404,28 +404,29 @@ void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix) int cgit_parse_snapshots_mask(const char *str) { + struct string_list tokens = STRING_LIST_INIT_DUP; + struct string_list_item *item; const struct cgit_snapshot_format *f; - static const char *delim = " "; - int tl, sl, rv = 0; + int rv = 0; /* favor legacy setting */ if (atoi(str)) return 1; - for (;;) { - str += strspn(str, delim); - tl = strcspn(str, delim); - if (!tl) - break; + + string_list_split(&tokens, str, ' ', -1); + string_list_remove_empty_items(&tokens, 0); + + for_each_string_list_item(item, &tokens) { for (f = cgit_snapshot_formats; f->suffix; f++) { - sl = strlen(f->suffix); - if ((tl == sl && !strncmp(f->suffix, str, tl)) || - (tl == sl - 1 && !strncmp(f->suffix + 1, str, tl - 1))) { + if (!strcmp(item->string, f->suffix) || + !strcmp(item->string, f->suffix + 1)) { rv |= f->bit; break; } } - str += tl; } + + string_list_clear(&tokens, 0); return rv; } -- cgit 1.4.1 w=1'>commit diff
Commit message (Collapse)Author
2021-01-13Increase dark white brightness slightlyJune McEnroe
2021-01-13Add hilex example to htagml manualJune McEnroe
2021-01-12Style causal.agency like bin HTMLJune McEnroe
2021-01-12Avoid matching tag text inside HTML elementsJune McEnroe
2021-01-12Use hilex for up -hJune McEnroe
2021-01-12Use hilex for bin HTMLJune McEnroe
2021-01-12Don't output a pre in hilex by defaultJune McEnroe
2021-01-12Move hilex out of hilex directoryJune McEnroe
2021-01-12Consolidate hilex formatters into hilex.cJune McEnroe
2021-01-12Remove hacky tagging from hilexJune McEnroe
God that makes the lexers so much simpler.
2021-01-12Add htagml -iJune McEnroe
2021-01-12Render tag index in HTMLJune McEnroe
2021-01-12Add htagml -xJune McEnroe
2021-01-12Prevent matching the same tag twiceJune McEnroe
2021-01-12Process htagml file line by lineJune McEnroe
This simplifies some things, adds support for line number tag definitions, and should enable combining htagml with other preprocessors in the future.
2021-01-12Split fields by tab onlyJune McEnroe
Also don't fail hard on non-forward-search definitions.
2021-01-12List both Makefile and html.sh under README.7June McEnroe
2021-01-12Add htagml exampleJune McEnroe
2021-01-12Use mandoc and htagml for bin htmlJune McEnroe
2021-01-12Add htagmlJune McEnroe
2021-01-12Replace causal.agency with a simple mdoc pageJune McEnroe
2021-01-11Publish "Using vi"June McEnroe
2021-01-11Enable diff.colorMovedJune McEnroe
2021-01-10Set less search case-insensitiveJune McEnroe
2021-01-10Set EXINITJune McEnroe
neovim is laggy as hell in my OpenBSD VM, so I switched to vi so I could type without getting frustrated.
2021-01-09Add c -t flag to print expression typeJune McEnroe
Also add missing float case.
2021-01-05Update taglineJune McEnroe