git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* t0008 test fails with ksh
@ 2016-05-12 17:53 Armin Kunaschik
  2016-05-12 18:20 ` Jeff King
  0 siblings, 1 reply; 4+ messages in thread
From: Armin Kunaschik @ 2016-05-12 17:53 UTC (permalink / raw)
  To: Git List

Hello,

in t0008 I see tests fails with
not ok 374 - --stdin -v
#
#               expect_from_stdin <expected-verbose &&
#               test_check_ignore "-v --stdin" <stdin
#
[....]
not ok 381 - --stdin from subdirectory
#
#               expect_from_stdin <expected-default &&
#               (
#                       cd a &&
#                       test_check_ignore "--stdin" <../stdin
#               )
#
not ok 382 - --stdin from subdirectory with -v
#
#               expect_from_stdin <expected-verbose &&
#               (
#                       cd a &&
#                       test_check_ignore "--stdin -v" <../stdin
#               )
#
not ok 383 - --stdin from subdirectory with -v -n
#
#               expect_from_stdin <expected-all &&
#               (
#                       cd a &&
#                       test_check_ignore "--stdin -v -n" <../stdin
#               )
#

The reason seems that the snippet
cat <<-EOF >expected-all
        .gitignore:1:one        ../one
        ::      ../not-ignored
        .gitignore:1:one        one
        ::      not-ignored
        a/b/.gitignore:8:!on*   b/on
        a/b/.gitignore:8:!on*   b/one
        a/b/.gitignore:8:!on*   b/one one
        a/b/.gitignore:8:!on*   b/one two
        a/b/.gitignore:8:!on*   "b/one\"three"
        a/b/.gitignore:9:!two   b/two
        ::      b/not-ignored
        a/.gitignore:1:two*     b/twooo
        $global_excludes:2:!globaltwo   ../globaltwo
        $global_excludes:2:!globaltwo   globaltwo
        $global_excludes:2:!globaltwo   b/globaltwo
        $global_excludes:2:!globaltwo   ../b/globaltwo
        ::      c/not-ignored
EOF

behaves differently in bash and in ksh.
        a/b/.gitignore:8:!on*   "b/one\"three" comes out unmodified
with bash but with ksh it becomes
        a/b/.gitignore:8:!on*   "b/one"three"
I'm not sure what shell is "wrong" here, but when I modify the line to
        a/b/.gitignore:8:!on*   "b/one\\"three"
both shells generate the "right" output:
        a/b/.gitignore:8:!on*   "b/one\"three"

>From what I've learned I'd expect the double backslash to be the
"right" way to escape one
backslash. Do you agree or am I wrong?

This snippet appears twice in this test, generates expected-all and
expected-verbose.

Armin

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-22  0:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-12 17:53 t0008 test fails with ksh Armin Kunaschik
2016-05-12 18:20 ` Jeff King
2016-05-20 16:03   ` Junio C Hamano
2016-05-22  0:09     ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).