<div dir="ltr">In the case where there is a sub_command, we execute this code:<div><br></div><div><div>  if (sub_cmd_obj != nullptr) {</div><div>    // Now call CommandObject::Execute to process and options in</div><div>    // 'rest_of_line'.  From there the command-specific version of Execute will</div><div>    // be called, with the processed arguments.</div><div><br></div><div>    args.Shift();</div><div>    sub_cmd_obj->Execute(args_string, result);</div><div>    return result.Succeeded();</div><div>  }</div></div><div><br></div><div>the `args.Shift()` statement has no effect, since `args_string` is computed before we get here and is not recomputed after the shift.  So either the Shift() is superfluous or we should be re-generating the args string before passing it through.</div><div><br></div><div>Can someone confirm which is correct?</div></div>