(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXTDOMAIN='> name:TEXTDOMAIN)
          op: assign_op.Equal
          rhs: {<git>}
          spids: [19]
        )
      ]
      redirects: []
    )
    (C {<export>} {<TEXTDOMAIN>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_TEXTDOMAINDIR))})]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXTDOMAINDIR='> name:TEXTDOMAINDIR)
                  op: assign_op.Equal
                  rhs: {(DQ <'@@LOCALEDIR@@'>)}
                  spids: [39]
                )
              ]
              redirects: []
            )
          ]
          spids: [26 36]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXTDOMAINDIR='> name:TEXTDOMAINDIR)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName GIT_TEXTDOMAINDIR))}
              spids: [47]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (C {<export>} {<TEXTDOMAINDIR>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_INTERNAL_GETTEXT_SH_SCHEME='>
              name: GIT_INTERNAL_GETTEXT_SH_SCHEME
            )
          op: assign_op.Equal
          rhs: {<fallthrough>}
          spids: [62]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: (condition.Shell commands:[(C {<test>} {<-n>} {(DQ <'@@USE_GETTEXT_SCHEME@@'>)})])
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_INTERNAL_GETTEXT_SH_SCHEME='>
                      name: GIT_INTERNAL_GETTEXT_SH_SCHEME
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'@@USE_GETTEXT_SCHEME@@'>)}
                  spids: [78]
                )
              ]
              redirects: []
            )
          ]
          spids: [65 75]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_INTERNAL_GETTEXT_TEST_FALLBACKS))})
              ]
            )
          action: [(C {<Id.Lit_Colon ':'>} {<no>} {<probing>} {<necessary>})]
          spids: [83 93]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_GETTEXT_POISON))})]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_INTERNAL_GETTEXT_SH_SCHEME='>
                      name: GIT_INTERNAL_GETTEXT_SH_SCHEME
                    )
                  op: assign_op.Equal
                  rhs: {<poison>}
                  spids: [117]
                )
              ]
              redirects: []
            )
          ]
          spids: [104 114]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  words: [{<type>} {<gettext.sh>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_INTERNAL_GETTEXT_SH_SCHEME='>
                      name: GIT_INTERNAL_GETTEXT_SH_SCHEME
                    )
                  op: assign_op.Equal
                  rhs: {<gnu>}
                  spids: [139]
                )
              ]
              redirects: []
            )
          ]
          spids: [120 132]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<test>} 
                  {
                    (DQ 
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [{<gettext>} {<-h>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<1>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    )
                  } {<Id.Lit_Equals '='>} {(DQ <-h>)}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_INTERNAL_GETTEXT_SH_SCHEME='>
                      name: GIT_INTERNAL_GETTEXT_SH_SCHEME
                    )
                  op: assign_op.Equal
                  rhs: {<gettext_without_eval_gettext>}
                  spids: [178]
                )
              ]
              redirects: []
            )
          ]
          spids: [142 163]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<export>} {<GIT_INTERNAL_GETTEXT_SH_SCHEME>})
    (command.Case
      to_match: {(DQ ($ Id.VSub_DollarName GIT_INTERNAL_GETTEXT_SH_SCHEME))}
      arms: [
        (case_arm
          pat_list: [{<gnu>}]
          action: [(C {<.>} {<gettext.sh>})]
          spids: [199 200 212 -1]
        )
        (case_arm
          pat_list: [{<gettext_without_eval_gettext>}]
          action: [
            (command.ShFunction
              name: eval_gettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<gettext>} {(DQ ($ Id.VSub_Number 1))})
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {<export>} {<PATH>} 
                                      {
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<git>} {<sh-i18n--envsubst>} {<--variables>} 
                                              {(DQ ($ Id.VSub_Number 1))}
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (C {<git>} {<sh-i18n--envsubst>} {(DQ ($ Id.VSub_Number 1))})
                              ]
                            )
                          redirects: []
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<ngettext>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))} 
                          {(DQ ($ Id.VSub_Number 3))}
                        )
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {<export>} {<PATH>} 
                                      {
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<git>} {<sh-i18n--envsubst>} {<--variables>} 
                                              {(DQ ($ Id.VSub_Number 2))}
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (C {<git>} {<sh-i18n--envsubst>} {(DQ ($ Id.VSub_Number 2))})
                              ]
                            )
                          redirects: []
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [214 215 335 -1]
        )
        (case_arm
          pat_list: [{<poison>}]
          action: [
            (command.ShFunction
              name: gettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<printf>} {(DQ <'%s'>)} {(DQ <'# GETTEXT POISON #'>)})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: eval_gettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<printf>} {(DQ <'%s'>)} {(DQ <'# GETTEXT POISON #'>)})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<printf>} {(DQ <'%s'>)} {(DQ <'# GETTEXT POISON #'>)})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [337 338 417 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShFunction
              name: gettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [(C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_Number 1))})]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: eval_gettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_Number 1))})
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {<export>} {<PATH>} 
                                      {
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<git>} {<sh-i18n--envsubst>} {<--variables>} 
                                              {(DQ ($ Id.VSub_Number 1))}
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (C {<git>} {<sh-i18n--envsubst>} {(DQ ($ Id.VSub_Number 1))})
                              ]
                            )
                          redirects: []
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DPipe]
                              children: [
                                (C {<test>} {(DQ ($ Id.VSub_Number 3))} {<Id.Lit_Equals '='>} {<1>})
                                (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_Number 1))})
                                (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_Number 2))})
                              ]
                            )
                          redirects: []
                        )
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {<export>} {<PATH>} 
                                      {
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<git>} {<sh-i18n--envsubst>} {<--variables>} 
                                              {(DQ ($ Id.VSub_Number 2))}
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (C {<git>} {<sh-i18n--envsubst>} {(DQ ($ Id.VSub_Number 2))})
                              ]
                            )
                          redirects: []
                        )
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [419 420 585 -1]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: gettextln
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<gettext>} {(DQ ($ Id.VSub_Number 1))}) (C {<echo>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: eval_gettextln
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<eval_gettext>} {(DQ ($ Id.VSub_Number 1))}) (C {<echo>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)