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

[PATCH 1/2] t/t7008: workaround broken handling of \000 by printf on IRIX

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Sep 9, 2010, 19:15 UTC
Message-ID
<aIkKF4vjSeghwDQ63eyGAtU7mB-u0vNW0EzVfr5b9bck9XbQlHqCr65xFtnqEeEN20sMaBebsFc@cipher.nrlssc.navy.mil>
In-Reply-To
<HYj6Cf-QUJiUlQ7fPRq5qJw3IurvsqhLa1qIg9c6ajPY6g_B2-OehA@cipher.nrlssc.navy.mil>
From: Brandon Casey <drafnel@gmail.com>

On IRIX 6.5, the printf utility in /usr/bin does not appear to handle the \ddd notation according to POSIX. This printf appears to halt processing of the string argument and ignore any additional characters in the string. Work around this flaw by replacing the \000's with 'Q' and using the q_to_nul helper function provided by test-lib.sh

This problem with printf is not apparent when using the Bash shell since Bash implements a POSIX compatible printf function internally.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---
 t/t7008-grep-binary.sh |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/t/t7008-grep-binary.sh b/t/t7008-grep-binary.sh
index c0f9f3f..e058d18 100755
--- a/t/t7008-grep-binary.sh
+++ b/t/t7008-grep-binary.sh
@@ -5,7 +5,7 @@ test_description='git grep in binary files'
 . ./test-lib.sh
 
 test_expect_success 'setup' "
-	printf 'binary\000file\n' >a &&
+	echo 'binaryQfile' | q_to_nul >a &&
 	git add a &&
 	git commit -m.
 "
@@ -70,32 +70,32 @@ test_expect_failure 'git grep .fi a' '
 '
 
 test_expect_success 'git grep -F y<NUL>f a' "
-	printf 'y\000f' >f &&
+	printf 'yQf' | q_to_nul >f &&
 	git grep -f f -F a
 "
 
 test_expect_success 'git grep -F y<NUL>x a' "
-	printf 'y\000x' >f &&
+	printf 'yQx' | q_to_nul >f &&
 	test_must_fail git grep -f f -F a
 "
 
 test_expect_success 'git grep -Fi Y<NUL>f a' "
-	printf 'Y\000f' >f &&
+	printf 'YQf' | q_to_nul >f &&
 	git grep -f f -Fi a
 "
 
 test_expect_failure 'git grep -Fi Y<NUL>x a' "
-	printf 'Y\000x' >f &&
+	printf 'YQx' | q_to_nul >f &&
 	test_must_fail git grep -f f -Fi a
 "
 
 test_expect_success 'git grep y<NUL>f a' "
-	printf 'y\000f' >f &&
+	printf 'yQf' | q_to_nul >f &&
 	git grep -f f a
 "
 
 test_expect_failure 'git grep y<NUL>x a' "
-	printf 'y\000x' >f &&
+	printf 'yQx' | q_to_nul >f &&
 	test_must_fail git grep -f f a
 "
 
-- 
1.7.2.1
Previous: Jakub NarebskiNext: Brandon Casey
Message 4 of 6 in “NO_REGEX defaults on obscure platforms”
  1. Ævar Arnfjörð BjarmasonSep 8, 2010
  2. Brandon CaseySep 8, 2010
  3. Jakub NarebskiSep 8, 2010
  4. 1/2 t/t7008: workaround broken handling of \000 by printf on IRIXBrandon Casey, Sep 9, 2010
  5. 2/2 Makefile: use compat regex on IRIX 6.5Brandon Casey, Sep 9, 2010
  6. Junio C HamanoSep 10, 2010

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.