(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REMOVED_COLOR='> name:REMOVED_COLOR) op: assign_op.Equal rhs: {<brown>} spids: [120] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHANGED_COLOR='> name:CHANGED_COLOR) op: assign_op.Equal rhs: {<blue>} spids: [123] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEW_COLOR='> name:NEW_COLOR) op: assign_op.Equal rhs: {<blue>} spids: [126] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTML='> name:HTML) op: assign_op.Equal rhs: { (SQ <'<?xml version="1.0"?>\n'> <'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n'> <' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'> <'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\\n'> ) } spids: [130] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FRAMEHTML='> name:FRAMEHTML) op: assign_op.Equal rhs: { (SQ <'<?xml version="1.0"?>\n'> <'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\n'> <' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\n'> <'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\\n'> ) } spids: [139] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STDHEAD='> name:STDHEAD) op: assign_op.Equal rhs: { (SQ <'<meta http-equiv="cache-control" content="no-cache"></meta>\n'> <'<meta http-equiv="Content-Type" content="text/xhtml;charset=utf-8"></meta>\n'> <'<meta http-equiv="Pragma" content="no-cache"></meta>\n'> <'<meta http-equiv="Expires" content="-1"></meta>\n'> <'<!--\n'> <' Note to customizers: the body of the webrev is IDed as SUNWwebrev\n'> <' to allow easy overriding by users of webrev via the userContent.css\n'> <' mechanism available in some browsers.\n'> <'\n'> <' For example, to have all "removed" information be red instead of\n'> <' brown, set a rule in your userContent.css file like:\n'> <'\n'> <' body#SUNWwebrev span.removed { color: red ! important; }\n'> <'-->\n'> <'<style type="text/css" media="screen">\n'> <'body {\n'> <' background-color: #eeeeee;\n'> <'}\n'> <'hr {\n'> <' border: none 0;\n'> <' border-top: 1px solid #aaa;\n'> <' height: 1px;\n'> <'}\n'> <'div.summary {\n'> <' font-size: .8em;\n'> <' border-bottom: 1px solid #aaa;\n'> <' padding-left: 1em;\n'> <' padding-right: 1em;\n'> <'}\n'> <'div.summary h2 {\n'> <' margin-bottom: 0.3em;\n'> <'}\n'> <'div.summary table th {\n'> <' text-align: right;\n'> <' vertical-align: top;\n'> <' white-space: nowrap;\n'> <'}\n'> <'span.lineschanged {\n'> <' font-size: 0.7em;\n'> <'}\n'> <'span.oldmarker {\n'> <' color: red;\n'> <' font-size: large;\n'> <' font-weight: bold;\n'> <'}\n'> <'span.newmarker {\n'> <' color: green;\n'> <' font-size: large;\n'> <' font-weight: bold;\n'> <'}\n'> <'span.removed {\n'> <' color: brown;\n'> <'}\n'> <'span.changed {\n'> <' color: blue;\n'> <'}\n'> <'span.new {\n'> <' color: blue;\n'> <' font-weight: bold;\n'> <'}\n'> <'span.chmod {\n'> <' font-size: 0.7em;\n'> <' color: #db7800;\n'> <'}\n'> <'a.print { font-size: x-small; }\n'> <'a:hover { background-color: #ffcc99; }\n'> <'</style>\n'> <'\n'> <'<style type="text/css" media="print">\n'> <'pre { font-size: 0.8em; font-family: courier, monospace; }\n'> <'span.removed { color: #444; font-style: italic }\n'> <'span.changed { font-weight: bold; }\n'> <'span.new { font-weight: bold; }\n'> <'span.newmarker { font-size: 1.2em; font-weight: bold; }\n'> <'span.oldmarker { font-size: 1.2em; font-weight: bold; }\n'> <'a.print {display: none}\n'> <'hr { border: none 0; border-top: 1px solid #aaa; height: 1px; }\n'> <'</style>\n'> ) } spids: [148] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UDIFFCSS='> name:UDIFFCSS) op: assign_op.Equal rhs: { (SQ <'\n'> <'<style type="text/css" media="screen">\n'> <'span.new {\n'> <' color: blue;\n'> <' font-weight: normal;\n'> <'}\n'> <'</style>\n'> ) } spids: [243] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MANCSS='> name:MANCSS) op: assign_op.Equal rhs: { (SQ <'\n'> <'html { max-width: 100ex; }\n'> <'body { font-family: Helvetica,Arial,sans-serif; }\n'> <'table { margin-top: 0em; margin-bottom: 0em; }\n'> <'td { vertical-align: top; }\n'> <'ul, ol, dl { margin-top: 0em; margin-bottom: 0em; }\n'> <'li, dt { margin-top: 1em; }\n'> <'a.selflink { border-bottom: thin dotted; color: inherit; font: inherit;\n'> <' text-decoration: inherit; }\n'> < 'fieldset { border: thin solid silver; border-radius: 1em; text-align: center; }\n' > <'input[name=expr] { width: 25%; }\n'> <'table.results { margin-top: 1em; margin-left: 2em; font-size: smaller; }\n'> <'table.head { width: 100%; border-bottom: 1px dotted #808080; margin-bottom: 1em;\n'> <' font-size: smaller; }\n'> <'td.head-vol { text-align: center; }\n'> <'td.head-rtitle { text-align: right; }\n'> <'span.Nd { }\n'> <'table.foot { width: 100%; border-top: 1px dotted #808080; margin-top: 1em;\n'> <' font-size: smaller; }\n'> <'td.foot-os { text-align: right; }\n'> <'div.manual-text { margin-left: 5ex; }\n'> <'h1.Sh { margin-top: 2ex; margin-bottom: 1ex; margin-left: -4ex;\n'> <' font-size: 110%; }\n'> <'h2.Ss { margin-top: 2ex; margin-bottom: 1ex; margin-left: -2ex;\n'> <' font-size: 105%; }\n'> <'div.Pp { margin: 1ex 0ex; }\n'> <'a.Sx { }\n'> <'a.Xr { }\n'> <'div.Bd { }\n'> <'div.D1 { margin-left: 5ex; }\n'> <'ul.Bl-bullet { list-style-type: disc; padding-left: 1em; }\n'> <'li.It-bullet { }\n'> <'ul.Bl-dash { list-style-type: none; padding-left: 0em; }\n'> <'li.It-dash:before { content: "\\2014 "; }\n'> <'ul.Bl-item { list-style-type: none; padding-left: 0em; }\n'> <'li.It-item { }\n'> <'ul.Bl-compact > li { margin-top: 0ex; }\n'> <'ol.Bl-enum { padding-left: 2em; }\n'> <'li.It-enum { }\n'> <'ol.Bl-compact > li { margin-top: 0ex; }\n'> <'dl.Bl-diag { }\n'> <'dt.It-diag { }\n'> <'dd.It-diag { margin-left: 0ex; }\n'> <'b.It-diag { font-style: normal; }\n'> <'dl.Bl-hang { }\n'> <'dt.It-hang { }\n'> <'dd.It-hang { margin-left: 10.2ex; }\n'> <'dl.Bl-inset { }\n'> <'dt.It-inset { }\n'> <'dd.It-inset { margin-left: 0ex; }\n'> <'dl.Bl-ohang { }\n'> <'dt.It-ohang { }\n'> <'dd.It-ohang { margin-left: 0ex; }\n'> <'dl.Bl-tag { margin-left: 10.2ex; }\n'> <'dt.It-tag { float: left; margin-top: 0ex; margin-left: -10.2ex;\n'> <' padding-right: 2ex; vertical-align: top; }\n'> <'dd.It-tag { clear: right; width: 100%; margin-top: 0ex; margin-left: 0ex;\n'> <' vertical-align: top; overflow: auto; }\n'> <'dl.Bl-compact > dt { margin-top: 0ex; }\n'> <'table.Bl-column { }\n'> <'tr.It-column { }\n'> <'td.It-column { margin-top: 1em; }\n'> <'table.Bl-compact > tbody > tr > td { margin-top: 0ex; }\n'> <'cite.Rs { font-style: normal; font-weight: normal; }\n'> <'span.RsA { }\n'> <'i.RsB { font-weight: normal; }\n'> <'span.RsC { }\n'> <'span.RsD { }\n'> <'i.RsI { font-weight: normal; }\n'> <'i.RsJ { font-weight: normal; }\n'> <'span.RsN { }\n'> <'span.RsO { }\n'> <'span.RsP { }\n'> <'span.RsQ { }\n'> <'span.RsR { }\n'> <'span.RsT { text-decoration: underline; }\n'> <'a.RsU { }\n'> <'span.RsV { }\n'> <'span.eqn { }\n'> <'table.tbl { }\n'> <'table.Nm { }\n'> <'b.Nm { font-style: normal; }\n'> <'b.Fl { font-style: normal; }\n'> <'b.Cm { font-style: normal; }\n'> <'var.Ar { font-style: italic; font-weight: normal; }\n'> <'span.Op { }\n'> <'b.Ic { font-style: normal; }\n'> <'code.Ev { font-style: normal; font-weight: normal; font-family: monospace; }\n'> <'i.Pa { font-weight: normal; }\n'> <'span.Lb { }\n'> <'b.In { font-style: normal; }\n'> <'a.In { }\n'> <'b.Fd { font-style: normal; }\n'> <'var.Ft { font-style: italic; font-weight: normal; }\n'> <'b.Fn { font-style: normal; }\n'> <'var.Fa { font-style: italic; font-weight: normal; }\n'> <'var.Vt { font-style: italic; font-weight: normal; }\n'> <'var.Va { font-style: italic; font-weight: normal; }\n'> <'code.Dv { font-style: normal; font-weight: normal; font-family: monospace; }\n'> <'code.Er { font-style: normal; font-weight: normal; font-family: monospace; }\n'> <'span.An { }\n'> <'a.Lk { }\n'> <'a.Mt { }\n'> <'b.Cd { font-style: normal; }\n'> <'i.Ad { font-weight: normal; }\n'> <'b.Ms { font-style: normal; }\n'> <'span.St { }\n'> <'a.Ux { }\n'> <'.No { font-style: normal; font-weight: normal; }\n'> <'.Em { font-style: italic; font-weight: normal; }\n'> <'.Sy { font-style: normal; font-weight: bold; }\n'> <'.Li { font-style: normal; font-weight: normal; font-family: monospace; }\n'> ) } spids: [261] ) ] redirects: [] ) (command.ShFunction name: print_upload_header body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'prefix='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<display_target>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName tflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_target='> name: display_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name prefix) (${ Id.VSub_Name remote_target)} spids: [422] ) ] redirects: [] ) ] spids: [408 419] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_target='> name: display_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name remote_target)} spids: [434] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(${ Id.VSub_Name display_target)} right: {<Id.Lit_Other '*'> <'/'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'display_target='> name: display_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name display_target) <'/'>} spids: [463] ) ] redirects: [] ) ] spids: [444 460] ) ] else_action: [] redirects: [] ) (C {<print>} { (DQ <' Upload to: '> (${ Id.VSub_Name display_target) <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ <' Uploading: '> <Id.Lit_BadBackslash '\\'> <c>)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: rsync_upload body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: rsync_upload: wrong usage ('> ($ Id.VSub_Pound '#') <')'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [512 526] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dst='> ($ Id.VSub_Number 1)}) (C {<integer>} {<-r>} {<Id.Lit_VarLike 'print_err_msg='> ($ Id.VSub_Number 2)}) (C {<print_upload_header>} {(${ Id.VSub_Name rsync_prefix)}) (C {<print>} {(DQ <'rsync ... '> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'err_msg='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/rsync_err.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName err_msg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: rsync_upload: cannot create temporary file'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [595 606] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<Id.Lit_VarLike 'src_dir='> ($ Id.VSub_DollarName WDIR)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(${ Id.VSub_Name src_dir)} right: {<Id.Lit_Other '*'> <'/'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'src_dir='> name:src_dir) op: assign_op.Equal rhs: {(${ Id.VSub_Name src_dir) <'/'>} spids: [666] ) ] redirects: [] ) ] spids: [647 663] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName RSYNC)} {<-r>} {<-q>} {(${ Id.VSub_Name src_dir)} {($ Id.VSub_DollarName dst)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {($ Id.VSub_DollarName err_msg)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {(${ Id.VSub_Name print_err_msg)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Failed.> <Id.Lit_BadBackslash '\\'> <'nERROR: rsync failed'>)} ) (C {<print>} { (DQ <'src dir: \''> (${ Id.VSub_Name src_dir) <'\''> <Id.Lit_BadBackslash '\\'> <'ndst dir: \''> ($ Id.VSub_DollarName dst) <'\''> ) } ) (C {<print>} {(DQ <'error messages:'>)}) (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {($ Id.VSub_DollarName err_msg)} ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName err_msg)}) ] spids: [709 725] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [692 706] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName err_msg)}) (C {<print>} {(DQ <Done.>)}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: remote_mkdirs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dir_spec='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'host_spec='> ($ Id.VSub_Number 2)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name dir_spec))} right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name dir_spec))} right: {<'/'> <Id.Lit_Other '*'>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'mkdirs '> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dirs_mk='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dir_spec> var_name: dir_spec suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'batch_file_mkdir='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_mkdir.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName batch_file_mkdir)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: remote_mkdirs:'>)} {(DQ <'cannot create temporary file for batch file'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [949 960] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDIFS='> name:OLDIFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IFS)} spids: [985] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {<'/'>} spids: [989] ) ] redirects: [] ) (C {<typeset>} {<dir>}) (command.ForEach iter_names: [dir] iterable: (for_iter.Words words:[{(${ Id.VSub_Name dirs_mk)}]) body: (command.DoGroup children: [ (command.Simple words: [{<print>} {<-->} {(DQ <'-mkdir '> (${ Id.VSub_Name dir))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name batch_file_mkdir)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<print>} {(DQ <'chdir '> (${ Id.VSub_Name dir))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name batch_file_mkdir)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OLDIFS)} spids: [1073] ) ] redirects: [] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'sftp_err_msg='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_scp_err.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name sftp_err_msg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: remote_mkdirs:'>)} {(DQ <'cannot create temporary file for error messages'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1091 1104] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName SFTP)} {<-b>} {(${ Id.VSub_Name batch_file_mkdir)} {(${ Id.VSub_Name host_spec)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name sftp_err_msg)} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: failed to create remote directories'> ) } ) (C {<print>} {(DQ <'error messages:'>)}) (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {(${ Id.VSub_Name sftp_err_msg)} ) (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)} {(${ Id.VSub_Name batch_file_mkdir)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1150 1164] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)} {(${ Id.VSub_Name batch_file_mkdir)} ) ] spids: [864 896] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ssh_upload body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: ssh_upload: wrong number of arguments'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1254 1268] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<Id.Lit_VarLike 'dst='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'host_spec='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dst> var_name: dst suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<':'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dir_spec='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dst> var_name: dst suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <':'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<print_upload_header>} {(${ Id.VSub_Name ssh_prefix)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Dflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<delete_webrev>} {<0>})] spids: [1361 1372] ) ] else_action: [] redirects: [] ) (C {<remote_mkdirs>} {(${ Id.VSub_Name dir_spec)} {(${ Id.VSub_Name host_spec)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [1427 1441] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <'upload ... '> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'scp_err_msg='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/scp_err.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name scp_err_msg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: ssh_upload:'>)} {(DQ <'cannot create temporary file for error messages'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1476 1489] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName SCP)} {<-q>} {<-C>} {<-B>} {<-o>} {<Id.Lit_VarLike 'PreferredAuthentications='> <publickey>} {<-r>} {($ Id.VSub_DollarName WDIR)} {($ Id.VSub_DollarName dst)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name scp_err_msg)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Failed.> <Id.Lit_BadBackslash '\\'> <'nERROR: scp failed'>)}) (C {<print>} { (DQ <'src dir: \''> ($ Id.VSub_DollarName WDIR) <'\''> <Id.Lit_BadBackslash '\\'> <'ndst dir: \''> ($ Id.VSub_DollarName dst) <'\''> ) } ) (C {<print>} {(DQ <'error messages:'>)}) (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {(${ Id.VSub_Name scp_err_msg)}) (C {<rm>} {<-f>} {(${ Id.VSub_Name scp_err_msg)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1541 1555] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name scp_err_msg)}) (C {<print>} {(DQ <Done.>)}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: delete_webrev body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'delete_webrev: wrong number of arguments'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1664 1678] ) ] else_action: [] redirects: [] ) (C {<integer>} {<-r>} {<Id.Lit_VarLike 'check='> ($ Id.VSub_Number 1)}) (C {<integer>} {<Id.Lit_VarLike 'delete_only='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'delete_only='> name: delete_only ) op: assign_op.Equal rhs: {<1>} spids: [1728] ) ] redirects: [] ) ] spids: [1711 1725] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'stripped_target='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote_target> var_name: remote_target suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <':'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'host_spec='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name stripped_target> var_name: stripped_target suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<':'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'dir_spec='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name stripped_target> var_name: stripped_target suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <':'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<typeset>} {<dir_rm>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name dir_spec)} right: {<'/'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [1807 1823] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name dir_spec)} right: {<Id.Lit_Other '*'> <'/'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir_rm='> name:dir_rm) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dir_spec> var_name: dir_spec suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [1866] ) ] redirects: [] ) ] spids: [1847 1863] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir_rm='> name:dir_rm) op: assign_op.Equal rhs: {(${ Id.VSub_Name dir_spec)} spids: [1877] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {(${ Id.VSub_Name delete_only)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' Removing: '> <Id.Lit_BadBackslash '\\'> <c>)})] spids: [1887 1903] ) ] else_action: [(C {<print>} {(DQ <'rmdir '> <Id.Lit_BadBackslash '\\'> <c>)})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName dir_rm))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: empty directory for removal'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1930 1943] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'batch_file_rm='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_remove.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName batch_file_rm)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: delete_webrev: cannot create temporary file'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1989 2000] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<print>} { (DQ <'rename '> ($ Id.VSub_DollarName dir_rm) <' '> ($ Id.VSub_DollarName TRASH_DIR) <'/removed.'> ($ Id.VSub_Dollar '$') ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName batch_file_rm)} ) ] more_env: [] do_fork: T ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'sftp_err_msg='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName MKTEMP)} {<'/tmp/webrev_scp_err.XXXXXX'>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name sftp_err_msg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <Id.Lit_BadBackslash '\\'> <'nERROR: delete_webrev:'>)} {(DQ <'cannot create temporary file for error messages'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2062 2075] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName SFTP)} {<-b>} {($ Id.VSub_DollarName batch_file_rm)} {($ Id.VSub_DollarName host_spec)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name sftp_err_msg)} ) (redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) ] more_env: [] do_fork: T ) (C {<integer>} {<-r>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '?')}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName batch_file_rm)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName ret)} right: {<Id.Lit_Digits 0>} ) right: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName check)} right: {<Id.Lit_Digits 0>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Failed.> <Id.Lit_BadBackslash '\\'> <'nERROR: failed to remove remote directories'> ) } ) (C {<print>} {(DQ <'error messages:'>)}) (C {($ Id.VSub_DollarName SED)} {(SQ <'s/^/> /'>)} {(${ Id.VSub_Name sftp_err_msg)}) (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [2132 2154] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name sftp_err_msg)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {(${ Id.VSub_Name delete_only)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <Done.>)})] spids: [2210 2226] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: upload_webrev body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<integer>} {<ret>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(DQ ($ Id.VSub_DollarName WDIR))} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: webrev directory \''> ($ Id.VSub_DollarName WDIR) <'\' does not exist'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2269 2284] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName nflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName tflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName FIND)} {($ Id.VSub_DollarName WDIR)} {<-type>} {<d>} {<-name>} {<closed>} ) (command.Simple words: [{($ Id.VSub_DollarName GREP)} {<closed>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <'nERROR: directory \''> ($ Id.VSub_DollarName WDIR) <'\' contains'> ) } { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <closed> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' directory'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [2370 2384] ) ] else_action: [] redirects: [] ) ] spids: [2326 2343] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName tflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name remote_target))} right: {(${ Id.VSub_Name rsync_prefix) <Id.Lit_Other '?'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rsync_upload>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote_target> var_name: remote_target suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {($ Id.VSub_DollarName rsync_prefix)} ) right: <Id.Right_DollarBrace '}'> ) } {<1>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2480] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [2445 2466] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name remote_target))} right: {(${ Id.VSub_Name ssh_prefix) <Id.Lit_Other '?'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<ssh_upload>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote_target> var_name: remote_target suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {($ Id.VSub_DollarName ssh_prefix)} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2522] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] spids: [2489 2510] ) ] else_action: [] redirects: [] ) ] spids: [2431 2442] ) ] else_action: [ (C {<rsync_upload>} {(${ Id.VSub_Name remote_target)} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2558] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName ret)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'Failed. (falling back to SSH)'>)}) (C {<ssh_upload>} {(${ Id.VSub_Name remote_target)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2593] ) ] redirects: [] ) ] spids: [2562 2576] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName ret)} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: url_encode body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s|%|%25|g'>)} {<-e>} {(DQ <'s|:|%3A|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'&|%26|g'>)} {<-e>} {(DQ <'s|?|%3F|g'>)} {<-e>} {(DQ <'s|#|%23|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'[|%5B|g'>)} {<-e>} {(DQ <'s|*|%2A|g'>)} {<-e>} {(DQ <'s|@|%40|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <'!|%21|g'>)} {<-e>} {(DQ <'s|=|%3D|g'>)} {<-e>} {(DQ <'s|;|%3B|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <']|%5D|g'>)} {<-e>} {(DQ <'s|(|%28|g'>)} {<-e>} {(DQ <'s|)|%29|g'>)} {<-e>} {(DQ <'s|\'|%27|g'>)} {<-e>} {(DQ <'s|+|%2B|g'>)} {<-e>} {(DQ <'s|'> <Id.Lit_BadBackslash '\\'> <',|%2C|g'>)} {<-e>} { (DQ <'s|'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'|%24|g'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: html_quote body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s/&/'> <Id.Lit_BadBackslash '\\'> <'&/g'>)} {<-e>} {(DQ <'s/</'> <Id.Lit_BadBackslash '\\'> <'</g'>)} {<-e>} {(DQ <'s/>/'> <Id.Lit_BadBackslash '\\'> <'>/g'>)} {(DQ ($ Id.VSub_At '@'))} ) (C {<expand>}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: trim_digest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'digest='> ($ Id.VSub_Number 1)}) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName digest)}) (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'s/\\([0-9a-f]\\{12\\}\\).*/\\1/'>)}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: its2url body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {($ Id.VSub_DollarName SED)} {<-f>} {(${ Id.VSub_Name its_sed_script)})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: strip_unchanged body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\tBEGIN\t{ C = c = 20 }\n'> <'\tNF == 0 || /<span class="/ {\n'> <'\t\tif (c > C) {\n'> <'\t\t\tc -= C\n'> <'\t\t\tinx = 0\n'> <'\t\t\tif (c > C) {\n'> <'\t\t\t\tprint "\\n</pre><hr></hr><pre>"\n'> <'\t\t\t\tinx = c % C\n'> <'\t\t\t\tc = C\n'> <'\t\t\t}\n'> <'\n'> <'\t\t\tfor (i = 0; i < c; i++)\n'> <'\t\t\t\tprint ln[(inx + i) % C]\n'> <'\t\t}\n'> <'\t\tc = 0;\n'> <'\t\tprint\n'> <'\t\tnext\n'> <'\t}\n'> <'\t{\tif (c >= C) {\n'> <'\t\t\tln[c % C] = $0\n'> <'\t\t\tc++;\n'> <'\t\t\tnext;\n'> <'\t\t}\n'> <'\t\tc++;\n'> <'\t\tprint\n'> <'\t}\n'> <'\tEND\t{ if (c > (C * 2)) print "\\n</pre><hr></hr>" }\n'> <'\n'> <'\t'> ) } {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: sdiff_to_html body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<diff>} {<-b>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [3237] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TPATH='> name:TPATH) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} spids: [3241] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMENT='> name:COMMENT) op: assign_op.Equal rhs: {($ Id.VSub_Number 5)} spids: [3245] ) ] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\tBEGIN\t{\n'> <'\t\tprintf "function sp(n) {for (i=0;i<n;i++)printf \\"\\\\n\\"}\\n"\n'> <'\t\tprintf "function removed() "\n'> < '\t\tprintf "{printf \\"<span class=\\\\\\"removed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n' > <'\t\tprintf "function changed() "\n'> < '\t\tprintf "{printf \\"<span class=\\\\\\"changed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n' > <'\t\tprintf "function bl() {printf \\"%%4d %%s\\\\n\\", NR, $0}\\n"\n'> <'}\n'> <'\t/^</\t{next}\n'> <'\t/^>/\t{next}\n'> <'\t/^---/\t{next}\n'> <'\n'> <'\t{\n'> <'\tsplit($1, a, /[cad]/) ;\n'> <'\tif (index($1, "a")) {\n'> <'\t\tif (a[1] == 0) {\n'> <'\t\t\tn = split(a[2], r, /,/);\n'> <'\t\t\tif (n == 1)\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(1)}\\n"\n'> <'\t\t\telse\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(%d)}\\n",\\\n'> <'\t\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t\tnext\n'> <'\t\t}\n'> <'\n'> <'\t\tprintf "NR==%s\\t\\t{", a[1]\n'> <'\t\tn = split(a[2], r, /,/);\n'> <'\t\ts = r[1];\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "bl();printf \\"\\\\n\\"; next}\\n"\n'> <'\t\telse {\n'> <'\t\t\tn = r[2] - r[1]\n'> <'\t\t\tprintf "bl();sp(%d);next}\\n",\\\n'> <'\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t}\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "d")) {\n'> <'\t\tn = split(a[1], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "NR==%s\\t\\t{removed(); next}\\n" , n1\n'> <'\t\telse\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{removed(); next}\\n" , n1, n2\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "c")) {\n'> <'\t\tn = split(a[1], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tfinal = n2\n'> <'\t\td1 = 0\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "NR==%s\\t\\t{changed();" , n1\n'> <'\t\telse {\n'> <'\t\t\td1 = n2 - n1\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{changed();" , n1, n2\n'> <'\t\t}\n'> <'\t\tm = split(a[2], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (m > 1) {\n'> <'\t\t\td2 = n2 - n1\n'> <'\t\t\tif (d2 > d1) {\n'> <'\t\t\t\tif (n > 1) printf "if (NR==%d)", final\n'> <'\t\t\t\tprintf "sp(%d);", d2 - d1\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tprintf "next}\\n" ;\n'> <'\n'> <'\t\tnext\n'> <'\t}\n'> <'\t}\n'> <'\n'> <'\tEND\t{ printf "{printf \\"%%4d %%s\\\\n\\", NR, $0 }\\n" }\n'> <'\t'> ) } {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\tBEGIN\t{\n'> <'\t\tprintf "function sp(n) {for (i=0;i<n;i++)printf \\"\\\\n\\"}\\n"\n'> <'\t\tprintf "function new() "\n'> < '\t\tprintf "{printf \\"<span class=\\\\\\"new\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n' > <'\t\tprintf "function changed() "\n'> < '\t\tprintf "{printf \\"<span class=\\\\\\"changed\\\\\\">%%4d %%s</span>\\\\n\\", NR, $0}\\n"\n' > <'\t\tprintf "function bl() {printf \\"%%4d %%s\\\\n\\", NR, $0}\\n"\n'> <'\t}\n'> <'\n'> <'\t/^</\t{next}\n'> <'\t/^>/\t{next}\n'> <'\t/^---/\t{next}\n'> <'\n'> <'\t{\n'> <'\tsplit($1, a, /[cad]/) ;\n'> <'\tif (index($1, "d")) {\n'> <'\t\tif (a[2] == 0) {\n'> <'\t\t\tn = split(a[1], r, /,/);\n'> <'\t\t\tif (n == 1)\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(1)}\\n"\n'> <'\t\t\telse\n'> <'\t\t\t\tprintf "BEGIN\\t\\t{sp(%d)}\\n",\\\n'> <'\t\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t\tnext\n'> <'\t\t}\n'> <'\n'> <'\t\tprintf "NR==%s\\t\\t{", a[2]\n'> <'\t\tn = split(a[1], r, /,/);\n'> <'\t\ts = r[1];\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "bl();printf \\"\\\\n\\"; next}\\n"\n'> <'\t\telse {\n'> <'\t\t\tn = r[2] - r[1]\n'> <'\t\t\tprintf "bl();sp(%d);next}\\n",\\\n'> <'\t\t\t(r[2] - r[1]) + 1\n'> <'\t\t}\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "a")) {\n'> <'\t\tn = split(a[2], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (n == 1)\n'> <'\t\t\tprintf "NR==%s\\t\\t{new() ; next}\\n" , n1\n'> <'\t\telse\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{new() ; next}\\n" , n1, n2\n'> <'\t\tnext\n'> <'\t}\n'> <'\tif (index($1, "c")) {\n'> <'\t\tn = split(a[2], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tfinal = n2\n'> <'\t\td2 = 0;\n'> <'\t\tif (n == 1) {\n'> <'\t\t\tfinal = n1\n'> <'\t\t\tprintf "NR==%s\\t\\t{changed();" , n1\n'> <'\t\t} else {\n'> <'\t\t\td2 = n2 - n1\n'> <'\t\t\tprintf "NR==%s,NR==%s\\t{changed();" , n1, n2\n'> <'\t\t}\n'> <'\t\tm = split(a[1], r, /,/);\n'> <'\t\tn1 = r[1]\n'> <'\t\tn2 = r[2]\n'> <'\t\tif (m > 1) {\n'> <'\t\t\td1 = n2 - n1\n'> <'\t\t\tif (d1 > d2) {\n'> <'\t\t\t\tif (n > 1) printf "if (NR==%d)", final\n'> <'\t\t\t\tprintf "sp(%d);", d1 - d2\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tprintf "next}\\n" ;\n'> <'\t\tnext\n'> <'\t}\n'> <'\t}\n'> <'\tEND\t{ printf "{printf \\"%%4d %%s\\\\n\\", NR, $0 }\\n" }\n'> <'\t'> ) } {<'/tmp/'> ($ Id.VSub_Dollar '$') <.diffs>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2>} ) ] more_env: [] do_fork: T ) (command.Pipeline children: [ (command.Simple words: [{<html_quote>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_Number 1)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName AWK)} {<-f>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (command.Simple words: [{<html_quote>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_Number 2)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName AWK)} {<-f>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}) (C {<print>} { (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' Sdiff '> ($ Id.VSub_DollarName TPATH) <'/'> ($ Id.VSub_DollarName TNAME) <'</title>'> ) } ) (C {<print>} { (DQ <'</head><body id='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} { (DQ <'<a class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <print> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'javascript:print()'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Print this page</a>'> ) } ) (C {<print>} { (DQ <'<pre>'> ($ Id.VSub_DollarName COMMENT) <'</pre>'> <Id.Lit_BadBackslash '\\'> <n>) } ) (C {<print>} { (DQ <'<table><tr valign='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <top> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} {(DQ <'<td><pre>'>)}) (C {<strip_unchanged>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>}) (C {<print>} {(DQ <'</pre></td><td><pre>'>)}) (C {<strip_unchanged>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>}) (C {<print>} {(DQ <'</pre></td>'>)}) (C {<print>} {(DQ <'</tr></table>'>)}) (C {<print>} {(DQ <'</body></html>'>)}) (C {<framed_sdiff>} {($ Id.VSub_DollarName TNAME)} {($ Id.VSub_DollarName TPATH)} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file1.html>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.file2.html>} {(DQ ($ Id.VSub_DollarName COMMENT))} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: framed_sdiff body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'TNAME='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'TPATH='> ($ Id.VSub_Number 2)}) (C {<typeset>} {<Id.Lit_VarLike 'lhsfile='> ($ Id.VSub_Number 3)}) (C {<typeset>} {<Id.Lit_VarLike 'rhsfile='> ($ Id.VSub_Number 4)}) (C {<typeset>} {<Id.Lit_VarLike 'comments='> ($ Id.VSub_Number 5)}) (C {<typeset>} {<RTOP>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RTOP='> name:RTOP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<relative_dir>} {($ Id.VSub_DollarName TPATH)} {($ Id.VSub_DollarName WDIR)} ) right: <Id.Eof_RParen _> ) } spids: [3770] ) ] redirects: [] ) (command.Simple words: [ {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.lhs.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.lhs.html> } ) (redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 3849 stdin_parts: [ <' <script type='> <Id.Right_DoubleQuote '"'> <'text/javascript'> <Id.Right_DoubleQuote '"'> <' src='> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name RTOP) <ancnav.js> <Id.Right_DoubleQuote '"'> <'></script>\n'> <' </head>\n'> <' <body id='> <Id.Right_DoubleQuote '"'> <SUNWwebrev> <Id.Right_DoubleQuote '"'> <' onkeypress='> <Id.Right_DoubleQuote '"'> <'keypress(event);'> <Id.Right_DoubleQuote '"'> <'>\n'> <' <a name='> <Id.Right_DoubleQuote '"'> <0> <Id.Right_DoubleQuote '"'> <'></a>\n'> <' <pre>'> ($ Id.VSub_DollarName comments) <'</pre><hr></hr>\n'> ] ) ) ] more_env: [] do_fork: T ) (C {<cp>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.lhs.html> } {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.rhs.html> } ) (command.Simple words: [{<insert_anchors>} {($ Id.VSub_DollarName lhsfile)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.lhs.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [{<insert_anchors>} {($ Id.VSub_DollarName rhsfile)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.rhs.html> } ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'close='> name:close) op: assign_op.Equal rhs: {(SQ <'</body></html>'>)} spids: [3899] ) ] redirects: [] ) (command.Simple words: [{<print>} {($ Id.VSub_DollarName close)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.lhs.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [{<print>} {($ Id.VSub_DollarName close)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.rhs.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<print>} {(DQ ($ Id.VSub_DollarName FRAMEHTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.frames.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<print>} {(DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' Framed-Sdiff '>)} { (DQ ($ Id.VSub_DollarName TPATH) <'/'> ($ Id.VSub_DollarName TNAME) <'</title> </head>'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.frames.html> } ) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName TNAME) <.frames.html> } ) (redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 4071 stdin_parts: [ <' <frameset rows='> <Id.Right_DoubleQuote '"'> <'*,60'> <Id.Right_DoubleQuote '"'> <'>\n'> <' <frameset cols='> <Id.Right_DoubleQuote '"'> <'50%,50%'> <Id.Right_DoubleQuote '"'> <'>\n'> <' <frame src='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName TNAME) <.lhs.html> <Id.Right_DoubleQuote '"'> <' scrolling='> <Id.Right_DoubleQuote '"'> <auto> <Id.Right_DoubleQuote '"'> <' name='> <Id.Right_DoubleQuote '"'> <lhs> <Id.Right_DoubleQuote '"'> <'></frame>\n'> <' <frame src='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName TNAME) <.rhs.html> <Id.Right_DoubleQuote '"'> <' scrolling='> <Id.Right_DoubleQuote '"'> <auto> <Id.Right_DoubleQuote '"'> <' name='> <Id.Right_DoubleQuote '"'> <rhs> <Id.Right_DoubleQuote '"'> <'></frame>\n'> <' </frameset>\n'> <' <frame src='> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name RTOP) <ancnav.html> <Id.Right_DoubleQuote '"'> <' scrolling='> <Id.Right_DoubleQuote '"'> <no> <Id.Right_DoubleQuote '"'> <' marginwidth='> <Id.Right_DoubleQuote '"'> <0> <Id.Right_DoubleQuote '"'> <'\n'> <' marginheight='> <Id.Right_DoubleQuote '"'> <0> <Id.Right_DoubleQuote '"'> <' name='> <Id.Right_DoubleQuote '"'> <nav> <Id.Right_DoubleQuote '"'> <'></frame>\n'> <' <noframes>\n'> <' <body id='> <Id.Right_DoubleQuote '"'> <SUNWwebrev> <Id.Right_DoubleQuote '"'> <'>\n'> < ' Alas \'frames\' webrev requires that your browser supports frames\n' > <' and has the feature enabled.\n'> <' </body>\n'> <' </noframes>\n'> <' </frameset>\n'> <'</html>\n'> ] ) ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: fix_postscript body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'infile='> name:infile) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [4116] ) ] redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.crmerge.pl>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>} here_end_span_id: 4173 stdin_parts: [ <'\n'> <'\tprint scalar(<>);\t\t# %!PS-Adobe---\n'> <'\tprint "%%Orientation: Landscape\\n";\n'> <'\n'> <'\t$pno = 0;\n'> <'\t$doprint = 1;\n'> <'\n'> <'\t$page = "";\n'> <'\n'> <'\twhile (<>) {\n'> <'\t\tnext if (/^%%Pages:\\s*\\d+/);\n'> <'\n'> <'\t\tif (/^%%Page:/) {\n'> <'\t\t\tif ($pno == 0 || $page =~ /\\)S/) {\n'> <'\t\t\t\t# Header or single page containing text\n'> <'\t\t\t\tprint "%%Page: ? $pno\\n" if ($pno > 0);\n'> <'\t\t\t\tprint $page;\n'> <'\t\t\t\t$pno++;\n'> <'\t\t\t} else {\n'> <'\t\t\t\t# Empty page, skip it.\n'> <'\t\t\t}\n'> <'\t\t\t$page = "";\n'> <'\t\t\t$doprint = 1;\n'> <'\t\t\tnext;\n'> <'\t\t}\n'> <'\n'> <'\t\t# Skip from %%Trailer of one document to Endprolog\n'> <'\t\t# %%Page of the next\n'> <'\t\t$doprint = 0 if (/^%%Trailer/);\n'> <'\t\t$page .= $_ if ($doprint);\n'> <'\t}\n'> <'\n'> <'\tif ($page =~ /\\)S/) {\n'> <'\t\tprint "%%Page: ? $pno\\n";\n'> <'\t\tprint $page;\n'> <'\t} else {\n'> <'\t\t$pno--;\n'> <'\t}\n'> <'\tprint "%%Trailer\\n%%Pages: $pno\\n";\n'> ] ) ) ] more_env: [] do_fork: T ) (command.Simple words: [{($ Id.VSub_DollarName PERL)} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.crmerge.pl>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName infile)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: insert_anchors body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\tfunction ia() {\n'> <'\t\tprintf "<a name=\\"%d\\" id=\\"anc%d\\"></a>", anc, anc++;\n'> <'\t}\n'> <'\n'> <'\tBEGIN {\n'> <'\t\tanc=1;\n'> <'\t\tinblock=1;\n'> <'\t\tprintf "<pre>\\n";\n'> <'\t}\n'> <'\tNF == 0 || /^<span class=/ {\n'> <'\t\tif (inblock == 0) {\n'> <'\t\t\tia();\n'> <'\t\t\tinblock=1;\n'> <'\t\t}\n'> <'\t\tprint;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\t{\n'> <'\t\tinblock=0;\n'> <'\t\tprint;\n'> <'\t}\n'> <'\tEND {\n'> <'\t\tia();\n'> <'\n'> <'\t\tprintf "<b style=\\"font-size: large; color: red\\">";\n'> <'\t\tprintf "--- EOF ---</b>"\n'> <'\t\tfor(i=0;i<8;i++) printf "\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n";\n'> <'\t\tprintf "</pre>"\n'> <'\t\tprintf "<form name=\\"eof\\">";\n'> <'\t\tprintf "<input name=\\"value\\" value=\\"%d\\" " \\\n'> <'\t\t "type=\\"hidden\\"></input>", anc - 1;\n'> <'\t\tprintf "</form>";\n'> <'\t}\n'> <'\t'> ) } {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: relative_dir body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'cur='> (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {($ Id.VSub_Number 2) (word_part.ExtGlob op: <Id.ExtGlob_QMark '?('> arms: [{<'/'>}] ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName cur))} right: { (DQ <'/'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} { (DQ <Id.Lit_BadBackslash '\\'> <'nWARNING: relative_dir: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' not relative '> ) } ) (C {<print>} {<-u2>} { (DQ <'to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. Check input paths. Framed webrev '> ) } ) (C {<print>} {<-u2>} {(DQ <'will not be relocatable!'>)}) (C {<print>} {($ Id.VSub_Number 2)}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [4363 4385] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName cur)}) (C {($ Id.VSub_DollarName SED)} {<-e>} { (SQ <'{\n'> <'\t\ts:^\\./*::\n'> <'\t\ts:/$::\n'> <'\t\ts:[^/][^/]*:..:g\n'> <'\t\ts:^\\(..*\\)$:\\1/:\n'> <'\t}'> ) } ) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: frame_nav_js body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>} here_end_span_id: 4716 stdin_parts: [ <'var myInt;\n'> <'var scrolling = 0;\n'> <'var sfactor = 3;\n'> <'var scount = 10;\n'> <'\n'> <'function scrollByPix()\n'> <'{\n'> <'\tif (scount <= 0) {\n'> <'\t\tsfactor *= 1.2;\n'> <'\t\tscount = 10;\n'> <'\t}\n'> <'\tparent.lhs.scrollBy(0, sfactor);\n'> <'\tparent.rhs.scrollBy(0, sfactor);\n'> <'\tscount--;\n'> <'}\n'> <'\n'> <'function scrollToAnc(num)\n'> <'{\n'> <'\t// Update the value of the anchor in the form which we use as\n'> <'\t// storage for this value. setAncValue() will take care of\n'> <'\t// correcting for overflow and underflow of the value and return\n'> <'\t// us the new value.\n'> <'\tnum = setAncValue(num);\n'> <'\n'> <'\t// Set location and scroll back a little to expose previous\n'> <'\t// lines.\n'> <'\t//\n'> <'\t// Note that this could be improved: it is possible although\n'> <'\t// complex to compute the x and y position of an anchor, and to\n'> <'\t// scroll to that location directly.\n'> <'\t//\n'> < '\tparent.lhs.location.replace(parent.lhs.location.pathname + "#" + num);\n' > < '\tparent.rhs.location.replace(parent.rhs.location.pathname + "#" + num);\n' > <'\n'> <'\tparent.lhs.scrollBy(0, -30);\n'> <'\tparent.rhs.scrollBy(0, -30);\n'> <'}\n'> <'\n'> <'function getAncValue()\n'> <'{\n'> <'\treturn (parseInt(parent.nav.document.diff.real.value));\n'> <'}\n'> <'\n'> <'function setAncValue(val)\n'> <'{\n'> <'\tif (val <= 0) {\n'> <'\t\tval = 0;\n'> <'\t\tparent.nav.document.diff.real.value = val;\n'> <'\t\tparent.nav.document.diff.display.value = "BOF";\n'> <'\t\treturn (val);\n'> <'\t}\n'> <'\n'> <'\t//\n'> <'\t// The way we compute the max anchor value is to stash it\n'> <'\t// inline in the left and right hand side pages-- it\'s the same\n'> <'\t// on each side, so we pluck from the left.\n'> <'\t//\n'> <'\tmaxval = parent.lhs.document.eof.value.value;\n'> <'\tif (val < maxval) {\n'> <'\t\tparent.nav.document.diff.real.value = val;\n'> <'\t\tparent.nav.document.diff.display.value = val.toString();\n'> <'\t\treturn (val);\n'> <'\t}\n'> <'\n'> <'\t// this must be: val >= maxval\n'> <'\tval = maxval;\n'> <'\tparent.nav.document.diff.real.value = val;\n'> <'\tparent.nav.document.diff.display.value = "EOF";\n'> <'\treturn (val);\n'> <'}\n'> <'\n'> <'function stopScroll()\n'> <'{\n'> <'\tif (scrolling == 1) {\n'> <'\t\tclearInterval(myInt);\n'> <'\t\tscrolling = 0;\n'> <'\t}\n'> <'}\n'> <'\n'> <'function startScroll()\n'> <'{\n'> <'\tstopScroll();\n'> <'\tscrolling = 1;\n'> <'\tmyInt = setInterval("scrollByPix()", 10);\n'> <'}\n'> <'\n'> <'function handlePress(b)\n'> <'{\n'> <'\tswitch (b) {\n'> <'\tcase 1:\n'> <'\t\tscrollToAnc(-1);\n'> <'\t\tbreak;\n'> <'\tcase 2:\n'> <'\t\tscrollToAnc(getAncValue() - 1);\n'> <'\t\tbreak;\n'> <'\tcase 3:\n'> <'\t\tsfactor = -3;\n'> <'\t\tstartScroll();\n'> <'\t\tbreak;\n'> <'\tcase 4:\n'> <'\t\tsfactor = 3;\n'> <'\t\tstartScroll();\n'> <'\t\tbreak;\n'> <'\tcase 5:\n'> <'\t\tscrollToAnc(getAncValue() + 1);\n'> <'\t\tbreak;\n'> <'\tcase 6:\n'> <'\t\tscrollToAnc(999999);\n'> <'\t\tbreak;\n'> <'\t}\n'> <'}\n'> <'\n'> <'function handleRelease(b)\n'> <'{\n'> <'\tstopScroll();\n'> <'}\n'> <'\n'> <'function keypress(ev)\n'> <'{\n'> <'\tvar keynum;\n'> <'\tvar keychar;\n'> <'\n'> <'\tif (window.event) { // IE\n'> <'\t\tkeynum = ev.keyCode;\n'> <'\t} else if (ev.which) { // non-IE\n'> <'\t\tkeynum = ev.which;\n'> <'\t}\n'> <'\n'> <'\tkeychar = String.fromCharCode(keynum);\n'> <'\n'> <'\tif (keychar == "k") {\n'> <'\t\thandlePress(2);\n'> <'\t\treturn (0);\n'> <'\t} else if (keychar == "j" || keychar == " ") {\n'> <'\t\thandlePress(5);\n'> <'\t\treturn (0);\n'> <'\t}\n'> <'\n'> <'\treturn (1);\n'> <'}\n'> <'\n'> <'function ValidateDiffNum()\n'> <'{\n'> <'\tvar val;\n'> <'\tvar i;\n'> <'\n'> <'\tval = parent.nav.document.diff.display.value;\n'> <'\tif (val == "EOF") {\n'> <'\t\tscrollToAnc(999999);\n'> <'\t\treturn;\n'> <'\t}\n'> <'\n'> <'\tif (val == "BOF") {\n'> <'\t\tscrollToAnc(0);\n'> <'\t\treturn;\n'> <'\t}\n'> <'\n'> <'\ti = parseInt(val);\n'> <'\tif (isNaN(i)) {\n'> <'\t\tparent.nav.document.diff.display.value = getAncValue();\n'> <'\t} else {\n'> <'\t\tscrollToAnc(i);\n'> <'\t}\n'> <'\n'> <'\treturn (false);\n'> <'}\n'> ] ) ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: frame_navigation body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>} here_end_span_id: 4770 stdin_parts: [ <'<title>Anchor Navigation</title>\n'> <'<meta http-equiv="Content-Script-Type" content="text/javascript">\n'> <'<meta http-equiv="Content-Type" content="text/html">\n'> <'\n'> <'<style type="text/css">\n'> <' div.button td { padding-left: 5px; padding-right: 5px;\n'> <'\t\t background-color: #eee; text-align: center;\n'> <'\t\t border: 1px #444 outset; cursor: pointer; }\n'> <' div.button a { font-weight: bold; color: black }\n'> <' div.button td:hover { background: #ffcc99; }\n'> <'</style>\n'> ] ) ) ] more_env: [] do_fork: T ) (C {<print>} { (DQ <'<script type='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'text/javascript'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' src='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <ancnav.js> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'></script>'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>} here_end_span_id: 4867 stdin_parts: [ <'</head>\n'> < '<body id="SUNWwebrev" bgcolor="#eeeeee" onload="document.diff.real.focus();"\n' > <'\tonkeypress="keypress(event);">\n'> <' <noscript lang="javascript">\n'> <' <center>\n'> <'\t<p><big>Framed Navigation controls require Javascript</big><br></br>\n'> <'\tEither this browser is incompatable or javascript is not enabled</p>\n'> <' </center>\n'> <' </noscript>\n'> <' <table width="100%" border="0" align="center">\n'> <'\t<tr>\n'> <' <td valign="middle" width="25%">Diff navigation:\n'> < ' Use \'j\' and \'k\' for next and previous diffs; or use buttons\n' > <' at right</td>\n'> <'\t <td align="center" valign="top" width="50%">\n'> <'\t <div class="button">\n'> <'\t <table border="0" align="center">\n'> <' <tr>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(1);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(1);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(1);return true;"\n'> <'\t\t\t onClick="return false;"\n'> <'\t\t\t title="Go to Beginning Of file">BOF</a></td>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(3);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(3);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(3);return true;"\n'> <'\t\t\t title="Scroll Up: Press and Hold to accelerate"\n'> <'\t\t\t onClick="return false;">Scroll Up</a></td>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(2);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(2);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(2);return true;"\n'> <'\t\t\t title="Go to previous Diff"\n'> <'\t\t\t onClick="return false;">Prev Diff</a>\n'> <'\t\t </td></tr>\n'> <'\n'> <'\t\t <tr>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(6);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(6);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(6);return true;"\n'> <'\t\t\t onClick="return false;"\n'> <'\t\t\t title="Go to End Of File">EOF</a></td>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(4);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(4);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(4);return true;"\n'> <'\t\t\t title="Scroll Down: Press and Hold to accelerate"\n'> <'\t\t\t onClick="return false;">Scroll Down</a></td>\n'> <'\t\t <td>\n'> <'\t\t <a onMouseDown="handlePress(5);return true;"\n'> <'\t\t\t onMouseUp="handleRelease(5);return true;"\n'> <'\t\t\t onMouseOut="handleRelease(5);return true;"\n'> <'\t\t\t title="Go to next Diff"\n'> <'\t\t\t onClick="return false;">Next Diff</a></td>\n'> <'\t\t </tr>\n'> <' </table>\n'> <'\t </div>\n'> <'\t </td>\n'> <'\t <th valign="middle" width="25%">\n'> < '\t <form action="" name="diff" onsubmit="return ValidateDiffNum();">\n' > <'\t\t<input name="display" value="BOF" size="8" type="text"></input>\n'> <'\t\t<input name="real" value="0" size="8" type="hidden"></input>\n'> <'\t </form>\n'> <'\t </th>\n'> <'\t</tr>\n'> <' </table>\n'> <' </body>\n'> <'</html>\n'> ] ) ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: diff_to_html body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [4898] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TPATH='> name:TPATH) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [4902] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIFFTYPE='> name:DIFFTYPE) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [4906] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMENT='> name:COMMENT) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} spids: [4910] ) ] redirects: [] ) (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}) (C {<print>} { (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' '> (${ Id.VSub_Name DIFFTYPE) <'diff '> ($ Id.VSub_DollarName TPATH) <'</title>'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName DIFFTYPE)} right: {(DQ <U>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ ($ Id.VSub_DollarName UDIFFCSS))})] spids: [4940 4955] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 4994 stdin_parts: [ <'</head>\n'> <'<body id='> <Id.Right_DoubleQuote '"'> <SUNWwebrev> <Id.Right_DoubleQuote '"'> <'>\n'> <' <a class='> <Id.Right_DoubleQuote '"'> <print> <Id.Right_DoubleQuote '"'> <' href='> <Id.Right_DoubleQuote '"'> <'javascript:print()'> <Id.Right_DoubleQuote '"'> <'>Print this page</a>\n'> <'<pre>'> ($ Id.VSub_DollarName COMMENT) <'</pre>\n'> <' <pre>\n'> ] ) ) ] more_env: [] do_fork: T ) (command.Pipeline children: [ (C {<html_quote>}) (C {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\t/^--- new/\t{ next }\n'> <'\t/^\\+\\+\\+ new/\t{ next }\n'> <'\t/^--- old/\t{ next }\n'> <'\t/^\\*\\*\\* old/\t{ next }\n'> <'\t/^\\*\\*\\*\\*/\t{ next }\n'> <'\t/^-------/\t{ printf "<center><h1>%s</h1></center>\\n", $0; next }\n'> <'\t/^\\@\\@.*\\@\\@$/\t{ printf "</pre><hr></hr><pre>\\n";\n'> <'\t\t\t printf "<span class=\\"newmarker\\">%s</span>\\n", $0;\n'> <'\t\t\t next}\n'> <'\n'> < '\t/^\\*\\*\\*/\t{ printf "<hr></hr><span class=\\"oldmarker\\">%s</span>\\n", $0;\n' > <'\t\t\t next}\n'> <'\t/^---/\t\t{ printf "<span class=\\"newmarker\\">%s</span>\\n", $0;\n'> <'\t\t\t next}\n'> <'\t/^\\+/\t\t{printf "<span class=\\"new\\">%s</span>\\n", $0; next}\n'> <'\t/^!/\t\t{printf "<span class=\\"changed\\">%s</span>\\n", $0; next}\n'> <'\t/^-/\t\t{printf "<span class=\\"removed\\">%s</span>\\n", $0; next}\n'> <'\t\t\t{printf "%s\\n", $0; next}\n'> <'\t'> ) } ) ] negated: F stderr_indices: [] ) (C {<print>} {(DQ <'</pre></body></html>'> <Id.Lit_BadBackslash '\\'> <n>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: source_to_html body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHICH='> name:WHICH) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [5062] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TNAME='> name:TNAME) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [5066] ) ] redirects: [] ) (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}) (C {<print>} { (DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <' '> ($ Id.VSub_DollarName WHICH) <' '> ($ Id.VSub_DollarName TNAME) <'</title>'> ) } ) (C {<print>} { (DQ <'<body id='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} {(DQ <'<pre>'>)}) (command.Pipeline children: [ (C {<html_quote>}) (C {($ Id.VSub_DollarName AWK)} {(SQ <'{line += 1 ; printf "%4d %s\\n", line, $0 }'>)}) ] negated: F stderr_indices: [] ) (C {<print>} {(DQ <'</pre></body></html>'>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: comments_from_wx body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'fmt='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'p='> ($ Id.VSub_Number 2)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comm='> name:comm) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {($ Id.VSub_DollarName AWK)} {(SQ <'\n'> <'\t$1 == "'>) ($ Id.VSub_DollarName p) (SQ <'" {\n'> <'\t\tdo getline ; while (NF > 0)\n'> <'\t\tgetline\n'> <'\t\twhile (NF > 0) { print ; getline }\n'> <'\t\texit\n'> <'\t}'> ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName wxfile)} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [5181] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName comm)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comm='> name:comm) op: assign_op.Equal rhs: {(DQ <'*** NO COMMENTS ***'>)} spids: [5228] ) ] redirects: [] ) ] spids: [5214 5225] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName fmt)} right: {(DQ <text>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-->} {(DQ ($ Id.VSub_DollarName comm))}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [5238 5253] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {<print>} {<-->} {(DQ ($ Id.VSub_DollarName comm))}) (C {<html_quote>}) (C {<its2url>}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getcomments body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'fmt='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'p='> ($ Id.VSub_Number 2)}) (C {<typeset>} {<Id.Lit_VarLike 'pp='> ($ Id.VSub_Number 3)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Nflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return>)] spids: [5333 5344] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName wxfile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<comments_from_wx>} {($ Id.VSub_DollarName fmt)} {($ Id.VSub_DollarName p)}) ] spids: [5369 5380] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: printCI body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<integer>} {<Id.Lit_VarLike 'tot='> ($ Id.VSub_Number 1)} {<Id.Lit_VarLike 'ins='> ($ Id.VSub_Number 2)} {<Id.Lit_VarLike 'del='> ($ Id.VSub_Number 3)} {<Id.Lit_VarLike 'mod='> ($ Id.VSub_Number 4)} {<Id.Lit_VarLike 'unc='> ($ Id.VSub_Number 5)} ) (C {<typeset>} {<str>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike tot) right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'str='> name:str) op: assign_op.Equal rhs: {(DQ <line>)} spids: [5457] ) ] redirects: [] ) ] spids: [5440 5454] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'str='> name:str) op: assign_op.Equal rhs: {(DQ <lines>)} spids: [5466] ) ] redirects: [] ) ] redirects: [] ) (C {<printf>} {(SQ <'%d %s changed: %d ins; %d del; %d mod; %d unchg\\n'>)} {($ Id.VSub_DollarName tot)} {($ Id.VSub_DollarName str)} {($ Id.VSub_DollarName ins)} {($ Id.VSub_DollarName del)} {($ Id.VSub_DollarName mod)} {($ Id.VSub_DollarName unc)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: difflines body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<integer>} {<tot>} {<mod>} {<del>} {<ins>} {<unc>} {<err>}) (C {<typeset>} {<filename>}) (C {<eval>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<diff>} {<-e>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}) (C {($ Id.VSub_DollarName AWK)} { (SQ <'\n'> <'\t# Change range of lines: N,Nc\n'> <'\t/^[0-9]*,[0-9]*c$/ {\n'> <'\t\tn=split(substr($1,1,length($1)-1), counts, ",");\n'> <'\t\tif (n != 2) {\n'> <'\t\t\terror=2\n'> <'\t\t\texit;\n'> <'\t\t}\n'> <'\t\t#\n'> <'\t\t# 3,5c means lines 3 , 4 and 5 are changed, a total of 3 lines.\n'> <'\t\t# following would be 5 - 3 = 2! Hence +1 for correction.\n'> <'\t\t#\n'> <'\t\tr=(counts[2]-counts[1])+1;\n'> <'\n'> <'\t\t#\n'> < '\t\t# Now count replacement lines: each represents a change instead\n' > <'\t\t# of a delete, so increment c and decrement r.\n'> <'\t\t#\n'> <'\t\twhile (getline != /^\\.$/) {\n'> <'\t\t\tc++;\n'> <'\t\t\tr--;\n'> <'\t\t}\n'> <'\t\t#\n'> <'\t\t# If there were more replacement lines than original lines,\n'> <'\t\t# then r will be negative; in this case there are no deletions,\n'> < '\t\t# but there are r changes that should be counted as adds, and\n' > <'\t\t# since r is negative, subtract it from a and add it to c.\n'> <'\t\t#\n'> <'\t\tif (r < 0) {\n'> <'\t\t\ta-=r;\n'> <'\t\t\tc+=r;\n'> <'\t\t}\n'> <'\n'> <'\t\t#\n'> < '\t\t# If there were more original lines than replacement lines, then\n' > <'\t\t# r will be positive; in this case, increment d by that much.\n'> <'\t\t#\n'> <'\t\tif (r > 0) {\n'> <'\t\t\td+=r;\n'> <'\t\t}\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> <'\t# Change lines: Nc\n'> <'\t/^[0-9].*c$/ {\n'> <'\t\t# The first line is a replacement; any more are additions.\n'> <'\t\tif (getline != /^\\.$/) {\n'> <'\t\t\tc++;\n'> <'\t\t\twhile (getline != /^\\.$/) a++;\n'> <'\t\t}\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> <'\t# Add lines: both Na and N,Na\n'> <'\t/^[0-9].*a$/ {\n'> <'\t\twhile (getline != /^\\.$/) a++;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> <'\t# Delete range of lines: N,Nd\n'> <'\t/^[0-9]*,[0-9]*d$/ {\n'> <'\t\tn=split(substr($1,1,length($1)-1), counts, ",");\n'> <'\t\tif (n != 2) {\n'> <'\t\t\terror=2\n'> <'\t\t\texit;\n'> <'\t\t}\n'> <'\t\t#\n'> < '\t\t# 3,5d means lines 3 , 4 and 5 are deleted, a total of 3 lines.\n' > <'\t\t# following would be 5 - 3 = 2! Hence +1 for correction.\n'> <'\t\t#\n'> <'\t\tr=(counts[2]-counts[1])+1;\n'> <'\t\td+=r;\n'> <'\t\tnext;\n'> <'\t}\n'> <'\n'> <'\t# Delete line: Nd. For example 10d says line 10 is deleted.\n'> <'\t/^[0-9]*d$/ {d++; next}\n'> <'\n'> <'\t# Should not get here!\n'> <'\t{\n'> <'\t\terror=1;\n'> <'\t\texit;\n'> <'\t}\n'> <'\n'> <'\t# Finish off - print results\n'> <'\tEND {\n'> <'\t\tprintf("tot=%d;mod=%d;del=%d;ins=%d;err=%d\\n",\n'> <'\t\t (c+d+a), c, d, a, error);\n'> <'\t}'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) right: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike err) right: {<Id.Lit_Digits 0>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'Unexpected Error occurred reading'>)} { (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'diff -e '> ($ Id.VSub_Number 1) <' '> ($ Id.VSub_Number 2) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ch: '`' ) <': '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'?='> ($ Id.VSub_QMark '?') <', err='> ) } {($ Id.VSub_DollarName err)} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [5661 5683] ) ] else_action: [] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike TOTL) right: ($ Id.Lit_ArithVarLike tot) ) redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike TMOD) right: ($ Id.Lit_ArithVarLike mod) ) redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike TDEL) right: ($ Id.Lit_ArithVarLike del) ) redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike TINS) right: ($ Id.Lit_ArithVarLike ins) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'unc='> name:unc) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<wc>} {<-l>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_Number 1)} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [5774] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike unc) right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_MinusEqual left: ($ Id.Lit_ArithVarLike unc) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike del) right: ($ Id.Lit_ArithVarLike mod) ) ) redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike TUNC) right: ($ Id.Lit_ArithVarLike unc) ) redirects: [] ) ] spids: [5788 5802] ) ] else_action: [] redirects: [] ) (C {<print>} { (DQ <'<span class='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <lineschanged> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<printCI>} {($ Id.VSub_DollarName tot)} {($ Id.VSub_DollarName ins)} {($ Id.VSub_DollarName del)} {($ Id.VSub_DollarName mod)} {($ Id.VSub_DollarName unc)} ) (C {<print>} {(DQ <'</span>'>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: flist_from_wx body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'argfile='> ($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name argfile> var_name: argfile suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName argfile)} spids: [5940] ) ] redirects: [] ) ] spids: [5905 5921] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile) op: assign_op.Equal rhs: {($ Id.VSub_DollarName argfile)} spids: [5949] ) ] redirects: [] ) ] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName AWK)} { (SQ <'{ c = 1; print;\n'> <'\t while (getline) {\n'> <'\t\tif (NF == 0) { c = -c; continue }\n'> <'\t\tif (c > 0) print\n'> <'\t }\n'> <'\t}'> ) } {($ Id.VSub_DollarName wxfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName FLIST)} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' Done.'>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: hg_active_wxfile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFLIST='> name:TMPFLIST) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.active>} spids: [6014] ) ] redirects: [] ) (C {($ Id.VSub_DollarName HG_ACTIVE)} {<-w>} {($ Id.VSub_DollarName child)} {<-p>} {($ Id.VSub_DollarName parent)} {<-o>} {($ Id.VSub_DollarName TMPFLIST)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TMPFLIST)} spids: [6035] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: flist_from_mercurial body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)}) (C {<print>} { (DQ <' File list from: hg-active -p '> ($ Id.VSub_DollarName parent) <' ...'> <Id.Lit_BadBackslash '\\'> <c> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName HG_ACTIVE)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>}) (C {<print>} {<-u2>} {(DQ <'Error: hg-active tool not found. Exiting'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [6087 6100] ) ] else_action: [] redirects: [] ) (C {<hg_active_wxfile>} {($ Id.VSub_DollarName child)} {($ Id.VSub_DollarName parent)}) (C {<flist_from_wx>} {($ Id.VSub_DollarName TMPFLIST)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: git_wxfile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'child='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'parent='> (DQ ($ Id.VSub_Number 2))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFLIST='> name:TMPFLIST) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.active>} spids: [6178] ) ] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName PERL)} {<-e>} { (SQ <'my (%files, %realfiles, $msg);\n'> <'\tmy $parent = $ARGV[0];\n'> <'\tmy $child = $ARGV[1];\n'> <'\n'> <'\topen(F, "git diff -M --name-status $parent..$child |");\n'> <'\twhile (<F>) {\n'> <'\t chomp;\n'> <'\t if (/^R(\\d+)\\s+([^ ]+)\\s+([^ ]+)/) { # rename\n'> <'\t\tif ($1 >= 75) {\t\t # Probably worth treating as a rename\n'> <'\t\t $realfiles{$3} = $2;\n'> <'\t\t} else {\n'> <'\t\t $realfiles{$3} = $3;\n'> <'\t\t $realfiles{$2} = $2;\n'> <'\t\t}\n'> <'\t } else {\n'> <'\t\tmy $f = (split /\\s+/, $_)[1];\n'> <'\t\t$realfiles{$f} = $f;\n'> <'\t }\n'> <'\t}\n'> <'\tclose(F);\n'> <'\n'> <'\tmy $state = 1;\t\t # 0|comments, 1|files\n'> <'\topen(F, "git whatchanged --pretty=format:%B $parent..$child |");\n'> <'\twhile (<F>) {\n'> <'\t chomp;\n'> <'\t if (/^:[0-9]{6}/) {\n'> <'\t\tmy ($unused, $fname, $fname2) = split(/\\t/, $_);\n'> <'\t\t$fname = $fname2 if defined($fname2);\n'> <'\t\tnext if !defined($realfiles{$fname}); # No real change\n'> <'\t\t$state = 1;\n'> <'\t\tchomp $msg;\n'> <'\t\t$files{$fname} .= $msg;\n'> <'\t } else {\n'> <'\t\tif ($state == 1) {\n'> <'\t\t $state = 0;\n'> <'\t\t $msg = /^\\n/ ? "" : "\\n";\n'> <'\t\t}\n'> <'\t\t$msg .= "$_\\n" if ($_);\n'> <'\t }\n'> <'\t}\n'> <'\tclose(F);\n'> <'\t \n'> <'\tfor (sort keys %files) {\n'> <'\t if ($realfiles{$_} ne $_) {\n'> <'\t\tprint "$_ $realfiles{$_}\\n$files{$_}\\n\\n";\n'> <'\t } else {\n'> <'\t\tprint "$_\\n$files{$_}\\n\\n"\n'> <'\t }\n'> <'\t}'> ) } {(${ Id.VSub_Name parent)} {(${ Id.VSub_Name child)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMPFLIST)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TMPFLIST)} spids: [6254] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: flist_from_git body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'child='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'parent='> ($ Id.VSub_Number 2)}) (C {<print>} {(DQ <' File list from: git ...'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Sentence child: (C {<git_wxfile>} {(DQ ($ Id.VSub_DollarName child))} {(DQ ($ Id.VSub_DollarName parent))} ) terminator: <Id.Op_Semi _> ) (C {<flist_from_wx>} {($ Id.VSub_DollarName TMPFLIST)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: flist_from_subversion body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [6347] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDPWD='> name:OLDPWD) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [6351] ) ] redirects: [] ) (C {<cd>} {($ Id.VSub_DollarName CWS)}) (C {<print>} {<-u2>} {(DQ <' File list from: svn status ... '> <Id.Lit_BadBackslash '\\'> <c>)} ) (command.Pipeline children: [ (C {<svn>} {<status>}) (command.Simple words: [{($ Id.VSub_DollarName AWK)} {(SQ <'/^[ACDMR]/ { print $NF }'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName FLIST)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<print>} {<-u2>} {(DQ <' Done.'>)}) (C {<cd>} {($ Id.VSub_DollarName OLDPWD)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: env_from_flist body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_r child:{($ Id.VSub_DollarName FLIST)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<eval>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} {($ Id.VSub_DollarName FLIST)} ) (C {($ Id.VSub_DollarName GREP)} {<Id.Lit_Equals '='>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_ws)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_WS)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_WS)} spids: [6493] ) ] redirects: [] ) (C {<export>} {<CODEMGR_WS>}) ] spids: [6473 6490] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_parent)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_PARENT)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)} spids: [6538] ) ] redirects: [] ) (C {<export>} {<CODEMGR_PARENT>}) ] spids: [6518 6535] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: look_for_prog body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<path>}) (C {<typeset>} {<ppath>}) (C {<typeset>} {<Id.Lit_VarLike 'progname='> ($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PATH)} spids: [6576] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/usr/sfw/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'> } spids: [6580] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/opt/onbld/bin'>} spids: [6590] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppath='> name:ppath) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ppath) <Id.Lit_Colon ':'> <'/opt/onbld/bin/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<uname>} {<-p>}) right: <Id.Backtick_Right '`'> ) } spids: [6596] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ppath)} spids: [6610] ) (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prog='> name:prog) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<whence>} {($ Id.VSub_DollarName progname)}) right: <Id.Backtick_Right '`'> ) } spids: [6613] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName prog)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {($ Id.VSub_DollarName prog)})] spids: [6623 6634] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_file_mode body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {($ Id.VSub_DollarName PERL)} {<-e>} { (SQ <'\n'> <'\t\tif (@stat = stat($ARGV[0])) {\n'> <'\t\t\t$mode = $stat[2] & 0777;\n'> <'\t\t\tprintf "%03o\\n", $mode;\n'> <'\t\t\texit 0;\n'> <'\t\t} else {\n'> <'\t\t\texit 1;\n'> <'\t\t}\n'> <'\t '> ) } {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_old_new_mercurial body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))}) (C {<typeset>} {<Id.Lit_VarLike 'old_mode='>}) (C {<typeset>} {<Id.Lit_VarLike 'new_mode='>}) (C {<typeset>} {<file>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName PDIR))} right: {(DQ <.>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PF))} spids: [6754] ) ] redirects: [] ) ] spids: [6734 6751] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF))} spids: [6763] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName file)}) (C {($ Id.VSub_DollarName SED)} {(SQ <'s#/#\\\\/#g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [6774] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_mode='> name:old_mode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {($ Id.VSub_DollarName SED)} {<-n>} {<-e>} { (DQ <'/^'> <Id.Lit_BadBackslash '\\'> <'(...'> <Id.Lit_BadBackslash '\\'> <') . '> (${ Id.VSub_Name file) <Id.Lit_Dollar '$'> <'/s//'> <Id.Lit_BadBackslash '\\'> <'1/p'> ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName HG_PARENT_MANIFEST)} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [6799] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<get_file_mode>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) right: <Id.Backtick_Right '`'> ) } spids: [6858] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName new_mode))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName new_mode))} right: {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> <Id.Lit_Other ']'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'new_mode='> name: new_mode ) op: assign_op.Equal rhs: {<755>} spids: [6910] ) ] redirects: [] ) ] spids: [6888 6907] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode) op: assign_op.Equal rhs: {<644>} spids: [6917] ) ] redirects: [] ) ] redirects: [] ) ] spids: [6872 6885] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName new_mode)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<chmod>} {($ Id.VSub_DollarName new_mode)} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) ] spids: [6984 6995] ) ] else_action: [ (C {<print>} {<-u2>} { (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) ) } ) ] redirects: [] ) ] spids: [6951 6966] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)} ) ] spids: [7065 7086] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName HG_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<hg>} {<cat>} {<-R>} {($ Id.VSub_DollarName CWS)} {<-r>} {($ Id.VSub_DollarName HG_PARENT)} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ] spids: [7151 7165] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName old_mode)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<chmod>} {($ Id.VSub_DollarName old_mode)} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ] spids: [7182 7193] ) ] else_action: [ (C {<print>} {<-u2>} { (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) ) } ) ] redirects: [] ) ] redirects: [] ) ] spids: [7104 7115] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_old_new_git body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))}) (C {<typeset>} {<Id.Lit_VarLike 'o_mode='>}) (C {<typeset>} {<Id.Lit_VarLike 'n_mode='>}) (C {<typeset>} {<Id.Lit_VarLike 'o_object='>}) (C {<typeset>} {<Id.Lit_VarLike 'n_object='>}) (C {<typeset>} {<Id.Lit_VarLike 'OWD='> ($ Id.VSub_DollarName PWD)}) (C {<typeset>} {<file>}) (C {<typeset>} {<type>}) (C {<cd>} {($ Id.VSub_DollarName CWS)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName PDIR))} right: {(DQ <.>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PF))} spids: [7337] ) ] redirects: [] ) ] spids: [7317 7334] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF))} spids: [7346] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)} ) ] spids: [7358 7379] ) ] else_action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName GIT)} {<ls-tree>} {($ Id.VSub_DollarName GIT_PARENT)} {($ Id.VSub_DollarName file)} ) (C {<read>} {<o_mode>} {<type>} {<o_object>} {<junk>}) ] negated: F stderr_indices: [] ) (command.Simple words: [ {($ Id.VSub_DollarName GIT)} {<cat-file>} {($ Id.VSub_DollarName type)} {($ Id.VSub_DollarName o_object)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)} ) ] spids: [7440 7454] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName o_mode)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o_mode='> name:o_mode) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name o_mode> var_name: o_mode suffix_op: (suffix_op.PatSub pat: {<Id.Lit_Other '?'> <Id.Lit_Other '?'> <Id.Lit_Other '?'>} replace: {} replace_mode: Id.Undefined_Tok slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } spids: [7484] ) ] redirects: [] ) (C {<chmod>} {($ Id.VSub_DollarName o_mode)} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file)} ) ] spids: [7466 7477] ) ] else_action: [ (C {<print>} {<-u2>} { (DQ <'ERROR: set mode of '> ($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName file) ) } ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName DIR))} right: {(DQ <.>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName F))} spids: [7562] ) ] redirects: [] ) ] spids: [7542 7559] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F))} spids: [7571] ) ] redirects: [] ) ] redirects: [] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName file)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} ) (C {<chmod>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<get_file_mode>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) right: <Id.Eof_RParen _> ) } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} ) ] spids: [7592 7607] ) ] else_action: [] redirects: [] ) (C {<cd>} {($ Id.VSub_DollarName OWD)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_old_new_subversion body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName PWS)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)} ) ] spids: [7723 7744] ) ] else_action: [ (command.Pipeline children: [ (C {<svn>} {<status>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) (C {<read>} {<stat>} {<file>}) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName stat)} right: {(DQ <A>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<svn>} {<cat>} {<-r>} {<BASE>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ] more_env: [] do_fork: T ) ] spids: [7788 7803] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_old_new_unknown body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_Number 2))}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName CWS) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) (C {<cp>} {($ Id.VSub_DollarName PWS) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)} ) ] spids: [7926 7941] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_old_new body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'WDIR='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'PWS='> ($ Id.VSub_Number 2)}) (C {<typeset>} {<Id.Lit_VarLike 'PDIR='> ($ Id.VSub_Number 3)}) (C {<typeset>} {<Id.Lit_VarLike 'PF='> ($ Id.VSub_Number 4)}) (C {<typeset>} {<Id.Lit_VarLike 'CWS='> ($ Id.VSub_Number 5)}) (C {<typeset>} {<Id.Lit_VarLike 'DIR='> ($ Id.VSub_Number 6)}) (C {<typeset>} {<Id.Lit_VarLike 'F='> ($ Id.VSub_Number 7)}) (C {<typeset>} {<Id.Lit_VarLike 'olddir='> (DQ ($ Id.VSub_DollarName WDIR) <'/raw_files/old'>)} ) (C {<typeset>} {<Id.Lit_VarLike 'newdir='> (DQ ($ Id.VSub_DollarName WDIR) <'/raw_files/new'>)} ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR)}) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <mercurial>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<build_old_new_mercurial>} {(DQ ($ Id.VSub_DollarName olddir))} {(DQ ($ Id.VSub_DollarName newdir))} ) ] spids: [8063 8078] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <git>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<build_old_new_git>} {(DQ ($ Id.VSub_DollarName olddir))} {(DQ ($ Id.VSub_DollarName newdir))} ) ] spids: [8092 8107] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <subversion>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<build_old_new_subversion>} {(DQ ($ Id.VSub_DollarName olddir))} {(DQ ($ Id.VSub_DollarName newdir))} ) ] spids: [8121 8136] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <unknown>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<build_old_new_unknown>} {(DQ ($ Id.VSub_DollarName olddir))} {(DQ ($ Id.VSub_DollarName newdir))} ) ] spids: [8150 8165] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName olddir) <'/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF) } ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName newdir) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) } ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'*** Error: file not in parent or child'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [8183 8212] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<print>} { (SQ <'Usage:\\twebrev [common-options]\n'> <'\twebrev [common-options] ( <file> | - )\n'> <'\twebrev [common-options] -w <wx file>\n'> <'\n'> <'Options:\n'> <'\t-c <revision>: generate webrev for single revision (git only)\n'> <'\t-C <filename>: Use <filename> for the information tracking configuration.\n'> <'\t-D: delete remote webrev\n'> <'\t-h <revision>: specify "head" revision for comparison (git only)\n'> <'\t-i <filename>: Include <filename> in the index.html file.\n'> <'\t-I <filename>: Use <filename> for the information tracking registry.\n'> <'\t-n: do not generate the webrev (useful with -U)\n'> <'\t-O: Print bugids/arc cases suitable for OpenSolaris.\n'> <'\t-o <outdir>: Output webrev to specified directory.\n'> <'\t-p <compare-against>: Use specified parent wkspc or basis for comparison\n'> <'\t-t <remote_target>: Specify remote destination for webrev upload\n'> <'\t-U: upload the webrev to remote destination\n'> <'\t-w <wxfile>: Use specified wx active file.\n'> <'\n'> <'Environment:\n'> <'\tWDIR: Control the output directory.\n'> <'\tWEBREV_TRASH_DIR: Set directory for webrev delete.\n'> <'\n'> <'SCM Environment:\n'> <'\tCODEMGR_WS: Workspace location.\n'> <'\tCODEMGR_PARENT: Parent workspace location.\n'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<trap>} {(DQ <'rm -f /tmp/'> ($ Id.VSub_Dollar '$') <'.* ; exit'>)} {<0>} {<1>} {<2>} {<3>} {<15>}) (C {<set>} {<Id.Lit_Other '+'> <o>} {<noclobber>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<'/bin/dirname'>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<whence>} {($ Id.VSub_Number 0)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) } spids: [8337] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WDIFF)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIFF='> name:WDIFF) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<wdiff>}) right: <Id.Backtick_Right '`'> ) } spids: [8363] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WX)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WX='> name:WX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<wx>}) right: <Id.Backtick_Right '`'> ) } spids: [8382] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName HG_ACTIVE)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HG_ACTIVE='> name:HG_ACTIVE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<hg-active>}) right: <Id.Backtick_Right '`'> ) } spids: [8401] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName GIT)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT='> name:GIT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<git>}) right: <Id.Backtick_Right '`'> ) } spids: [8420] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName WHICH_SCM)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHICH_SCM='> name:WHICH_SCM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<which_scm>}) right: <Id.Backtick_Right '`'> ) } spids: [8439] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName CODEREVIEW)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CODEREVIEW='> name:CODEREVIEW) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<codereview>}) right: <Id.Backtick_Right '`'> ) } spids: [8458] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName PS2PDF)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PS2PDF='> name:PS2PDF) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<ps2pdf>}) right: <Id.Backtick_Right '`'> ) } spids: [8477] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName PERL)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PERL='> name:PERL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<perl>}) right: <Id.Backtick_Right '`'> ) } spids: [8496] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName RSYNC)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RSYNC='> name:RSYNC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<rsync>}) right: <Id.Backtick_Right '`'> ) } spids: [8515] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SCCS)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCCS='> name:SCCS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<sccs>}) right: <Id.Backtick_Right '`'> ) } spids: [8534] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<nawk>}) right: <Id.Backtick_Right '`'> ) } spids: [8553] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<gawk>}) right: <Id.Backtick_Right '`'> ) } spids: [8572] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName AWK)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<awk>}) right: <Id.Backtick_Right '`'> ) } spids: [8591] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SCP)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCP='> name:SCP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<scp>}) right: <Id.Backtick_Right '`'> ) } spids: [8610] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SED)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<sed>}) right: <Id.Backtick_Right '`'> ) } spids: [8629] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SFTP)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFTP='> name:SFTP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<sftp>}) right: <Id.Backtick_Right '`'> ) } spids: [8648] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName SORT)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SORT='> name:SORT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<sort>}) right: <Id.Backtick_Right '`'> ) } spids: [8667] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName MKTEMP)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MKTEMP='> name:MKTEMP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<mktemp>}) right: <Id.Backtick_Right '`'> ) } spids: [8686] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName GREP)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GREP='> name:GREP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<grep>}) right: <Id.Backtick_Right '`'> ) } spids: [8705] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName FIND)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FIND='> name:FIND) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<find>}) right: <Id.Backtick_Right '`'> ) } spids: [8724] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName MANDOC)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MANDOC='> name:MANDOC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<mandoc>}) right: <Id.Backtick_Right '`'> ) } spids: [8743] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName COL)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COL='> name:COL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<look_for_prog>} {<col>}) right: <Id.Backtick_Right '`'> ) } spids: [8762] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIR='> name:TRASH_DIR) op: assign_op.Equal rhs: {(DQ <.trash>)} spids: [8775] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName WEBREV_TRASH_DIR)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIR='> name:TRASH_DIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WEBREV_TRASH_DIR)} spids: [8790] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName PERL)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Error: No perl interpreter found. Exiting.'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [8794 8807] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WHICH_SCM)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Error: Could not find which_scm. Exiting.'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [8826 8839] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName CODEREVIEW)}) ) redirects: [] ) (C {<print>} {<-u2>} {(DQ <'WARNING: codereview(1) not found.'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName PS2PDF)}) ) redirects: [] ) (C {<print>} {<-u2>} {(DQ <'WARNING: ps2pdf(1) not found.'>)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName WDIFF)}) ) redirects: [] ) (C {<print>} {<-u2>} {(DQ <'WARNING: wdiff not found.'>)}) ] ) (C {<integer>} {<TOTL>} {<TINS>} {<TDEL>} {<TMOD>} {<TUNC>}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'DEFAULT_REMOTE_HOST='> (DQ <cr.opensolaris.org>)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'rsync_prefix='> (DQ <'rsync://'>)}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'ssh_prefix='> (DQ <'ssh://'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cflag='> name:cflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8984] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Cflag='> name:Cflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8986] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Dflag='> name:Dflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8988] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_mode='> name:flist_mode) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8990] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_file='> name:flist_file) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8992] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hflag='> name:hflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8994] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8996] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Iflag='> name:Iflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [8998] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lflag='> name:lflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9000] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Nflag='> name:Nflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9002] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nflag='> name:nflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9004] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Oflag='> name:Oflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9006] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oflag='> name:oflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9008] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pflag='> name:pflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9010] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tflag='> name:tflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9012] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uflag='> name:uflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9014] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Uflag='> name:Uflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9016] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wflag='> name:wflag) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9018] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote_target='> name:remote_target) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [9020] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {(DQ <'c:C:Dh:i:I:lnNo:Op:t:Uw'>)} {<opt>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName opt)} arms: [ (case_arm pat_list: [{<c>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cflag='> name:cflag) op: assign_op.Equal rhs: {<1>} spids: [9058] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_head='> name: codemgr_head ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9062] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG) <Id.Lit_TildeLike '~1'>} spids: [9066] ) ] redirects: [] ) ] spids: [9055 9056 9069 -1] ) (case_arm pat_list: [{<C>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Cflag='> name:Cflag) op: assign_op.Equal rhs: {<1>} spids: [9076] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITSCONF='> name:ITSCONF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9080] ) ] redirects: [] ) ] spids: [9073 9074 9082 -1] ) (case_arm pat_list: [{<D>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Dflag='> name:Dflag) op: assign_op.Equal rhs: {<1>} spids: [9089] ) ] redirects: [] ) ] spids: [9086 9087 9091 -1] ) (case_arm pat_list: [{<h>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hflag='> name:hflag) op: assign_op.Equal rhs: {<1>} spids: [9098] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_head='> name: codemgr_head ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9102] ) ] redirects: [] ) ] spids: [9095 9096 9104 -1] ) (case_arm pat_list: [{<i>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag) op: assign_op.Equal rhs: {<1>} spids: [9111] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INCLUDE_FILE='> name: INCLUDE_FILE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9115] ) ] redirects: [] ) ] spids: [9108 9109 9117 -1] ) (case_arm pat_list: [{<I>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Iflag='> name:Iflag) op: assign_op.Equal rhs: {<1>} spids: [9124] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ITSREG='> name:ITSREG) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9128] ) ] redirects: [] ) ] spids: [9121 9122 9130 -1] ) (case_arm pat_list: [{<N>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Nflag='> name:Nflag) op: assign_op.Equal rhs: {<1>} spids: [9137] ) ] redirects: [] ) ] spids: [9134 9135 9139 -1] ) (case_arm pat_list: [{<n>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nflag='> name:nflag) op: assign_op.Equal rhs: {<1>} spids: [9146] ) ] redirects: [] ) ] spids: [9143 9144 9148 -1] ) (case_arm pat_list: [{<O>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Oflag='> name:Oflag) op: assign_op.Equal rhs: {<1>} spids: [9155] ) ] redirects: [] ) ] spids: [9152 9153 9157 -1] ) (case_arm pat_list: [{<o>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oflag='> name:oflag) op: assign_op.Equal rhs: {<1>} spids: [9164] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OPTARG> var_name: OPTARG suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9172] ) ] redirects: [] ) ] spids: [9161 9162 9178 -1] ) (case_arm pat_list: [{<p>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pflag='> name:pflag) op: assign_op.Equal rhs: {<1>} spids: [9185] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9189] ) ] redirects: [] ) ] spids: [9182 9183 9191 -1] ) (case_arm pat_list: [{<t>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tflag='> name:tflag) op: assign_op.Equal rhs: {<1>} spids: [9198] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'remote_target='> name: remote_target ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [9202] ) ] redirects: [] ) ] spids: [9195 9196 9204 -1] ) (case_arm pat_list: [{<U>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Uflag='> name:Uflag) op: assign_op.Equal rhs: {<1>} spids: [9211] ) ] redirects: [] ) ] spids: [9208 9209 9213 -1] ) (case_arm pat_list: [{<w>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wflag='> name:wflag) op: assign_op.Equal rhs: {<1>} spids: [9220] ) ] redirects: [] ) ] spids: [9217 9218 9222 -1] ) (case_arm pat_list: [{<Id.Lit_QMark '?'>}] action: [(C {<usage>})] spids: [9226 9227 9230 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLIST='> name:FLIST) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist>} spids: [9238] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName wflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName lflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>})] spids: [9244 9261] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName nflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Uflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'it does not make sense to skip webrev generation'>)} {(DQ <'without -U'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [9272 9289] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName tflag)} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Uflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Dflag)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'remote target has to be used only for upload or delete'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [9312 9335] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [(C {($ Id.VSub_DollarName WHICH_SCM)}) (C {<read>} {<SCM_MODE>} {<junk>})] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <mercurial>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name PWD)} right: {(DQ <'usr/closed'>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'testparent='> name:testparent) op: assign_op.Equal rhs: {(${ Id.VSub_Name CODEMGR_WS) <'/usr/closed'>} spids: [9452] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName Oflag))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'OpenSolaris output not permitted with'>)} {(DQ <'usr/closed changes'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [9471 9484] ) ] else_action: [] redirects: [] ) ] spids: [9432 9449] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'testparent='> name:testparent) op: assign_op.Equal rhs: {(${ Id.VSub_Name CODEMGR_WS)} spids: [9513] ) ] redirects: [] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_ws)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName testparent)} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<hg>} {<root>} {<-R>} {($ Id.VSub_DollarName testparent)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [9540] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_ws)} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<hg>} {<root>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [9565] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName codemgr_ws)} spids: [9576] ) ] redirects: [] ) ] spids: [9386 9401] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <git>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_ws)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_WS)} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {($ Id.VSub_DollarName GIT)} {<--git-dir> <Id.Lit_Equals '='> ($ Id.VSub_DollarName CODEMGR_WS) <'/.git'> } {<rev-parse>} {<--git-dir>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [9635] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_ws)} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{($ Id.VSub_DollarName GIT)} {<rev-parse>} {<--git-dir>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [9667] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName codemgr_ws))} right: {(DQ <.git>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name codemgr_ws))} spids: [9701] ) ] redirects: [] ) ] spids: [9681 9698] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName codemgr_ws))} right: {<Id.Lit_Other '*'> (DQ <'/.git'>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'codemgr_ws='> name:codemgr_ws) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName codemgr_ws)}) right: <Id.Eof_RParen _> ) } spids: [9738] ) ] redirects: [] ) ] spids: [9717 9735] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName codemgr_ws))} spids: [9752] ) ] redirects: [] ) ] spids: [9579 9594] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <subversion>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_WS)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName CODEMGR_WS) <'/.svn'>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_WS)} spids: [9816] ) ] redirects: [] ) ] spids: [9795 9813] ) ] else_action: [ (command.Pipeline children: [ (C {<svn>} {<info>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<line>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName line)} right: {(DQ <'URL: '>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'url='> name: url ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name line> var_name: line suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'URL: '>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9858] ) ] redirects: [] ) ] spids: [9839 9855] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName line)} right: {(DQ <'Repository Root: '>) <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'repo='> name: repo ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name line> var_name: line suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'Repository Root: '>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9885] ) ] redirects: [] ) ] spids: [9866 9882] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rel='> name:rel) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name url> var_name: url suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName repo)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9900] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PWD> var_name: PWD suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {($ Id.VSub_DollarName rel)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [9908] ) ] redirects: [] ) ] redirects: [] ) ] spids: [9757 9772] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name CWS)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CODEMGR_WS> var_name: CODEMGR_WS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) } spids: [9949] ) ] redirects: [] ) ] spids: [9933 9946] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [do_everything] iterable: (for_iter.Words words:[{<1>}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName nflag)} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Uflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Dflag)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [10001 10028] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName pflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName codemgr_parent) <'/raw_files/new'>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'parent_webrev='> name: parent_webrev ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName codemgr_parent))}) right: <Id.Eof_RParen _> ) } spids: [10069] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName codemgr_parent) <'/raw_files/new'>)} ) right: <Id.Eof_RParen _> ) } spids: [10081] ) ] redirects: [] ) ] spids: [10048 10066] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName wflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName lflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<shift>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName OPTIND)} right: {<Id.Lit_Digits 1>} ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number 1)} right: {(DQ <->)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName FLIST)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_mode='> name: flist_mode ) op: assign_op.Equal rhs: {(DQ <stdin>)} spids: [10154] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_done='> name: flist_done ) op: assign_op.Equal rhs: {<1>} spids: [10160] ) ] redirects: [] ) (C {<shift>}) ] spids: [10129 10144] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_Number 1)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_Number 1)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ ($ Id.VSub_Number 1) <': no such file or not readable'>)} ) (C {<usage>}) ] spids: [10181 10194] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cat>} {($ Id.VSub_Number 1)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName FLIST)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_mode='> name: flist_mode ) op: assign_op.Equal rhs: {(DQ <file>)} spids: [10222] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_file='> name: flist_file ) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [10228] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_done='> name: flist_done ) op: assign_op.Equal rhs: {<1>} spids: [10232] ) ] redirects: [] ) (C {<shift>}) ] spids: [10167 10178] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_mode='> name: flist_mode ) op: assign_op.Equal rhs: {(DQ <auto>)} spids: [10242] ) ] redirects: [] ) ] redirects: [] ) ] spids: [10096 10113] ) ] else_action: [] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName SCM_MODE))} arms: [ (case_arm pat_list: [{<mercurial>} {<git>} {<subversion>}] action: [] spids: [10273 10278 10281 -1] ) (case_arm pat_list: [{<unknown>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName flist_mode)} right: {(DQ <auto>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Unable to determine SCM in use and file list not specified'>)} ) (C {<print>} {<-u2>} {(DQ <'See which_scm(1) for SCM detection information.'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [10287 10302] ) ] else_action: [] redirects: [] ) ] spids: [10283 10284 10331 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName flist_mode)} right: {(DQ <auto>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} { (DQ <'Unsupported SCM in use ('> ($ Id.VSub_DollarName SCM_MODE) <') and file list not specified'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [10337 10352] ) ] else_action: [] redirects: [] ) ] spids: [10333 10334 10374 -1] ) ] redirects: [] ) (C {<print>} {<-u2>} {(DQ <' SCM detected: '> ($ Id.VSub_DollarName SCM_MODE))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName wflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<shift>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName OPTIND)} right: {<Id.Lit_Digits 1>} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wxfile='> name:wxfile) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [10439] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName wxfile)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_WS)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName CODEMGR_WS) <'/wx/active'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wxfile='> name: wxfile ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_WS) <'/wx/active'>} spids: [10478] ) ] redirects: [] ) ] spids: [10463 10475] ) ] else_action: [] redirects: [] ) ] spids: [10443 10460] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName wxfile)} ) redirects: [] ) (C {<print>} {<-u2>} {(DQ <'wx file not specified, and could not '>)} { (DQ <'be auto-detected (check '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'CODEMGR_WS)'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName wxfile)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ ($ Id.VSub_DollarName wxfile) <': no such file or not readable'>)} ) (C {<usage>}) ] spids: [10524 10537] ) ] else_action: [] redirects: [] ) (C {<print>} {<-u2>} { (DQ <' File list from: wx \'active\' file \''> ($ Id.VSub_DollarName wxfile) <'\' ... '> <Id.Lit_BadBackslash '\\'> <c> ) } ) (C {<flist_from_wx>} {($ Id.VSub_DollarName wxfile)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flist_done='> name:flist_done) op: assign_op.Equal rhs: {<1>} spids: [10575] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_Star '*'))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<shift>})] spids: [10579 10592] ) ] else_action: [] redirects: [] ) ] spids: [10389 10400] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName flist_mode)} right: {(DQ <stdin>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {<-u2>} {(DQ <' File list from: standard input'>)})] spids: [10600 10615] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName flist_mode)} right: {(DQ <file>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <' File list from: '> ($ Id.VSub_DollarName flist_file))}) ] spids: [10626 10641] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'WARNING: unused arguments: '> ($ Id.VSub_Star '*'))}) ] spids: [10656 10669] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <mercurial>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_parent)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_PARENT)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)} spids: [10755] ) ] redirects: [] ) ] spids: [10735 10752] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_parent)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<hg>} {<path>} {<-R>} {($ Id.VSub_DollarName codemgr_ws)} {<default>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [10777] ) ] redirects: [] ) ] spids: [10763 10774] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName codemgr_parent)} spids: [10800] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'real_parent='> name: real_parent ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<hg>} {<path>} {<-R>} {($ Id.VSub_DollarName codemgr_ws)} {<default>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [10835] ) ] redirects: [] ) ] spids: [10821 10832] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'real_parent='> name: real_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PWS)} spids: [10855] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName flist_done)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<flist_from_mercurial>} {($ Id.VSub_DollarName CWS)} {($ Id.VSub_DollarName real_parent)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_done='> name: flist_done ) op: assign_op.Equal rhs: {<1>} spids: [10908] ) ] redirects: [] ) ] spids: [10887 10898] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName flist_done)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<env_from_flist>})] spids: [10940 10951] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName HG_ACTIVE)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName wxfile)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <' Comments from: hg-active -p '> ($ Id.VSub_DollarName real_parent) <' ...'> <Id.Lit_BadBackslash '\\'> <c> ) } ) (C {<hg_active_wxfile>} {($ Id.VSub_DollarName CWS)} {($ Id.VSub_DollarName real_parent)} ) (C {<print>} {(DQ <' Done.'>)}) ] spids: [10973 10990] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName HG_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<eval>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} {($ Id.VSub_DollarName wxfile)} ) (C {($ Id.VSub_DollarName GREP)} {<Id.Lit_VarLike 'HG_PARENT='>} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ) ] spids: [11042 11053] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName HG_PARENT)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName HG_ACTIVE)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName HG_ACTIVE)} {<-w>} {($ Id.VSub_DollarName codemgr_ws)} {<-p>} {($ Id.VSub_DollarName real_parent)} ) (C {<eval>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} ) (C {($ Id.VSub_DollarName GREP)} {<Id.Lit_VarLike 'HG_PARENT='>} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ) ] negated: F stderr_indices: [] ) ] spids: [11105 11122] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName HG_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Error: Cannot discover parent revision'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [11162 11173] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pnode='> name:pnode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<trim_digest>} {($ Id.VSub_DollarName HG_PARENT)}) right: <Id.Eof_RParen _> ) } spids: [11194] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PRETTY_PWS='> name:PRETTY_PWS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWS) <' (at '> (${ Id.VSub_Name pnode) <')'>)} spids: [11202] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cnode='> name:cnode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<hg>} {<parent>} {<-R>} {($ Id.VSub_DollarName codemgr_ws)} {<--template>} {(SQ <'{node|short}'>)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [11215] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PRETTY_CWS='> name:PRETTY_CWS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CWS) <' (at '> (${ Id.VSub_Name cnode) <')'>) <Id.Lit_RBrace '}'> } spids: [11238] ) ] redirects: [] ) ] spids: [10696 10711] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <git>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName cflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName hflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'head_rev='> name: head_rev ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName GIT)} {<rev-parse>} {<--verify>} {<--quiet>} {(DQ ($ Id.VSub_DollarName codemgr_head))} ) right: <Id.Eof_RParen _> ) } spids: [11293] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName head_rev)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Error: bad revision '> (${ Id.VSub_Name codemgr_head))} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [11309 11320] ) ] else_action: [] redirects: [] ) ] spids: [11273 11290] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_head)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_head='> name: codemgr_head ) op: assign_op.Equal rhs: {(DQ <HEAD>)} spids: [11361] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] spids: [11347 11358] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_parent)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName CODEMGR_PARENT)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)} spids: [11400] ) ] redirects: [] ) ] spids: [11380 11397] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'this_branch='> name: this_branch ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName GIT)} {<branch>}) (C {<nawk>} {(SQ <'$1 == "*" { print $2 }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [11416] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'par_branch='> name:par_branch) op: assign_op.Equal rhs: {(DQ <'origin/master'>)} spids: [11432] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName this_branch)} right: {(DQ <'(no branch)'>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName GIT)} {<for-each-ref>} {<--format> <Id.Lit_Equals '='> (SQ <'%(refname:short) %(upstream:short)'>) } {<'refs/heads/'>} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<local>} {<remote>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName local))} right: { (DQ ($ Id.VSub_DollarName this_branch) ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'par_branch='> name: par_branch ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName remote))} spids: [11513] ) ] redirects: [] ) ] spids: [11493 11510] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] spids: [11443 11458] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName codemgr_parent)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'codemgr_parent='> name: codemgr_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName par_branch)} spids: [11543] ) ] redirects: [] ) ] spids: [11529 11540] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName codemgr_parent)} spids: [11550] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'real_parent='> name: real_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName par_branch)} spids: [11585] ) ] redirects: [] ) ] spids: [11571 11582] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'real_parent='> name: real_parent ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PWS)} spids: [11592] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName flist_done)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<flist_from_git>} {(DQ ($ Id.VSub_DollarName codemgr_head))} {(DQ ($ Id.VSub_DollarName real_parent))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flist_done='> name: flist_done ) op: assign_op.Equal rhs: {<1>} spids: [11625] ) ] redirects: [] ) ] spids: [11600 11611] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName flist_done)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<env_from_flist>})] spids: [11649 11660] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName wxfile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' Comments from: git...'> <Id.Lit_BadBackslash '\\'> <c>)} ) (C {<git_wxfile>} {(DQ ($ Id.VSub_DollarName codemgr_head))} {(DQ ($ Id.VSub_DollarName real_parent))} ) (C {<print>} {(DQ <' Done.'>)}) ] spids: [11686 11697] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName GIT_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_PARENT='> name: GIT_PARENT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName GIT)} {<merge-base>} {(DQ ($ Id.VSub_DollarName real_parent))} {(DQ ($ Id.VSub_DollarName codemgr_head))} ) right: <Id.Eof_RParen _> ) } spids: [11745] ) ] redirects: [] ) ] spids: [11731 11742] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName GIT_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'Error: Cannot discover parent revision'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [11764 11775] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pnode='> name:pnode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<trim_digest>} {($ Id.VSub_DollarName GIT_PARENT)}) right: <Id.Eof_RParen _> ) } spids: [11796] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName cflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_PWS='> name: PRETTY_PWS ) op: assign_op.Equal rhs: {(DQ <'previous revision (at '> (${ Id.VSub_Name pnode) <')'>)} spids: [11819] ) ] redirects: [] ) ] spids: [11805 11816] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName real_parent)} right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName real_parent)}) (C {<cut>} {<'-d/'>} {<-f1>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [11847] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName GIT)} {<remote>} {<-v>}) (C {($ Id.VSub_DollarName AWK)} {(SQ <'$1 == "'>) ($ Id.VSub_DollarName origin) (SQ <'" { print $2; exit }'>) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [11863] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_PWS='> name: PRETTY_PWS ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name PWS) <' ('> (${ Id.VSub_Name origin) <' at '> (${ Id.VSub_Name pnode) <')'> ) } spids: [11887] ) ] redirects: [] ) ] spids: [11829 11844] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName pflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName parent_webrev)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_PWS='> name: PRETTY_PWS ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name CWS) <' (explicit revision '> (${ Id.VSub_Name pnode) <')'> ) } spids: [11924] ) ] redirects: [] ) ] spids: [11904 11921] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_PWS='> name: PRETTY_PWS ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWS) <' (at '> (${ Id.VSub_Name pnode) <')'>)} spids: [11940] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cnode='> name:cnode) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {($ Id.VSub_DollarName GIT)} {<--git-dir> <Id.Lit_Equals '='> (${ Id.VSub_Name codemgr_ws) <'/.git'> } {<rev-parse>} {<--short> <Id.Lit_Equals '='> <12>} {(${ Id.VSub_Name codemgr_head)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [11957] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName cflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName hflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_CWS='> name: PRETTY_CWS ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name CWS) <' (explicit head at '> (${ Id.VSub_Name cnode) <')'> ) } spids: [12006] ) ] redirects: [] ) ] spids: [11986 12003] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PRETTY_CWS='> name: PRETTY_CWS ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CWS) <' (at '> (${ Id.VSub_Name cnode) <')'>)} spids: [12022] ) ] redirects: [] ) ] redirects: [] ) ] spids: [11251 11266] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <subversion>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName codemgr_parent)} ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName codemgr_parent)} spids: [12082] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName flist_done)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName flist_mode)} right: {(DQ <auto>)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<flist_from_subversion>} {($ Id.VSub_DollarName CWS)} {($ Id.VSub_DollarName OLDPWD)} ) ] spids: [12087 12108] ) ] else_action: [] redirects: [] ) ] spids: [12037 12052] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <unknown>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {<-u2>} {(DQ <' Unknown type of SCM in use'>)})] spids: [12123 12138] ) ] else_action: [ (C {<print>} {<-u2>} {(DQ <' Unsupported SCM in use: '> ($ Id.VSub_DollarName SCM_MODE))} ) ] redirects: [] ) (C {<env_from_flist>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName CODEMGR_WS)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'SCM not detected/supported and '>)} {(DQ <'CODEMGR_WS not specified'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [12171 12182] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName CODEMGR_PARENT)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} {(DQ <'SCM not detected/supported and '>)} {(DQ <'CODEMGR_PARENT not specified'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [12209 12220] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CWS='> name:CWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_WS)} spids: [12247] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PWS='> name:PWS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CODEMGR_PARENT)} spids: [12251] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName iflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_r child: {(DQ ($ Id.VSub_DollarName CWS) <'/webrev-info'>)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'iflag='> name:iflag) op: assign_op.Equal rhs: {<1>} spids: [12292] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INCLUDE_FILE='> name: INCLUDE_FILE ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName CWS) <'/webrev-info'>)} spids: [12296] ) ] redirects: [] ) ] spids: [12269 12289] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName iflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName INCLUDE_FILE)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-u2>} { (DQ <'include file \''> ($ Id.VSub_DollarName INCLUDE_FILE) <'\' does not exist or is'> ) } {(DQ <'not readable.'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [12319 12332] ) ] else_action: [ (C {<cp>} {($ Id.VSub_DollarName INCLUDE_FILE)} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.include>} ) ] redirects: [] ) ] spids: [12305 12316] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Nflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [12393 12404] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<-A>} {<itsinfo>}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'its_sed_script='> <'/tmp/'> ($ Id.VSub_Dollar '$') <.its_sed>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'valid_prefixes='> name:valid_prefixes) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [12427] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName nflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFREGFILE='> name:DEFREGFILE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<'/bin/dirname'>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<whence>} {($ Id.VSub_Number 0)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Eof_RParen _> ) <'/../etc/its.reg'> ) } spids: [12443] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Iflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REGFILE='> name: REGFILE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ITSREG)} spids: [12474] ) ] redirects: [] ) ] spids: [12460 12471] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName HOME) <'/.its.reg'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REGFILE='> name: REGFILE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HOME) <'/.its.reg'>} spids: [12493] ) ] redirects: [] ) ] spids: [12478 12490] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REGFILE='> name:REGFILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFREGFILE)} spids: [12501] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName REGFILE)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'ERROR: Unable to read database registry file '> ($ Id.VSub_DollarName REGFILE) ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [12508 12521] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName REGFILE)} right: {($ Id.VSub_DollarName DEFREGFILE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' its.reg from: '> ($ Id.VSub_DollarName REGFILE))}) ] spids: [12537 12550] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'/^#/d'>)} {<-e>} {(SQ <'/^[ \t]*$/d'>)} {($ Id.VSub_DollarName REGFILE)} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<LINE>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LINE> var_name: LINE suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [12594] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'value='> name: value ) op: assign_op.Equal rhs: { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LINE> var_name: LINE suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <'='>} ) right: <Id.Right_DollarBrace '}'> ) ) } spids: [12603] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName name)} right: {<PREFIX>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'p='> name: p ) op: assign_op.Equal rhs: {(${ Id.VSub_Name value)} spids: [12631] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'valid_prefixes='> name: valid_prefixes ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name p) <' '> (${ Id.VSub_Name valid_prefixes) ) } spids: [12637] ) ] redirects: [] ) ] spids: [12615 12628] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_> (${ Id.VSub_Name name))} ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name value))} spids: [12652] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFCONFFILE='> name: DEFCONFFILE ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<'/bin/dirname'>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<whence>} {($ Id.VSub_Number 0)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Eof_RParen _> ) <'/../etc/its.conf'> ) } spids: [12688] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFFILES='> name:CONFFILES) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFCONFFILE)} spids: [12705] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName HOME) <'/.its.conf'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFFILES='> name: CONFFILES ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name CONFFILES) <' '> ($ Id.VSub_DollarName HOME) <'/.its.conf'> ) } spids: [12724] ) ] redirects: [] ) ] spids: [12709 12721] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Cflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONFFILES='> name: CONFFILES ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CONFFILES) <' '> (${ Id.VSub_Name ITSCONF))} spids: [12752] ) ] redirects: [] ) ] spids: [12738 12749] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'its_domain='> name:its_domain) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [12767] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'its_priority='> name: its_priority ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [12770] ) ] redirects: [] ) (command.ForEach iter_names: [cf] iterable: (for_iter.Words words:[{(${ Id.VSub_Name CONFFILES)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName cf)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'ERROR: Unable to read database configuration file '> ($ Id.VSub_DollarName cf) ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [12787 12800] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName cf)} right: {($ Id.VSub_DollarName DEFCONFFILE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' its.conf: reading '> ($ Id.VSub_DollarName cf))} ) ] spids: [12816 12829] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'/^#/d'>)} {<-e>} {(SQ <'/^[ \t]*$/d'>)} {($ Id.VSub_DollarName cf)} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<LINE>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [(C {<eval>} {(DQ (${ Id.VSub_Name LINE))})] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] ) redirects: [] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{(${ Id.VSub_Name valid_prefixes)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(DQ (${ Id.VSub_Name p) <_INFO>)} ) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_INFO>)} ) op: assign_op.Equal rhs: {(${ Id.VSub_Name p)} spids: [12965] ) ] redirects: [] ) ] spids: [12941 12962] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_INFO>)} ) op: assign_op.Equal rhs: { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(DQ (${ Id.VSub_Name p) <_INFO>)} ) right: <Id.Right_DollarBrace '}'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'>'> (${ Id.VSub_Name p) <'</a>'> ) } spids: [12988] ) ] redirects: [] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Oflag)} ) redirects: [] ) (command.ForEach iter_names: [d] iterable: (for_iter.Words words:[{(${ Id.VSub_Name its_domain)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: { (DQ (${ Id.VSub_Name p) <_INTERNAL_URL_> (${ Id.VSub_Name d) ) } ) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_URL>)} ) op: assign_op.Equal rhs: { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _INTERNAL_URL_ > (${ Id.VSub_Name d) } ) right: <Id.Right_DollarBrace '}'> ) ) } spids: [13123] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [13096 13120] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(DQ (${ Id.VSub_Name p) <_URL>)} ) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_URL>)} ) op: assign_op.Equal rhs: { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _EXTERNAL_URL> } ) right: <Id.Right_DollarBrace '}'> ) ) } spids: [13187] ) ] redirects: [] ) ] spids: [13163 13184] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'itsinfo['> name: itsinfo index: {(DQ (${ Id.VSub_Name p) <_URL>)} ) op: assign_op.Equal rhs: { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>} ) right: <Id.Right_DollarBrace '}'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'>&</a>'> ) } spids: [13231] ) ] redirects: [] ) (command.Simple words: [ {<print>} { (DQ <'/^'> (${ Id.VSub_Name p) <'[: \t]/ {\n'> <'\t\t\t\ts;'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>} ) right: <Id.Right_DollarBrace '}'> ) <';'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>} ) right: <Id.Right_DollarBrace '}'> ) <';g\n'> <'\t\t\t\ts;^'> (${ Id.VSub_Name p) <';'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _INFO>} ) right: <Id.Right_DollarBrace '}'> ) <';\n'> <'\t\t\t}'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name its_sed_script)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{(${ Id.VSub_Name its_priority)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<print>} { (DQ <'/^'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>} ) right: <Id.Right_DollarBrace '}'> ) <'[ \t]/ {\n'> <'\t\t\t\ts;^'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _REGEX>} ) right: <Id.Right_DollarBrace '}'> ) <';'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name itsinfo> var_name: itsinfo bracket_op: (bracket_op.ArrayIndex expr: {(${ Id.VSub_Name p) <Id.Lit_ArithVarLike _URL>} ) right: <Id.Right_DollarBrace '}'> ) <';g\n'> <'\t\t\t}'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name its_sed_script)} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [12429 12440] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name WDIR> var_name: WDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName CWS) <Id.Lit_Slash '/'> <webrev>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13432] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName oflag)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WNAME='> name:WNAME) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name WDIR> var_name: WDIR suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13468] ) ] redirects: [] ) ] spids: [13454 13465] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WNAME='> name:WNAME) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CWS> var_name: CWS suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13479] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Dflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Uflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName tflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'remote_target='> name: remote_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name DEFAULT_REMOTE_HOST) <Id.Lit_Colon ':'> (${ Id.VSub_Name WNAME) } spids: [13543] ) ] redirects: [] ) ] spids: [13529 13540] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name remote_target))} right: {(${ Id.VSub_Name rsync_prefix) <Id.Lit_Other '*'>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name remote_target))} right: {(${ Id.VSub_Name ssh_prefix) <Id.Lit_Other '*'>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'ERROR: invalid prefix of upload URI'>)} {(DQ <'('> ($ Id.VSub_DollarName remote_target) <')'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [13568 13604] ) ] else_action: [] redirects: [] ) (C {<typeset>} {<Id.Lit_VarLike 'target_no_prefix='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote_target> var_name: remote_target suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <':'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name target_no_prefix)} right: {<Id.Lit_Other '*'> <Id.Lit_Colon ':'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name remote_target))} right: {<Id.Lit_Other '*'> <Id.Lit_Colon ':'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'remote_target='> name: remote_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name remote_target) (${ Id.VSub_Name WNAME)} spids: [13708] ) ] redirects: [] ) ] spids: [13687 13705] ) ] else_action: [] redirects: [] ) ] spids: [13667 13684] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(${ Id.VSub_Name target_no_prefix)} right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'ERROR: badly formed upload URI'>)} {(DQ <'('> ($ Id.VSub_DollarName remote_target) <')'>)} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [13723 13740] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'remote_target='> name: remote_target ) op: assign_op.Equal rhs: {(${ Id.VSub_Name remote_target) <Id.Lit_Colon ':'> (${ Id.VSub_Name WNAME) } spids: [13766] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote_target='> name:remote_target) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name remote_target> var_name: remote_target suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13802] ) ] redirects: [] ) ] spids: [13493 13510] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName Uflag)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Dflag)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<delete_webrev>} {<1>} {<1>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [13821 13838] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName nflag)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Dflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<delete_webrev>} {<1>} {<1>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) ] spids: [13878 13889] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName Uflag)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<upload_webrev>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [13920 13931] ) ] else_action: [] redirects: [] ) ] spids: [13864 13875] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name WDIR> var_name: WDIR suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDIR='> name:WDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName WDIR)} spids: [13966] ) ] redirects: [] ) ] spids: [13947 13963] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName WDIR)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName WDIR)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [13974 13987] ) ] else_action: [] redirects: [] ) (C {<print>} { (DQ <' Workspace: '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PRETTY_CWS> var_name: PRETTY_CWS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName CWS)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'Compare against: webrev at '> ($ Id.VSub_DollarName parent_webrev))}) ] spids: [14037 14048] ) ] else_action: [ (C {<print>} { (DQ <'Compare against: '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PRETTY_PWS> var_name: PRETTY_PWS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName PWS)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName INCLUDE_FILE)}) redirects: [] ) (C {<print>} {(DQ <' Including: '> ($ Id.VSub_DollarName INCLUDE_FILE))}) ] ) (C {<print>} {(DQ <' Output to: '> ($ Id.VSub_DollarName WDIR))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_ef left: {($ Id.VSub_DollarName FLIST)} right: {($ Id.VSub_DollarName WDIR) <'/file.list'>} ) ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName FLIST)} {($ Id.VSub_DollarName WDIR) <'/file.list'>}) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>}) (C {<touch>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>}) (C {<print>} {(DQ <' Output Files:'>)}) (command.Simple words: [ {($ Id.VSub_DollarName SED)} {<-e>} {(DQ <'s/#.*'> <Id.Lit_Dollar '$'> <'//'>)} {<-e>} {(DQ <'/=/d'>)} {<-e>} {(DQ <'/^[ ]*'> <Id.Lit_Dollar '$'> <'/d'>)} {($ Id.VSub_DollarName FLIST)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist.clean>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLIST='> name:FLIST) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.flist.clean>} spids: [14216] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <mercurial>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEDFILE='> name:SEDFILE) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.manifest.sed>} spids: [14309] ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_DollarName SED)} { (SQ <'\n'> <'\t\ts#^[^ ]* ##\n'> <'\t\ts#/#\\\\\\/#g\n'> <'\t\ts#^.*$#/^... . &$/p#\n'> <'\t'> ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName FLIST)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{($ Id.VSub_DollarName SORT)} {<-u>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName SEDFILE)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HG_PARENT_MANIFEST='> name: HG_PARENT_MANIFEST ) op: assign_op.Equal rhs: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.manifest>} spids: [14357] ) ] redirects: [] ) (command.Pipeline children: [ (C {<hg>} {<-R>} {($ Id.VSub_DollarName CWS)} {<manifest>} {<-v>} {<-r>} {($ Id.VSub_DollarName HG_PARENT)} ) (command.Simple words: [{($ Id.VSub_DollarName SED)} {<-n>} {<-f>} {($ Id.VSub_DollarName SEDFILE)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName HG_PARENT_MANIFEST)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) ] spids: [14231 14246] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName FLIST)}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<LINE>})]) body: (command.DoGroup children: [ (C {<set>} {<->} {($ Id.VSub_DollarName LINE)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P='> name:P) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [14426] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname) op: assign_op.Equal rhs: {(DQ )} spids: [14455] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldpath='> name:oldpath) op: assign_op.Equal rhs: {(DQ )} spids: [14460] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rename='> name:rename) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [14465] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_Pound '#')} right: {<2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [14484] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName PP)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'oldname='> name: oldname ) op: assign_op.Equal rhs: {(DQ <' (copied from '> ($ Id.VSub_DollarName PP) <')'>)} spids: [14505] ) ] redirects: [] ) ] spids: [14491 14502] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'oldname='> name: oldname ) op: assign_op.Equal rhs: {(DQ <' (renamed from '> ($ Id.VSub_DollarName PP) <')'>)} spids: [14516] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldpath='> name:oldpath) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PP))} spids: [14527] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rename='> name:rename) op: assign_op.Equal rhs: {<1>} spids: [14533] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PP> var_name: PP suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14537] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName PDIR)} right: {($ Id.VSub_DollarName PP)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR) op: assign_op.Equal rhs: {(DQ <.>)} spids: [14562] ) ] redirects: [] ) ] spids: [14546 14559] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PF='> name:PF) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PP> var_name: PP suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14575] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name P> var_name: P suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14585] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName DIR)} right: {($ Id.VSub_DollarName P)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: {(DQ <.>)} spids: [14610] ) ] redirects: [] ) ] spids: [14594 14607] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name P> var_name: P suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14623] ) ] redirects: [] ) ] spids: [14468 14481] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name P> var_name: P suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14636] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName DIR))} right: {(DQ ($ Id.VSub_DollarName P))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: {(DQ <.>)} spids: [14665] ) ] redirects: [] ) ] spids: [14645 14662] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name P> var_name: P suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [14678] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP) op: assign_op.Equal rhs: {($ Id.VSub_DollarName P)} spids: [14688] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDIR='> name:PDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DIR)} spids: [14692] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PF='> name:PF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName F)} spids: [14696] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMM='> name:COMM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<getcomments>} {<html>} {($ Id.VSub_DollarName P)} {($ Id.VSub_DollarName PP)} ) right: <Id.Backtick_Right '`'> ) } spids: [14704] ) ] redirects: [] ) (C {<print>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName P) ($ Id.VSub_DollarName oldname) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <c> ) } ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<build_old_new>} {(DQ ($ Id.VSub_DollarName WDIR))} {(DQ ($ Id.VSub_DollarName PWS))} {(DQ ($ Id.VSub_DollarName PDIR))} {(DQ ($ Id.VSub_DollarName PF))} {(DQ ($ Id.VSub_DollarName CWS))} {(DQ ($ Id.VSub_DollarName DIR))} {(DQ ($ Id.VSub_DollarName F))} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OWD='> name:OWD) op: assign_op.Equal rhs: {($ Id.VSub_DollarName PWD)} spids: [14831] ) ] redirects: [] ) (C {<cd>} {($ Id.VSub_DollarName WDIR) <'/raw_files'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName PDIR)} right: {(DQ <.>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ofile='> name:ofile) op: assign_op.Equal rhs: {<'old/'> ($ Id.VSub_DollarName PF)} spids: [14880] ) ] redirects: [] ) ] spids: [14862 14877] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ofile='> name:ofile) op: assign_op.Equal rhs: {<'old/'> ($ Id.VSub_DollarName PDIR) <'/'> ($ Id.VSub_DollarName PF)} spids: [14888] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName DIR)} right: {(DQ <.>)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nfile='> name:nfile) op: assign_op.Equal rhs: {<'new/'> ($ Id.VSub_DollarName F)} spids: [14916] ) ] redirects: [] ) ] spids: [14898 14913] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nfile='> name:nfile) op: assign_op.Equal rhs: {<'new/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} spids: [14924] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mv_but_nodiff='> name: mv_but_nodiff ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [14935] ) ] redirects: [] ) (command.Simple words: [{<cmp>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)}] 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 ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName rename)} right: {<1>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mv_but_nodiff='> name: mv_but_nodiff ) op: assign_op.Equal rhs: {<1>} spids: [14976] ) ] redirects: [] ) ] spids: [14952 14973] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cleanse_rmfile='> name: cleanse_rmfile ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName SED) <' \'s/^'> <Id.Lit_BadBackslash '\\'> <'(@@ [0-9+,-]*'> <Id.Lit_BadBackslash '\\'> <') [0-9+,-]* @@'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_BadBackslash '\\'> <'1 +0,0 @@/\''> ) } spids: [15036] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cleanse_newfile='> name: cleanse_newfile ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName SED) <' \'s/^@@ [0-9+,-]* '> <Id.Lit_BadBackslash '\\'> <'([0-9+,-]* @@'> <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_Dollar '$'> <'/@@ -0,0 '> <Id.Lit_BadBackslash '\\'> <'1/\''> ) } spids: [15051] ) ] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName rename)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName ofile))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<diff>} {<-u>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)}) (command.Simple words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_newfile))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) ] spids: [15093 15108] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName nfile))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<diff>} {<-u>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>}) (command.Simple words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_rmfile))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) ] spids: [15141 15156] ) ] else_action: [ (command.Simple words: [ {<diff>} {<-u>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] spids: [15079 15090] ) ] else_action: [ (command.Pipeline children: [ (C {<diff>} {<-u>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>}) (command.Simple words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_rmfile))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<diff>} {<-u>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)}) (command.Simple words: [{<sh>} {<-c>} {(DQ ($ Id.VSub_DollarName cleanse_newfile))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) ] redirects: [] ) (command.Simple words: [ {<cat>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.patch> } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' patch'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName ofile)} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName nfile)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName mv_but_nodiff)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CDIFFCMD> var_name: CDIFFCMD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'diff -bt -C 5'>} ) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.cdiff> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<diff_to_html>} {($ Id.VSub_DollarName F)} {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} {(DQ <C>)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.cdiff> } ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.cdiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' cdiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Simple words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name UDIFFCMD> var_name: UDIFFCMD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'diff -bt -U 5'>} ) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.udiff> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<diff_to_html>} {($ Id.VSub_DollarName F)} {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} {(DQ <U>)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.udiff> } ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.udiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' udiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {($ Id.VSub_DollarName WDIFF)} {<-c>} {(DQ ($ Id.VSub_DollarName COMM))} {<-t>} { (DQ ($ Id.VSub_DollarName WNAME) <' Wdiff '> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) ) } {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.wdiff.html> } ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' wdiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) ] spids: [15537 15550] ) ] else_action: [ (C {<print>} {(DQ <' wdiffs[fail]'> <Id.Lit_BadBackslash '\\'> <c>)}) ] redirects: [] ) ] spids: [15484 15495] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<sdiff_to_html>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} {($ Id.VSub_DollarName F)} {($ Id.VSub_DollarName DIR)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.sdiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' sdiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<print>} {(DQ <' frames'> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.cdiff> } {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.udiff>} ) (command.Simple words: [ {<difflines>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.count> } ) ] more_env: [] do_fork: T ) ] spids: [15324 15347] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName ofile)} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName nfile)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName mv_but_nodiff)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<difflines>} {($ Id.VSub_DollarName ofile)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.count> } ) ] more_env: [] do_fork: T ) ] spids: [15661 15684] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName nfile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<difflines>} {<'/dev/null'>} {($ Id.VSub_DollarName nfile)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.count> } ) ] more_env: [] do_fork: T ) ] spids: [15707 15718] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName ofile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<difflines>} {($ Id.VSub_DollarName ofile)} {<'/dev/null'>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.count> } ) ] more_env: [] do_fork: T ) ] spids: [15741 15752] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ ($ Id.VSub_DollarName nfile))} ) right: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName nfile))} right: {<Id.Lit_Other '*'> <.> (word_part.ExtGlob op: <Id.ExtGlob_Plus '+('> arms: [{<'[0-9]'>}] ) (word_part.ExtGlob op:<Id.ExtGlob_Star '*('> arms:[{<'[a-zA-Z]'>}]) } ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName MANDOC)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName COL)} ) ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName MANDOC)} {<-Tascii>} {($ Id.VSub_DollarName nfile)} ) (command.Simple words: [{($ Id.VSub_DollarName COL)} {<-b>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName nfile) <.man.txt>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Simple words: [{<source_to_html>} {<txt>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName nfile) <.man.txt>} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName nfile) <.man.txt.html>} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-txt'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Simple words: [{<print>} {(DQ ($ Id.VSub_DollarName MANCSS))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName DIR) <'/man.css'> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName MANDOC)} {<-Thtml>} {<-Ostyle> <Id.Lit_Equals '='> <man.css>} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName nfile) <.man.html>} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-html'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Simple words: [ {($ Id.VSub_DollarName MANDOC)} {<-Tascii>} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName nfile) <.man.raw>} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-raw'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ ($ Id.VSub_DollarName ofile))} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName mv_but_nodiff)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName MANDOC)} {<-Tascii>} {($ Id.VSub_DollarName ofile)} ) (command.Simple words: [{($ Id.VSub_DollarName COL)} {<-b>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName ofile) <.man.txt>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Simple words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CDIFFCMD> var_name: CDIFFCMD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'diff -bt -C 5'>} ) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ofile) <.man.txt>} {($ Id.VSub_DollarName nfile) <.man.txt>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.cdiff> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<diff_to_html>} {($ Id.VSub_DollarName F)} {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} {(DQ <C>)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.cdiff> } ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.cdiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-cdiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Simple words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name UDIFFCMD> var_name: UDIFFCMD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'diff -bt -U 5'>} ) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ofile) <.man.txt>} {($ Id.VSub_DollarName nfile) <.man.txt>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.udiff> } ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<diff_to_html>} {($ Id.VSub_DollarName F)} {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F)} {(DQ <U>)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.udiff> } ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.udiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-udiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {($ Id.VSub_DollarName WDIFF)} {<-c>} {(DQ ($ Id.VSub_DollarName COMM))} {<-t>} { (DQ ($ Id.VSub_DollarName WNAME) <' Wdiff '> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) ) } {($ Id.VSub_DollarName ofile) <.man.txt>} {($ Id.VSub_DollarName nfile) <.man.txt>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.wdiff.html> } ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <' man-wdiffs'> <Id.Lit_BadBackslash '\\'> <c>) } ) ] spids: [16183 16196] ) ] else_action: [ (C {<print>} { (DQ <' man-wdiffs[fail]'> <Id.Lit_BadBackslash '\\'> <c> ) } ) ] redirects: [] ) ] spids: [16128 16139] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<sdiff_to_html>} {($ Id.VSub_DollarName ofile) <.man.txt>} {($ Id.VSub_DollarName nfile) <.man.txt>} {($ Id.VSub_DollarName F) <.man>} {($ Id.VSub_DollarName DIR)} {(DQ ($ Id.VSub_DollarName COMM))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.sdiff.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' man-sdiffs'> <Id.Lit_BadBackslash '\\'> <c>)}) (C {<print>} {(DQ <' man-frames'> <Id.Lit_BadBackslash '\\'> <c>)}) ] spids: [15944 15963] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName ofile) <.man.txt>} {($ Id.VSub_DollarName nfile) <.man.txt>} ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.cdiff> } {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.man.udiff> } ) ] spids: [15795 15839] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName nfile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ocr='> name:ocr) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ofile)} spids: [16344] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName ofile)} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ocr='> name:ocr) op: assign_op.Equal rhs: {<'/dev/null'>} spids: [16360] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName mv_but_nodiff)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'textcomm='> name: textcomm ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<getcomments>} {<text>} {($ Id.VSub_DollarName P)} {($ Id.VSub_DollarName PP)} ) right: <Id.Backtick_Right '`'> ) } spids: [16379] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName CODEREVIEW)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [ {($ Id.VSub_DollarName CODEREVIEW)} {<-y>} {(DQ ($ Id.VSub_DollarName textcomm))} {<-e>} {($ Id.VSub_DollarName ocr)} {($ Id.VSub_DollarName nfile)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> ($ Id.VSub_Dollar '$') <.psfile>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<cat>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.psfile>} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps> } ) ] more_env: [] do_fork: T ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' ps'> <Id.Lit_BadBackslash '\\'> <c>)} ) ] spids: [16451 16464] ) ] else_action: [ (C {<print>} {(DQ <' ps[fail]'> <Id.Lit_BadBackslash '\\'> <c>)} ) ] redirects: [] ) ] spids: [16393 16404] ) ] else_action: [] redirects: [] ) ] spids: [16365 16376] ) ] else_action: [] redirects: [] ) ] spids: [16330 16341] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName ofile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<source_to_html>} {<Old>} {($ Id.VSub_DollarName PP)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName ofile)} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <-.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' old'> <Id.Lit_BadBackslash '\\'> <c>)}) ] spids: [16501 16512] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName nfile)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<source_to_html>} {<New>} {($ Id.VSub_DollarName P)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName nfile)} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName F) <.html> } ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' new'> <Id.Lit_BadBackslash '\\'> <c>)}) ] spids: [16548 16559] ) ] else_action: [] redirects: [] ) (C {<cd>} {($ Id.VSub_DollarName OWD)}) (C {<print>}) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) (command.Simple words: [{<frame_nav_js>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/ancnav.js'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<frame_navigation>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/ancnav.html'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' Generating PDF: Skipped: no output available'>)})] spids: [16621 16637] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName CODEREVIEW)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName PS2PDF)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' Generating PDF: '> <Id.Lit_BadBackslash '\\'> <c>)}) (command.Pipeline children: [ (C {<fix_postscript>} {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.ps>} ) (command.Simple words: [{($ Id.VSub_DollarName PS2PDF)} {<->}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<print>} {(DQ <Done.>)}) ] spids: [16646 16663] ) ] else_action: [ (C {<print>} {(DQ <' Generating PDF: Skipped: missing \'ps2pdf\' or \'codereview\''>)}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName Oflag))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName FIND)} {($ Id.VSub_DollarName WDIR)} {<-type>} {<d>} {<-name>} {<closed>} {<-exec>} {<'/bin/rm'>} {<-rf>} {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';')} ) ] spids: [16721 16734] ) ] else_action: [] redirects: [] ) (C {<cd>} {($ Id.VSub_DollarName CWS)}) (command.Simple words: [{<print>} {(DQ ($ Id.VSub_DollarName TOTL))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName WDIR) <'/TotalChangedLines'>} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ <' index.html: '> <Id.Lit_BadBackslash '\\'> <c>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INDEXFILE='> name:INDEXFILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WDIR) <'/index.html'>} spids: [16798] ) ] redirects: [] ) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_LessAnd '3<&'> loc:(redir_loc.Fd fd:3) arg:{<1>})] more_env: [] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<->})] more_env: [] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName INDEXFILE)} ) ] more_env: [] do_fork: T ) (C {<print>} {(DQ ($ Id.VSub_DollarName HTML) <'<head>'> ($ Id.VSub_DollarName STDHEAD))}) (C {<print>} {(DQ <'<title>'> ($ Id.VSub_DollarName WNAME) <'</title>'>)}) (C {<print>} {(DQ <'</head>'>)}) (C {<print>} { (DQ <'<body id='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <SUNWwebrev> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} { (DQ <'<div class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <summary> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} {(DQ <'<h2>Code Review for '> ($ Id.VSub_DollarName WNAME) <'</h2>'>)}) (C {<print>} {(DQ <'<table>'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [16916] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName SCM_MODE))} right: {<mercurial>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<hg>} {<showconfig>} {<ui.username>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [16936] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName preparer))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName preparer))}) (C {<html_quote>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [16967] ) ] redirects: [] ) ] spids: [16951 16964] ) ] else_action: [] redirects: [] ) ] spids: [16918 16933] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName preparer))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preparer='> name:preparer) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName PERL)} {<-e>} { (SQ <'\n'> < '\t ($login, $pw, $uid, $gid, $quota, $cmt, $gcos) = getpwuid($<);\n' > <'\t if ($login) {\n'> <'\t $gcos =~ s/\\&/ucfirst($login)/e;\n'> <'\t printf "%s (%s)\\n", $gcos, $login;\n'> <'\t } else {\n'> <'\t printf "(unknown)\\n";\n'> <'\t }\n'> <'\t'> ) } ) right: <Id.Eof_RParen _> ) } spids: [17003] ) ] redirects: [] ) ] spids: [16987 17000] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PREPDATE='> name:PREPDATE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<'/usr/bin/date'>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <b-> <Id.Lit_Other '%'> <d> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Other '%'> <R> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\ '> ch: ' ' ) <Id.Lit_Other '%'> <z> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Other '%'> <Z> } ] redirects: [] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[17029])] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [17027] ) ] redirects: [] ) (C {<print>} { (DQ <'<tr><th>Prepared by:</th><td>'> ($ Id.VSub_DollarName preparer) <' on '> ($ Id.VSub_DollarName PREPDATE) <'</td></tr>'> ) } ) (C {<print>} { (DQ <'<tr><th>Workspace:</th><td>'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PRETTY_CWS> var_name: PRETTY_CWS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName CWS)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<print>} {(DQ <'</td></tr>'>)}) (C {<print>} {(DQ <'<tr><th>Compare against:</th><td>'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName parent_webrev)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <'webrev at '> ($ Id.VSub_DollarName parent_webrev))})] spids: [17085 17096] ) ] else_action: [ (C {<print>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PRETTY_PWS> var_name: PRETTY_PWS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName PWS)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (C {<print>} {(DQ <'</td></tr>'>)}) (C {<print>} {(DQ <'<tr><th>Summary of changes:</th><td>'>)}) (C {<printCI>} {($ Id.VSub_DollarName TOTL)} {($ Id.VSub_DollarName TINS)} {($ Id.VSub_DollarName TDEL)} {($ Id.VSub_DollarName TMOD)} {($ Id.VSub_DollarName TUNC)} ) (C {<print>} {(DQ <'</td></tr>'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.patch>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wpatch_url='> name:wpatch_url) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName WNAME) <.patch>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17169] ) ] redirects: [] ) (C {<print>} {(DQ <'<tr><th>Patch of changes:</th><td>'>)}) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName wpatch_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ($ Id.VSub_DollarName WNAME) <'.patch</a></td></tr>'> ) } ) ] spids: [17152 17166] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName WNAME) <.pdf>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wpdf_url='> name:wpdf_url) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName WNAME) <.pdf>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17222] ) ] redirects: [] ) (C {<print>} {(DQ <'<tr><th>Printable review:</th><td>'>)}) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName wpdf_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ($ Id.VSub_DollarName WNAME) <'.pdf</a></td></tr>'> ) } ) ] spids: [17205 17219] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName iflag))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'<tr><th>Author comments:</th><td><div>'>)}) (C {<cat>} {<'/tmp/'> ($ Id.VSub_Dollar '$') <.include>}) (C {<print>} {(DQ <'</div></td></tr>'>)}) ] spids: [17259 17272] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <'</table>'>)}) (C {<print>} {(DQ <'</div>'>)}) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName FLIST)}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<LINE>})]) body: (command.DoGroup children: [ (C {<set>} {<->} {($ Id.VSub_DollarName LINE)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P='> name:P) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [17341] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '#')} right: {<2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [17362] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PP))} spids: [17366] ) ] redirects: [] ) ] spids: [17346 17359] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PP='> name:PP) op: assign_op.Equal rhs: {($ Id.VSub_DollarName P)} spids: [17375] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldname='> name:oldname) op: assign_op.Equal rhs: {(DQ )} spids: [17379] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mv_but_nodiff='> name: mv_but_nodiff ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [17388] ) ] redirects: [] ) (command.Simple words: [ {<cmp>} {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> ($ Id.VSub_DollarName PP)} {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P)} ] 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 ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName oldname))} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mv_but_nodiff='> name: mv_but_nodiff ) op: assign_op.Equal rhs: {<1>} spids: [17433] ) ] redirects: [] ) ] spids: [17409 17430] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name P> var_name: P suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [17441] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName DIR)} right: {($ Id.VSub_DollarName P)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: {(DQ <.>)} spids: [17466] ) ] redirects: [] ) ] spids: [17450 17463] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F='> name:F) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WDIR) <'/'> ($ Id.VSub_DollarName P)} spids: [17492] ) ] redirects: [] ) (C {<print>} {(DQ <'<p>'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.cdiff.html>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cdiff_url='> name: cdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.cdiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17527] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'udiff_url='> name: udiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.udiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17542] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sdiff_url='> name: sdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.sdiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17557] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'frames_url='> name: frames_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.frames.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17572] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName cdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Cdiffs</a>'> ) } ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName udiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Udiffs</a>'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.wdiff.html>} ) right: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wdiff_url='> name: wdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.wdiff.html>} ) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17630] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName wdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Wdiffs</a>'> ) } ) ] spids: [17609 17627] ) ] else_action: [] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName sdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Sdiffs</a>'> ) } ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName frames_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Frames</a>'> ) } ) ] spids: [17512 17524] ) ] else_action: [ (C {<print>} {(DQ <' ------ ------'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' ------'>)})] spids: [17691 17702] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <' ------ ------'>)}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <-.html>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'oldfile_url='> name: oldfile_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <-.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17746] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName oldfile_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Old</a>'> ) } ) ] spids: [17731 17743] ) ] else_action: [(C {<print>} {(DQ <' ---'>)})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.html>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'newfile_url='> name: newfile_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17806] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName newfile_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>New</a>'> ) } ) ] spids: [17791 17803] ) ] else_action: [(C {<print>} {(DQ <' ---'>)})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.patch>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'patch_url='> name: patch_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.patch>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17861] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName patch_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Patch</a>'> ) } ) ] spids: [17846 17858] ) ] else_action: [(C {<print>} {(DQ <' -----'>)})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rawfiles_url='> name: rawfiles_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {<'raw_files/new/'> ($ Id.VSub_DollarName P)}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [17917] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName rawfiles_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Raw</a>'> ) } ) ] spids: [17901 17914] ) ] else_action: [(C {<print>} {(DQ <' ---'>)})] redirects: [] ) (C {<print>} {(DQ <'<b>'> ($ Id.VSub_DollarName P) <'</b>'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ ($ Id.VSub_DollarName oldname))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName mv_but_nodiff))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <'<i>(copied from '> ($ Id.VSub_DollarName oldname) <')</i>'>)} ) ] spids: [17987 18000] ) ] else_action: [ (C {<print>} { (DQ <'<i>(copied and modified from '> ($ Id.VSub_DollarName oldname) <')</i>'> ) } ) ] redirects: [] ) ] spids: [17971 17984] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName oldname))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName mv_but_nodiff))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'<i>(renamed from '> ($ Id.VSub_DollarName oldname) <')</i>'>) } ) ] spids: [18043 18056] ) ] else_action: [ (C {<print>} { (DQ <'<i>(renamed and modified from '> ($ Id.VSub_DollarName oldname) <')</i>'> ) } ) ] redirects: [] ) ] spids: [18027 18040] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <-.html>} ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.html>} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' <i>(deleted)</i>'>)})] spids: [18091 18112] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName Oflag))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName P)} right: {<'usr/closed/'> <Id.Lit_Other '*'>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName P)} right: {<'deleted_files/usr/closed/'> <Id.Lit_Other '*'>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' <i>Closed source: omitted from'>)} {(DQ <'this review</i>'>)} ) ] spids: [18148 18173] ) ] else_action: [] redirects: [] ) ] spids: [18130 18145] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'manpage='> name:manpage) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [18196] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.man.cdiff.html>} ) right: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P) <.man.txt.html> } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'manpage='> name:manpage) op: assign_op.Equal rhs: {<1>} spids: [18225] ) ] redirects: [] ) (C {<print>} {(DQ <'<br/>man:'>)}) ] spids: [18199 18222] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.man.cdiff.html>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mancdiff_url='> name: mancdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.man.cdiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18255] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'manudiff_url='> name: manudiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.man.udiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18270] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mansdiff_url='> name: mansdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.man.sdiff.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18285] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'manframes_url='> name: manframes_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.man.frames.html>}) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18300] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName mancdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Cdiffs</a>'> ) } ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName manudiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Udiffs</a>'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.man.wdiff.html>} ) right: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'manwdiff_url='> name: manwdiff_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {($ Id.VSub_DollarName P) <.man.wdiff.html>} ) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18358] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName manwdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Wdiffs</a>'> ) } ) ] spids: [18337 18355] ) ] else_action: [] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName mansdiff_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Sdiffs</a>'> ) } ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName manframes_url) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'>Frames</a>'> ) } ) ] spids: [18240 18252] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName manpage)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {(DQ <' ------ ------'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName WDIFF)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' ------'>)})] spids: [18430 18441] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <' ------ ------'>)}) ] spids: [18409 18420] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P) <.man.txt.html> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mantxt_url='> name: mantxt_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {<'raw_files/new/'> ($ Id.VSub_DollarName P) <.man.txt.html> } ) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18482] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName mantxt_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>TXT</a>'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'manhtml_url='> name: manhtml_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {<'raw_files/new/'> ($ Id.VSub_DollarName P) <.man.html>} ) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18509] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName manhtml_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>HTML</a>'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'manraw_url='> name: manraw_url ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<print>} {<'raw_files/new/'> ($ Id.VSub_DollarName P) <.man.raw>} ) (C {<url_encode>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } spids: [18536] ) ] redirects: [] ) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName manraw_url) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>Raw</a>'> ) } ) ] spids: [18465 18479] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName manpage)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<print>} {(DQ <' --- ---- ---'>)})] spids: [18563 18574] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <'</p>'>)}) (C {<print>} {(DQ <'<blockquote><pre>'>)}) (C {<getcomments>} {<html>} {($ Id.VSub_DollarName P)} {($ Id.VSub_DollarName PP)}) (C {<print>} {(DQ <'</pre>'>)}) (C {<print>} { (DQ <'<!-- Add comments to explain changes in '> ($ Id.VSub_DollarName P) <' here -->'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName F) <.count>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cat>} {($ Id.VSub_DollarName F) <.count>}) (C {<rm>} {($ Id.VSub_DollarName F) <.count>}) ] spids: [18642 18654] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <mercurial>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName SCM_MODE)} right: {(DQ <unknown>)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_mode='> name:old_mode) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [18718] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> ($ Id.VSub_DollarName PP) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old_mode='> name: old_mode ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<get_file_mode>} {($ Id.VSub_DollarName WDIR) <'/raw_files/old/'> ($ Id.VSub_DollarName PP) } ) right: <Id.Backtick_Right '`'> ) } spids: [18737] ) ] redirects: [] ) ] spids: [18721 18734] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_mode='> name:new_mode) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [18753] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'new_mode='> name: new_mode ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<get_file_mode>} {($ Id.VSub_DollarName WDIR) <'/raw_files/new/'> ($ Id.VSub_DollarName P) } ) right: <Id.Backtick_Right '`'> ) } spids: [18772] ) ] redirects: [] ) ] spids: [18756 18769] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName old_mode))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName new_mode))} right: {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> <Id.Lit_Other ']'> <Id.Lit_Other '*'> } ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'<span class='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} { (DQ <'<p>new executable file: mode '> ($ Id.VSub_DollarName new_mode) <'</p>'> ) } ) (C {<print>} {(DQ <'</span>'>)}) ] spids: [18788 18815] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName old_mode))} ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName new_mode))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName old_mode))} right: {(DQ ($ Id.VSub_DollarName new_mode))} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'<span class='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} { (DQ <'<p>mode change: '> ($ Id.VSub_DollarName old_mode) <' to '> ($ Id.VSub_DollarName new_mode) <'</p>'> ) } ) (C {<print>} {(DQ <'</span>'>)}) ] spids: [18845 18879] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName new_mode))} right: {<Id.Lit_Other '*'> <Id.Lit_Other '['> <1357> <Id.Lit_Other ']'> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} { (DQ <'<span class='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <chmod> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} { (DQ <'<p>executable file: mode '> ($ Id.VSub_DollarName new_mode) <'</p>'> ) } ) (C {<print>} {(DQ <'</span>'>)}) ] spids: [18911 18930] ) ] else_action: [] redirects: [] ) ] spids: [18673 18699] ) ] else_action: [] redirects: [] ) (C {<print>} {(DQ <'</blockquote>'>)}) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) (C {<print>}) (C {<print>}) (C {<print>} {(DQ <'<hr></hr>'>)}) (C {<print>} { (DQ <'<p style='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'font-size: small'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} {(DQ <'This code review page was prepared using <b>'> ($ Id.VSub_Number 0) <'</b>.'>)}) (C {<print>} { (DQ <'Webrev is maintained by the <a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'http://www.illumos.org'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>'> ) } ) (C {<print>} {(DQ <'illumos</a> project. The latest version may be obtained'>)}) (C {<print>} { (DQ <'<a href='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'http://src.illumos.org/source/xref/illumos-gate/usr/src/tools/scripts/webrev.sh'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>here</a>.</p>'> ) } ) (C {<print>} {(DQ <'</body>'>)}) (C {<print>} {(DQ <'</html>'>)}) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<->})] more_env: [] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_LessAnd '1<&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_LessAnd '3<&'> loc:(redir_loc.Fd fd:3) arg:{<->})] more_env: [] do_fork: T ) (C {<print>} {(DQ <Done.>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName Dflag)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<delete_webrev>} {<1>} {<1>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) ] spids: [19084 19095] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName Uflag)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<upload_webrev>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [19125 19136] ) ] else_action: [] redirects: [] ) ] )