From ad09ee3d3bd87c3dddefa890f8dad03bcb4c143c Mon Sep 17 00:00:00 2001 From: kotfu Date: Wed, 8 Aug 2018 20:39:05 -0600 Subject: parse_command_only now appropriately sets multiline_command --- cmd2/parsing.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'cmd2') diff --git a/cmd2/parsing.py b/cmd2/parsing.py index 475554b0..b67cef10 100644 --- a/cmd2/parsing.py +++ b/cmd2/parsing.py @@ -407,8 +407,8 @@ class StatementParser: """Partially parse input into a Statement object. The command is identified, and shortcuts and aliases are expanded. - Terminators, multiline commands, and output redirection are not - parsed. + Multiline commands are identified, but terminators and output + redirection are not parsed. This method is used by tab completion code and therefore must not generate an exception if there are unclosed quotes. @@ -420,8 +420,8 @@ class StatementParser: - args Different from parse(), this method does not remove redundant whitespace - within statement.args. It does however, ensure args does not have leading - or trailing whitespace. + within statement.args. It does however, ensure args does not have + leading or trailing whitespace. """ # expand shortcuts and aliases line = self._expand(rawinput) @@ -447,6 +447,12 @@ class StatementParser: if not command or not args: args = None + # set multiline + if command in self.multiline_commands: + multiline_command = command + else: + multiline_command = None + # build the statement # string representation of args must be an empty string instead of # None for compatibility with standard library cmd @@ -454,6 +460,7 @@ class StatementParser: raw=rawinput, command=command, args=args, + multiline_command=multiline_command, ) return statement -- cgit v1.2.1