(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description spids:[4])
          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 spids:[68])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [68]
                )
              ]
              spids: [68]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:postimage spids:[72])
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [72]
                )
              ]
              spids: [72]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prereq spids:[76])
                  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 spids:[83])
                  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 spids:[91])
                  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 spids:[99])
                  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)})
  ]
)