Jiang Xin <[email protected]> writes:
> diff --git a/test-path-utils.c b/test-path-utils.c
> index 0092cb..18267 100644
> --- a/test-path-utils.c
> +++ b/test-path-utils.c
> @@ -1,6 +1,19 @@
> #include "cache.h"
> #include "string-list.h"
>
> +#define PARSE_ARGV_STRING(var, input) do { \
> + if (!strcmp(input, "<null>")) { \
> + var = NULL; \
> + } else if (!strcmp(input, "<empty>")) { \
> + var = ""; \
> + } else if (*input == '<' || *input == '(') { \
> + fprintf(stderr, "Bad value: %s\n", input); \
> + return 1; \
> + } else { \
> + var = input; \
> + } \
> +} while (0)
Yuck. Why does it have to be a macro like this? I do not think
"because we may return" justifies it.
> /*
> * A "string_list_each_func_t" function that normalizes an entry from
> * GIT_CEILING_DIRECTORIES. If the path is unusable for some reason,
> @@ -103,6 +116,18 @@ int main(int argc, char **argv)
> return 0;
> }
>
> + if (argc == 4 && !strcmp(argv[1], "relative_path")) {
> + const char *abs, *base, *rel;
> + PARSE_ARGV_STRING(abs, argv[2]);
> + PARSE_ARGV_STRING(base, argv[3]);
> + rel = relative_path(abs, base);
> + if (!rel)
> + puts("(null)");
> + else
> + puts(strlen(rel) > 0 ? rel : "(empty)");
> + return 0;
> + }
> +
> fprintf(stderr, "%s: unknown function name: %s\n", argv[0],
> argv[1] ? argv[1] : "(there was none)");
> return 1;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html