t0008 test fails with ksh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]