git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v12 01/15] test: add test cases for relative_path

From
Junio C Hamano <gitster@pobox.com>
Date
May 21, 2013, 20:37 UTC
Message-ID
<7vhahwm5n6.fsf@alter.siamese.dyndns.org>
In-Reply-To
<ea0e3b1148ba1614916a8b1cca8d2d046acd047c.1368846844.git.worldhello.net@gmail.com>
Jiang Xin <worldhello.net@gmail.com> writes:
Show 20 quoted lines
> 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.

Show 22 quoted lines
>  /*
>   * 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;
Previous: Jiang XinNext: Jiang Xin
Message 3 of 38 in “Interactive git-clean”
  1. 00/15 Interactive git-cleanJiang Xin, May 18, 2013
  2. 01/15 test: add test cases for relative_pathJiang Xin, May 18, 2013
  3. Junio C HamanoMay 21, 2013
  4. 00/15 interactive git-cleanJiang Xin, May 22, 2013
  5. 01/15 test: add test cases for relative_pathJiang Xin, May 22, 2013
  6. 02/15 path.c: refactor relative_path(), not only strip prefixJiang Xin, May 22, 2013
  7. Michael HaggertyMay 22, 2013
  8. Junio C HamanoMay 22, 2013
  9. Jiang XinMay 26, 2013
  10. Jiang XinMay 30, 2013
  11. 03/15 quote.c: remove path_relative, use relative_path insteadJiang Xin, May 22, 2013
  12. 04/15 Refactor quote_path_relative, remove unused paramsJiang Xin, May 22, 2013
  13. 05/15 Refactor write_name_quoted_relative, remove unused paramsJiang Xin, May 22, 2013
  14. 06/15 git-clean: refactor git-clean into two phasesJiang Xin, May 22, 2013
  15. 07/15 git-clean: add support for -i/--interactiveJiang Xin, May 22, 2013
  16. 08/15 git-clean: show items of del_list in columnsJiang Xin, May 22, 2013
  17. 09/15 git-clean: add colors to interactive git-cleanJiang Xin, May 22, 2013
  18. 10/15 git-clean: use a git-add-interactive compatible UIJiang Xin, May 22, 2013
  19. 11/15 git-clean: add filter by pattern interactive actionJiang Xin, May 22, 2013
  20. 12/15 git-clean: add select by numbers interactive actionJiang Xin, May 22, 2013
  21. 13/15 git-clean: add ask each interactive actionJiang Xin, May 22, 2013
  22. 14/15 git-clean: add documentation for interactive git-cleanJiang Xin, May 22, 2013
  23. 15/15 test: add t7301 for git-clean--interactiveJiang Xin, May 22, 2013
  24. 02/15 path.c: refactor relative_path(), not only strip prefixJiang Xin, May 18, 2013
  25. 03/15 quote.c: remove path_relative, use relative_path insteadJiang Xin, May 18, 2013
  26. 04/15 Refactor quote_path_relative, remove unused paramsJiang Xin, May 18, 2013
  27. 05/15 Refactor write_name_quoted_relative, remove unused paramsJiang Xin, May 18, 2013
  28. 06/15 git-clean: refactor git-clean into two phasesJiang Xin, May 18, 2013
  29. 07/15 git-clean: add support for -i/--interactiveJiang Xin, May 18, 2013
  30. 08/15 git-clean: show items of del_list in columnsJiang Xin, May 18, 2013
  31. 09/15 git-clean: add colors to interactive git-cleanJiang Xin, May 18, 2013
  32. 10/15 git-clean: use a git-add-interactive compatible UIJiang Xin, May 18, 2013
  33. 11/15 git-clean: add filter by pattern interactive actionJiang Xin, May 18, 2013
  34. 12/15 git-clean: add select by numbers interactive actionJiang Xin, May 18, 2013
  35. 13/15 git-clean: add ask each interactive actionJiang Xin, May 18, 2013
  36. 14/15 git-clean: add documentation for interactive git-cleanJiang Xin, May 18, 2013
  37. 15/15 test: add t7301 for git-clean--interactiveJiang Xin, May 18, 2013
  38. Junio C HamanoMay 20, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.