(List (= scope= flags=0 words=[] bindings=[('srcdir', {[VarSub srcdir test_op=VS_TEST_HYPHEN {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 0]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]}]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub srcdir]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS x][VarSub 0]]} ) (= scope= flags=0 words=[] bindings=[('srcdir', {[LIT_CHARS .]})]) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub srcdir]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS x]]} ) (= scope= flags=0 words=[] bindings=[('srcdir', {[LIT_CHARS .]})]) ) (= scope= flags=0 words=[] bindings=[('CFMOD', {[VarSub CFMOD test_op=VS_TEST_HYPHEN {[VarSub srcdir] [LIT_SLASH /] [LIT_CHARS ..] [LIT_SLASH /] [LIT_CHARS config.modules]}]})]) (= scope= flags=0 words=[] bindings=[('bin_mods', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[SQ ]} {[VarSub CFMOD]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]]})]) (= scope= flags=0 words=[] bindings=[('x_mods', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[SQ ]} {[VarSub CFMOD]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]]})]) (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "rm -f "][VarSub 1][LIT_CHARS "; exit 1"]]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 15]} ) (Com {[LIT_CHARS exec]} < (FilenameRedirectNode filename={[VarSub 1]} "> 1), > ) (For x_mod [{[VarSub x_mods]}]) (List (= scope= flags=0 words=[] bindings=[('modfile', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[SQ ]} {[VarSub CFMOD]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]]})]) (If (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub modfile]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS x]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: no name for "][\ LIT_ESCAPED_CHAR "\\`"][VarSub x_mod][LIT_CHARS "' in "][VarSub CFMOD][LIT_CHARS " (ignored)"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS continue]} ) ) ) (Case to_match={[DQ [VarSub bin_mods]]}, pat_word_list=[[{[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub x_mod][LIT_CHARS " "]] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/* linked-in known module "][\ LIT_ESCAPED_CHAR "\\`"][VarSub x_mod][LIT_CHARS "' */"]]} ) (= scope= flags=0 words=[] bindings=[('linked', {[LIT_CHARS yes]})]) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#ifdef DYNAMIC"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/* non-linked-in known module "][\ LIT_ESCAPED_CHAR "\\`"][VarSub x_mod][LIT_CHARS "' */"]]} ) (= scope= flags=0 words=[] bindings=[('linked', {[LIT_CHARS no]})]) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS moddeps]} {[LIT_CHARS autofeatures]} {[LIT_CHARS autofeatures_emu]} ) (Com {[LIT_CHARS .]} {[VarSub srcdir] [LIT_CHARS /../] [VarSub modfile]} ) (If (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub autofeatures]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS x]} ) (If (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub autofeatures_emu]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS x]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " {"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " char *zsh_features[] = { "]]} ) (For feature [{[VarSub autofeatures]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][VarSub feature][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " NULL"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }; "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " char *emu_features[] = { "]]} ) (For feature [{[VarSub autofeatures_emu]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][VarSub feature][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " NULL"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }; "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " autofeatures("][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS zsh][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][VarSub x_mod][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " EMULATION(EMULATE_ZSH) ? zsh_features : emu_features,"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " 0, 1);"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }"]]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " if (EMULATION(EMULATE_ZSH)) {"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " char *features[] = { "]]} ) (For feature [{[VarSub autofeatures]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][VarSub feature][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " NULL"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }; "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " autofeatures("][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS zsh][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][VarSub x_mod][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", features, 0, 1);"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }"]]} ) ) ) ) (For dep [{[VarSub moddeps]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " add_dep("][\ LIT_ESCAPED_CHAR "\\\""][VarSub x_mod][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][VarSub dep][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ");"]]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS x][VarSub linked]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS xno]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#endif"]]} ) ) ) ) (Com {[LIT_CHARS echo]} ) (= scope= flags=0 words=[] bindings=[('done_mods', {[DQ [LIT_CHARS " "]]})]) (For bin_mod [{[VarSub bin_mods]}]) (List (= scope= flags=0 words=[] bindings=[('q_bin_mod', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub bin_mod]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('modfile', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS grep]} {[SQ ]} {[VarSub CFMOD]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "/* linked-in module "][\ LIT_ESCAPED_CHAR "\\`"][VarSub bin_mod][LIT_CHARS "' */"]]} ) (Com {[LIT_CHARS unset]} {[LIT_CHARS moddeps]} ) (Com {[LIT_CHARS .]} {[VarSub srcdir] [LIT_CHARS /../] [VarSub modfile]} ) (For dep [{[VarSub moddeps]}]) (Case to_match={[VarSub bin_mods]}, pat_word_list=[[{[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub dep][LIT_CHARS " "]] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " /* depends on "][\ LIT_ESCAPED_CHAR "\\`"][VarSub dep][LIT_CHARS "' */"]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: linked-in module "][\ LIT_ESCAPED_CHAR "\\`"][VarSub bin_mod][LIT_CHARS "' depends on "][\ LIT_ESCAPED_CHAR "\\`"][VarSub dep][LIT_CHARS "'"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub 1]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " {"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int setup_"][VarSub q_bin_mod][LIT_CHARS " _((Module));"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int boot_"][VarSub q_bin_mod][LIT_CHARS " _((Module));"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int features_"][VarSub q_bin_mod][LIT_CHARS " _((Module,char***));"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int enables_"][VarSub q_bin_mod][LIT_CHARS " _((Module,int**));"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int cleanup_"][VarSub q_bin_mod][LIT_CHARS " _((Module));"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " extern int finish_"][VarSub q_bin_mod][LIT_CHARS " _((Module));"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " register_module("][\ LIT_ESCAPED_CHAR "\\\""][VarSub bin_mod][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " setup_"][VarSub q_bin_mod][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " features_"][VarSub q_bin_mod][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " enables_"][VarSub q_bin_mod][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " boot_"][VarSub q_bin_mod][LIT_CHARS ","]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " cleanup_"][VarSub q_bin_mod][LIT_CHARS ", finish_"][VarSub q_bin_mod][LIT_CHARS ");"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " }"]]} ) (= scope= flags=0 words=[] bindings=[('done_mods', {[DQ [VarSub done_mods][VarSub bin_mod][LIT_CHARS " "]]})]) ) ) )