(List (= scope= flags=0 words=[] bindings=[('USAGE', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('NONGIT_OK', {[LIT_CHARS Yes]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]} ) (FunctionDef valid_custom_tool [] (List (= scope= flags=0 words=[] bindings=[('browser_cmd', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[DQ [LIT_CHARS browser.][VarSub 1][LIT_CHARS .cmd]]})]]})]) (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub browser_cmd]]} ) ) ) (FunctionDef valid_tool [] (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS firefox]}, {[LIT_CHARS iceweasel]}, {[LIT_CHARS seamonkey]}, {[LIT_CHARS iceape]}, {[LIT_CHARS chrome]}, {[LIT_CHARS google-chrome]}, {[LIT_CHARS chromium]}, {[LIT_CHARS chromium-browser]}, {[LIT_CHARS konqueror]}, {[LIT_CHARS opera]}, {[LIT_CHARS w3m]}, {[LIT_CHARS elinks]}, {[LIT_CHARS links]}, {[LIT_CHARS lynx]}, {[LIT_CHARS dillo]}, {[LIT_CHARS open]}, {[LIT_CHARS start]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS valid_custom_tool]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) ) (FunctionDef init_browser_path [] (List (= scope= flags=0 words=[] bindings=[('browser_path', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[DQ [LIT_CHARS browser.][VarSub 1][LIT_CHARS .path]]})]})]) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser_path]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS chromium]} ) (Com {[LIT_CHARS type]} {[LIT_CHARS chromium-browser]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) ) (= scope= flags=0 words=[] bindings=[('browser_path', {[LIT_CHARS chromium-browser]})]) ) (Com {[LIT_OTHER ":"]} {[VarSub browser_path test_op=VS_TEST_COLON_EQUALS {[DQ [VarSub 1]]}]} ) ) ) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} ) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -b]}, {[LIT_CHARS --browser] [LIT_OTHER "*"]}, {[LIT_CHARS -t]}, {[LIT_CHARS --tool] [LIT_OTHER "*"]}], [{[LIT_CHARS -c]}, {[LIT_CHARS --config] [LIT_OTHER "*"]}], [{[LIT_CHARS --]}], [{[LIT_CHARS -] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (Case to_match={[DQ [VarSub #][LIT_CHARS ","][VarSub 1]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}], [{[LIT_CHARS 1] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('browser', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub 1]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (Com {[LIT_CHARS usage]} ) (List (= scope= flags=0 words=[] bindings=[('browser', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) ) (Case to_match={[DQ [VarSub #][LIT_CHARS ","][VarSub 1]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"] [LIT_DBRACKET_LIKE "="] [LIT_OTHER "*"]}], [{[LIT_CHARS 1] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('conf', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub 1]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (Com {[LIT_CHARS usage]} ) (List (= scope= flags=0 words=[] bindings=[('conf', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} ) ) ) (Com {[LIT_CHARS break]} ) (Com {[LIT_CHARS usage]} ) (Com {[LIT_CHARS break]} ) ) (Com {[LIT_CHARS shift]} ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS 0]} ) (Com {[LIT_CHARS usage]} ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser]]} ) (List (For opt [{[DQ [VarSub conf]]}, {[DQ [LIT_CHARS web.browser]]}]) (List (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub opt]]} ) (Com {[LIT_CHARS continue]} ) ) (= scope= flags=0 words=[] bindings=[('browser', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[VarSub opt]})]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser]]} ) (Com {[LIT_CHARS break]} ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub browser]]} ) (Pipeline! (Com {[LIT_CHARS valid_tool]} {[DQ [VarSub browser]]} ) ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "git config option "][VarSub opt][LIT_CHARS " set to unknown browser: "][VarSub browser]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Resetting to default..."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS unset]} {[LIT_CHARS browser]} ) ) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser]]} ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub DISPLAY]]} ) (List (= scope= flags=0 words=[] bindings=[('browser_candidates', {[DQ [LIT_CHARS "firefox iceweasel google-chrome chrome chromium chromium-browser konqueror opera seamonkey iceape w3m elinks links lynx dillo"]]})]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub KDE_FULL_SESSION]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} ) (= scope= flags=0 words=[] bindings=[('browser_candidates', {[DQ [LIT_CHARS "konqueror "][VarSub browser_candidates]]})]) ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('browser_candidates', {[DQ [LIT_CHARS "w3m elinks links lynx"]]})]) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub SECURITYSESSIONID]]} {[LIT_CHARS -o]} {[DQ [VarSub TERM_PROGRAM]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS Apple_Terminal]]} ) (= scope= flags=0 words=[] bindings=[('browser_candidates', {[DQ [LIT_CHARS "open "][VarSub browser_candidates]]})]) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -x]} {[LIT_CHARS /bin/start]} ) (= scope= flags=0 words=[] bindings=[('browser_candidates', {[DQ [LIT_CHARS "start "][VarSub browser_candidates]]})]) ) (For i [{[VarSub browser_candidates]}]) (List (Com {[LIT_CHARS init_browser_path]} {[VarSub i]} ) (If (Com {[LIT_CHARS type]} {[DQ [VarSub browser_path]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (= scope= flags=0 words=[] bindings=[('browser', {[VarSub i]})]) (Com {[LIT_CHARS break]} ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser]]} ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "No known browser available."]]} ) ) ) (ElseTrue) (List (AndOr OP_OR_IF (Com {[LIT_CHARS valid_tool]} {[DQ [VarSub browser]]} ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Unknown browser '"][VarSub browser][LIT_CHARS "'."]]} ) ) (Com {[LIT_CHARS init_browser_path]} {[DQ [VarSub browser]]} ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub browser_cmd]]} ) (Pipeline! (Com {[LIT_CHARS type]} {[DQ [VarSub browser_path]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "The browser "][VarSub browser][LIT_CHARS " is not available as '"][VarSub browser_path][LIT_CHARS "'."]]} ) ) ) ) (Case to_match={[DQ [VarSub browser]]}, pat_word_list=[[{[LIT_CHARS firefox]}, {[LIT_CHARS iceweasel]}, {[LIT_CHARS seamonkey]}, {[LIT_CHARS iceape]}], [{[LIT_CHARS google-chrome]}, {[LIT_CHARS chrome]}, {[LIT_CHARS chromium]}, {[LIT_CHARS chromium-browser]}], [{[LIT_CHARS konqueror]}], [{[LIT_CHARS w3m]}, {[LIT_CHARS elinks]}, {[LIT_CHARS links]}, {[LIT_CHARS lynx]}, {[LIT_CHARS open]}], [{[LIT_CHARS start]}], [{[LIT_CHARS opera]}, {[LIT_CHARS dillo]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('vers', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [ComSub (Com {[VarSub browser_path]} {[LIT_CHARS -version]})]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (= scope= flags=0 words=[] bindings=[('NEWTAB', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub vers]]} {[LIT_CHARS -lt]} {[LIT_CHARS 2]} ) (= scope= flags=0 words=[] bindings=[('NEWTAB', {[SQ ]})]) ) (Fork (Com {[DQ [VarSub browser_path]]} {[VarSub NEWTAB]} {[DQ [VarSub @]]} ) ) ) (Fork (Com {[DQ [VarSub browser_path]]} {[DQ [VarSub @]]} ) ) (Case to_match={[DQ [ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub browser_path]]})]]}, pat_word_list=[[{[LIT_CHARS konqueror]}], [{[LIT_CHARS kfmclient]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('browser_path', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub browser_path]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS type]} {[DQ [VarSub browser_path]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "No '"][VarSub browser_path][LIT_CHARS "' found."]]} ) ) (Fork (Com {[DQ [VarSub browser_path]]} {[LIT_CHARS newTab]} {[DQ [VarSub @]]} ) ) ) (Fork (Com {[DQ [VarSub browser_path]]} {[LIT_CHARS newTab]} {[DQ [VarSub @]]} ) ) (Fork (Com {[DQ [VarSub browser_path]]} {[DQ [VarSub @]]} ) ) ) (Com {[DQ [VarSub browser_path]]} {[DQ [VarSub @]]} ) (Com {[LIT_CHARS exec]} {[DQ [VarSub browser_path]]} {[SQ ]} {[DQ [VarSub @]]} ) (Fork (Com {[DQ [VarSub browser_path]]} {[DQ [VarSub @]]} ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub browser_cmd]]} ) (Subshell (Com {[LIT_CHARS eval]} {[DQ [VarSub browser_cmd][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""]]} ) ) ) ) )