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

[PATCH 2/9] get_pathspec(): an empty ':' pathspec should stand alone

From
Junio C Hamano <gitster@pobox.com>
Date
May 10, 2011, 05:51 UTC
Message-ID
<1305006678-4051-3-git-send-email-gitster@pobox.com>
In-Reply-To
<1305006678-4051-1-git-send-email-gitster@pobox.com>
"git cmd foo :" is a user error; diagnose it as such.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 setup.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/setup.c b/setup.c
index 51e354c..c1be388 100644
--- a/setup.c
+++ b/setup.c
@@ -256,6 +256,7 @@ const char **get_pathspec(const char *prefix, const char **pathspec)
 	const char *entry = *pathspec;
 	const char **src, **dst;
 	int prefixlen;
+	int has_root_widen = 0;
 
 	if (!prefix && !entry)
 		return NULL;
@@ -272,10 +273,15 @@ const char **get_pathspec(const char *prefix, const char **pathspec)
 	dst = pathspec;
 	prefixlen = prefix ? strlen(prefix) : 0;
 	while (*src) {
-		*(dst++) = prefix_pathspec(prefix, prefixlen, *src);
+		const char *elem = prefix_pathspec(prefix, prefixlen, *src);
+		*(dst++) = elem;
+		if (!elem)
+			has_root_widen = 1;
 		src++;
 	}
 	*dst = NULL;
+	if (has_root_widen && src != pathspec + 1)
+		die("an empty ':' pathspec with other pathspecs");
 	if (!*pathspec)
 		return NULL;
 	return pathspec;
-- 
1.7.5.1.290.g1b565
Previous: Junio C HamanoNext: Junio C Hamano
Message 11 of 28 in “t3703: add test cases for pathspec magic”
  1. t3703: add test cases for pathspec magicNguyễn Thái Ngọc Duy, May 7, 2011
  2. Junio C HamanoMay 7, 2011
  3. Nguyen Thai Ngoc DuyMay 8, 2011
  4. t3703, t4208: add test cases for magic pathspecNguyễn Thái Ngọc Duy, May 8, 2011
  5. Junio C HamanoMay 8, 2011
  6. Nguyen Thai Ngoc DuyMay 9, 2011
  7. Junio C HamanoMay 9, 2011
  8. Junio C HamanoMay 9, 2011
  9. 0/9 magic pathspec updatesJunio C Hamano, May 10, 2011
  10. 1/9 grep: use get_pathspec() correctlyJunio C Hamano, May 10, 2011
  11. 2/9 get_pathspec(): an empty ':' pathspec should stand aloneJunio C Hamano, May 10, 2011
  12. 3/9 count_pathspec(): return number of elements in pathspecJunio C Hamano, May 10, 2011
  13. Nguyen Thai Ngoc DuyMay 10, 2011
  14. 4/9 add ":" is a pathspec that is too wideJunio C Hamano, May 10, 2011
  15. 5/9 git rm ":" is like specifying nothingJunio C Hamano, May 10, 2011
  16. 6/9 clean ":" is like specifying nothingJunio C Hamano, May 10, 2011
  17. Thiago FarinaMay 10, 2011
  18. 7/9 mv ":" ":" is like moving nothing from nowhere to nowhereJunio C Hamano, May 10, 2011
  19. Nguyen Thai Ngoc DuyMay 10, 2011
  20. 8/9 checkout ":" is not giving any pathspecJunio C Hamano, May 10, 2011
  21. 9/9 t3703, t4208: add test cases for magic pathspecJunio C Hamano, May 10, 2011
  22. t3703: Skip tests using directory name ":" on WindowsJohannes Sixt, May 12, 2011
  23. Ævar Arnfjörð BjarmasonMay 29, 2011
  24. Junio C HamanoMay 29, 2011
  25. Ævar Arnfjörð BjarmasonMay 29, 2011
  26. Nguyen Thai Ngoc DuyMay 10, 2011
  27. Junio C HamanoMay 10, 2011
  28. Nguyen Thai Ngoc DuyMay 11, 2011

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.