(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git apply with weird postimage filenames">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <"\n"> <"\tvector=$TEST_DIRECTORY/t4135 &&\n"> <"\n"> <"\ttest_tick &&\n"> 
          <"\tgit commit --allow-empty -m preimage &&\n"> <"\tgit tag preimage &&\n"> <"\n"> <"\treset_preimage() {\n"> <"\t\tgit checkout -f preimage^0 &&\n"> 
          <"\t\tgit read-tree -u --reset HEAD &&\n"> <"\t\tgit update-index --refresh\n"> <"\t} &&\n"> <"\n"> 
          <"\ttest_when_finished \"rm -f \\\"tab\tembedded.txt\\\"\" &&\n"> <"\ttest_when_finished \"rm -f ">
        ) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (SQ <"\\\"quoteembedded\\\".txt">) 
        (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (SQ <"\" &&\n"> <"\tif test_have_prereq !MINGW &&\n"> <"\t\ttouch -- \"tab\tembedded.txt\" ">) 
        (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (SQ <"\"quoteembedded\".txt">) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) 
        (SQ <"\n"> <"\tthen\n"> <"\t\ttest_set_prereq FUNNYNAMES\n"> <"\tfi\n">)
      }
    )
    (FuncDef
      name: try_filename
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:desc)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [68]
                )
              ]
              spids: [68]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:postimage)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [72]
                )
              ]
              spids: [72]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prereq)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 3>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                        spids: [77 80]
                      )
                    }
                  spids: [76]
                )
              ]
              spids: [76]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp1)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 4>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(success)})
                        spids: [84 88]
                      )
                    }
                  spids: [83]
                )
              ]
              spids: [83]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp2)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 5>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(success)})
                        spids: [92 96]
                      )
                    }
                  spids: [91]
                )
              ]
              spids: [91]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp3)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 6>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(success)})
                        spids: [100 104]
                      )
                    }
                  spids: [99]
                )
              ]
              spids: [99]
            )
            (C {(test_expect_) ($ VSub_Name "$exp1")} {($ VSub_Name "$prereq")} 
              {(DQ ($ VSub_Name "$desc") (", git-style file creation patch"))} 
              {
                (DQ ("\n") ("\t\techo postimage >expected &&\n") ("\t\treset_preimage &&\n") 
                  ("\t\trm -f '") ($ VSub_Name "$postimage") ("' &&\n") ("\t\tgit apply -v ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (vector) 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/'git-") ($ VSub_Name "$desc") (".diff' &&\n") ("\t\ttest_cmp expected '") ($ VSub_Name "$postimage") 
                  ("'\n") ("\t")
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name "$exp2")} {($ VSub_Name "$prereq")} 
              {(DQ ($ VSub_Name "$desc") (", traditional patch"))} 
              {
                (DQ ("\n") ("\t\techo postimage >expected &&\n") ("\t\treset_preimage &&\n") 
                  ("\t\techo preimage >'") ($ VSub_Name "$postimage") ("' &&\n") ("\t\tgit apply -v ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (vector) 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/'diff-") ($ VSub_Name "$desc") (".diff' &&\n") ("\t\ttest_cmp expected '") ($ VSub_Name "$postimage") 
                  ("'\n") ("\t")
                )
              }
            )
            (C {(test_expect_) ($ VSub_Name "$exp3")} {($ VSub_Name "$prereq")} 
              {(DQ ($ VSub_Name "$desc") (", traditional file creation patch"))} 
              {
                (DQ ("\n") ("\t\techo postimage >expected &&\n") ("\t\treset_preimage &&\n") 
                  ("\t\trm -f '") ($ VSub_Name "$postimage") ("' &&\n") ("\t\tgit apply -v ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (vector) 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/'add-") ($ VSub_Name "$desc") (".diff' &&\n") ("\t\ttest_cmp expected '") ($ VSub_Name "$postimage") 
                  ("'\n") ("\t")
                )
              }
            )
          ]
          spids: [65]
        )
      spids: [61 64]
    )
    (C {(try_filename)} {(SQ <plain>)} {(SQ <postimage.txt>)})
    (C {(try_filename)} {(SQ <"with spaces">)} {(SQ <"post image.txt">)})
    (C {(try_filename)} {(SQ <"with tab">)} {(SQ <"post\timage.txt">)} {(FUNNYNAMES)})
    (C {(try_filename)} {(SQ <"with backslash">)} {(SQ <"post\\image.txt">)} {(BSLASHPSPEC)})
    (C {(try_filename)} {(SQ <"with quote">)} {(SQ <"\"postimage\".txt">)} {(FUNNYNAMES)} {(success)} 
      {(failure)} {(success)}
    )
    (C {(test_expect_success)} {(SQ <"whitespace-damaged traditional patch">)} 
      {
        (SQ <"\n"> <"\techo postimage >expected &&\n"> <"\treset_preimage &&\n"> 
          <"\trm -f postimage.txt &&\n"> <"\tgit apply -v \"$vector/damaged.diff\" &&\n"> <"\ttest_cmp expected postimage.txt\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"traditional patch with colon in timezone">)} 
      {
        (SQ <"\n"> <"\techo postimage >expected &&\n"> <"\treset_preimage &&\n"> 
          <"\trm -f \"post image.txt\" &&\n"> <"\tgit apply \"$vector/funny-tz.diff\" &&\n"> <"\ttest_cmp expected \"post image.txt\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"traditional, whitespace-damaged, colon in timezone">)} 
      {
        (SQ <"\n"> <"\techo postimage >expected &&\n"> <"\treset_preimage &&\n"> 
          <"\trm -f \"post image.txt\" &&\n"> <"\tgit apply \"$vector/damaged-tz.diff\" &&\n"> <"\ttest_cmp expected \"post image.txt\"\n">
        )
      }
    )
    (C {(test_done)})
  ]
)