(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"Quoting paths in diff output.\n">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:P0) op:Equal rhs:{(SQ <pathname>)} spids:[24])]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:P1)
          op: Equal
          rhs: {(SQ <"pathname\twith HT">)}
          spids: [29]
        )
      ]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:P2) op:Equal rhs:{(SQ <"pathname with SP">)} spids:[34])]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:P3)
          op: Equal
          rhs: {(SQ <"pathname\n"> <"with LF">)}
          spids: [39]
        )
      ]
      spids: [39]
    )
    (AndOr
      children: [
        (C {(test_have_prereq)} {(KW_Bang "!") (MINGW)})
        (AndOr
          children: [
            (SimpleCommand
              words: [{(echo)}]
              redirects: [
                (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[54])
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$P1"))}
                  spids: [57]
                )
              ]
            )
            (AndOr
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Name "$P1"))})
                (AndOr
                  children: [
                    (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$P1"))})
                    (BraceGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:skip_all)
                              op: Equal
                              rhs: {(SQ <"Your filesystem does not allow tabs in filenames">)}
                              spids: [87]
                            )
                          ]
                          spids: [87]
                        )
                        (C {(test_done)})
                      ]
                      spids: [84]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\techo P0.0 >\"$P0.0\" &&\n"> <"\techo P0.1 >\"$P0.1\" &&\n"> 
          <"\techo P0.2 >\"$P0.2\" &&\n"> <"\techo P0.3 >\"$P0.3\" &&\n"> <"\techo P1.0 >\"$P1.0\" &&\n"> <"\techo P1.2 >\"$P1.2\" &&\n"> 
          <"\techo P1.3 >\"$P1.3\" &&\n"> <"\tgit add . &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit mv \"$P0.0\" \"R$P0.0\" &&\n"> 
          <"\tgit mv \"$P0.1\" \"R$P1.0\" &&\n"> <"\tgit mv \"$P0.2\" \"R$P2.0\" &&\n"> <"\tgit mv \"$P0.3\" \"R$P3.0\" &&\n"> 
          <"\tgit mv \"$P1.0\" \"R$P0.1\" &&\n"> <"\tgit mv \"$P1.2\" \"R$P2.1\" &&\n"> <"\tgit mv \"$P1.3\" \"R$P3.1\" &&\n"> <"\t:\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"setup expected files">)} 
      {
        (SQ <"\n"> <"cat >expect <<\\EOF\n"> 
          <" rename pathname.1 => \"Rpathname\\twith HT.0\" (100%)\n"> <" rename pathname.3 => \"Rpathname\\nwith LF.0\" (100%)\n"> 
          <" rename \"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\" (100%)\n"> <" rename pathname.2 => Rpathname with SP.0 (100%)\n"> 
          <" rename \"pathname\\twith HT.2\" => Rpathname with SP.1 (100%)\n"> <" rename pathname.0 => Rpathname.0 (100%)\n"> 
          <" rename \"pathname\\twith HT.0\" => Rpathname.1 (100%)\n"> <"EOF\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"git diff --summary -M HEAD">)} 
      {(SQ <"\n"> <"\tgit diff --summary -M HEAD >actual &&\n"> <"\ttest_cmp expect actual\n">)}
    )
    (C {(test_expect_success)} {(SQ <"git diff --numstat -M HEAD">)} 
      {
        (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> 
          <"\t0\t0\tpathname.1 => \"Rpathname\\twith HT.0\"\n"> <"\t0\t0\tpathname.3 => \"Rpathname\\nwith LF.0\"\n"> 
          <"\t0\t0\t\"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\"\n"> <"\t0\t0\tpathname.2 => Rpathname with SP.0\n"> 
          <"\t0\t0\t\"pathname\\twith HT.2\" => Rpathname with SP.1\n"> <"\t0\t0\tpathname.0 => Rpathname.0\n"> <"\t0\t0\t\"pathname\\twith HT.0\" => Rpathname.1\n"> 
          <"\tEOF\n"> <"\tgit diff --numstat -M HEAD >actual &&\n"> <"\ttest_cmp expect actual\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"git diff --stat -M HEAD">)} 
      {
        (SQ <"\n"> <"\tcat >expect <<-\\EOF &&\n"> 
          <"\t pathname.1 => \"Rpathname\\twith HT.0\"            | 0\n"> <"\t pathname.3 => \"Rpathname\\nwith LF.0\"            | 0\n"> 
          <"\t \"pathname\\twith HT.3\" => \"Rpathname\\nwith LF.1\" | 0\n"> <"\t pathname.2 => Rpathname with SP.0               | 0\n"> 
          <"\t \"pathname\\twith HT.2\" => Rpathname with SP.1    | 0\n"> <"\t pathname.0 => Rpathname.0                       | 0\n"> 
          <"\t \"pathname\\twith HT.0\" => Rpathname.1            | 0\n"> <"\t 7 files changed, 0 insertions(+), 0 deletions(-)\n"> <"\tEOF\n"> 
          <"\tgit diff --stat -M HEAD >actual &&\n"> <"\ttest_i18ncmp expect actual\n">
        )
      }
    )
    (C {(test_done)})
  ]
)