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