Re: [PATCH] Change sed i\ usage to something Solaris' sed can handle

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] Change sed i\ usage to something Solaris' sed can handle

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:59:08

Ben Walton [off-list ref] writes:
On Mon, Oct 28, 2013 at 5:39 PM, Andreas Schwab [off-list ref] wrote:
quoted
Ben Walton [off-list ref] writes:
quoted
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 3fb4b97..0126154 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -145,7 +145,8 @@ test_expect_success 'another test, with --ignore-space-at-eol' 'test_cmp expect
 test_expect_success 'ignore-blank-lines: only new lines' '
      test_seq 5 >x &&
      git update-index x &&
-     test_seq 5 | sed "/3/i \\
+     test_seq 5 | sed "/3/i\\
+\
 " >x &&
Why do you need the \<nl>?  Since it is inside double quotes the shell
will remove it during expansion.
It's an escape. Without it, sed throws:

sed: -e expression #1, char 5: expected \ after `a', `c' or `i'
I think Andreas means the "feed blank line" part, i.e.
quoted
+     test_seq 5 | sed "/3/i\\
+\
 " >x &&
should be the same as
quoted
+     test_seq 5 | sed "/3/i\\
 " >x &&
because the lone \<nl> will be eaten and will not be seen by sed.

Do you see different results on Solaris between the following two?

	$ echo "/3/i\\
	\
	" | od
	$ echo "/3/i\\
        " | od

[PATCH] Change sed i\ usage to something Solaris' sed can handle

From: Ben Walton <hidden>
Date: 2016-06-15 22:59:10

Solaris' sed was choking on the i\ commands used in
t4015-diff-whitespace as it couldn't parse the program properly.
Modify two uses of sed that worked in GNU sed but not Solaris'
(/usr/bin or /usr/xpg4/bin) to an equivalent form that is handled
properly by both.

Signed-off-by: Ben Walton <redacted>
---
This addresses Andreas' comment about the extraneous \<nl>.
Sorry, I misunderstood the original comment.

 t/t4015-diff-whitespace.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 3fb4b97..604a838 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -145,7 +145,7 @@ test_expect_success 'another test, with --ignore-space-at-eol' 'test_cmp expect
 test_expect_success 'ignore-blank-lines: only new lines' '
 	test_seq 5 >x &&
 	git update-index x &&
-	test_seq 5 | sed "/3/i \\
+	test_seq 5 | sed "/3/i\\
 " >x &&
 	git diff --ignore-blank-lines >out &&
 	>expect &&
@@ -155,7 +155,8 @@ test_expect_success 'ignore-blank-lines: only new lines' '
 test_expect_success 'ignore-blank-lines: only new lines with space' '
 	test_seq 5 >x &&
 	git update-index x &&
-	test_seq 5 | sed "/3/i \ " >x &&
+	test_seq 5 | sed "/3/i\\
+ " >x &&
 	git diff -w --ignore-blank-lines >out &&
 	>expect &&
 	test_cmp out expect
-- 
1.8.3.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help