summaryrefslogtreecommitdiff
path: root/doxygen/xml/cmd2_8py.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doxygen/xml/cmd2_8py.xml')
-rw-r--r--doxygen/xml/cmd2_8py.xml1621
1 files changed, 0 insertions, 1621 deletions
diff --git a/doxygen/xml/cmd2_8py.xml b/doxygen/xml/cmd2_8py.xml
deleted file mode 100644
index a3809ce..0000000
--- a/doxygen/xml/cmd2_8py.xml
+++ /dev/null
@@ -1,1621 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.7.5.1">
- <compounddef id="cmd2_8py" kind="file">
- <compoundname>cmd2.py</compoundname>
- <innerclass refid="classcmd2_1_1Borg" prot="public">cmd2::Borg</innerclass>
- <innerclass refid="classcmd2_1_1Cmd" prot="public">cmd2::Cmd</innerclass>
- <innerclass refid="classcmd2_1_1Cmd2TestCase" prot="public">cmd2::Cmd2TestCase</innerclass>
- <innerclass refid="classcmd2_1_1EmbeddedConsoleExit" prot="public">cmd2::EmbeddedConsoleExit</innerclass>
- <innerclass refid="classcmd2_1_1EmptyStatement" prot="public">cmd2::EmptyStatement</innerclass>
- <innerclass refid="classcmd2_1_1History" prot="public">cmd2::History</innerclass>
- <innerclass refid="classcmd2_1_1HistoryItem" prot="public">cmd2::HistoryItem</innerclass>
- <innerclass refid="classcmd2_1_1NotSettableError" prot="public">cmd2::NotSettableError</innerclass>
- <innerclass refid="classcmd2_1_1OptionParser" prot="public">cmd2::OptionParser</innerclass>
- <innerclass refid="classcmd2_1_1OutputTrap" prot="public">cmd2::OutputTrap</innerclass>
- <innerclass refid="classcmd2_1_1ParsedString" prot="public">cmd2::ParsedString</innerclass>
- <innerclass refid="classcmd2_1_1PasteBufferError" prot="public">cmd2::PasteBufferError</innerclass>
- <innerclass refid="classcmd2_1_1Statekeeper" prot="public">cmd2::Statekeeper</innerclass>
- <innerclass refid="classcmd2_1_1StubbornDict" prot="public">cmd2::StubbornDict</innerclass>
- <innernamespace refid="namespacecmd2">cmd2</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <programlisting>
-<codeline lineno="1" refid="namespacecmd2" refkind="compound"><highlight class="stringliteral">&quot;&quot;&quot;Variant<sp/>on<sp/>standard<sp/>library&apos;s<sp/>cmd<sp/>with<sp/>extra<sp/>features.</highlight></codeline>
-<codeline lineno="2"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="3"><highlight class="stringliteral">To<sp/>use,<sp/>simply<sp/>import<sp/>cmd2.Cmd<sp/>instead<sp/>of<sp/>cmd.Cmd;<sp/>use<sp/>precisely<sp/>as<sp/>though<sp/>you</highlight></codeline>
-<codeline lineno="4"><highlight class="stringliteral">were<sp/>using<sp/>the<sp/>standard<sp/>library&apos;s<sp/>cmd,<sp/>while<sp/>enjoying<sp/>the<sp/>extra<sp/>features.</highlight></codeline>
-<codeline lineno="5"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="6"><highlight class="stringliteral">Searchable<sp/>command<sp/>history<sp/>(commands:<sp/>&quot;hi&quot;,<sp/>&quot;li&quot;,<sp/>&quot;run&quot;)</highlight></codeline>
-<codeline lineno="7"><highlight class="stringliteral">Load<sp/>commands<sp/>from<sp/>file,<sp/>save<sp/>to<sp/>file,<sp/>edit<sp/>commands<sp/>in<sp/>file</highlight></codeline>
-<codeline lineno="8"><highlight class="stringliteral">Multi-line<sp/>commands</highlight></codeline>
-<codeline lineno="9"><highlight class="stringliteral">Case-insensitive<sp/>commands</highlight></codeline>
-<codeline lineno="10"><highlight class="stringliteral">Special-character<sp/>shortcut<sp/>commands<sp/>(beyond<sp/>cmd&apos;s<sp/>&quot;@&quot;<sp/>and<sp/>&quot;!&quot;)</highlight></codeline>
-<codeline lineno="11"><highlight class="stringliteral">Settable<sp/>environment<sp/>parameters</highlight></codeline>
-<codeline lineno="12"><highlight class="stringliteral">Optional<sp/>_onchange_{paramname}<sp/>called<sp/>when<sp/>environment<sp/>parameter<sp/>changes</highlight></codeline>
-<codeline lineno="13"><highlight class="stringliteral">Parsing<sp/>commands<sp/>with<sp/>`optparse`<sp/>options<sp/>(flags)</highlight></codeline>
-<codeline lineno="14"><highlight class="stringliteral">Redirection<sp/>to<sp/>file<sp/>with<sp/>&gt;,<sp/>&gt;&gt;;<sp/>input<sp/>from<sp/>file<sp/>with<sp/>&lt;</highlight></codeline>
-<codeline lineno="15"><highlight class="stringliteral">Easy<sp/>transcript-based<sp/>testing<sp/>of<sp/>applications<sp/>(see<sp/>example/example.py)</highlight></codeline>
-<codeline lineno="16"><highlight class="stringliteral">Bash-style<sp/>``select``<sp/>available</highlight></codeline>
-<codeline lineno="17"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="18"><highlight class="stringliteral">Note<sp/>that<sp/>redirection<sp/>with<sp/>&gt;<sp/>and<sp/>|<sp/>will<sp/>only<sp/>work<sp/>if<sp/>`self.stdout.write()`</highlight></codeline>
-<codeline lineno="19"><highlight class="stringliteral">is<sp/>used<sp/>in<sp/>place<sp/>of<sp/>`print`.<sp/><sp/>The<sp/>standard<sp/>library&apos;s<sp/>`cmd`<sp/>module<sp/>is<sp/></highlight></codeline>
-<codeline lineno="20"><highlight class="stringliteral">written<sp/>to<sp/>use<sp/>`self.stdout.write()`,<sp/></highlight></codeline>
-<codeline lineno="21"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="22"><highlight class="stringliteral">-<sp/>Catherine<sp/>Devlin,<sp/>Jan<sp/>03<sp/>2008<sp/>-<sp/>catherinedevlin.blogspot.com</highlight></codeline>
-<codeline lineno="23"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="24"><highlight class="stringliteral">mercurial<sp/>repository<sp/>at<sp/>http://www.assembla.com/wiki/show/python-cmd2</highlight></codeline>
-<codeline lineno="25"><highlight class="stringliteral">&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="26"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>cmd</highlight></codeline>
-<codeline lineno="27"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>re</highlight></codeline>
-<codeline lineno="28"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>os</highlight></codeline>
-<codeline lineno="29"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>sys</highlight></codeline>
-<codeline lineno="30"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>optparse</highlight></codeline>
-<codeline lineno="31"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>subprocess</highlight></codeline>
-<codeline lineno="32"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>tempfile</highlight></codeline>
-<codeline lineno="33"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>doctest</highlight></codeline>
-<codeline lineno="34"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>unittest</highlight></codeline>
-<codeline lineno="35"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>datetime</highlight></codeline>
-<codeline lineno="36"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>urllib</highlight></codeline>
-<codeline lineno="37"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>glob</highlight></codeline>
-<codeline lineno="38"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>traceback</highlight></codeline>
-<codeline lineno="39"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>platform</highlight></codeline>
-<codeline lineno="40"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>copy</highlight></codeline>
-<codeline lineno="41"><highlight class="normal"></highlight><highlight class="keyword">from</highlight><highlight class="normal"><sp/>code<sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>InteractiveConsole,<sp/>InteractiveInterpreter</highlight></codeline>
-<codeline lineno="42"><highlight class="normal"></highlight><highlight class="keyword">from</highlight><highlight class="normal"><sp/>optparse<sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>make_option</highlight></codeline>
-<codeline lineno="43"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>pyparsing</highlight></codeline>
-<codeline lineno="44"><highlight class="normal"></highlight></codeline>
-<codeline lineno="45" refid="namespacecmd2_1a05ce8a1645f64208f969036f8621ddd2" refkind="member"><highlight class="normal">__version__<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;0.6.4&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="46"><highlight class="normal"></highlight></codeline>
-<codeline lineno="47"><highlight class="normal"></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>sys.version_info[0]<sp/>==<sp/>2:</highlight></codeline>
-<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/>pyparsing.ParserElement.enablePackrat()</highlight></codeline>
-<codeline lineno="49"><highlight class="normal"></highlight></codeline>
-<codeline lineno="50"><highlight class="normal"></highlight><highlight class="stringliteral">&quot;&quot;&quot;</highlight></codeline>
-<codeline lineno="51"><highlight class="stringliteral">Packrat<sp/>is<sp/>causing<sp/>Python3<sp/>errors<sp/>that<sp/>I<sp/>don&apos;t<sp/>understand.</highlight></codeline>
-<codeline lineno="52"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="53"><highlight class="stringliteral">&gt;<sp/>/usr/local/Cellar/python3/3.2/lib/python3.2/site-packages/pyparsing-1.5.6-py3.2.egg/pyparsing.py(999)scanString()</highlight></codeline>
-<codeline lineno="54"><highlight class="stringliteral">-&gt;<sp/>nextLoc,tokens<sp/>=<sp/>parseFn(<sp/>instring,<sp/>preloc,<sp/>callPreParse=False<sp/>)</highlight></codeline>
-<codeline lineno="55"><highlight class="stringliteral">(Pdb)<sp/>n</highlight></codeline>
-<codeline lineno="56"><highlight class="stringliteral">NameError:<sp/>global<sp/>name<sp/>&apos;exc&apos;<sp/>is<sp/>not<sp/>defined</highlight></codeline>
-<codeline lineno="57"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="58"><highlight class="stringliteral">(Pdb)<sp/>parseFn</highlight></codeline>
-<codeline lineno="59"><highlight class="stringliteral">&lt;bound<sp/>method<sp/>Or._parseCache<sp/>of<sp/>{Python<sp/>style<sp/>comment<sp/>^<sp/>C<sp/>style<sp/>comment}&gt;</highlight></codeline>
-<codeline lineno="60"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="61"><highlight class="stringliteral">Bug<sp/>report<sp/>filed:<sp/>https://sourceforge.net/tracker/?func=detail&amp;atid=617311&amp;aid=3381439&amp;group_id=97203</highlight></codeline>
-<codeline lineno="62"><highlight class="stringliteral">&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="63"><highlight class="normal"></highlight></codeline>
-<codeline lineno="64" refid="classcmd2_1_1OptionParser" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OptionParser" kindref="compound">OptionParser</ref>(optparse.OptionParser):</highlight></codeline>
-<codeline lineno="65" refid="classcmd2_1_1OptionParser_1ad82c8fb7559af2e4b1663e0762a80c89" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OptionParser_1ad82c8fb7559af2e4b1663e0762a80c89" kindref="member">exit</ref>(self,<sp/>status=0,<sp/>msg=None):</highlight></codeline>
-<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.values._exit<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>msg:</highlight></codeline>
-<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(msg)</highlight></codeline>
-<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="70" refid="classcmd2_1_1OptionParser_1a6f2d24051471268be245221149bc9c6a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OptionParser_1a6f2d24051471268be245221149bc9c6a" kindref="member">print_help</ref>(self,<sp/>*args,<sp/>**kwargs):</highlight></codeline>
-<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(self._func.__doc__)</highlight></codeline>
-<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:</highlight></codeline>
-<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optparse.OptionParser.print_help(self,<sp/>*args,<sp/>**kwargs)</highlight></codeline>
-<codeline lineno="76"><highlight class="normal"></highlight></codeline>
-<codeline lineno="77" refid="classcmd2_1_1OptionParser_1ada4f39b453e033ae4356709f8ee9f340" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OptionParser_1ada4f39b453e033ae4356709f8ee9f340" kindref="member">error</ref>(self,<sp/>msg):</highlight></codeline>
-<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;error(msg<sp/>:<sp/>string)</highlight></codeline>
-<codeline lineno="79"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="80"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Print<sp/>a<sp/>usage<sp/>message<sp/>incorporating<sp/>&apos;msg&apos;<sp/>to<sp/>stderr<sp/>and<sp/>exit.</highlight></codeline>
-<codeline lineno="81"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>If<sp/>you<sp/>override<sp/>this<sp/>in<sp/>a<sp/>subclass,<sp/>it<sp/>should<sp/>not<sp/>return<sp/>--<sp/>it</highlight></codeline>
-<codeline lineno="82"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>should<sp/>either<sp/>exit<sp/>or<sp/>raise<sp/>an<sp/>exception.</highlight></codeline>
-<codeline lineno="83"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>optparse.OptParseError(msg)</highlight></codeline>
-<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="86" refid="namespacecmd2_1a11d252497d81548f19771cddf0ca68fb" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a11d252497d81548f19771cddf0ca68fb" kindref="member">remaining_args</ref>(oldArgs,<sp/>newArgList):</highlight></codeline>
-<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="88"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>Preserves<sp/>the<sp/>spacing<sp/>originally<sp/>in<sp/>the<sp/>argument<sp/>after</highlight></codeline>
-<codeline lineno="89"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>the<sp/>removal<sp/>of<sp/>options.</highlight></codeline>
-<codeline lineno="90"><highlight class="stringliteral"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="91"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>remaining_args(&apos;-f<sp/>bar<sp/><sp/><sp/>bar<sp/><sp/><sp/>cow&apos;,<sp/>[&apos;bar&apos;,<sp/>&apos;cow&apos;])</highlight></codeline>
-<codeline lineno="92"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&apos;bar<sp/><sp/><sp/>cow&apos;</highlight></codeline>
-<codeline lineno="93"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/>pattern<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;\s+&apos;</highlight><highlight class="normal">.join(re.escape(a)<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>a<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>newArgList)<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;\s*$&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="95"><highlight class="normal"><sp/><sp/><sp/><sp/>matchObj<sp/>=<sp/>re.search(pattern,<sp/>oldArgs)</highlight></codeline>
-<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>oldArgs[matchObj.start():]</highlight></codeline>
-<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="98" refid="namespacecmd2_1a93001003cf51a72d1d6adaf5e3e22366" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a93001003cf51a72d1d6adaf5e3e22366" kindref="member">_attr_get_</ref>(obj,<sp/>attr):</highlight></codeline>
-<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Returns<sp/>an<sp/>attribute&apos;s<sp/>value,<sp/>or<sp/>None<sp/>(no<sp/>error)<sp/>if<sp/>undefined.</highlight></codeline>
-<codeline lineno="100"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Analagous<sp/>to<sp/>.get()<sp/>for<sp/>dictionaries.<sp/><sp/>Useful<sp/>when<sp/>checking<sp/>for</highlight></codeline>
-<codeline lineno="101"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>value<sp/>of<sp/>options<sp/>that<sp/>may<sp/>not<sp/>have<sp/>been<sp/>defined<sp/>on<sp/>a<sp/>given</highlight></codeline>
-<codeline lineno="102"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>method.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>getattr(obj,<sp/>attr)</highlight></codeline>
-<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:</highlight></codeline>
-<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="108"><highlight class="normal">optparse.Values.get<sp/>=<sp/>_attr_get_</highlight></codeline>
-<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="110" refid="namespacecmd2_1afd483925db6ff208624b8e5c0ae09271" refkind="member"><highlight class="normal">options_defined<sp/>=<sp/>[]<sp/></highlight><highlight class="comment">#<sp/>used<sp/>to<sp/>distinguish<sp/>--options<sp/>from<sp/>SQL-style<sp/>--comments</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="111"><highlight class="normal"></highlight></codeline>
-<codeline lineno="112" refid="namespacecmd2_1a863be2c5e3b9fdec03710fd550801c22" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a863be2c5e3b9fdec03710fd550801c22" kindref="member">options</ref>(option_list,<sp/>arg_desc=&quot;arg&quot;):</highlight></codeline>
-<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Used<sp/>as<sp/>a<sp/>decorator<sp/>and<sp/>passed<sp/>a<sp/>list<sp/>of<sp/>optparse-style<sp/>options,</highlight></codeline>
-<codeline lineno="114"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>alters<sp/>a<sp/>cmd2<sp/>method<sp/>to<sp/>populate<sp/>its<sp/>``opts``<sp/>argument<sp/>from<sp/>its</highlight></codeline>
-<codeline lineno="115"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>raw<sp/>text<sp/>argument.</highlight></codeline>
-<codeline lineno="116"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="117"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Example:<sp/>transform</highlight></codeline>
-<codeline lineno="118"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>def<sp/>do_something(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="119"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="120"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>into</highlight></codeline>
-<codeline lineno="121"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>@options([make_option(&apos;-q&apos;,<sp/>&apos;--quick&apos;,<sp/>action=&quot;store_true&quot;,</highlight></codeline>
-<codeline lineno="122"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>help=&quot;Makes<sp/>things<sp/>fast&quot;)],</highlight></codeline>
-<codeline lineno="123"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;source<sp/>dest&quot;)</highlight></codeline>
-<codeline lineno="124"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>def<sp/>do_something(self,<sp/>arg,<sp/>opts):</highlight></codeline>
-<codeline lineno="125"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>opts.quick:</highlight></codeline>
-<codeline lineno="126"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.fast_button<sp/>=<sp/>True</highlight></codeline>
-<codeline lineno="127"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>isinstance(option_list,<sp/>list):</highlight></codeline>
-<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>option_list<sp/>=<sp/>[option_list]</highlight></codeline>
-<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>opt<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>option_list:</highlight></codeline>
-<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>options_defined.append(pyparsing.Literal(opt.get_opt_string()))</highlight></codeline>
-<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">option_setup(func):</highlight></codeline>
-<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optionParser<sp/>=<sp/><ref refid="classcmd2_1_1OptionParser" kindref="compound">OptionParser</ref>()</highlight></codeline>
-<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>opt<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>option_list:</highlight></codeline>
-<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optionParser.add_option(opt)</highlight></codeline>
-<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optionParser.set_usage(</highlight><highlight class="stringliteral">&quot;%s<sp/>[options]<sp/>%s&quot;</highlight><highlight class="normal"><sp/>%<sp/>(func.__name__[3:],<sp/>arg_desc))</highlight></codeline>
-<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optionParser._func<sp/>=<sp/>func</highlight></codeline>
-<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">new_func(instance,<sp/>arg):</highlight></codeline>
-<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>opts,<sp/>newArgList<sp/>=<sp/>optionParser.parse_args(arg.split())</highlight></codeline>
-<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Must<sp/>find<sp/>the<sp/>remaining<sp/>args<sp/>in<sp/>the<sp/>original<sp/>argument<sp/>list,<sp/>but<sp/></highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>mustn&apos;t<sp/>include<sp/>the<sp/>command<sp/>itself</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#if<sp/>hasattr(arg,<sp/>&apos;parsed&apos;)<sp/>and<sp/>newArgList[0]<sp/>==<sp/>arg.parsed.command:</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/><sp/><sp/><sp/>newArgList<sp/>=<sp/>newArgList[1:]</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>newArgs<sp/>=<sp/><ref refid="namespacecmd2_1a11d252497d81548f19771cddf0ca68fb" kindref="member">remaining_args</ref>(arg,<sp/>newArgList)</highlight></codeline>
-<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isinstance(arg,<sp/>ParsedString):</highlight></codeline>
-<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>arg.with_args_replaced(newArgs)</highlight></codeline>
-<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>newArgs</highlight></codeline>
-<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>optparse.OptParseError,<sp/>e:</highlight></codeline>
-<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(e)</highlight></codeline>
-<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>optionParser.print_help()</highlight></codeline>
-<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>hasattr(opts,<sp/></highlight><highlight class="stringliteral">&apos;_exit&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>func(instance,<sp/>arg,<sp/>opts)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new_func.__doc__<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;%s\n%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(func.__doc__,<sp/>optionParser.format_help())</highlight></codeline>
-<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>new_func</highlight></codeline>
-<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>option_setup</highlight></codeline>
-<codeline lineno="161"><highlight class="normal"></highlight></codeline>
-<codeline lineno="162" refid="classcmd2_1_1PasteBufferError" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1PasteBufferError" kindref="compound">PasteBufferError</ref>(EnvironmentError):</highlight></codeline>
-<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>sys.platform[:3]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;win&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="164" refid="classcmd2_1_1PasteBufferError_1adaa363483c6d5a54f13713233ba398b2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>errmsg<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Redirecting<sp/>to<sp/>or<sp/>from<sp/>paste<sp/>buffer<sp/>requires<sp/>pywin32</highlight></codeline>
-<codeline lineno="165"><highlight class="stringliteral">to<sp/>be<sp/>installed<sp/>on<sp/>operating<sp/>system.</highlight></codeline>
-<codeline lineno="166"><highlight class="stringliteral">Download<sp/>from<sp/>http://sourceforge.net/projects/pywin32/&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">elif</highlight><highlight class="normal"><sp/>sys.platform[:3]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;dar&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Use<sp/>built<sp/>in<sp/>pbcopy<sp/>on<sp/>Mac<sp/>OSX</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>errmsg<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Redirecting<sp/>to<sp/>or<sp/>from<sp/>paste<sp/>buffer<sp/>requires<sp/>xclip<sp/></highlight></codeline>
-<codeline lineno="172"><highlight class="stringliteral">to<sp/>be<sp/>installed<sp/>on<sp/>operating<sp/>system.</highlight></codeline>
-<codeline lineno="173"><highlight class="stringliteral">On<sp/>Debian/Ubuntu,<sp/>&apos;sudo<sp/>apt-get<sp/>install<sp/>xclip&apos;<sp/>will<sp/>install<sp/>it.&quot;&quot;&quot;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="174" refid="classcmd2_1_1PasteBufferError_1ae1cd41756d1ae940201fe2cb0d0f821e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1PasteBufferError_1ae1cd41756d1ae940201fe2cb0d0f821e" kindref="member">__init__</ref>(self):</highlight></codeline>
-<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Exception.__init__(self,<sp/>self.<ref refid="classcmd2_1_1PasteBufferError_1adaa363483c6d5a54f13713233ba398b2" kindref="member">errmsg</ref>)</highlight></codeline>
-<codeline lineno="176"><highlight class="normal"></highlight></codeline>
-<codeline lineno="177" refid="namespacecmd2_1abb901de4eb2987589c68b4d895acd8c3" refkind="member"><highlight class="normal">pastebufferr<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Redirecting<sp/>to<sp/>or<sp/>from<sp/>paste<sp/>buffer<sp/>requires<sp/>%s</highlight></codeline>
-<codeline lineno="178"><highlight class="stringliteral">to<sp/>be<sp/>installed<sp/>on<sp/>operating<sp/>system.</highlight></codeline>
-<codeline lineno="179"><highlight class="stringliteral">%s&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="180"><highlight class="normal"></highlight></codeline>
-<codeline lineno="181"><highlight class="normal"></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>subprocess.mswindows:</highlight></codeline>
-<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>win32clipboard</highlight></codeline>
-<codeline lineno="184" refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>():</highlight></codeline>
-<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.OpenClipboard(0)</highlight></codeline>
-<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="187"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>win32clipboard.GetClipboardData()</highlight></codeline>
-<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>TypeError:</highlight></codeline>
-<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">#non-text</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.CloseClipboard()</highlight></codeline>
-<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="192" refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" kindref="member">write_to_paste_buffer</ref>(txt):</highlight></codeline>
-<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.OpenClipboard(0)</highlight></codeline>
-<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.EmptyClipboard()</highlight></codeline>
-<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.SetClipboardText(txt)</highlight></codeline>
-<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>win32clipboard.CloseClipboard()<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ImportError:</highlight></codeline>
-<codeline lineno="198" refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>(*args):</highlight></codeline>
-<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>OSError,<sp/>pastebufferr<sp/>%<sp/>(</highlight><highlight class="stringliteral">&apos;pywin32&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;Download<sp/>from<sp/>http://sourceforge.net/projects/pywin32/&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="200" refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>write_to_paste_buffer<sp/>=<sp/>get_paste_buffer</highlight></codeline>
-<codeline lineno="201"><highlight class="normal"></highlight><highlight class="keywordflow">elif</highlight><highlight class="normal"><sp/>sys.platform<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;darwin&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="202" refid="namespacecmd2_1a3f2a6eb75c58ca830028f18cf2851958" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>can_clip<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>test<sp/>for<sp/>pbcopy<sp/>-<sp/>AFAIK,<sp/>should<sp/>always<sp/>be<sp/>installed<sp/>on<sp/>MacOS</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>subprocess.check_call(</highlight><highlight class="stringliteral">&apos;pbcopy<sp/>-help&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE,<sp/>stderr=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>can_clip<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>(subprocess.CalledProcessError,<sp/>OSError,<sp/>IOError):</highlight></codeline>
-<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>can_clip:</highlight></codeline>
-<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>():</highlight></codeline>
-<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pbcopyproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;pbcopy<sp/>-help&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE,<sp/>stderr=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>pbcopyproc.stdout.read()</highlight></codeline>
-<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" kindref="member">write_to_paste_buffer</ref>(txt):</highlight></codeline>
-<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pbcopyproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;pbcopy&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE,<sp/>stderr=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pbcopyproc.communicate(txt.encode())</highlight></codeline>
-<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>(*args):</highlight></codeline>
-<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>OSError,<sp/>pastebufferr<sp/>%<sp/>(</highlight><highlight class="stringliteral">&apos;pbcopy&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;On<sp/>MacOS<sp/>X<sp/>-<sp/>error<sp/>should<sp/>not<sp/>occur<sp/>-<sp/>part<sp/>of<sp/>the<sp/>default<sp/>installation&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>write_to_paste_buffer<sp/>=<sp/>get_paste_buffer</highlight></codeline>
-<codeline lineno="220"><highlight class="normal"></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/>can_clip<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>subprocess.check_call(</highlight><highlight class="stringliteral">&apos;xclip<sp/>-o<sp/>-sel<sp/>clip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE,<sp/>stderr=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>can_clip<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:<sp/><sp/></highlight><highlight class="comment">#<sp/>check_call<sp/>not<sp/>defined,<sp/>Python<sp/>&lt;<sp/>2.5</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="227" refid="namespacecmd2_1ab810fc3f05607c1e4311225b04591244" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>teststring<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Testing<sp/>for<sp/>presence<sp/>of<sp/>xclip.&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="228" refid="namespacecmd2_1ae76e61704924b26b7ddb97fce8c384ef" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;xclip<sp/>-sel<sp/>clip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.write(teststring)</highlight></codeline>
-<codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.close()</highlight></codeline>
-<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;xclip<sp/>-o<sp/>-sel<sp/>clip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="232"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>xclipproc.stdout.read()<sp/>==<sp/>teststring:</highlight></codeline>
-<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>can_clip<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>Exception:<sp/></highlight><highlight class="comment">#<sp/>hate<sp/>a<sp/>bare<sp/>Exception<sp/>call,<sp/>but<sp/>exception<sp/>classes<sp/>vary<sp/>too<sp/>much<sp/>b/t<sp/>stdlib<sp/>versions</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>Exception:</highlight></codeline>
-<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"><sp/></highlight><highlight class="comment">#<sp/>something<sp/>went<sp/>wrong<sp/>with<sp/>xclip<sp/>and<sp/>we<sp/>cannot<sp/>use<sp/>it</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>can_clip:<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>():</highlight></codeline>
-<codeline lineno="240"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;xclip<sp/>-o<sp/>-sel<sp/>clip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>xclipproc.stdout.read()</highlight></codeline>
-<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" kindref="member">write_to_paste_buffer</ref>(txt):</highlight></codeline>
-<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;xclip<sp/>-sel<sp/>clip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.write(txt.encode())</highlight></codeline>
-<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.close()</highlight></codeline>
-<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>but<sp/>we<sp/>want<sp/>it<sp/>in<sp/>both<sp/>the<sp/>&quot;primary&quot;<sp/>and<sp/>&quot;mouse&quot;<sp/>clipboards</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc<sp/>=<sp/>subprocess.Popen(</highlight><highlight class="stringliteral">&apos;xclip&apos;</highlight><highlight class="normal">,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.write(txt.encode())</highlight></codeline>
-<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>xclipproc.stdin.close()</highlight></codeline>
-<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>(*args):</highlight></codeline>
-<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>OSError,<sp/>pastebufferr<sp/>%<sp/>(</highlight><highlight class="stringliteral">&apos;xclip&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;On<sp/>Debian/Ubuntu,<sp/>install<sp/>with<sp/>&quot;sudo<sp/>apt-get<sp/>install<sp/>xclip&quot;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>write_to_paste_buffer<sp/>=<sp/>get_paste_buffer</highlight></codeline>
-<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="255"><highlight class="normal">pyparsing.ParserElement.setDefaultWhitespaceChars(</highlight><highlight class="stringliteral">&apos;<sp/>\t&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="256"><highlight class="normal"></highlight></codeline>
-<codeline lineno="257" refid="classcmd2_1_1ParsedString" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1ParsedString" kindref="compound">ParsedString</ref>(str):</highlight></codeline>
-<codeline lineno="258" refid="classcmd2_1_1ParsedString_1a6ac3a7f2f37126a25774517b3eb7cace" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1ParsedString_1a6ac3a7f2f37126a25774517b3eb7cace" kindref="member">full_parsed_statement</ref>(self):</highlight></codeline>
-<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new<sp/>=<sp/><ref refid="classcmd2_1_1ParsedString" kindref="compound">ParsedString</ref>(</highlight><highlight class="stringliteral">&apos;%s<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(self.parsed.command,<sp/>self.parsed.args))</highlight></codeline>
-<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parsed<sp/>=<sp/>self.parsed</highlight></codeline>
-<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parser<sp/>=<sp/>self.parser</highlight></codeline>
-<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>new<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="263" refid="classcmd2_1_1ParsedString_1afe56ec060a51b268e266f7c0d1fb7328" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1ParsedString_1afe56ec060a51b268e266f7c0d1fb7328" kindref="member">with_args_replaced</ref>(self,<sp/>newargs):</highlight></codeline>
-<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new<sp/>=<sp/><ref refid="classcmd2_1_1ParsedString" kindref="compound">ParsedString</ref>(newargs)</highlight></codeline>
-<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parsed<sp/>=<sp/>self.parsed</highlight></codeline>
-<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parser<sp/>=<sp/>self.parser</highlight></codeline>
-<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parsed[</highlight><highlight class="stringliteral">&apos;args&apos;</highlight><highlight class="normal">]<sp/>=<sp/>newargs</highlight></codeline>
-<codeline lineno="268"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.parsed.statement[</highlight><highlight class="stringliteral">&apos;args&apos;</highlight><highlight class="normal">]<sp/>=<sp/>newargs</highlight></codeline>
-<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>new</highlight></codeline>
-<codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="271" refid="classcmd2_1_1StubbornDict" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict" kindref="compound">StubbornDict</ref>(dict):</highlight></codeline>
-<codeline lineno="272"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Dictionary<sp/>that<sp/>tolerates<sp/>many<sp/>input<sp/>formats.</highlight></codeline>
-<codeline lineno="273"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>Create<sp/>it<sp/>with<sp/>stubbornDict(arg)<sp/>factory<sp/>function.</highlight></codeline>
-<codeline lineno="274"><highlight class="stringliteral"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="275"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>d<sp/>=<sp/>StubbornDict(large=&apos;gross&apos;,<sp/>small=&apos;klein&apos;)</highlight></codeline>
-<codeline lineno="276"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(d.items())</highlight></codeline>
-<codeline lineno="277"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;large&apos;,<sp/>&apos;gross&apos;),<sp/>(&apos;small&apos;,<sp/>&apos;klein&apos;)]</highlight></codeline>
-<codeline lineno="278"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>d.append([&apos;plain&apos;,<sp/>&apos;<sp/><sp/>plaid&apos;])</highlight></codeline>
-<codeline lineno="279"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(d.items())</highlight></codeline>
-<codeline lineno="280"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;large&apos;,<sp/>&apos;gross&apos;),<sp/>(&apos;plaid&apos;,<sp/>&apos;&apos;),<sp/>(&apos;plain&apos;,<sp/>&apos;&apos;),<sp/>(&apos;small&apos;,<sp/>&apos;klein&apos;)]</highlight></codeline>
-<codeline lineno="281"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>d<sp/>+=<sp/>&apos;<sp/><sp/><sp/>girl<sp/>Frauelein,<sp/>Maedchen\\n\\n<sp/>shoe<sp/>schuh&apos;</highlight></codeline>
-<codeline lineno="282"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(d.items())</highlight></codeline>
-<codeline lineno="283"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;girl&apos;,<sp/>&apos;Frauelein,<sp/>Maedchen&apos;),<sp/>(&apos;large&apos;,<sp/>&apos;gross&apos;),<sp/>(&apos;plaid&apos;,<sp/>&apos;&apos;),<sp/>(&apos;plain&apos;,<sp/>&apos;&apos;),<sp/>(&apos;shoe&apos;,<sp/>&apos;schuh&apos;),<sp/>(&apos;small&apos;,<sp/>&apos;klein&apos;)]</highlight></codeline>
-<codeline lineno="284"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="285" refid="classcmd2_1_1StubbornDict_1a669dd7f5373f3726d8c8fb52a1e85bbd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict_1a669dd7f5373f3726d8c8fb52a1e85bbd" kindref="member">update</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dict.update(self,<sp/>StubbornDict.to_dict(arg))</highlight></codeline>
-<codeline lineno="287" refid="classcmd2_1_1StubbornDict_1a66dc32a221c00611f1c131382703c333" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>append<sp/>=<sp/>update</highlight></codeline>
-<codeline lineno="288" refid="classcmd2_1_1StubbornDict_1ad7c49b2ca37c0c88b198853706ae7e99" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict_1ad7c49b2ca37c0c88b198853706ae7e99" kindref="member">__iadd__</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1StubbornDict_1a669dd7f5373f3726d8c8fb52a1e85bbd" kindref="member">update</ref>(arg)</highlight></codeline>
-<codeline lineno="290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self</highlight></codeline>
-<codeline lineno="291" refid="classcmd2_1_1StubbornDict_1a219b3f21c078f3b8158de67beae62da2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict_1a219b3f21c078f3b8158de67beae62da2" kindref="member">__add__</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="292"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>selfcopy<sp/>=<sp/>copy.copy(self)</highlight></codeline>
-<codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>selfcopy.update(<ref refid="namespacecmd2_1aae88fcdb31e45b322ecdaf7df9922823" kindref="member">stubbornDict</ref>(arg))</highlight></codeline>
-<codeline lineno="294"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>selfcopy</highlight></codeline>
-<codeline lineno="295" refid="classcmd2_1_1StubbornDict_1a190b1b2bd8a914bafaab137c5b1276ea" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict_1a190b1b2bd8a914bafaab137c5b1276ea" kindref="member">__radd__</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="296"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>selfcopy<sp/>=<sp/>copy.copy(self)</highlight></codeline>
-<codeline lineno="297"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>selfcopy.update(<ref refid="namespacecmd2_1aae88fcdb31e45b322ecdaf7df9922823" kindref="member">stubbornDict</ref>(arg))</highlight></codeline>
-<codeline lineno="298"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>selfcopy<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="299"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="300"><highlight class="normal"><sp/><sp/><sp/><sp/>@classmethod</highlight></codeline>
-<codeline lineno="301" refid="classcmd2_1_1StubbornDict_1ad46f55b61faae98d241e30d52cd04eee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1StubbornDict_1ad46f55b61faae98d241e30d52cd04eee" kindref="member">to_dict</ref>(cls,<sp/>arg):</highlight></codeline>
-<codeline lineno="302"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;Generates<sp/>dictionary<sp/>from<sp/>string<sp/>or<sp/>list<sp/>of<sp/>strings&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="303"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>hasattr(arg,<sp/></highlight><highlight class="stringliteral">&apos;splitlines&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>arg.splitlines()</highlight></codeline>
-<codeline lineno="305"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>hasattr(arg,<sp/></highlight><highlight class="stringliteral">&apos;__reversed__&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>{}<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>a<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="308"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>a<sp/>=<sp/>a.strip()</highlight></codeline>
-<codeline lineno="309"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>a:</highlight></codeline>
-<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>key_val<sp/>=<sp/>a.split(</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">,<sp/>1)</highlight></codeline>
-<codeline lineno="311"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>key<sp/>=<sp/>key_val[0]</highlight></codeline>
-<codeline lineno="312"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>len(key_val)<sp/>&gt;<sp/>1:</highlight></codeline>
-<codeline lineno="313"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>val<sp/>=<sp/>key_val[1]</highlight></codeline>
-<codeline lineno="314"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="315"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>val<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="316"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[key]<sp/>=<sp/>val</highlight></codeline>
-<codeline lineno="317"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="318"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>arg</highlight></codeline>
-<codeline lineno="319"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="320"><highlight class="normal"></highlight></codeline>
-<codeline lineno="321" refid="namespacecmd2_1aae88fcdb31e45b322ecdaf7df9922823" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1aae88fcdb31e45b322ecdaf7df9922823" kindref="member">stubbornDict</ref>(*arg,<sp/>**kwarg):</highlight></codeline>
-<codeline lineno="322"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="323"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(stubbornDict(&apos;cow<sp/>a<sp/>bovine\\nhorse<sp/>an<sp/>equine&apos;).items())</highlight></codeline>
-<codeline lineno="324"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;cow&apos;,<sp/>&apos;a<sp/>bovine&apos;),<sp/>(&apos;horse&apos;,<sp/>&apos;an<sp/>equine&apos;)]</highlight></codeline>
-<codeline lineno="325"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(stubbornDict([&apos;badger&apos;,<sp/>&apos;porcupine<sp/>a<sp/>poky<sp/>creature&apos;]).items())</highlight></codeline>
-<codeline lineno="326"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;badger&apos;,<sp/>&apos;&apos;),<sp/>(&apos;porcupine&apos;,<sp/>&apos;a<sp/>poky<sp/>creature&apos;)]</highlight></codeline>
-<codeline lineno="327"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>sorted(stubbornDict(turtle=&apos;has<sp/>shell&apos;,<sp/>frog=&apos;jumpy&apos;).items())</highlight></codeline>
-<codeline lineno="328"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[(&apos;frog&apos;,<sp/>&apos;jumpy&apos;),<sp/>(&apos;turtle&apos;,<sp/>&apos;has<sp/>shell&apos;)]</highlight></codeline>
-<codeline lineno="329"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="330"><highlight class="normal"><sp/><sp/><sp/><sp/>result<sp/>=<sp/>{}</highlight></codeline>
-<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>a<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.update(StubbornDict.to_dict(a))</highlight></codeline>
-<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/>result.update(kwarg)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="334"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classcmd2_1_1StubbornDict" kindref="compound">StubbornDict</ref>(result)</highlight></codeline>
-<codeline lineno="335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="336" refid="namespacecmd2_1aa5aa0c16a66d0ec0510ac38f3cc00ad3" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1aa5aa0c16a66d0ec0510ac38f3cc00ad3" kindref="member">replace_with_file_contents</ref>(fname):</highlight></codeline>
-<codeline lineno="337"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>fname:</highlight></codeline>
-<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>open(os.path.expanduser(fname[0])).read()</highlight></codeline>
-<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IOError:</highlight></codeline>
-<codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&lt;<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>fname[0]<sp/><sp/></highlight><highlight class="comment">#<sp/>wasn&apos;t<sp/>a<sp/>file<sp/>after<sp/>all</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/><ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>()</highlight></codeline>
-<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result<sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="345"><highlight class="normal"></highlight></codeline>
-<codeline lineno="346" refid="classcmd2_1_1EmbeddedConsoleExit" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1EmbeddedConsoleExit" kindref="compound">EmbeddedConsoleExit</ref>(SystemExit):</highlight></codeline>
-<codeline lineno="347"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="348"><highlight class="normal"></highlight></codeline>
-<codeline lineno="349" refid="classcmd2_1_1EmptyStatement" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">EmptyStatement(Exception):</highlight></codeline>
-<codeline lineno="350"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="351"><highlight class="normal"></highlight></codeline>
-<codeline lineno="352" refid="namespacecmd2_1ad4ac87ba068f9549b5a7735054df8065" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1ad4ac87ba068f9549b5a7735054df8065" kindref="member">ljust</ref>(x,<sp/>width,<sp/>fillchar=&apos;<sp/>&apos;):</highlight></codeline>
-<codeline lineno="353"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;analogous<sp/>to<sp/>str.ljust,<sp/>but<sp/>works<sp/>for<sp/>lists&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="354"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>hasattr(x,<sp/></highlight><highlight class="stringliteral">&apos;ljust&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x.ljust(width,<sp/>fillchar)</highlight></codeline>
-<codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>len(x)<sp/>&lt;<sp/>width:</highlight></codeline>
-<codeline lineno="358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x<sp/>=<sp/>(x<sp/>+<sp/>[fillchar]<sp/>*<sp/>width)[:width]</highlight></codeline>
-<codeline lineno="359"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x</highlight></codeline>
-<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="361" refid="classcmd2_1_1Cmd" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd" kindref="compound">Cmd</ref>(cmd.Cmd):</highlight></codeline>
-<codeline lineno="362" refid="classcmd2_1_1Cmd_1a417779ccb5de864826f97a959bd196d3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>echo<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="363" refid="classcmd2_1_1Cmd_1a10de661ca23b94cd93972c260523c8a0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>case_insensitive<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Commands<sp/>recognized<sp/>regardless<sp/>of<sp/>case</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="364" refid="classcmd2_1_1Cmd_1a186ca22e76dc63ad9d8a95cfaeb4f7fd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>continuation_prompt<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&gt;<sp/>&apos;</highlight><highlight class="normal"><sp/><sp/></highlight></codeline>
-<codeline lineno="365" refid="classcmd2_1_1Cmd_1a2d83899c5edb8c1296cb90b0fb282de7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>timing<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Prints<sp/>elapsed<sp/>time<sp/>for<sp/>each<sp/>command</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="366"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>make<sp/>sure<sp/>your<sp/>terminators<sp/>are<sp/>not<sp/>in<sp/>legalChars!</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="367" refid="classcmd2_1_1Cmd_1a866c4b8895784a477d36bebfecfa397e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>legalChars<sp/>=<sp/></highlight><highlight class="stringliteral">u&apos;!#$%.:?@_&apos;</highlight><highlight class="normal"><sp/>+<sp/>pyparsing.alphanums<sp/>+<sp/>pyparsing.alphas8bit</highlight></codeline>
-<codeline lineno="368" refid="classcmd2_1_1Cmd_1ad8ccfbcd2a4eb800f040fcdbd26089df" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>shortcuts<sp/>=<sp/>{</highlight><highlight class="stringliteral">&apos;?&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="stringliteral">&apos;help&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;!&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="stringliteral">&apos;shell&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;@&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="stringliteral">&apos;load&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;@@&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="stringliteral">&apos;_relative_load&apos;</highlight><highlight class="normal">}</highlight></codeline>
-<codeline lineno="369" refid="classcmd2_1_1Cmd_1a35586c262b272917f6ecae8e76fca6b9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>excludeFromHistory<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;run<sp/>r<sp/>list<sp/>l<sp/>history<sp/>hi<sp/>ed<sp/>edit<sp/>li<sp/>eof&apos;&apos;&apos;</highlight><highlight class="normal">.split()</highlight></codeline>
-<codeline lineno="370" refid="classcmd2_1_1Cmd_1a7da859e33eae87d5069b96d366cf04b4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>default_to_shell<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="371" refid="classcmd2_1_1Cmd_1a4e4d47a554f0725c2562c2bc19af1a3e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>noSpecialParse<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;set<sp/>ed<sp/>edit<sp/>exit&apos;</highlight><highlight class="normal">.split()</highlight></codeline>
-<codeline lineno="372" refid="classcmd2_1_1Cmd_1ab14061f1d84f49fb8fefcce285e7aec7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>defaultExtension<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;txt&apos;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>For<sp/>``save``,<sp/>``load``,<sp/>etc.</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="373" refid="classcmd2_1_1Cmd_1a3af82e64cdabf19b462cd0ddf686823d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>default_file_name<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;command.txt&apos;</highlight><highlight class="normal"><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>For<sp/>``save``,<sp/>``load``,<sp/>etc.</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="374" refid="classcmd2_1_1Cmd_1a810ba12198cbbc4e38643c83278956f6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>abbrev<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Abbreviated<sp/>commands<sp/>recognized</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="375" refid="classcmd2_1_1Cmd_1a549399bed9574c87901100530343ac68" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>current_script_dir<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="376" refid="classcmd2_1_1Cmd_1a01befaea1ef9fa2c8b26521f7b2dfb9c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>reserved_words<sp/>=<sp/>[]</highlight></codeline>
-<codeline lineno="377" refid="classcmd2_1_1Cmd_1ad571e5687af698c33a547062762a26bc" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>feedback_to_output<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Do<sp/>include<sp/>nonessentials<sp/>in<sp/>&gt;,<sp/>|<sp/>output</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="378" refid="classcmd2_1_1Cmd_1a50495cbf3a3ea3467c86233ebbea4572" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>quiet<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Do<sp/>not<sp/>suppress<sp/>nonessential<sp/>output</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="379" refid="classcmd2_1_1Cmd_1a7b07b64964162c07f50675b2b40160b2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>debug<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="380" refid="classcmd2_1_1Cmd_1a55e7978c792429a0a2e3321abdbd23fe" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>locals_in_py<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="381" refid="classcmd2_1_1Cmd_1ad480d9102b3a5e4c8c5541d2c205a1ad" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>kept_state<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="382" refid="classcmd2_1_1Cmd_1a64b810574dab9ec12100c5344dc66735" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>redirector<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&gt;&apos;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>for<sp/>sending<sp/>output<sp/>to<sp/>file</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="383" refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>settable<sp/>=<sp/><ref refid="namespacecmd2_1aae88fcdb31e45b322ecdaf7df9922823" kindref="member">stubbornDict</ref>(</highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="384"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>prompt</highlight></codeline>
-<codeline lineno="385"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>colors<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Colorized<sp/>output<sp/>(*nix<sp/>only)</highlight></codeline>
-<codeline lineno="386"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>continuation_prompt<sp/><sp/><sp/>On<sp/>2nd+<sp/>line<sp/>of<sp/>input</highlight></codeline>
-<codeline lineno="387"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>debug<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Show<sp/>full<sp/>error<sp/>stack<sp/>on<sp/>error</highlight></codeline>
-<codeline lineno="388"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>default_file_name<sp/><sp/><sp/><sp/><sp/>for<sp/>``save``,<sp/>``load``,<sp/>etc.</highlight></codeline>
-<codeline lineno="389"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>editor<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Program<sp/>used<sp/>by<sp/>``edit``<sp/><sp/></highlight></codeline>
-<codeline lineno="390"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>case_insensitive<sp/><sp/><sp/><sp/><sp/><sp/>upper-<sp/>and<sp/>lower-case<sp/>both<sp/>OK</highlight></codeline>
-<codeline lineno="391"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>feedback_to_output<sp/><sp/><sp/><sp/>include<sp/>nonessentials<sp/>in<sp/>`|`,<sp/>`&gt;`<sp/>results<sp/></highlight></codeline>
-<codeline lineno="392"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>quiet<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Don&apos;t<sp/>print<sp/>nonessential<sp/>feedback</highlight></codeline>
-<codeline lineno="393"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>echo<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Echo<sp/>command<sp/>issued<sp/>into<sp/>output</highlight></codeline>
-<codeline lineno="394"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timing<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Report<sp/>execution<sp/>times</highlight></codeline>
-<codeline lineno="395"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>abbrev<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Accept<sp/>abbreviated<sp/>commands</highlight></codeline>
-<codeline lineno="396"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="397"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="398" refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(self,<sp/>msg):</highlight></codeline>
-<codeline lineno="399"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Convenient<sp/>shortcut<sp/>for<sp/>self.stdout.write();<sp/>adds<sp/>newline<sp/>if<sp/>necessary.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>msg:</highlight></codeline>
-<codeline lineno="401"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(msg)</highlight></codeline>
-<codeline lineno="402"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>msg[-1]<sp/>!=<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="403"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(</highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="404" refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(self,<sp/>errmsg,<sp/>statement=None):</highlight></codeline>
-<codeline lineno="405"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a7b07b64964162c07f50675b2b40160b2" kindref="member">debug</ref>:</highlight></codeline>
-<codeline lineno="406"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>traceback.print_exc()</highlight></codeline>
-<codeline lineno="407"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(str(errmsg))</highlight></codeline>
-<codeline lineno="408" refid="classcmd2_1_1Cmd_1a122b67681a0db23863f5ddaa7a687975" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a122b67681a0db23863f5ddaa7a687975" kindref="member">pfeedback</ref>(self,<sp/>msg):</highlight></codeline>
-<codeline lineno="409"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;For<sp/>printing<sp/>nonessential<sp/>feedback.<sp/><sp/>Can<sp/>be<sp/>silenced<sp/>with<sp/>`quiet`.</highlight></codeline>
-<codeline lineno="410"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Inclusion<sp/>in<sp/>redirected<sp/>output<sp/>is<sp/>controlled<sp/>by<sp/>`feedback_to_output`.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="411"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a50495cbf3a3ea3467c86233ebbea4572" kindref="member">quiet</ref>:</highlight></codeline>
-<codeline lineno="412"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad571e5687af698c33a547062762a26bc" kindref="member">feedback_to_output</ref>:</highlight></codeline>
-<codeline lineno="413"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(msg)</highlight></codeline>
-<codeline lineno="414"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="415"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(msg)</highlight></codeline>
-<codeline lineno="416" refid="classcmd2_1_1Cmd_1a7a8e8257d7d35c7813355cdefb62b85b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>_STOP_AND_EXIT<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">#<sp/>distinguish<sp/>end<sp/>of<sp/>script<sp/>file<sp/>from<sp/>actual<sp/>exit</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="417" refid="classcmd2_1_1Cmd_1abe14bda0dc50326876c6a761cefba702" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>_STOP_SCRIPT_NO_EXIT<sp/>=<sp/>-999</highlight></codeline>
-<codeline lineno="418" refid="classcmd2_1_1Cmd_1a25fe904aca52573c6f10e798dd561588" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>editor<sp/>=<sp/>os.environ.get(</highlight><highlight class="stringliteral">&apos;EDITOR&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="419"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>editor:</highlight></codeline>
-<codeline lineno="420"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>sys.platform[:3]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;win&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="421" refid="classcmd2_1_1Cmd_1a3a1abb5d4a8d42dcce7d61b04bdf9e97" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>editor<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;notepad&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="423"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>editor<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>[</highlight><highlight class="stringliteral">&apos;gedit&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;kate&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;vim&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;emacs&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;nano&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;pico&apos;</highlight><highlight class="normal">]:</highlight></codeline>
-<codeline lineno="424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>subprocess.Popen([</highlight><highlight class="stringliteral">&apos;which&apos;</highlight><highlight class="normal">,<sp/>editor],<sp/>stdout=subprocess.PIPE).communicate()[0]:</highlight></codeline>
-<codeline lineno="425"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="426"><highlight class="normal"></highlight></codeline>
-<codeline lineno="427" refid="classcmd2_1_1Cmd_1a91dd3e77a8d1f247dcfdddbfc0288b3b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>colorcodes<sp/>=<sp/><sp/><sp/><sp/>{</highlight><highlight class="stringliteral">&apos;bold&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[1m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[22m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;cyan&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[36m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[39m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;blue&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[34m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[39m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;red&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[31m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[39m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;magenta&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[35m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[39m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="432"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;green&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[32m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[39m&apos;</highlight><highlight class="normal">},</highlight></codeline>
-<codeline lineno="433"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;underline&apos;</highlight><highlight class="normal">:{</highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[4m&apos;</highlight><highlight class="normal">,</highlight><highlight class="keyword">False</highlight><highlight class="normal">:</highlight><highlight class="stringliteral">&apos;\x1b[24m&apos;</highlight><highlight class="normal">}}</highlight></codeline>
-<codeline lineno="434" refid="classcmd2_1_1Cmd_1a2ec43e734ae5b2a581216dc7914b231a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>colors<sp/>=<sp/>(platform.system()<sp/>!=<sp/></highlight><highlight class="stringliteral">&apos;Windows&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="435" refid="classcmd2_1_1Cmd_1a9c7f8fd1e7909d18a0f1d8cebf6c1966" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a9c7f8fd1e7909d18a0f1d8cebf6c1966" kindref="member">colorize</ref>(self,<sp/>val,<sp/>color):</highlight></codeline>
-<codeline lineno="436"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Given<sp/>a<sp/>string<sp/>(``val``),<sp/>returns<sp/>that<sp/>string<sp/>wrapped<sp/>in<sp/>UNIX-style<sp/></highlight></codeline>
-<codeline lineno="437"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>special<sp/>characters<sp/>that<sp/>turn<sp/>on<sp/>(and<sp/>then<sp/>off)<sp/>text<sp/>color<sp/>and<sp/>style.</highlight></codeline>
-<codeline lineno="438"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>If<sp/>the<sp/>``colors``<sp/>environment<sp/>paramter<sp/>is<sp/>``False``,<sp/>or<sp/>the<sp/>application</highlight></codeline>
-<codeline lineno="439"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>is<sp/>running<sp/>on<sp/>Windows,<sp/>will<sp/>return<sp/>``val``<sp/>unchanged.</highlight></codeline>
-<codeline lineno="440" refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" refkind="member"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>``color``<sp/>should<sp/>be<sp/>one<sp/>of<sp/>the<sp/>supported<sp/>strings<sp/>(or<sp/>styles):</highlight></codeline>
-<codeline lineno="441"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>red/blue/green/cyan/magenta,<sp/>bold,<sp/>underline&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="442"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a2ec43e734ae5b2a581216dc7914b231a" kindref="member">colors</ref><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>(self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref><sp/>==<sp/>self.<ref refid="classcmd2_1_1Cmd_1af7cb41e066bc55be38b97ea82269e5e8" kindref="member">initial_stdout</ref>):</highlight></codeline>
-<codeline lineno="443"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a91dd3e77a8d1f247dcfdddbfc0288b3b" kindref="member">colorcodes</ref>[color][</highlight><highlight class="keyword">True</highlight><highlight class="normal">]<sp/>+<sp/>val<sp/>+<sp/>self.<ref refid="classcmd2_1_1Cmd_1a91dd3e77a8d1f247dcfdddbfc0288b3b" kindref="member">colorcodes</ref>[color][</highlight><highlight class="keyword">False</highlight><highlight class="normal">]</highlight></codeline>
-<codeline lineno="444"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>val</highlight></codeline>
-<codeline lineno="445"><highlight class="normal"></highlight></codeline>
-<codeline lineno="446" refid="classcmd2_1_1Cmd_1a79949284f70e1fdb7e33117cc4195f80" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a79949284f70e1fdb7e33117cc4195f80" kindref="member">do_cmdenvironment</ref>(self,<sp/>args):</highlight></codeline>
-<codeline lineno="447"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Summary<sp/>report<sp/>of<sp/>interactive<sp/>parameters.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="448"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(</highlight><highlight class="stringliteral">&quot;&quot;&quot;</highlight></codeline>
-<codeline lineno="449"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Commands<sp/>are<sp/>%(casesensitive)scase-sensitive.</highlight></codeline>
-<codeline lineno="450"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Commands<sp/>may<sp/>be<sp/>terminated<sp/>with:<sp/>%(terminators)s</highlight></codeline>
-<codeline lineno="451"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Settable<sp/>parameters:<sp/>%(settable)s\n&quot;&quot;&quot;</highlight><highlight class="normal"><sp/>%<sp/>\</highlight></codeline>
-<codeline lineno="452"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{<sp/></highlight><highlight class="stringliteral">&apos;casesensitive&apos;</highlight><highlight class="normal">:<sp/>(self.<ref refid="classcmd2_1_1Cmd_1a10de661ca23b94cd93972c260523c8a0" kindref="member">case_insensitive</ref><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;not<sp/>&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,</highlight></codeline>
-<codeline lineno="453"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;terminators&apos;</highlight><highlight class="normal">:<sp/>str(self.<ref refid="classcmd2_1_1Cmd_1a6bd95a7f702f668696ab6e88555da23d" kindref="member">terminators</ref>),</highlight></codeline>
-<codeline lineno="454"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;settable&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="stringliteral">&apos;<sp/>&apos;</highlight><highlight class="normal">.join(self.<ref refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" kindref="member">settable</ref>)</highlight></codeline>
-<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>})</highlight></codeline>
-<codeline lineno="456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="457" refid="classcmd2_1_1Cmd_1af112b7b704dcd8d34c389fcaa150e3d0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1af112b7b704dcd8d34c389fcaa150e3d0" kindref="member">do_help</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="458"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="459"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>funcname<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a7fbb17b136654f705387ede1fb685a3e" kindref="member">func_named</ref>(arg)</highlight></codeline>
-<codeline lineno="460"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>funcname:</highlight></codeline>
-<codeline lineno="461"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fn<sp/>=<sp/>getattr(self,<sp/>funcname)</highlight></codeline>
-<codeline lineno="462"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="463"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fn.optionParser.print_help(file=self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref>)</highlight></codeline>
-<codeline lineno="464"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:</highlight></codeline>
-<codeline lineno="465"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cmd.Cmd.do_help(self,<sp/>funcname[3:])</highlight></codeline>
-<codeline lineno="466"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="467"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cmd.Cmd.do_help(self,<sp/>arg)</highlight></codeline>
-<codeline lineno="468"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="469" refid="classcmd2_1_1Cmd_1a728675cc7b48ac258c5026929df0dfe4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1afef8fbba2cb5adea45e3a22a506c8665" kindref="member">__init__</ref>(self,<sp/>*args,<sp/>**kwargs):<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="470"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cmd.Cmd.__init__(self,<sp/>*args,<sp/>**kwargs)</highlight></codeline>
-<codeline lineno="471"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1af7cb41e066bc55be38b97ea82269e5e8" kindref="member">initial_stdout</ref><sp/>=<sp/>sys.stdout</highlight></codeline>
-<codeline lineno="472"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref><sp/>=<sp/><ref refid="classcmd2_1_1History" kindref="compound">History</ref>()</highlight></codeline>
-<codeline lineno="473"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref><sp/>=<sp/>{}</highlight></codeline>
-<codeline lineno="474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8ccfbcd2a4eb800f040fcdbd26089df" kindref="member">shortcuts</ref><sp/>=<sp/>sorted(self.shortcuts.items(),<sp/>reverse=</highlight><highlight class="keyword">True</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="475"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a8ccd464e255a798b587637f9b812dbcd" kindref="member">keywords</ref><sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a01befaea1ef9fa2c8b26521f7b2dfb9c" kindref="member">reserved_words</ref><sp/>+<sp/>[fname[3:]<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>fname<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>dir(self)<sp/></highlight></codeline>
-<codeline lineno="476"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>fname.startswith(</highlight><highlight class="stringliteral">&apos;do_&apos;</highlight><highlight class="normal">)]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="477"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a819bd7bd930dab0e39e59af3397c2eac" kindref="member">_init_parser</ref>()</highlight></codeline>
-<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="479" refid="classcmd2_1_1Cmd_1aea47330c6e0f4e5f14e2cdff41679597" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aea47330c6e0f4e5f14e2cdff41679597" kindref="member">do_shortcuts</ref>(self,<sp/>args):</highlight></codeline>
-<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Lists<sp/>single-key<sp/>shortcuts<sp/>available.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="481"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="stringliteral">&quot;\n&quot;</highlight><highlight class="normal">.join(</highlight><highlight class="stringliteral">&apos;%s:<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(sc[0],<sp/>sc[1])<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>sc<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>sorted(self.<ref refid="classcmd2_1_1Cmd_1ad8ccfbcd2a4eb800f040fcdbd26089df" kindref="member">shortcuts</ref>))</highlight></codeline>
-<codeline lineno="482"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(</highlight><highlight class="stringliteral">&quot;Single-key<sp/>shortcuts<sp/>for<sp/>other<sp/>commands:\n%s\n&quot;</highlight><highlight class="normal"><sp/>%<sp/>(result))</highlight></codeline>
-<codeline lineno="483"><highlight class="normal"></highlight></codeline>
-<codeline lineno="484" refid="classcmd2_1_1Cmd_1a794ce4cfd06ddd8df24df33d9f116a65" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>prefixParser<sp/>=<sp/>pyparsing.Empty()</highlight></codeline>
-<codeline lineno="485" refid="classcmd2_1_1Cmd_1ae6adde6cd440331e4add0bdf8c2c61d0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>commentGrammars<sp/>=<sp/>pyparsing.Or([pyparsing.pythonStyleComment,<sp/>pyparsing.cStyleComment])</highlight></codeline>
-<codeline lineno="486"><highlight class="normal"><sp/><sp/><sp/><sp/>commentGrammars.addParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="487" refid="classcmd2_1_1Cmd_1a0333f71a3291354d3238a4853ec5e762" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>commentInProgress<sp/><sp/>=<sp/>pyparsing.Literal(</highlight><highlight class="stringliteral">&apos;/*&apos;</highlight><highlight class="normal">)<sp/>+<sp/>pyparsing.SkipTo(</highlight></codeline>
-<codeline lineno="488"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.stringEnd<sp/>^<sp/></highlight><highlight class="stringliteral">&apos;*/&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="489" refid="classcmd2_1_1Cmd_1a6bd95a7f702f668696ab6e88555da23d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>terminators<sp/>=<sp/>[</highlight><highlight class="stringliteral">&apos;;&apos;</highlight><highlight class="normal">]</highlight></codeline>
-<codeline lineno="490" refid="classcmd2_1_1Cmd_1a395ee1f733c5faeb66e74b308cbc5e63" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>blankLinesAllowed<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="491" refid="classcmd2_1_1Cmd_1a05fbd7501cbc1f911e9a4925e5f0804a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>multilineCommands<sp/>=<sp/>[]</highlight></codeline>
-<codeline lineno="492"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="493" refid="classcmd2_1_1Cmd_1a819bd7bd930dab0e39e59af3397c2eac" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a819bd7bd930dab0e39e59af3397c2eac" kindref="member">_init_parser</ref>(self):</highlight></codeline>
-<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">r&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="495"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>c<sp/>=<sp/>Cmd()</highlight></codeline>
-<codeline lineno="496"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>c.multilineCommands<sp/>=<sp/>[&apos;multiline&apos;]</highlight></codeline>
-<codeline lineno="497"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>c.case_insensitive<sp/>=<sp/>True</highlight></codeline>
-<codeline lineno="498"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>c._init_parser()</highlight></codeline>
-<codeline lineno="499"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;&apos;).dump())</highlight></codeline>
-<codeline lineno="500"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[]</highlight></codeline>
-<codeline lineno="501"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;&apos;).dump())</highlight></codeline>
-<codeline lineno="502"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="503"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;/*<sp/>empty<sp/>command<sp/>*/&apos;).dump())</highlight></codeline>
-<codeline lineno="504"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="505"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;plainword&apos;).dump())</highlight></codeline>
-<codeline lineno="506"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;plainword&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="507"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>plainword</highlight></codeline>
-<codeline lineno="508"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;plainword&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="509"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>plainword<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="510"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;termbare;&apos;).dump())</highlight></codeline>
-<codeline lineno="511"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;termbare&apos;,<sp/>&apos;&apos;,<sp/>&apos;;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="512"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>termbare</highlight></codeline>
-<codeline lineno="513"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;termbare&apos;,<sp/>&apos;&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="514"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>termbare</highlight></codeline>
-<codeline lineno="515"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="516"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="517"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;termbare;<sp/>suffx&apos;).dump())</highlight></codeline>
-<codeline lineno="518"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;termbare&apos;,<sp/>&apos;&apos;,<sp/>&apos;;&apos;,<sp/>&apos;suffx&apos;]</highlight></codeline>
-<codeline lineno="519"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>termbare</highlight></codeline>
-<codeline lineno="520"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;termbare&apos;,<sp/>&apos;&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="521"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>termbare</highlight></codeline>
-<codeline lineno="522"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="523"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>suffix:<sp/>suffx</highlight></codeline>
-<codeline lineno="524"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="525"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;barecommand&apos;).dump())</highlight></codeline>
-<codeline lineno="526"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;barecommand&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="527"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>barecommand</highlight></codeline>
-<codeline lineno="528"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;barecommand&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="529"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>barecommand</highlight></codeline>
-<codeline lineno="530"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;COMmand<sp/>with<sp/>args&apos;).dump())</highlight></codeline>
-<codeline lineno="531"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args&apos;]</highlight></codeline>
-<codeline lineno="532"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args</highlight></codeline>
-<codeline lineno="533"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="534"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args&apos;]</highlight></codeline>
-<codeline lineno="535"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args</highlight></codeline>
-<codeline lineno="536"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="537"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;command<sp/>with<sp/>args<sp/>and<sp/>terminator;<sp/>and<sp/>suffix&apos;).dump())</highlight></codeline>
-<codeline lineno="538"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args<sp/>and<sp/>terminator&apos;,<sp/>&apos;;&apos;,<sp/>&apos;and<sp/>suffix&apos;]</highlight></codeline>
-<codeline lineno="539"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args<sp/>and<sp/>terminator</highlight></codeline>
-<codeline lineno="540"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="541"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args<sp/>and<sp/>terminator&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="542"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args<sp/>and<sp/>terminator</highlight></codeline>
-<codeline lineno="543"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="544"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="545"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>suffix:<sp/>and<sp/>suffix</highlight></codeline>
-<codeline lineno="546"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="547"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;simple<sp/>|<sp/>piped&apos;).dump())</highlight></codeline>
-<codeline lineno="548"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;simple&apos;,<sp/>&apos;&apos;,<sp/>&apos;|&apos;,<sp/>&apos;<sp/>piped&apos;]</highlight></codeline>
-<codeline lineno="549"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>simple</highlight></codeline>
-<codeline lineno="550"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>pipeTo:<sp/><sp/>piped</highlight></codeline>
-<codeline lineno="551"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;simple&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="552"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>simple</highlight></codeline>
-<codeline lineno="553"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;double-pipe<sp/>||<sp/>is<sp/>not<sp/>a<sp/>pipe&apos;).dump())</highlight></codeline>
-<codeline lineno="554"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;double&apos;,<sp/>&apos;-pipe<sp/>||<sp/>is<sp/>not<sp/>a<sp/>pipe&apos;]</highlight></codeline>
-<codeline lineno="555"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>-pipe<sp/>||<sp/>is<sp/>not<sp/>a<sp/>pipe</highlight></codeline>
-<codeline lineno="556"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>double</highlight></codeline>
-<codeline lineno="557"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;double&apos;,<sp/>&apos;-pipe<sp/>||<sp/>is<sp/>not<sp/>a<sp/>pipe&apos;]</highlight></codeline>
-<codeline lineno="558"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>-pipe<sp/>||<sp/>is<sp/>not<sp/>a<sp/>pipe</highlight></codeline>
-<codeline lineno="559"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>double</highlight></codeline>
-<codeline lineno="560"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;command<sp/>with<sp/>args,<sp/>terminator;sufx<sp/>|<sp/>piped&apos;).dump())</highlight></codeline>
-<codeline lineno="561"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args,<sp/>terminator&apos;,<sp/>&apos;;&apos;,<sp/>&apos;sufx&apos;,<sp/>&apos;|&apos;,<sp/>&apos;<sp/>piped&apos;]</highlight></codeline>
-<codeline lineno="562"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args,<sp/>terminator</highlight></codeline>
-<codeline lineno="563"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="564"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>pipeTo:<sp/><sp/>piped</highlight></codeline>
-<codeline lineno="565"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;command&apos;,<sp/>&apos;with<sp/>args,<sp/>terminator&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="566"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>with<sp/>args,<sp/>terminator</highlight></codeline>
-<codeline lineno="567"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>command</highlight></codeline>
-<codeline lineno="568"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="569"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>suffix:<sp/>sufx</highlight></codeline>
-<codeline lineno="570"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="571"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;output<sp/>into<sp/>&gt;<sp/>afile.txt&apos;).dump())</highlight></codeline>
-<codeline lineno="572"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;output&apos;,<sp/>&apos;into&apos;,<sp/>&apos;&gt;&apos;,<sp/>&apos;afile.txt&apos;]</highlight></codeline>
-<codeline lineno="573"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>into</highlight></codeline>
-<codeline lineno="574"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output</highlight></codeline>
-<codeline lineno="575"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>output:<sp/>&gt;</highlight></codeline>
-<codeline lineno="576"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>outputTo:<sp/>afile.txt</highlight></codeline>
-<codeline lineno="577"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;output&apos;,<sp/>&apos;into&apos;]</highlight></codeline>
-<codeline lineno="578"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>into</highlight></codeline>
-<codeline lineno="579"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output<sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="580"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;output<sp/>into;sufx<sp/>|<sp/>pipethrume<sp/>plz<sp/>&gt;<sp/>afile.txt&apos;).dump())</highlight></codeline>
-<codeline lineno="581"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;output&apos;,<sp/>&apos;into&apos;,<sp/>&apos;;&apos;,<sp/>&apos;sufx&apos;,<sp/>&apos;|&apos;,<sp/>&apos;<sp/>pipethrume<sp/>plz&apos;,<sp/>&apos;&gt;&apos;,<sp/>&apos;afile.txt&apos;]</highlight></codeline>
-<codeline lineno="582"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>into</highlight></codeline>
-<codeline lineno="583"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output</highlight></codeline>
-<codeline lineno="584"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>output:<sp/>&gt;</highlight></codeline>
-<codeline lineno="585"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>outputTo:<sp/>afile.txt</highlight></codeline>
-<codeline lineno="586"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>pipeTo:<sp/><sp/>pipethrume<sp/>plz</highlight></codeline>
-<codeline lineno="587"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;output&apos;,<sp/>&apos;into&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="588"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>into</highlight></codeline>
-<codeline lineno="589"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output</highlight></codeline>
-<codeline lineno="590"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="591"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>suffix:<sp/>sufx</highlight></codeline>
-<codeline lineno="592"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="593"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;output<sp/>to<sp/>paste<sp/>buffer<sp/>&gt;&gt;<sp/>&apos;).dump())</highlight></codeline>
-<codeline lineno="594"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;output&apos;,<sp/>&apos;to<sp/>paste<sp/>buffer&apos;,<sp/>&apos;&gt;&gt;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="595"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>to<sp/>paste<sp/>buffer</highlight></codeline>
-<codeline lineno="596"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output</highlight></codeline>
-<codeline lineno="597"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>output:<sp/>&gt;&gt;</highlight></codeline>
-<codeline lineno="598"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;output&apos;,<sp/>&apos;to<sp/>paste<sp/>buffer&apos;]</highlight></codeline>
-<codeline lineno="599"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>to<sp/>paste<sp/>buffer</highlight></codeline>
-<codeline lineno="600"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>output</highlight></codeline>
-<codeline lineno="601"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;ignore<sp/>the<sp/>/*<sp/>commented<sp/>|<sp/>&gt;<sp/>*/<sp/>stuff;&apos;).dump())</highlight></codeline>
-<codeline lineno="602"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;ignore&apos;,<sp/>&apos;the<sp/>/*<sp/>commented<sp/>|<sp/>&gt;<sp/>*/<sp/>stuff&apos;,<sp/>&apos;;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="603"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>the<sp/>/*<sp/>commented<sp/>|<sp/>&gt;<sp/>*/<sp/>stuff</highlight></codeline>
-<codeline lineno="604"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>ignore</highlight></codeline>
-<codeline lineno="605"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;ignore&apos;,<sp/>&apos;the<sp/>/*<sp/>commented<sp/>|<sp/>&gt;<sp/>*/<sp/>stuff&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="606"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>the<sp/>/*<sp/>commented<sp/>|<sp/>&gt;<sp/>*/<sp/>stuff</highlight></codeline>
-<codeline lineno="607"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>ignore</highlight></codeline>
-<codeline lineno="608"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="609"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="610"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;has<sp/>&gt;<sp/>inside;&apos;).dump())</highlight></codeline>
-<codeline lineno="611"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;has&apos;,<sp/>&apos;&gt;<sp/>inside&apos;,<sp/>&apos;;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="612"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>&gt;<sp/>inside</highlight></codeline>
-<codeline lineno="613"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>has</highlight></codeline>
-<codeline lineno="614"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;has&apos;,<sp/>&apos;&gt;<sp/>inside&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="615"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>&gt;<sp/>inside</highlight></codeline>
-<codeline lineno="616"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>has</highlight></codeline>
-<codeline lineno="617"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="618"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="619"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>has<sp/>&gt;<sp/>inside<sp/>an<sp/>unfinished<sp/>command&apos;).dump())</highlight></codeline>
-<codeline lineno="620"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;<sp/>has<sp/>&gt;<sp/>inside<sp/>an<sp/>unfinished<sp/>command&apos;]</highlight></codeline>
-<codeline lineno="621"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="622"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>has<sp/>&gt;<sp/>inside;&apos;).dump())</highlight></codeline>
-<codeline lineno="623"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;has<sp/>&gt;<sp/>inside&apos;,<sp/>&apos;;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="624"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>has<sp/>&gt;<sp/>inside</highlight></codeline>
-<codeline lineno="625"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="626"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;multiline&apos;,<sp/>&apos;has<sp/>&gt;<sp/>inside&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="627"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>has<sp/>&gt;<sp/>inside</highlight></codeline>
-<codeline lineno="628"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="629"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="630"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="631"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>command<sp/>/*<sp/>with<sp/>comment<sp/>in<sp/>progress;&apos;).dump())</highlight></codeline>
-<codeline lineno="632"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;<sp/>command<sp/>/*<sp/>with<sp/>comment<sp/>in<sp/>progress;&apos;]</highlight></codeline>
-<codeline lineno="633"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="634"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>command<sp/>/*<sp/>with<sp/>comment<sp/>complete<sp/>*/<sp/>is<sp/>done;&apos;).dump())</highlight></codeline>
-<codeline lineno="635"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>/*<sp/>with<sp/>comment<sp/>complete<sp/>*/<sp/>is<sp/>done&apos;,<sp/>&apos;;&apos;,<sp/>&apos;&apos;]</highlight></codeline>
-<codeline lineno="636"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>/*<sp/>with<sp/>comment<sp/>complete<sp/>*/<sp/>is<sp/>done</highlight></codeline>
-<codeline lineno="637"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="638"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>/*<sp/>with<sp/>comment<sp/>complete<sp/>*/<sp/>is<sp/>done&apos;,<sp/>&apos;;&apos;]</highlight></codeline>
-<codeline lineno="639"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>/*<sp/>with<sp/>comment<sp/>complete<sp/>*/<sp/>is<sp/>done</highlight></codeline>
-<codeline lineno="640"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="641"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="642"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>;</highlight></codeline>
-<codeline lineno="643"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>command<sp/>ends\n\n&apos;).dump())</highlight></codeline>
-<codeline lineno="644"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>ends&apos;,<sp/>&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="645"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>ends</highlight></codeline>
-<codeline lineno="646"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="647"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>ends&apos;,<sp/>&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="648"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>ends</highlight></codeline>
-<codeline lineno="649"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="650"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>[&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="651"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>[&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="652"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;multiline<sp/>command<sp/>&quot;with<sp/>term;<sp/>ends&quot;<sp/>now\n\n&apos;).dump())</highlight></codeline>
-<codeline lineno="653"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>&quot;with<sp/>term;<sp/>ends&quot;<sp/>now&apos;,<sp/>&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="654"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>&quot;with<sp/>term;<sp/>ends&quot;<sp/>now</highlight></codeline>
-<codeline lineno="655"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="656"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;multiline&apos;,<sp/>&apos;command<sp/>&quot;with<sp/>term;<sp/>ends&quot;<sp/>now&apos;,<sp/>&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="657"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>command<sp/>&quot;with<sp/>term;<sp/>ends&quot;<sp/>now</highlight></codeline>
-<codeline lineno="658"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>multilineCommand:<sp/>multiline</highlight></codeline>
-<codeline lineno="659"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>[&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="660"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>terminator:<sp/>[&apos;\n&apos;,<sp/>&apos;\n&apos;]</highlight></codeline>
-<codeline lineno="661"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>print<sp/>(c.parser.parseString(&apos;what<sp/>if<sp/>&quot;quoted<sp/>strings<sp/>/*<sp/>seem<sp/>to<sp/>&quot;<sp/>start<sp/>comments?&apos;).dump())</highlight></codeline>
-<codeline lineno="662"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[&apos;what&apos;,<sp/>&apos;if<sp/>&quot;quoted<sp/>strings<sp/>/*<sp/>seem<sp/>to<sp/>&quot;<sp/>start<sp/>comments?&apos;]</highlight></codeline>
-<codeline lineno="663"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>if<sp/>&quot;quoted<sp/>strings<sp/>/*<sp/>seem<sp/>to<sp/>&quot;<sp/>start<sp/>comments?</highlight></codeline>
-<codeline lineno="664"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>what</highlight></codeline>
-<codeline lineno="665"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>statement:<sp/>[&apos;what&apos;,<sp/>&apos;if<sp/>&quot;quoted<sp/>strings<sp/>/*<sp/>seem<sp/>to<sp/>&quot;<sp/>start<sp/>comments?&apos;]</highlight></codeline>
-<codeline lineno="666"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>args:<sp/>if<sp/>&quot;quoted<sp/>strings<sp/>/*<sp/>seem<sp/>to<sp/>&quot;<sp/>start<sp/>comments?</highlight></codeline>
-<codeline lineno="667" refid="classcmd2_1_1Cmd_1a58e84cc1e072fda53b98ba9ed4376540" refkind="member"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>-<sp/>command:<sp/>what</highlight></codeline>
-<codeline lineno="668"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="669"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#outputParser<sp/>=<sp/>(pyparsing.Literal(&apos;&gt;&gt;&apos;)<sp/>|<sp/>(pyparsing.WordStart()<sp/>+<sp/>&apos;&gt;&apos;)<sp/>|<sp/>pyparsing.Regex(&apos;[^=]&gt;&apos;))(&apos;output&apos;)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="670"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>outputParser<sp/>=<sp/>(pyparsing.Literal(self.<ref refid="classcmd2_1_1Cmd_1a64b810574dab9ec12100c5344dc66735" kindref="member">redirector</ref><sp/>*2)<sp/>|<sp/>\</highlight></codeline>
-<codeline lineno="671"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(pyparsing.WordStart()<sp/>+<sp/>self.<ref refid="classcmd2_1_1Cmd_1a64b810574dab9ec12100c5344dc66735" kindref="member">redirector</ref>)<sp/>|<sp/>\</highlight></codeline>
-<codeline lineno="672"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Regex(</highlight><highlight class="stringliteral">&apos;[^=]&apos;</highlight><highlight class="normal"><sp/>+<sp/>self.<ref refid="classcmd2_1_1Cmd_1a64b810574dab9ec12100c5344dc66735" kindref="member">redirector</ref>))(</highlight><highlight class="stringliteral">&apos;output&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="673"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="674"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>terminatorParser<sp/>=<sp/>pyparsing.Or([(hasattr(t,<sp/></highlight><highlight class="stringliteral">&apos;parseString&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>t)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>pyparsing.Literal(t)<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>t<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a6bd95a7f702f668696ab6e88555da23d" kindref="member">terminators</ref>])(</highlight><highlight class="stringliteral">&apos;terminator&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="675"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stringEnd<sp/>=<sp/>pyparsing.stringEnd<sp/>^<sp/></highlight><highlight class="stringliteral">&apos;\nEOF&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="676"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a295de6e6060359049be89b5cdb6c09b1" kindref="member">multilineCommand</ref><sp/>=<sp/>pyparsing.Or([pyparsing.Keyword(c,<sp/>caseless=self.<ref refid="classcmd2_1_1Cmd_1a10de661ca23b94cd93972c260523c8a0" kindref="member">case_insensitive</ref>)<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>c<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a05fbd7501cbc1f911e9a4925e5f0804a" kindref="member">multilineCommands</ref>])(</highlight><highlight class="stringliteral">&apos;multilineCommand&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="677"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oneLineCommand<sp/>=<sp/>(~self.<ref refid="classcmd2_1_1Cmd_1a295de6e6060359049be89b5cdb6c09b1" kindref="member">multilineCommand</ref><sp/>+<sp/>pyparsing.Word(self.<ref refid="classcmd2_1_1Cmd_1a866c4b8895784a477d36bebfecfa397e" kindref="member">legalChars</ref>))(</highlight><highlight class="stringliteral">&apos;command&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="678"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pipe<sp/>=<sp/>pyparsing.Keyword(</highlight><highlight class="stringliteral">&apos;|&apos;</highlight><highlight class="normal">,<sp/>identChars=</highlight><highlight class="stringliteral">&apos;|&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="679"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.commentGrammars.ignore(pyparsing.quotedString).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="680"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>doNotParse<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ae6adde6cd440331e4add0bdf8c2c61d0" kindref="member">commentGrammars</ref><sp/>|<sp/>self.<ref refid="classcmd2_1_1Cmd_1a0333f71a3291354d3238a4853ec5e762" kindref="member">commentInProgress</ref><sp/>|<sp/>pyparsing.quotedString</highlight></codeline>
-<codeline lineno="681"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>afterElements<sp/>=<sp/>\</highlight></codeline>
-<codeline lineno="682"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Optional(pipe<sp/>+<sp/>pyparsing.SkipTo(outputParser<sp/>^<sp/>stringEnd,<sp/>ignore=doNotParse)(</highlight><highlight class="stringliteral">&apos;pipeTo&apos;</highlight><highlight class="normal">))<sp/>+<sp/>\</highlight></codeline>
-<codeline lineno="683"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Optional(outputParser<sp/>+<sp/>pyparsing.SkipTo(stringEnd,<sp/>ignore=doNotParse).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].strip())(</highlight><highlight class="stringliteral">&apos;outputTo&apos;</highlight><highlight class="normal">))</highlight></codeline>
-<codeline lineno="684"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a10de661ca23b94cd93972c260523c8a0" kindref="member">case_insensitive</ref>:</highlight></codeline>
-<codeline lineno="685"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.multilineCommand.setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].lower())</highlight></codeline>
-<codeline lineno="686"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>oneLineCommand.setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].lower())</highlight></codeline>
-<codeline lineno="687"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a395ee1f733c5faeb66e74b308cbc5e63" kindref="member">blankLinesAllowed</ref>:</highlight></codeline>
-<codeline lineno="688"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab45987033aafd0458078de49d4cf1fb5" kindref="member">blankLineTerminationParser</ref><sp/>=<sp/>pyparsing.NoMatch</highlight></codeline>
-<codeline lineno="689"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="690"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a826ac7c82dd02c99be27940c179c9af3" kindref="member">blankLineTerminator</ref><sp/>=<sp/>(pyparsing.lineEnd<sp/>+<sp/>pyparsing.lineEnd)(</highlight><highlight class="stringliteral">&apos;terminator&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="691"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.blankLineTerminator.setResultsName(</highlight><highlight class="stringliteral">&apos;terminator&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="692"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab45987033aafd0458078de49d4cf1fb5" kindref="member">blankLineTerminationParser</ref><sp/>=<sp/>((self.<ref refid="classcmd2_1_1Cmd_1a295de6e6060359049be89b5cdb6c09b1" kindref="member">multilineCommand</ref><sp/>^<sp/>oneLineCommand)<sp/>+<sp/>pyparsing.SkipTo(self.<ref refid="classcmd2_1_1Cmd_1a826ac7c82dd02c99be27940c179c9af3" kindref="member">blankLineTerminator</ref>,<sp/>ignore=doNotParse).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].strip())(</highlight><highlight class="stringliteral">&apos;args&apos;</highlight><highlight class="normal">)<sp/>+<sp/>self.<ref refid="classcmd2_1_1Cmd_1a826ac7c82dd02c99be27940c179c9af3" kindref="member">blankLineTerminator</ref>)(</highlight><highlight class="stringliteral">&apos;statement&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="693"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a501ba802672b553037e265760319cfe1" kindref="member">multilineParser</ref><sp/>=<sp/>(((self.<ref refid="classcmd2_1_1Cmd_1a295de6e6060359049be89b5cdb6c09b1" kindref="member">multilineCommand</ref><sp/>^<sp/>oneLineCommand)<sp/>+<sp/>pyparsing.SkipTo(terminatorParser,<sp/>ignore=doNotParse).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].strip())(</highlight><highlight class="stringliteral">&apos;args&apos;</highlight><highlight class="normal">)<sp/>+<sp/>terminatorParser)(</highlight><highlight class="stringliteral">&apos;statement&apos;</highlight><highlight class="normal">)<sp/>+</highlight></codeline>
-<codeline lineno="694"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.SkipTo(outputParser<sp/>^<sp/>pipe<sp/>^<sp/>stringEnd,<sp/>ignore=doNotParse).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/>x[0].strip())(</highlight><highlight class="stringliteral">&apos;suffix&apos;</highlight><highlight class="normal">)<sp/>+<sp/>afterElements)</highlight></codeline>
-<codeline lineno="695"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.multilineParser.ignore(self.<ref refid="classcmd2_1_1Cmd_1a0333f71a3291354d3238a4853ec5e762" kindref="member">commentInProgress</ref>)</highlight></codeline>
-<codeline lineno="696"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a58e84cc1e072fda53b98ba9ed4376540" kindref="member">singleLineParser</ref><sp/>=<sp/>((oneLineCommand<sp/>+<sp/>pyparsing.SkipTo(terminatorParser<sp/>^<sp/>stringEnd<sp/>^<sp/>pipe<sp/>^<sp/>outputParser,<sp/>ignore=doNotParse).setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:x[0].strip())(</highlight><highlight class="stringliteral">&apos;args&apos;</highlight><highlight class="normal">))(</highlight><highlight class="stringliteral">&apos;statement&apos;</highlight><highlight class="normal">)<sp/>+</highlight></codeline>
-<codeline lineno="697"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Optional(terminatorParser)<sp/>+<sp/>afterElements)</highlight></codeline>
-<codeline lineno="698"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#self.multilineParser<sp/>=<sp/>self.multilineParser.setResultsName(&apos;multilineParser&apos;)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="699"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#self.singleLineParser<sp/>=<sp/>self.singleLineParser.setResultsName(&apos;singleLineParser&apos;)</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="700"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab45987033aafd0458078de49d4cf1fb5" kindref="member">blankLineTerminationParser</ref><sp/>=<sp/>self.blankLineTerminationParser.setResultsName(</highlight><highlight class="stringliteral">&apos;statement&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="701"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a60c8c9f51ca086f83a2563b7c5e93421" kindref="member">parser</ref><sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a794ce4cfd06ddd8df24df33d9f116a65" kindref="member">prefixParser</ref><sp/>+<sp/>(</highlight></codeline>
-<codeline lineno="702"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stringEnd<sp/>|</highlight></codeline>
-<codeline lineno="703"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a501ba802672b553037e265760319cfe1" kindref="member">multilineParser</ref><sp/>|</highlight></codeline>
-<codeline lineno="704"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a58e84cc1e072fda53b98ba9ed4376540" kindref="member">singleLineParser</ref><sp/>|</highlight></codeline>
-<codeline lineno="705"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab45987033aafd0458078de49d4cf1fb5" kindref="member">blankLineTerminationParser</ref><sp/>|<sp/></highlight></codeline>
-<codeline lineno="706"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a295de6e6060359049be89b5cdb6c09b1" kindref="member">multilineCommand</ref><sp/>+<sp/>pyparsing.SkipTo(stringEnd,<sp/>ignore=doNotParse)</highlight></codeline>
-<codeline lineno="707"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>)</highlight></codeline>
-<codeline lineno="708"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.parser.ignore(self.<ref refid="classcmd2_1_1Cmd_1ae6adde6cd440331e4add0bdf8c2c61d0" kindref="member">commentGrammars</ref>)</highlight></codeline>
-<codeline lineno="709"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="710"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>inputMark<sp/>=<sp/>pyparsing.Literal(</highlight><highlight class="stringliteral">&apos;&lt;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="711"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>inputMark.setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="712"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fileName<sp/>=<sp/>pyparsing.Word(self.<ref refid="classcmd2_1_1Cmd_1a866c4b8895784a477d36bebfecfa397e" kindref="member">legalChars</ref><sp/>+<sp/></highlight><highlight class="stringliteral">&apos;/\\&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="713"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>inputFrom<sp/>=<sp/>fileName(</highlight><highlight class="stringliteral">&apos;inputFrom&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="714"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>inputFrom.setParseAction(replace_with_file_contents)</highlight></codeline>
-<codeline lineno="715"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>a<sp/>not-entirely-satisfactory<sp/>way<sp/>of<sp/>distinguishing<sp/>&lt;<sp/>as<sp/>in<sp/>&quot;import<sp/>from&quot;<sp/>from<sp/>&lt;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="716"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>as<sp/>in<sp/>&quot;lesser<sp/>than&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="717"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a984d7a052143f938fa7894fbd44632d2" kindref="member">inputParser</ref><sp/>=<sp/>inputMark<sp/>+<sp/>pyparsing.Optional(inputFrom)<sp/>+<sp/>pyparsing.Optional(</highlight><highlight class="stringliteral">&apos;&gt;&apos;</highlight><highlight class="normal">)<sp/>+<sp/>\</highlight></codeline>
-<codeline lineno="718"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Optional(fileName)<sp/>+<sp/>(pyparsing.stringEnd<sp/>|<sp/></highlight><highlight class="stringliteral">&apos;|&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="719"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.inputParser.ignore(self.<ref refid="classcmd2_1_1Cmd_1a0333f71a3291354d3238a4853ec5e762" kindref="member">commentInProgress</ref>)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="720"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="721" refid="classcmd2_1_1Cmd_1a794ada2c7a6027d079d6a5bae38fea2b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a794ada2c7a6027d079d6a5bae38fea2b" kindref="member">preparse</ref>(self,<sp/>raw,<sp/>**kwargs):</highlight></codeline>
-<codeline lineno="722"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>raw</highlight></codeline>
-<codeline lineno="723" refid="classcmd2_1_1Cmd_1aeda7fe76e7ecbc032386722e8f5cae3a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aeda7fe76e7ecbc032386722e8f5cae3a" kindref="member">postparse</ref>(self,<sp/>parseResult):</highlight></codeline>
-<codeline lineno="724"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>parseResult</highlight></codeline>
-<codeline lineno="725"><highlight class="normal"><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="726" refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" kindref="member">parsed</ref>(self,<sp/>raw,<sp/>**kwargs):</highlight></codeline>
-<codeline lineno="727"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isinstance(raw,<sp/>ParsedString):</highlight></codeline>
-<codeline lineno="728"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p<sp/>=<sp/>raw</highlight></codeline>
-<codeline lineno="729"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="730"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>preparse<sp/>is<sp/>an<sp/>overridable<sp/>hook;<sp/>default<sp/>makes<sp/>no<sp/>changes</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="731"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>s<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a794ada2c7a6027d079d6a5bae38fea2b" kindref="member">preparse</ref>(raw,<sp/>**kwargs)</highlight></codeline>
-<codeline lineno="732"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>s<sp/>=<sp/>self.inputParser.transformString(s.lstrip())</highlight></codeline>
-<codeline lineno="733"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>s<sp/>=<sp/>self.commentGrammars.transformString(s)</highlight></codeline>
-<codeline lineno="734"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(shortcut,<sp/>expansion)<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8ccfbcd2a4eb800f040fcdbd26089df" kindref="member">shortcuts</ref>:</highlight></codeline>
-<codeline lineno="735"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>s.lower().startswith(shortcut):</highlight></codeline>
-<codeline lineno="736"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>s<sp/>=<sp/>s.replace(shortcut,<sp/>expansion<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;<sp/>&apos;</highlight><highlight class="normal">,<sp/>1)</highlight></codeline>
-<codeline lineno="737"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="738"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.parser.parseString(s)</highlight></codeline>
-<codeline lineno="739"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[</highlight><highlight class="stringliteral">&apos;raw&apos;</highlight><highlight class="normal">]<sp/>=<sp/>raw<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="740"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[</highlight><highlight class="stringliteral">&apos;command&apos;</highlight><highlight class="normal">]<sp/>=<sp/>result.multilineCommand<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>result.command<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="741"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1aeda7fe76e7ecbc032386722e8f5cae3a" kindref="member">postparse</ref>(result)</highlight></codeline>
-<codeline lineno="742"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p<sp/>=<sp/><ref refid="classcmd2_1_1ParsedString" kindref="compound">ParsedString</ref>(result.args)</highlight></codeline>
-<codeline lineno="743"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p.parsed<sp/>=<sp/>result</highlight></codeline>
-<codeline lineno="744"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p.parser<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" kindref="member">parsed</ref></highlight></codeline>
-<codeline lineno="745"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(key,<sp/>val)<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>kwargs.items():</highlight></codeline>
-<codeline lineno="746"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>p.parsed[key]<sp/>=<sp/>val</highlight></codeline>
-<codeline lineno="747"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>p</highlight></codeline>
-<codeline lineno="748"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="749" refid="classcmd2_1_1Cmd_1ab021b9befbc198bc266b1a439cdc44e6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ab021b9befbc198bc266b1a439cdc44e6" kindref="member">postparsing_precmd</ref>(self,<sp/>statement):</highlight></codeline>
-<codeline lineno="750"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>0</highlight></codeline>
-<codeline lineno="751"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stop,<sp/>statement</highlight></codeline>
-<codeline lineno="752" refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" kindref="member">postparsing_postcmd</ref>(self,<sp/>stop):</highlight></codeline>
-<codeline lineno="753"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stop</highlight></codeline>
-<codeline lineno="754"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="755" refid="classcmd2_1_1Cmd_1a7fbb17b136654f705387ede1fb685a3e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a7fbb17b136654f705387ede1fb685a3e" kindref="member">func_named</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="756"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="757"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>target<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;do_&apos;</highlight><highlight class="normal"><sp/>+<sp/>arg</highlight></codeline>
-<codeline lineno="758"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>target<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>dir(self):</highlight></codeline>
-<codeline lineno="759"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>target</highlight></codeline>
-<codeline lineno="760"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="761"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a810ba12198cbbc4e38643c83278956f6" kindref="member">abbrev</ref>:<sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>accept<sp/>shortened<sp/>versions<sp/>of<sp/>commands</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="762"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>funcs<sp/>=<sp/>[fname<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>fname<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a8ccd464e255a798b587637f9b812dbcd" kindref="member">keywords</ref><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>fname.startswith(arg)]</highlight></codeline>
-<codeline lineno="763"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>len(funcs)<sp/>==<sp/>1:</highlight></codeline>
-<codeline lineno="764"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;do_&apos;</highlight><highlight class="normal"><sp/>+<sp/>funcs[0]</highlight></codeline>
-<codeline lineno="765"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="766" refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(self,<sp/>line):</highlight></codeline>
-<codeline lineno="767"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>The<sp/>outermost<sp/>level<sp/>of<sp/>try/finally<sp/>nesting<sp/>can<sp/>be<sp/>condensed<sp/>once</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="768"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Python<sp/>2.4<sp/>support<sp/>can<sp/>be<sp/>dropped.</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="769"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>0</highlight></codeline>
-<codeline lineno="770"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="771"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="772"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a9f07c787a0f421ce9186b404fed63c54" kindref="member">complete_statement</ref>(line)</highlight></codeline>
-<codeline lineno="773"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(stop,<sp/>statement)<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ab021b9befbc198bc266b1a439cdc44e6" kindref="member">postparsing_precmd</ref>(statement)</highlight></codeline>
-<codeline lineno="774"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>stop:</highlight></codeline>
-<codeline lineno="775"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" kindref="member">postparsing_postcmd</ref>(stop)</highlight></codeline>
-<codeline lineno="776"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.command<sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a35586c262b272917f6ecae8e76fca6b9" kindref="member">excludeFromHistory</ref>:</highlight></codeline>
-<codeline lineno="777"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.history.append(statement.parsed.raw)<sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="778"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="779"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a46d1bc05e01f5eced432f00c9934db88" kindref="member">redirect_output</ref>(statement)</highlight></codeline>
-<codeline lineno="780"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>timestart<sp/>=<sp/>datetime.datetime.now()</highlight></codeline>
-<codeline lineno="781"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/>self.precmd(statement)</highlight></codeline>
-<codeline lineno="782"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a7b46b9fabe42bf5ec481ab5ea68effcd" kindref="member">onecmd</ref>(statement)</highlight></codeline>
-<codeline lineno="783"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.postcmd(stop,<sp/>statement)</highlight></codeline>
-<codeline lineno="784"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a2d83899c5edb8c1296cb90b0fb282de7" kindref="member">timing</ref>:</highlight></codeline>
-<codeline lineno="785"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a122b67681a0db23863f5ddaa7a687975" kindref="member">pfeedback</ref>(</highlight><highlight class="stringliteral">&apos;Elapsed:<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>str(datetime.datetime.now()<sp/>-<sp/>timestart))</highlight></codeline>
-<codeline lineno="786"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">finally</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="787"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a8b44f9a5a3197613178b4a8fb1804ef7" kindref="member">restore_output</ref>(statement)</highlight></codeline>
-<codeline lineno="788"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>EmptyStatement:</highlight></codeline>
-<codeline lineno="789"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0</highlight></codeline>
-<codeline lineno="790"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>Exception,<sp/>e:</highlight></codeline>
-<codeline lineno="791"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(str(e),<sp/>statement)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="792"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">finally</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="793"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" kindref="member">postparsing_postcmd</ref>(stop)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="794" refid="classcmd2_1_1Cmd_1a9f07c787a0f421ce9186b404fed63c54" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a9f07c787a0f421ce9186b404fed63c54" kindref="member">complete_statement</ref>(self,<sp/>line):</highlight></codeline>
-<codeline lineno="795"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Keep<sp/>accepting<sp/>lines<sp/>of<sp/>input<sp/>until<sp/>the<sp/>command<sp/>is<sp/>complete.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="796"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>line)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>(</highlight></codeline>
-<codeline lineno="797"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>pyparsing.Or(self.<ref refid="classcmd2_1_1Cmd_1ae6adde6cd440331e4add0bdf8c2c61d0" kindref="member">commentGrammars</ref>).</highlight></codeline>
-<codeline lineno="798"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>x:<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">).transformString(line)):</highlight></codeline>
-<codeline lineno="799"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>EmptyStatement</highlight></codeline>
-<codeline lineno="800"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" kindref="member">parsed</ref>(line)</highlight></codeline>
-<codeline lineno="801"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>statement.parsed.multilineCommand<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>(statement.parsed.terminator<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="802"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;%s\n%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(statement.parsed.raw,<sp/></highlight></codeline>
-<codeline lineno="803"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab2b46bf4fdbb22536322417117eebf16" kindref="member">pseudo_raw_input</ref>(self.<ref refid="classcmd2_1_1Cmd_1a186ca22e76dc63ad9d8a95cfaeb4f7fd" kindref="member">continuation_prompt</ref>))<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="804"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" kindref="member">parsed</ref>(statement)</highlight></codeline>
-<codeline lineno="805"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>statement.parsed.command:</highlight></codeline>
-<codeline lineno="806"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>EmptyStatement</highlight></codeline>
-<codeline lineno="807"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>statement</highlight></codeline>
-<codeline lineno="808"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="809" refid="classcmd2_1_1Cmd_1a46d1bc05e01f5eced432f00c9934db88" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a46d1bc05e01f5eced432f00c9934db88" kindref="member">redirect_output</ref>(self,<sp/>statement):</highlight></codeline>
-<codeline lineno="810"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.pipeTo:</highlight></codeline>
-<codeline lineno="811"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad480d9102b3a5e4c8c5541d2c205a1ad" kindref="member">kept_state</ref><sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(self,<sp/>(</highlight><highlight class="stringliteral">&apos;stdout&apos;</highlight><highlight class="normal">,))</highlight></codeline>
-<codeline lineno="812"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a86a3b99c482252a9c9e7fc283c7eae5d" kindref="member">kept_sys</ref><sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(sys,<sp/>(</highlight><highlight class="stringliteral">&apos;stdout&apos;</highlight><highlight class="normal">,))</highlight></codeline>
-<codeline lineno="813"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ac1dac1bcd74f78671161775a95d74c0a" kindref="member">redirect</ref><sp/>=<sp/>subprocess.Popen(statement.parsed.pipeTo,<sp/>shell=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>stdout=subprocess.PIPE,<sp/>stdin=subprocess.PIPE)</highlight></codeline>
-<codeline lineno="814"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref><sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ac1dac1bcd74f78671161775a95d74c0a" kindref="member">redirect</ref>.stdin</highlight></codeline>
-<codeline lineno="815"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">elif</highlight><highlight class="normal"><sp/>statement.parsed.output:</highlight></codeline>
-<codeline lineno="816"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>statement.parsed.outputTo)<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>can_clip):</highlight></codeline>
-<codeline lineno="817"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>EnvironmentError(</highlight><highlight class="stringliteral">&apos;Cannot<sp/>redirect<sp/>to<sp/>paste<sp/>buffer;<sp/>install<sp/>``xclip``<sp/>and<sp/>re-run<sp/>to<sp/>enable&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="818"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad480d9102b3a5e4c8c5541d2c205a1ad" kindref="member">kept_state</ref><sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(self,<sp/>(</highlight><highlight class="stringliteral">&apos;stdout&apos;</highlight><highlight class="normal">,))<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="819"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a86a3b99c482252a9c9e7fc283c7eae5d" kindref="member">kept_sys</ref><sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(sys,<sp/>(</highlight><highlight class="stringliteral">&apos;stdout&apos;</highlight><highlight class="normal">,))</highlight></codeline>
-<codeline lineno="820"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.outputTo:</highlight></codeline>
-<codeline lineno="821"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>mode<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;w&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="822"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.output<sp/>==<sp/>2<sp/>*<sp/>self.<ref refid="classcmd2_1_1Cmd_1a64b810574dab9ec12100c5344dc66735" kindref="member">redirector</ref>:</highlight></codeline>
-<codeline lineno="823"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>mode<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;a&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="824"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref><sp/>=<sp/>open(os.path.expanduser(statement.parsed.outputTo),<sp/>mode)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="825"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="826"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref><sp/>=<sp/>tempfile.TemporaryFile(mode=</highlight><highlight class="stringliteral">&quot;w+&quot;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="827"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.output<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;&gt;&gt;&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="828"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(<ref refid="namespacecmd2_1a9f1495f6c72f7d8c0dbb0f9f22029763" kindref="member">get_paste_buffer</ref>())</highlight></codeline>
-<codeline lineno="829"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="830" refid="classcmd2_1_1Cmd_1a8b44f9a5a3197613178b4a8fb1804ef7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a8b44f9a5a3197613178b4a8fb1804ef7" kindref="member">restore_output</ref>(self,<sp/>statement):</highlight></codeline>
-<codeline lineno="831"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad480d9102b3a5e4c8c5541d2c205a1ad" kindref="member">kept_state</ref>:</highlight></codeline>
-<codeline lineno="832"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>statement.parsed.output:</highlight></codeline>
-<codeline lineno="833"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>statement.parsed.outputTo:</highlight></codeline>
-<codeline lineno="834"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.seek(0)</highlight></codeline>
-<codeline lineno="835"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespacecmd2_1a514a20ceb8ab40dd89d2df2dd5ff87a0" kindref="member">write_to_paste_buffer</ref>(self.stdout.read())</highlight></codeline>
-<codeline lineno="836"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">elif</highlight><highlight class="normal"><sp/>statement.parsed.pipeTo:</highlight></codeline>
-<codeline lineno="837"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>result<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.redirect.communicate():<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="838"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.kept_state.stdout.write(result<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="839"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.close()</highlight></codeline>
-<codeline lineno="840"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.kept_state.restore()<sp/><sp/></highlight></codeline>
-<codeline lineno="841"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.kept_sys.restore()</highlight></codeline>
-<codeline lineno="842"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad480d9102b3a5e4c8c5541d2c205a1ad" kindref="member">kept_state</ref><sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="843"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="844" refid="classcmd2_1_1Cmd_1a7b46b9fabe42bf5ec481ab5ea68effcd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a7b46b9fabe42bf5ec481ab5ea68effcd" kindref="member">onecmd</ref>(self,<sp/>line):</highlight></codeline>
-<codeline lineno="845"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Interpret<sp/>the<sp/>argument<sp/>as<sp/>though<sp/>it<sp/>had<sp/>been<sp/>typed<sp/>in<sp/>response</highlight></codeline>
-<codeline lineno="846"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>to<sp/>the<sp/>prompt.</highlight></codeline>
-<codeline lineno="847"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="848"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>This<sp/>may<sp/>be<sp/>overridden,<sp/>but<sp/>should<sp/>not<sp/>normally<sp/>need<sp/>to<sp/>be;</highlight></codeline>
-<codeline lineno="849"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>see<sp/>the<sp/>precmd()<sp/>and<sp/>postcmd()<sp/>methods<sp/>for<sp/>useful<sp/>execution<sp/>hooks.</highlight></codeline>
-<codeline lineno="850"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>The<sp/>return<sp/>value<sp/>is<sp/>a<sp/>flag<sp/>indicating<sp/>whether<sp/>interpretation<sp/>of</highlight></codeline>
-<codeline lineno="851"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>commands<sp/>by<sp/>the<sp/>interpreter<sp/>should<sp/>stop.</highlight></codeline>
-<codeline lineno="852"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="853"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>This<sp/>(`cmd2`)<sp/>version<sp/>of<sp/>`onecmd`<sp/>already<sp/>override&apos;s<sp/>`cmd`&apos;s<sp/>`onecmd`.</highlight></codeline>
-<codeline lineno="854" refid="classcmd2_1_1Cmd_1adaaec8df571e88463c3b8b02fefea8b2" refkind="member"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="855"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="856"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a1d2749139a96bd29ddabc6cb0dfd4c00" kindref="member">parsed</ref>(line)</highlight></codeline>
-<codeline lineno="857"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1adaaec8df571e88463c3b8b02fefea8b2" kindref="member">lastcmd</ref><sp/>=<sp/>statement.parsed.raw<sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="858"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>funcname<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a7fbb17b136654f705387ede1fb685a3e" kindref="member">func_named</ref>(statement.parsed.command)</highlight></codeline>
-<codeline lineno="859"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>funcname:</highlight></codeline>
-<codeline lineno="860"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1aea64b66ff75b5daaeef61a3dd583df99" kindref="member">_default</ref>(statement)</highlight></codeline>
-<codeline lineno="861"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="862"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>func<sp/>=<sp/>getattr(self,<sp/>funcname)</highlight></codeline>
-<codeline lineno="863"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:</highlight></codeline>
-<codeline lineno="864"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1aea64b66ff75b5daaeef61a3dd583df99" kindref="member">_default</ref>(statement)</highlight></codeline>
-<codeline lineno="865"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>func(statement)<sp/></highlight></codeline>
-<codeline lineno="866"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stop<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="867"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="868" refid="classcmd2_1_1Cmd_1aea64b66ff75b5daaeef61a3dd583df99" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aea64b66ff75b5daaeef61a3dd583df99" kindref="member">_default</ref>(self,<sp/>statement):</highlight></codeline>
-<codeline lineno="869"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>statement.full_parsed_statement()</highlight></codeline>
-<codeline lineno="870"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a7da859e33eae87d5069b96d366cf04b4" kindref="member">default_to_shell</ref>:</highlight></codeline>
-<codeline lineno="871"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>os.system(arg)</highlight></codeline>
-<codeline lineno="872"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>result:</highlight></codeline>
-<codeline lineno="873"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" kindref="member">postparsing_postcmd</ref>(</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="874"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ae64756253f4ef8494ad3cd920f749eb6" kindref="member">postparsing_postcmd</ref>(self.default(arg))</highlight></codeline>
-<codeline lineno="875"><highlight class="normal"></highlight></codeline>
-<codeline lineno="876" refid="classcmd2_1_1Cmd_1ab2b46bf4fdbb22536322417117eebf16" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ab2b46bf4fdbb22536322417117eebf16" kindref="member">pseudo_raw_input</ref>(self,<sp/>prompt):</highlight></codeline>
-<codeline lineno="877"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;copied<sp/>from<sp/>cmd&apos;s<sp/>cmdloop;<sp/>like<sp/>raw_input,<sp/>but<sp/>accounts<sp/>for<sp/>changed<sp/>stdin,<sp/>stdout&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="878"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="879"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1add0217858bbc4c268a5f2f27330ad1f8" kindref="member">use_rawinput</ref>:</highlight></codeline>
-<codeline lineno="880"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="881"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>raw_input(prompt)</highlight></codeline>
-<codeline lineno="882"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>EOFError:</highlight></codeline>
-<codeline lineno="883"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;EOF&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="884"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="885"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(prompt)</highlight></codeline>
-<codeline lineno="886"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.flush()</highlight></codeline>
-<codeline lineno="887"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>self.stdin.readline()</highlight></codeline>
-<codeline lineno="888"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>len(line):</highlight></codeline>
-<codeline lineno="889"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;EOF&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="890"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="891"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>line[-1]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">:<sp/></highlight><highlight class="comment">#<sp/>this<sp/>was<sp/>always<sp/>true<sp/>in<sp/>Cmd</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="892"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>line[:-1]<sp/></highlight></codeline>
-<codeline lineno="893"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>line</highlight></codeline>
-<codeline lineno="894"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="895" refid="classcmd2_1_1Cmd_1a392c5cd062c20d916c0cacc9cc36c022" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a392c5cd062c20d916c0cacc9cc36c022" kindref="member">_cmdloop</ref>(self,<sp/>intro=None):</highlight></codeline>
-<codeline lineno="896"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Repeatedly<sp/>issue<sp/>a<sp/>prompt,<sp/>accept<sp/>input,<sp/>parse<sp/>an<sp/>initial<sp/>prefix</highlight></codeline>
-<codeline lineno="897"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>off<sp/>the<sp/>received<sp/>input,<sp/>and<sp/>dispatch<sp/>to<sp/>action<sp/>methods,<sp/>passing<sp/>them</highlight></codeline>
-<codeline lineno="898" refid="classcmd2_1_1Cmd_1a4540b84ee5f75aa1f915042ac4f327dc" refkind="member"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>the<sp/>remainder<sp/>of<sp/>the<sp/>line<sp/>as<sp/>argument.</highlight></codeline>
-<codeline lineno="899"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="900"><highlight class="normal"></highlight></codeline>
-<codeline lineno="901"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>An<sp/>almost<sp/>perfect<sp/>copy<sp/>from<sp/>Cmd;<sp/>however,<sp/>the<sp/>pseudo_raw_input<sp/>portion</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="902"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>has<sp/>been<sp/>split<sp/>out<sp/>so<sp/>that<sp/>it<sp/>can<sp/>be<sp/>called<sp/>separately</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="903"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="904"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.preloop()</highlight></codeline>
-<codeline lineno="905"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1add0217858bbc4c268a5f2f27330ad1f8" kindref="member">use_rawinput</ref><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>self.completekey:</highlight></codeline>
-<codeline lineno="906"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="907"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>readline</highlight></codeline>
-<codeline lineno="908"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a4540b84ee5f75aa1f915042ac4f327dc" kindref="member">old_completer</ref><sp/>=<sp/>readline.get_completer()</highlight></codeline>
-<codeline lineno="909"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>readline.set_completer(self.complete)</highlight></codeline>
-<codeline lineno="910"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>readline.parse_and_bind(self.completekey+</highlight><highlight class="stringliteral">&quot;:<sp/>complete&quot;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="911"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ImportError:</highlight></codeline>
-<codeline lineno="912"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="913"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="914"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>intro<sp/></highlight><highlight class="keywordflow">is</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="915"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a3f1d7fcb42b72f182eed91009e0708c3" kindref="member">intro</ref><sp/>=<sp/>intro</highlight></codeline>
-<codeline lineno="916"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a3f1d7fcb42b72f182eed91009e0708c3" kindref="member">intro</ref>:</highlight></codeline>
-<codeline lineno="917"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(str(self.<ref refid="classcmd2_1_1Cmd_1a3f1d7fcb42b72f182eed91009e0708c3" kindref="member">intro</ref>)+</highlight><highlight class="stringliteral">&quot;\n&quot;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="918"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="919"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>stop:</highlight></codeline>
-<codeline lineno="920"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.cmdqueue:</highlight></codeline>
-<codeline lineno="921"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>self.cmdqueue.pop(0)</highlight></codeline>
-<codeline lineno="922"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="923"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ab2b46bf4fdbb22536322417117eebf16" kindref="member">pseudo_raw_input</ref>(self.<ref refid="classcmd2_1_1Cmd_1ae9a33dc613b00f4d5b849c0d3521f2c3" kindref="member">prompt</ref>)</highlight></codeline>
-<codeline lineno="924"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(self.<ref refid="classcmd2_1_1Cmd_1a417779ccb5de864826f97a959bd196d3" kindref="member">echo</ref>)<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>(isinstance(self.<ref refid="classcmd2_1_1Cmd_1a6f0eed071b4e9197cc4fa46a2c8f1457" kindref="member">stdin</ref>,<sp/>file)):</highlight></codeline>
-<codeline lineno="925"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(line<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="926"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(line)</highlight></codeline>
-<codeline lineno="927"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.postloop()</highlight></codeline>
-<codeline lineno="928"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">finally</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="929"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1add0217858bbc4c268a5f2f27330ad1f8" kindref="member">use_rawinput</ref><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>self.completekey:</highlight></codeline>
-<codeline lineno="930"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="931"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>readline</highlight></codeline>
-<codeline lineno="932"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>readline.set_completer(self.<ref refid="classcmd2_1_1Cmd_1a4540b84ee5f75aa1f915042ac4f327dc" kindref="member">old_completer</ref>)</highlight></codeline>
-<codeline lineno="933"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ImportError:</highlight></codeline>
-<codeline lineno="934"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="935"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stop</highlight></codeline>
-<codeline lineno="936"><highlight class="normal"></highlight></codeline>
-<codeline lineno="937" refid="classcmd2_1_1Cmd_1ab2783ec53899e2b4c0abda7007471e64" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ab2783ec53899e2b4c0abda7007471e64" kindref="member">do_EOF</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="938"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1abe14bda0dc50326876c6a761cefba702" kindref="member">_STOP_SCRIPT_NO_EXIT</ref><sp/></highlight><highlight class="comment">#<sp/>End<sp/>of<sp/>script;<sp/>should<sp/>not<sp/>exit<sp/>app</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="939" refid="classcmd2_1_1Cmd_1a489ae23e2c2dc31c04eab9287c9339fa" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_eof<sp/>=<sp/>do_EOF</highlight></codeline>
-<codeline lineno="940"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="941" refid="classcmd2_1_1Cmd_1a27f6387585848a575e95c936ce97c4cf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a27f6387585848a575e95c936ce97c4cf" kindref="member">do_quit</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="942"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a7a8e8257d7d35c7813355cdefb62b85b" kindref="member">_STOP_AND_EXIT</ref></highlight></codeline>
-<codeline lineno="943" refid="classcmd2_1_1Cmd_1a7407cf3f70091dc1ade5acb856585850" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_exit<sp/>=<sp/>do_quit</highlight></codeline>
-<codeline lineno="944" refid="classcmd2_1_1Cmd_1ad938266e8224edd7a6e681b9f4416cb5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_q<sp/>=<sp/>do_quit</highlight></codeline>
-<codeline lineno="945"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="946" refid="classcmd2_1_1Cmd_1a28cd403d962038aca658344673a5ab38" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a28cd403d962038aca658344673a5ab38" kindref="member">select</ref>(self,<sp/>options,<sp/>prompt=&apos;Your<sp/>choice?<sp/>&apos;):</highlight></codeline>
-<codeline lineno="947"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Presents<sp/>a<sp/>numbered<sp/>menu<sp/>to<sp/>the<sp/>user.<sp/><sp/>Modelled<sp/>after</highlight></codeline>
-<codeline lineno="948"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>the<sp/>bash<sp/>shell&apos;s<sp/>SELECT.<sp/><sp/>Returns<sp/>the<sp/>item<sp/>chosen.</highlight></codeline>
-<codeline lineno="949"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="950"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Argument<sp/>``options``<sp/>can<sp/>be:</highlight></codeline>
-<codeline lineno="951"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="952"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>a<sp/>single<sp/>string<sp/>-&gt;<sp/>will<sp/>be<sp/>split<sp/>into<sp/>one-word<sp/>options</highlight></codeline>
-<codeline lineno="953"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>a<sp/>list<sp/>of<sp/>strings<sp/>-&gt;<sp/>will<sp/>be<sp/>offered<sp/>as<sp/>options</highlight></codeline>
-<codeline lineno="954"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>a<sp/>list<sp/>of<sp/>tuples<sp/>-&gt;<sp/>interpreted<sp/>as<sp/>(value,<sp/>text),<sp/>so<sp/></highlight></codeline>
-<codeline lineno="955"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>that<sp/>the<sp/>return<sp/>value<sp/>can<sp/>differ<sp/>from</highlight></codeline>
-<codeline lineno="956"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>the<sp/>text<sp/>advertised<sp/>to<sp/>the<sp/>user<sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="957"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isinstance(options,<sp/>basestring):</highlight></codeline>
-<codeline lineno="958"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>options<sp/>=<sp/>zip(options.split(),<sp/>options.split())</highlight></codeline>
-<codeline lineno="959"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fulloptions<sp/>=<sp/>[]</highlight></codeline>
-<codeline lineno="960"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>opt<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>options:</highlight></codeline>
-<codeline lineno="961"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isinstance(opt,<sp/>basestring):</highlight></codeline>
-<codeline lineno="962"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fulloptions.append((opt,<sp/>opt))</highlight></codeline>
-<codeline lineno="963"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="964"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="965"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fulloptions.append((opt[0],<sp/>opt[1]))</highlight></codeline>
-<codeline lineno="966"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IndexError:</highlight></codeline>
-<codeline lineno="967"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fulloptions.append((opt[0],<sp/>opt[0]))</highlight></codeline>
-<codeline lineno="968"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(idx,<sp/>(value,<sp/>text))<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>enumerate(fulloptions):</highlight></codeline>
-<codeline lineno="969"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(</highlight><highlight class="stringliteral">&apos;<sp/><sp/>%2d.<sp/>%s\n&apos;</highlight><highlight class="normal"><sp/>%<sp/>(idx+1,<sp/>text))</highlight></codeline>
-<codeline lineno="970"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="971"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>response<sp/>=<sp/>raw_input(prompt)</highlight></codeline>
-<codeline lineno="972"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="973"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>response<sp/>=<sp/>int(response)</highlight></codeline>
-<codeline lineno="974"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>fulloptions[response<sp/>-<sp/>1][0]</highlight></codeline>
-<codeline lineno="975"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="976"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ValueError:</highlight></codeline>
-<codeline lineno="977"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"><sp/></highlight><highlight class="comment">#<sp/>loop<sp/>and<sp/>ask<sp/>again</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="978"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="979"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="980"><highlight class="normal"><sp/><sp/><sp/><sp/>@<ref refid="namespacecmd2_1a863be2c5e3b9fdec03710fd550801c22" kindref="member">options</ref>([make_option(</highlight><highlight class="stringliteral">&apos;-l&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;--long&apos;</highlight><highlight class="normal">,<sp/>action=</highlight><highlight class="stringliteral">&quot;store_true&quot;</highlight><highlight class="normal">,</highlight></codeline>
-<codeline lineno="981" refid="classcmd2_1_1Cmd_1a9db85d1db5ea30170d540102f1206b1f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>help=</highlight><highlight class="stringliteral">&quot;describe<sp/>function<sp/>of<sp/>parameter&quot;</highlight><highlight class="normal">)])<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="982" refid="classcmd2_1_1Cmd_1a4816ba13212f079e4b1e865d20041983" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a4816ba13212f079e4b1e865d20041983" kindref="member">do_show</ref>(self,<sp/>arg,<sp/>opts):</highlight></codeline>
-<codeline lineno="983"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Shows<sp/>value<sp/>of<sp/>a<sp/>parameter.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="984"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>param<sp/>=<sp/>arg.strip().lower()</highlight></codeline>
-<codeline lineno="985"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>{}</highlight></codeline>
-<codeline lineno="986"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>maxlen<sp/>=<sp/>0</highlight></codeline>
-<codeline lineno="987"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>p<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" kindref="member">settable</ref>:</highlight></codeline>
-<codeline lineno="988"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>param)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>p.startswith(param):</highlight></codeline>
-<codeline lineno="989"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result[p]<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;%s:<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(p,<sp/>str(getattr(self,<sp/>p)))</highlight></codeline>
-<codeline lineno="990"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>maxlen<sp/>=<sp/>max(maxlen,<sp/>len(result[p]))</highlight></codeline>
-<codeline lineno="991"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>result:</highlight></codeline>
-<codeline lineno="992"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>p<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>sorted(result):</highlight></codeline>
-<codeline lineno="993"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>opts.long:</highlight></codeline>
-<codeline lineno="994"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(</highlight><highlight class="stringliteral">&apos;%s<sp/>#<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(result[p].<ref refid="namespacecmd2_1ad4ac87ba068f9549b5a7735054df8065" kindref="member">ljust</ref>(maxlen),<sp/>self.<ref refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" kindref="member">settable</ref>[p]))</highlight></codeline>
-<codeline lineno="995"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="996"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(result[p])</highlight></codeline>
-<codeline lineno="997"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="998"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>NotImplementedError(</highlight><highlight class="stringliteral">&quot;Parameter<sp/>&apos;%s&apos;<sp/>not<sp/>supported<sp/>(type<sp/>&apos;show&apos;<sp/>for<sp/>list<sp/>of<sp/>parameters).&quot;</highlight><highlight class="normal"><sp/>%<sp/>param)</highlight></codeline>
-<codeline lineno="999"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1000" refid="classcmd2_1_1Cmd_1a1587bec304ebe93070072d273da9bb31" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a1587bec304ebe93070072d273da9bb31" kindref="member">do_set</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1001"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="1002"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Sets<sp/>a<sp/>cmd2<sp/>parameter.<sp/><sp/>Accepts<sp/>abbreviated<sp/>parameter<sp/>names<sp/>so<sp/>long</highlight></codeline>
-<codeline lineno="1003"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>as<sp/>there<sp/>is<sp/>no<sp/>ambiguity.<sp/><sp/>Call<sp/>without<sp/>arguments<sp/>for<sp/>a<sp/>list<sp/>of<sp/></highlight></codeline>
-<codeline lineno="1004"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>settable<sp/>parameters<sp/>with<sp/>their<sp/>values.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1005"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1006"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>statement,<sp/>paramName,<sp/>val<sp/>=<sp/>arg.parsed.raw.split(</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">,<sp/>2)</highlight></codeline>
-<codeline lineno="1007"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>val<sp/>=<sp/>val.strip()</highlight></codeline>
-<codeline lineno="1008"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>paramName<sp/>=<sp/>paramName.strip().lower()</highlight></codeline>
-<codeline lineno="1009"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>paramName<sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" kindref="member">settable</ref>:</highlight></codeline>
-<codeline lineno="1010"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>hits<sp/>=<sp/>[p<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>p<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a6cec2f634666d15d032d4c113e654c3c" kindref="member">settable</ref><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>p.startswith(paramName)]</highlight></codeline>
-<codeline lineno="1011"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>len(hits)<sp/>==<sp/>1:</highlight></codeline>
-<codeline lineno="1012"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>paramName<sp/>=<sp/>hits[0]</highlight></codeline>
-<codeline lineno="1013"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1014"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a4816ba13212f079e4b1e865d20041983" kindref="member">do_show</ref>(paramName)</highlight></codeline>
-<codeline lineno="1015"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>currentVal<sp/>=<sp/>getattr(self,<sp/>paramName)</highlight></codeline>
-<codeline lineno="1016"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(val[0]<sp/>==<sp/>val[-1])<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>val[0]<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>(</highlight><highlight class="stringliteral">&quot;&apos;&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;&quot;&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="1017"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>val<sp/>=<sp/>val[1:-1]</highlight></codeline>
-<codeline lineno="1018"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1019"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>val<sp/>=<sp/><ref refid="namespacecmd2_1a0880940558f324b3958aedfc430f592d" kindref="member">cast</ref>(currentVal,<sp/>val)</highlight></codeline>
-<codeline lineno="1020"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>setattr(self,<sp/>paramName,<sp/>val)</highlight></codeline>
-<codeline lineno="1021"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(</highlight><highlight class="stringliteral">&apos;%s<sp/>-<sp/>was:<sp/>%s\nnow:<sp/>%s\n&apos;</highlight><highlight class="normal"><sp/>%<sp/>(paramName,<sp/>currentVal,<sp/>val))</highlight></codeline>
-<codeline lineno="1022"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>currentVal<sp/>!=<sp/>val:</highlight></codeline>
-<codeline lineno="1023"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1024"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>onchange_hook<sp/>=<sp/>getattr(self,<sp/></highlight><highlight class="stringliteral">&apos;_onchange_%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>paramName)</highlight></codeline>
-<codeline lineno="1025"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>onchange_hook(old=currentVal,<sp/>new=val)</highlight></codeline>
-<codeline lineno="1026"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>AttributeError:</highlight></codeline>
-<codeline lineno="1027"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1028"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>(ValueError,<sp/>AttributeError,<sp/>NotSettableError),<sp/>e:</highlight></codeline>
-<codeline lineno="1029"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a4816ba13212f079e4b1e865d20041983" kindref="member">do_show</ref>(arg)</highlight></codeline>
-<codeline lineno="1030"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1031" refid="classcmd2_1_1Cmd_1a468717f63c360b46dd5f5bcbae4b0c9c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a468717f63c360b46dd5f5bcbae4b0c9c" kindref="member">do_pause</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1032"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;Displays<sp/>the<sp/>specified<sp/>text<sp/>then<sp/>waits<sp/>for<sp/>the<sp/>user<sp/>to<sp/>press<sp/>RETURN.&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1033"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>raw_input(arg<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1034"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1035" refid="classcmd2_1_1Cmd_1a734c394c38de8828960370d6d8e68004" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a734c394c38de8828960370d6d8e68004" kindref="member">do_shell</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1036"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;execute<sp/>a<sp/>command<sp/>as<sp/>if<sp/>at<sp/>the<sp/>OS<sp/>prompt.&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1037"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>os.system(arg)</highlight></codeline>
-<codeline lineno="1038"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1039" refid="classcmd2_1_1Cmd_1a5ccce52c26063115070d56b6f099223b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a5ccce52c26063115070d56b6f099223b" kindref="member">do_py</ref>(self,<sp/>arg):<sp/><sp/></highlight></codeline>
-<codeline lineno="1040"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="1041"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>py<sp/>&lt;command&gt;:<sp/>Executes<sp/>a<sp/>Python<sp/>command.</highlight></codeline>
-<codeline lineno="1042"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>py:<sp/>Enters<sp/>interactive<sp/>Python<sp/>mode.</highlight></codeline>
-<codeline lineno="1043"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>End<sp/>with<sp/>``Ctrl-D``<sp/>(Unix)<sp/>/<sp/>``Ctrl-Z``<sp/>(Windows),<sp/>``quit()``,<sp/>&apos;`exit()``.</highlight></codeline>
-<codeline lineno="1044"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Non-python<sp/>commands<sp/>can<sp/>be<sp/>issued<sp/>with<sp/>``cmd(&quot;your<sp/>command&quot;)``.</highlight></codeline>
-<codeline lineno="1045"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Run<sp/>python<sp/>code<sp/>from<sp/>external<sp/>files<sp/>with<sp/>``run(&quot;filename.py&quot;)``</highlight></codeline>
-<codeline lineno="1046"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1047"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>[</highlight><highlight class="stringliteral">&apos;self&apos;</highlight><highlight class="normal">]<sp/>=<sp/>self</highlight></codeline>
-<codeline lineno="1048"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>arg.parsed.raw[2:].strip()</highlight></codeline>
-<codeline lineno="1049"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>localvars<sp/>=<sp/>(self.<ref refid="classcmd2_1_1Cmd_1a55e7978c792429a0a2e3321abdbd23fe" kindref="member">locals_in_py</ref><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>{}</highlight></codeline>
-<codeline lineno="1050"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>interp<sp/>=<sp/>InteractiveConsole(locals=localvars)</highlight></codeline>
-<codeline lineno="1051"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>interp.runcode(</highlight><highlight class="stringliteral">&apos;import<sp/>sys,<sp/>os;sys.path.insert(0,<sp/>os.getcwd())&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1052"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg.strip():</highlight></codeline>
-<codeline lineno="1053"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>interp.runcode(arg)</highlight></codeline>
-<codeline lineno="1054"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1055"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">quit():</highlight></codeline>
-<codeline lineno="1056"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>EmbeddedConsoleExit</highlight></codeline>
-<codeline lineno="1057"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(arg):</highlight></codeline>
-<codeline lineno="1058"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(arg<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1059"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">run(arg):</highlight></codeline>
-<codeline lineno="1060"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1061"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>file<sp/>=<sp/>open(arg)</highlight></codeline>
-<codeline lineno="1062"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>interp.runcode(file.read())</highlight></codeline>
-<codeline lineno="1063"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>file.close()</highlight></codeline>
-<codeline lineno="1064"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IOError,<sp/>e:</highlight></codeline>
-<codeline lineno="1065"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(e)</highlight></codeline>
-<codeline lineno="1066"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>[</highlight><highlight class="stringliteral">&apos;quit&apos;</highlight><highlight class="normal">]<sp/>=<sp/>quit</highlight></codeline>
-<codeline lineno="1067"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>[</highlight><highlight class="stringliteral">&apos;exit&apos;</highlight><highlight class="normal">]<sp/>=<sp/>quit</highlight></codeline>
-<codeline lineno="1068"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>[</highlight><highlight class="stringliteral">&apos;cmd&apos;</highlight><highlight class="normal">]<sp/>=<sp/>onecmd_plus_hooks</highlight></codeline>
-<codeline lineno="1069"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a30058e5e628d60dedf7c500e270b3e5d" kindref="member">pystate</ref>[</highlight><highlight class="stringliteral">&apos;run&apos;</highlight><highlight class="normal">]<sp/>=<sp/>run</highlight></codeline>
-<codeline lineno="1070"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1071"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>cprt<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;Type<sp/>&quot;help&quot;,<sp/>&quot;copyright&quot;,<sp/>&quot;credits&quot;<sp/>or<sp/>&quot;license&quot;<sp/>for<sp/>more<sp/>information.&apos;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1072"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>keepstate<sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(sys,<sp/>(</highlight><highlight class="stringliteral">&apos;stdin&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;stdout&apos;</highlight><highlight class="normal">))</highlight></codeline>
-<codeline lineno="1073"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a2a71ccfd9f189e17db765b603f2c9a78" kindref="member">stdout</ref></highlight></codeline>
-<codeline lineno="1074"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdin<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a6f0eed071b4e9197cc4fa46a2c8f1457" kindref="member">stdin</ref></highlight></codeline>
-<codeline lineno="1075"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>interp.interact(banner=<sp/></highlight><highlight class="stringliteral">&quot;Python<sp/>%s<sp/>on<sp/>%s\n%s\n(%s)\n%s&quot;</highlight><highlight class="normal"><sp/>%</highlight></codeline>
-<codeline lineno="1076"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(sys.version,<sp/>sys.platform,<sp/>cprt,<sp/>self.__class__.__name__,<sp/>self.<ref refid="classcmd2_1_1Cmd_1a5ccce52c26063115070d56b6f099223b" kindref="member">do_py</ref>.__doc__))</highlight></codeline>
-<codeline lineno="1077"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>EmbeddedConsoleExit:</highlight></codeline>
-<codeline lineno="1078"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1079"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>keepstate.restore()</highlight></codeline>
-<codeline lineno="1080"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1081"><highlight class="normal"><sp/><sp/><sp/><sp/>@<ref refid="namespacecmd2_1a863be2c5e3b9fdec03710fd550801c22" kindref="member">options</ref>([make_option(</highlight><highlight class="stringliteral">&apos;-s&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;--script&apos;</highlight><highlight class="normal">,<sp/>action=</highlight><highlight class="stringliteral">&quot;store_true&quot;</highlight><highlight class="normal">,<sp/>help=</highlight><highlight class="stringliteral">&quot;Script<sp/>format;<sp/>no<sp/>separation<sp/>lines&quot;</highlight><highlight class="normal">),</highlight></codeline>
-<codeline lineno="1082"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>],<sp/>arg_desc<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;(limit<sp/>on<sp/>which<sp/>commands<sp/>to<sp/>include)&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1083" refid="classcmd2_1_1Cmd_1a46d9a5551bb0456721a0bf7dc07b0d0b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a46d9a5551bb0456721a0bf7dc07b0d0b" kindref="member">do_history</ref>(self,<sp/>arg,<sp/>opts):</highlight></codeline>
-<codeline lineno="1084"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;history<sp/>[arg]:<sp/>lists<sp/>past<sp/>commands<sp/>issued</highlight></codeline>
-<codeline lineno="1085"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1086"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>no<sp/>arg:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>list<sp/>all</highlight></codeline>
-<codeline lineno="1087"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>arg<sp/>is<sp/>integer:<sp/>list<sp/>one<sp/>history<sp/>item,<sp/>by<sp/>index</highlight></codeline>
-<codeline lineno="1088"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>arg<sp/>is<sp/>string:<sp/><sp/>string<sp/>search</highlight></codeline>
-<codeline lineno="1089"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>arg<sp/>is<sp/>/enclosed<sp/>in<sp/>forward-slashes/:<sp/>regular<sp/>expression<sp/>search</highlight></codeline>
-<codeline lineno="1090"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1091"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="1092"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>history<sp/>=<sp/>self.history.get(arg)</highlight></codeline>
-<codeline lineno="1093"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1094"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>history<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref></highlight></codeline>
-<codeline lineno="1095"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>hi<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>history:</highlight></codeline>
-<codeline lineno="1096"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>opts.script:</highlight></codeline>
-<codeline lineno="1097"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(hi)</highlight></codeline>
-<codeline lineno="1098"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1099"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(hi.pr())</highlight></codeline>
-<codeline lineno="1100" refid="classcmd2_1_1Cmd_1aea5c4d49c7b6f552b6123e5a981a6f49" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aea5c4d49c7b6f552b6123e5a981a6f49" kindref="member">last_matching</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="1103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.history.get(arg)[-1]</highlight></codeline>
-<codeline lineno="1104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref>[-1]</highlight></codeline>
-<codeline lineno="1106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IndexError:</highlight></codeline>
-<codeline lineno="1107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1108" refid="classcmd2_1_1Cmd_1af278702e71cf57de45012216904d1bb5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1af278702e71cf57de45012216904d1bb5" kindref="member">do_list</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;list<sp/>[arg]:<sp/>lists<sp/>last<sp/>command<sp/>issued</highlight></codeline>
-<codeline lineno="1110"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1111"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>no<sp/>arg<sp/>-&gt;<sp/>list<sp/>most<sp/>recent<sp/>command</highlight></codeline>
-<codeline lineno="1112"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>integer<sp/>-&gt;<sp/>list<sp/>one<sp/>history<sp/>item,<sp/>by<sp/>index</highlight></codeline>
-<codeline lineno="1113"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>a..b,<sp/>a:b,<sp/>a:,<sp/>..b<sp/>-&gt;<sp/>list<sp/>spans<sp/>from<sp/>a<sp/>(or<sp/>start)<sp/>to<sp/>b<sp/>(or<sp/>end)</highlight></codeline>
-<codeline lineno="1114"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>string<sp/>-&gt;<sp/>list<sp/>all<sp/>commands<sp/>matching<sp/>string<sp/>search</highlight></codeline>
-<codeline lineno="1115"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>/enclosed<sp/>in<sp/>forward-slashes/<sp/>-&gt;<sp/>regular<sp/>expression<sp/>search</highlight></codeline>
-<codeline lineno="1116"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>history<sp/>=<sp/>self.history.span(arg<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;-1&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1119"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IndexError:</highlight></codeline>
-<codeline lineno="1120"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>history<sp/>=<sp/>self.history.search(arg)</highlight></codeline>
-<codeline lineno="1121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>hi<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>history:</highlight></codeline>
-<codeline lineno="1122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ad8b5d33873f9b515e33f83a616d0828f" kindref="member">poutput</ref>(hi.pr())</highlight></codeline>
-<codeline lineno="1123"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1124" refid="classcmd2_1_1Cmd_1a71e16c0eab993aa6f22272e04615fa4e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_hi<sp/>=<sp/>do_history</highlight></codeline>
-<codeline lineno="1125" refid="classcmd2_1_1Cmd_1a978b02763d086aa3f4a278c370b6798f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_l<sp/>=<sp/>do_list</highlight></codeline>
-<codeline lineno="1126" refid="classcmd2_1_1Cmd_1a0be8d5c8676c2da5eacb8dbaf2e10e29" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_li<sp/>=<sp/>do_list</highlight></codeline>
-<codeline lineno="1127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1128" refid="classcmd2_1_1Cmd_1aebdc7ebb6dc83e9dadb8827cdab1952a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aebdc7ebb6dc83e9dadb8827cdab1952a" kindref="member">do_ed</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;ed:<sp/>edit<sp/>most<sp/>recent<sp/>command<sp/>in<sp/>text<sp/>editor</highlight></codeline>
-<codeline lineno="1130"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ed<sp/>[N]:<sp/>edit<sp/>numbered<sp/>command<sp/>from<sp/>history</highlight></codeline>
-<codeline lineno="1131"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ed<sp/>[filename]:<sp/>edit<sp/>specified<sp/>file<sp/>name</highlight></codeline>
-<codeline lineno="1132"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1133"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>commands<sp/>are<sp/>run<sp/>after<sp/>editor<sp/>is<sp/>closed.</highlight></codeline>
-<codeline lineno="1134"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;set<sp/>edit<sp/>(program-name)&quot;<sp/>or<sp/>set<sp/><sp/>EDITOR<sp/>environment<sp/>variable</highlight></codeline>
-<codeline lineno="1135"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>to<sp/>control<sp/>which<sp/>editing<sp/>program<sp/>is<sp/>used.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a25fe904aca52573c6f10e798dd561588" kindref="member">editor</ref>:</highlight></codeline>
-<codeline lineno="1137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>EnvironmentError(</highlight><highlight class="stringliteral">&quot;Please<sp/>use<sp/>&apos;set<sp/>editor&apos;<sp/>to<sp/>specify<sp/>your<sp/>text<sp/>editing<sp/>program<sp/>of<sp/>choice.&quot;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>filename<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a3af82e64cdabf19b462cd0ddf686823d" kindref="member">default_file_name</ref></highlight></codeline>
-<codeline lineno="1139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="1140"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>buffer<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1aea5c4d49c7b6f552b6123e5a981a6f49" kindref="member">last_matching</ref>(int(arg))</highlight></codeline>
-<codeline lineno="1142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ValueError:</highlight></codeline>
-<codeline lineno="1143"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>filename<sp/>=<sp/>arg</highlight></codeline>
-<codeline lineno="1144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>buffer<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1146"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>buffer<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref>[-1]</highlight></codeline>
-<codeline lineno="1147"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>buffer:</highlight></codeline>
-<codeline lineno="1149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f<sp/>=<sp/>open(os.path.expanduser(filename),<sp/></highlight><highlight class="stringliteral">&apos;w&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f.write(buffer<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f.close()<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>os.system(</highlight><highlight class="stringliteral">&apos;%s<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(self.<ref refid="classcmd2_1_1Cmd_1a25fe904aca52573c6f10e798dd561588" kindref="member">editor</ref>,<sp/>filename))</highlight></codeline>
-<codeline lineno="1154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a3a237dae48a4dba0daa7e114ff098e90" kindref="member">do__load</ref>(filename)</highlight></codeline>
-<codeline lineno="1155" refid="classcmd2_1_1Cmd_1a900317e58aad07d0d1fb48080dc63d5c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_edit<sp/>=<sp/>do_ed</highlight></codeline>
-<codeline lineno="1156"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1157" refid="classcmd2_1_1Cmd_1aafc3b1cd861e711c3f5e10cd00a41221" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>saveparser<sp/>=<sp/>(pyparsing.Optional(pyparsing.Word(pyparsing.nums)^</highlight><highlight class="stringliteral">&apos;*&apos;</highlight><highlight class="normal">)(</highlight><highlight class="stringliteral">&quot;idx&quot;</highlight><highlight class="normal">)<sp/>+<sp/></highlight></codeline>
-<codeline lineno="1158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.Optional(pyparsing.Word(legalChars<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;/\\&apos;</highlight><highlight class="normal">))(</highlight><highlight class="stringliteral">&quot;fname&quot;</highlight><highlight class="normal">)<sp/>+</highlight></codeline>
-<codeline lineno="1159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pyparsing.stringEnd)<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1160" refid="classcmd2_1_1Cmd_1a12d5262e31e148dafea6017a356ed9cd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a12d5262e31e148dafea6017a356ed9cd" kindref="member">do_save</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;`save<sp/>[N]<sp/>[filename.ext]`</highlight></codeline>
-<codeline lineno="1162"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1163"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Saves<sp/>command<sp/>from<sp/>history<sp/>to<sp/>file.</highlight></codeline>
-<codeline lineno="1164"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1165"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/>N<sp/>=&gt;<sp/>Number<sp/>of<sp/>command<sp/>(from<sp/>history),<sp/>or<sp/>`*`;<sp/></highlight></codeline>
-<codeline lineno="1166"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>|<sp/><sp/><sp/><sp/><sp/><sp/>most<sp/>recent<sp/>command<sp/>if<sp/>omitted&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1167"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1168"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>args<sp/>=<sp/>self.saveparser.parseString(arg)</highlight></codeline>
-<codeline lineno="1170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>pyparsing.ParseException:</highlight></codeline>
-<codeline lineno="1171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(</highlight><highlight class="stringliteral">&apos;Could<sp/>not<sp/>understand<sp/>save<sp/>target<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>arg)</highlight></codeline>
-<codeline lineno="1172"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>SyntaxError(self.<ref refid="classcmd2_1_1Cmd_1a12d5262e31e148dafea6017a356ed9cd" kindref="member">do_save</ref>.__doc__)</highlight></codeline>
-<codeline lineno="1173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fname<sp/>=<sp/>args.fname<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a3af82e64cdabf19b462cd0ddf686823d" kindref="member">default_file_name</ref></highlight></codeline>
-<codeline lineno="1174"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>args.idx<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;*&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>saveme<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;\n\n&apos;</highlight><highlight class="normal">.join(self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref>[:])</highlight></codeline>
-<codeline lineno="1176"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">elif</highlight><highlight class="normal"><sp/>args.idx:</highlight></codeline>
-<codeline lineno="1177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>saveme<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref>[int(args.idx)-1]</highlight></codeline>
-<codeline lineno="1178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>saveme<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a666a090bc7298aae6ca55840e9418f96" kindref="member">history</ref>[-1]</highlight></codeline>
-<codeline lineno="1180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f<sp/>=<sp/>open(os.path.expanduser(fname),<sp/></highlight><highlight class="stringliteral">&apos;w&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f.write(saveme)</highlight></codeline>
-<codeline lineno="1183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f.close()</highlight></codeline>
-<codeline lineno="1184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a122b67681a0db23863f5ddaa7a687975" kindref="member">pfeedback</ref>(</highlight><highlight class="stringliteral">&apos;Saved<sp/>to<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(fname))</highlight></codeline>
-<codeline lineno="1185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>Exception,<sp/>e:</highlight></codeline>
-<codeline lineno="1186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(</highlight><highlight class="stringliteral">&apos;Error<sp/>saving<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(fname))</highlight></codeline>
-<codeline lineno="1187"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1189" refid="classcmd2_1_1Cmd_1a2eba6d3d12d65789880959d788be2d86" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a2eba6d3d12d65789880959d788be2d86" kindref="member">read_file_or_url</ref>(self,<sp/>fname):</highlight></codeline>
-<codeline lineno="1190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>TODO:<sp/>not<sp/>working<sp/>on<sp/>localhost</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isinstance(fname,<sp/>file):</highlight></codeline>
-<codeline lineno="1192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>open(fname,<sp/></highlight><highlight class="stringliteral">&apos;</highlight><highlight class="stringliteral">r&apos;)</highlight></codeline>
-<codeline lineno="1193"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>match<sp/>=<sp/>self.urlre.match(fname)</highlight></codeline>
-<codeline lineno="1195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>match:</highlight></codeline>
-<codeline lineno="1196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>urllib.urlopen(match.group(1))</highlight></codeline>
-<codeline lineno="1197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>fname<sp/>=<sp/>os.path.expanduser(fname)</highlight></codeline>
-<codeline lineno="1199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1200"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>open(os.path.expanduser(fname),<sp/></highlight><highlight class="stringliteral">&apos;</highlight><highlight class="stringliteral">r&apos;)</highlight></codeline>
-<codeline lineno="1201"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IOError:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>open(</highlight><highlight class="stringliteral">&apos;%s.%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(os.path.expanduser(fname),<sp/></highlight></codeline>
-<codeline lineno="1203"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ab14061f1d84f49fb8fefcce285e7aec7" kindref="member">defaultExtension</ref>),<sp/></highlight><highlight class="stringliteral">&apos;</highlight><highlight class="stringliteral">r&apos;)</highlight></codeline>
-<codeline lineno="1204"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="1205"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1206" refid="classcmd2_1_1Cmd_1aa084d0f962d9ea060c935ff6a9cf74a8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aa084d0f962d9ea060c935ff6a9cf74a8" kindref="member">do__relative_load</ref>(self,<sp/>arg=None):</highlight></codeline>
-<codeline lineno="1207"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="1208"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Runs<sp/>commands<sp/>in<sp/>script<sp/>at<sp/>file<sp/>or<sp/>URL;<sp/>if<sp/>this<sp/>is<sp/>called<sp/>from<sp/>within<sp/>an</highlight></codeline>
-<codeline lineno="1209"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>already-running<sp/>script,<sp/>the<sp/>filename<sp/>will<sp/>be<sp/>interpreted<sp/>relative<sp/>to<sp/>the<sp/></highlight></codeline>
-<codeline lineno="1210"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>already-running<sp/>script&apos;s<sp/>directory.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg:</highlight></codeline>
-<codeline lineno="1212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>arg.split(</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">,<sp/>1)</highlight></codeline>
-<codeline lineno="1213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>targetname,<sp/>args<sp/>=<sp/>arg[0],<sp/>(arg[1:]<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>[</highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">])[0]</highlight></codeline>
-<codeline lineno="1214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>targetname<sp/>=<sp/>os.path.join(self.<ref refid="classcmd2_1_1Cmd_1a549399bed9574c87901100530343ac68" kindref="member">current_script_dir</ref><sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,<sp/>targetname)</highlight></codeline>
-<codeline lineno="1215"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a3a237dae48a4dba0daa7e114ff098e90" kindref="member">do__load</ref>(</highlight><highlight class="stringliteral">&apos;%s<sp/>%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(targetname,<sp/>args))</highlight></codeline>
-<codeline lineno="1216"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1217" refid="classcmd2_1_1Cmd_1ad8c02476fc0918fde1093ce103be09de" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>urlre<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">&apos;(https?://[-\\w\\./]+)&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1218" refid="classcmd2_1_1Cmd_1add0217858bbc4c268a5f2f27330ad1f8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a8b8c98ab5e1b98e618a5a9122c50fc74" kindref="member">do_load</ref>(self,<sp/>arg=None):<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1219"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Runs<sp/>script<sp/>of<sp/>command(s)<sp/>from<sp/>a<sp/>file<sp/>or<sp/>URL.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1220"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>arg<sp/></highlight><highlight class="keywordflow">is</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1221"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>targetname<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a3af82e64cdabf19b462cd0ddf686823d" kindref="member">default_file_name</ref></highlight></codeline>
-<codeline lineno="1222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>=<sp/>arg.split(</highlight><highlight class="keywordtype">None</highlight><highlight class="normal">,<sp/>1)</highlight></codeline>
-<codeline lineno="1224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>targetname,<sp/>args<sp/>=<sp/>arg[0],<sp/>(arg[1:]<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>[</highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">])[0].strip()</highlight></codeline>
-<codeline lineno="1225"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1226"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>target<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a2eba6d3d12d65789880959d788be2d86" kindref="member">read_file_or_url</ref>(targetname)</highlight></codeline>
-<codeline lineno="1227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IOError,<sp/>e:</highlight></codeline>
-<codeline lineno="1228"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a118c16455f28dbd3918b565bca086db4" kindref="member">perror</ref>(</highlight><highlight class="stringliteral">&apos;Problem<sp/>accessing<sp/>script<sp/>from<sp/>%s:<sp/>\n%s&apos;</highlight><highlight class="normal"><sp/>%<sp/>(targetname,<sp/>e))</highlight></codeline>
-<codeline lineno="1229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>keepstate<sp/>=<sp/><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(self,<sp/>(</highlight><highlight class="stringliteral">&apos;stdin&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;use_rawinput&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;prompt&apos;</highlight><highlight class="normal">,</highlight></codeline>
-<codeline lineno="1231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;continuation_prompt&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;current_script_dir&apos;</highlight><highlight class="normal">))</highlight></codeline>
-<codeline lineno="1232"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a6f0eed071b4e9197cc4fa46a2c8f1457" kindref="member">stdin</ref><sp/>=<sp/>target<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1233"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1add0217858bbc4c268a5f2f27330ad1f8" kindref="member">use_rawinput</ref><sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1234"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1ae9a33dc613b00f4d5b849c0d3521f2c3" kindref="member">prompt</ref><sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a186ca22e76dc63ad9d8a95cfaeb4f7fd" kindref="member">continuation_prompt</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a549399bed9574c87901100530343ac68" kindref="member">current_script_dir</ref><sp/>=<sp/>os.path.split(targetname)[0]</highlight></codeline>
-<codeline lineno="1236"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1a392c5cd062c20d916c0cacc9cc36c022" kindref="member">_cmdloop</ref>()</highlight></codeline>
-<codeline lineno="1237"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdin.close()</highlight></codeline>
-<codeline lineno="1238"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>keepstate.restore()</highlight></codeline>
-<codeline lineno="1239"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1adaaec8df571e88463c3b8b02fefea8b2" kindref="member">lastcmd</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1240"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stop<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>(stop<sp/>!=<sp/>self.<ref refid="classcmd2_1_1Cmd_1abe14bda0dc50326876c6a761cefba702" kindref="member">_STOP_SCRIPT_NO_EXIT</ref>)<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1241" refid="classcmd2_1_1Cmd_1a3a237dae48a4dba0daa7e114ff098e90" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do__load<sp/>=<sp/>do_load<sp/><sp/></highlight><highlight class="comment">#<sp/>avoid<sp/>an<sp/>unfortunate<sp/>legacy<sp/>use<sp/>of<sp/>do_load<sp/>from<sp/>sqlpython</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1242"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1243" refid="classcmd2_1_1Cmd_1aafd86f263566aa4f2b5bd3c3ea64c678" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1aafd86f263566aa4f2b5bd3c3ea64c678" kindref="member">do_run</ref>(self,<sp/>arg):</highlight></codeline>
-<codeline lineno="1244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;run<sp/>[arg]:<sp/>re-runs<sp/>an<sp/>earlier<sp/>command</highlight></codeline>
-<codeline lineno="1245"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1246"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>no<sp/>arg<sp/>-&gt;<sp/>run<sp/>most<sp/>recent<sp/>command</highlight></codeline>
-<codeline lineno="1247"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>integer<sp/>-&gt;<sp/>run<sp/>one<sp/>history<sp/>item,<sp/>by<sp/>index</highlight></codeline>
-<codeline lineno="1248"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>string<sp/>-&gt;<sp/>run<sp/>most<sp/>recent<sp/>command<sp/>by<sp/>string<sp/>search</highlight></codeline>
-<codeline lineno="1249"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>arg<sp/>is<sp/>/enclosed<sp/>in<sp/>forward-slashes/<sp/>-&gt;<sp/>run<sp/>most<sp/>recent<sp/>by<sp/>regex</highlight></codeline>
-<codeline lineno="1250"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>&quot;&quot;&quot;</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;run<sp/>[N]:<sp/>runs<sp/>the<sp/>SQL<sp/>that<sp/>was<sp/>run<sp/>N<sp/>commands<sp/>ago&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>runme<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1aea5c4d49c7b6f552b6123e5a981a6f49" kindref="member">last_matching</ref>(arg)</highlight></codeline>
-<codeline lineno="1253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a122b67681a0db23863f5ddaa7a687975" kindref="member">pfeedback</ref>(runme)</highlight></codeline>
-<codeline lineno="1254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>runme:</highlight></codeline>
-<codeline lineno="1255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(runme)</highlight></codeline>
-<codeline lineno="1256" refid="classcmd2_1_1Cmd_1a0a9b6e01b7ac4efb65f2957c28949e87" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>do_r<sp/>=<sp/>do_run<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1258" refid="classcmd2_1_1Cmd_1a66160524beda7b75d70070bebce69e42" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a66160524beda7b75d70070bebce69e42" kindref="member">fileimport</ref>(self,<sp/>statement,<sp/>source):</highlight></codeline>
-<codeline lineno="1259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f<sp/>=<sp/>open(os.path.expanduser(source))</highlight></codeline>
-<codeline lineno="1261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IOError:</highlight></codeline>
-<codeline lineno="1262"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.stdout.write(</highlight><highlight class="stringliteral">&quot;Couldn&apos;t<sp/>read<sp/>from<sp/>file<sp/>%s\n&quot;</highlight><highlight class="normal"><sp/>%<sp/>source)</highlight></codeline>
-<codeline lineno="1263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1264"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>data<sp/>=<sp/>f.read()</highlight></codeline>
-<codeline lineno="1265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>f.close()</highlight></codeline>
-<codeline lineno="1266"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>data</highlight></codeline>
-<codeline lineno="1267"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1268" refid="classcmd2_1_1Cmd_1a160c7a080d222defe32c781138901d4e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a160c7a080d222defe32c781138901d4e" kindref="member">runTranscriptTests</ref>(self,<sp/>callargs):</highlight></codeline>
-<codeline lineno="1269"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">TestMyAppCase(<ref refid="classcmd2_1_1Cmd2TestCase" kindref="compound">Cmd2TestCase</ref>):</highlight></codeline>
-<codeline lineno="1270"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>CmdApp<sp/>=<sp/>self.__class__<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1271"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.__class__.testfiles<sp/>=<sp/>callargs</highlight></codeline>
-<codeline lineno="1272"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.argv<sp/>=<sp/>[sys.argv[0]]<sp/></highlight><highlight class="comment">#<sp/>the<sp/>--test<sp/>argument<sp/>upsets<sp/>unittest.main()</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1273"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>testcase<sp/>=<sp/>TestMyAppCase()</highlight></codeline>
-<codeline lineno="1274"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>runner<sp/>=<sp/>unittest.TextTestRunner()</highlight></codeline>
-<codeline lineno="1275"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>runner.run(testcase)</highlight></codeline>
-<codeline lineno="1276"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.printErrors()</highlight></codeline>
-<codeline lineno="1277"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1278" refid="classcmd2_1_1Cmd_1a19b932e21ac917375f16457c986ad4f6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a19b932e21ac917375f16457c986ad4f6" kindref="member">run_commands_at_invocation</ref>(self,<sp/>callargs):</highlight></codeline>
-<codeline lineno="1279"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>initial_command<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>callargs:</highlight></codeline>
-<codeline lineno="1280"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1ac188a434c9c7d5c939e971a3d42c1c63" kindref="member">onecmd_plus_hooks</ref>(initial_command<sp/>+<sp/></highlight><highlight class="stringliteral">&apos;\n&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="1281"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a7a8e8257d7d35c7813355cdefb62b85b" kindref="member">_STOP_AND_EXIT</ref></highlight></codeline>
-<codeline lineno="1282"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1283" refid="classcmd2_1_1Cmd_1a0e5f32e5ab972e32273ef5d69de81afc" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd_1a0e5f32e5ab972e32273ef5d69de81afc" kindref="member">cmdloop</ref>(self):</highlight></codeline>
-<codeline lineno="1284"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>parser<sp/>=<sp/>optparse.OptionParser()</highlight></codeline>
-<codeline lineno="1285"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>parser.add_option(</highlight><highlight class="stringliteral">&apos;-t&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;--test&apos;</highlight><highlight class="normal">,<sp/>dest=</highlight><highlight class="stringliteral">&apos;test&apos;</highlight><highlight class="normal">,</highlight></codeline>
-<codeline lineno="1286"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>action=</highlight><highlight class="stringliteral">&quot;store_true&quot;</highlight><highlight class="normal">,<sp/></highlight></codeline>
-<codeline lineno="1287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>help=</highlight><highlight class="stringliteral">&apos;Test<sp/>against<sp/>transcript(s)<sp/>in<sp/>FILE<sp/>(wildcards<sp/>OK)&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(callopts,<sp/>callargs)<sp/>=<sp/>parser.parse_args()</highlight></codeline>
-<codeline lineno="1289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>callopts.test:</highlight></codeline>
-<codeline lineno="1290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a160c7a080d222defe32c781138901d4e" kindref="member">runTranscriptTests</ref>(callargs)</highlight></codeline>
-<codeline lineno="1291"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1292"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd_1a19b932e21ac917375f16457c986ad4f6" kindref="member">run_commands_at_invocation</ref>(callargs):</highlight></codeline>
-<codeline lineno="1293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd_1a392c5cd062c20d916c0cacc9cc36c022" kindref="member">_cmdloop</ref>()<sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1294"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1295" refid="classcmd2_1_1HistoryItem" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1HistoryItem" kindref="compound">HistoryItem</ref>(str):</highlight></codeline>
-<codeline lineno="1296" refid="classcmd2_1_1HistoryItem_1ac496a3283d2754e61e156ddbf2370259" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>listformat<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;-------------------------[%d]\n%s\n&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1297" refid="classcmd2_1_1HistoryItem_1a74c5f486309e86773802f72335ff4252" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1HistoryItem_1ab873a526e5978d15a16fddae74005471" kindref="member">__init__</ref>(self,<sp/>instr):</highlight></codeline>
-<codeline lineno="1298"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>str.__init__(self)</highlight></codeline>
-<codeline lineno="1299"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1HistoryItem_1a74c5f486309e86773802f72335ff4252" kindref="member">lowercase</ref><sp/>=<sp/>self.lower()</highlight></codeline>
-<codeline lineno="1300"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1HistoryItem_1a83243fbd9faac88d0fb2c13473029d12" kindref="member">idx</ref><sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1301" refid="classcmd2_1_1HistoryItem_1af49dd31da48eafd74653503a69eae230" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1HistoryItem_1af49dd31da48eafd74653503a69eae230" kindref="member">pr</ref>(self):</highlight></codeline>
-<codeline lineno="1302"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1HistoryItem_1ac496a3283d2754e61e156ddbf2370259" kindref="member">listformat</ref><sp/>%<sp/>(self.<ref refid="classcmd2_1_1HistoryItem_1a83243fbd9faac88d0fb2c13473029d12" kindref="member">idx</ref>,<sp/>str(self))</highlight></codeline>
-<codeline lineno="1303"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1304" refid="classcmd2_1_1History" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History" kindref="compound">History</ref>(list):</highlight></codeline>
-<codeline lineno="1305"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;A<sp/>list<sp/>of<sp/>HistoryItems<sp/>that<sp/>knows<sp/>how<sp/>to<sp/>respond<sp/>to<sp/>user<sp/>requests.</highlight></codeline>
-<codeline lineno="1306"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h<sp/>=<sp/>History([HistoryItem(&apos;first&apos;),<sp/>HistoryItem(&apos;second&apos;),<sp/>HistoryItem(&apos;third&apos;),<sp/>HistoryItem(&apos;fourth&apos;)])</highlight></codeline>
-<codeline lineno="1307"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;-2..&apos;)</highlight></codeline>
-<codeline lineno="1308"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;third&apos;,<sp/>&apos;fourth&apos;]</highlight></codeline>
-<codeline lineno="1309"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;2..3&apos;)</highlight></codeline>
-<codeline lineno="1310"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;second&apos;,<sp/>&apos;third&apos;]</highlight></codeline>
-<codeline lineno="1311"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;3&apos;)</highlight></codeline>
-<codeline lineno="1312"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;third&apos;]<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1313"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;:&apos;)</highlight></codeline>
-<codeline lineno="1314"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;first&apos;,<sp/>&apos;second&apos;,<sp/>&apos;third&apos;,<sp/>&apos;fourth&apos;]</highlight></codeline>
-<codeline lineno="1315"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;2..&apos;)</highlight></codeline>
-<codeline lineno="1316"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;second&apos;,<sp/>&apos;third&apos;,<sp/>&apos;fourth&apos;]</highlight></codeline>
-<codeline lineno="1317"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;-1&apos;)</highlight></codeline>
-<codeline lineno="1318"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;fourth&apos;]<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1319"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.span(&apos;-2..-3&apos;)</highlight></codeline>
-<codeline lineno="1320"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;third&apos;,<sp/>&apos;second&apos;]<sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1321"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.search(&apos;o&apos;)</highlight></codeline>
-<codeline lineno="1322"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;second&apos;,<sp/>&apos;fourth&apos;]</highlight></codeline>
-<codeline lineno="1323"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&gt;&gt;&gt;<sp/>h.search(&apos;/IR/&apos;)</highlight></codeline>
-<codeline lineno="1324"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>[&apos;first&apos;,<sp/>&apos;third&apos;]</highlight></codeline>
-<codeline lineno="1325"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1326" refid="classcmd2_1_1History_1accd354b7c81e1cd538438b834630f3ac" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1accd354b7c81e1cd538438b834630f3ac" kindref="member">zero_based_index</ref>(self,<sp/>onebased):</highlight></codeline>
-<codeline lineno="1327"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>onebased</highlight></codeline>
-<codeline lineno="1328"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>result<sp/>&gt;<sp/>0:</highlight></codeline>
-<codeline lineno="1329"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>-=<sp/>1</highlight></codeline>
-<codeline lineno="1330"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="1331" refid="classcmd2_1_1History_1a28fe5dc698da4c7bf82fdcdfb2e70506" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1a28fe5dc698da4c7bf82fdcdfb2e70506" kindref="member">to_index</ref>(self,<sp/>raw):</highlight></codeline>
-<codeline lineno="1332"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>raw:</highlight></codeline>
-<codeline lineno="1333"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.<ref refid="classcmd2_1_1History_1accd354b7c81e1cd538438b834630f3ac" kindref="member">zero_based_index</ref>(int(raw))</highlight></codeline>
-<codeline lineno="1334"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1336"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="1337" refid="classcmd2_1_1History_1ae1db5657367e6aa9b0e43811d5b8893f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1ae1db5657367e6aa9b0e43811d5b8893f" kindref="member">search</ref>(self,<sp/>target):</highlight></codeline>
-<codeline lineno="1338"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>target<sp/>=<sp/>target.strip()</highlight></codeline>
-<codeline lineno="1339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>target[0]<sp/>==<sp/>target[-1]<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;/&apos;</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>len(target)<sp/>&gt;<sp/>1:</highlight></codeline>
-<codeline lineno="1340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>target<sp/>=<sp/>target[1:-1]</highlight></codeline>
-<codeline lineno="1341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>target<sp/>=<sp/>re.escape(target)</highlight></codeline>
-<codeline lineno="1343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pattern<sp/>=<sp/>re.compile(target,<sp/>re.IGNORECASE)</highlight></codeline>
-<codeline lineno="1344"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[s<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>s<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self<sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>pattern.search(s)]</highlight></codeline>
-<codeline lineno="1345" refid="classcmd2_1_1History_1aa5204f159577beb16f07a8a9ada184ec" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>spanpattern<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">r&apos;^\s*(?P&lt;start&gt;\-?\d+)?\s*(?P&lt;separator&gt;:|(\.{2,}))?\s*(?P&lt;end&gt;\-?\d+)?\s*$&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1346" refid="classcmd2_1_1History_1a8c0837240ac7747aa804ba9eebddab60" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1a8c0837240ac7747aa804ba9eebddab60" kindref="member">span</ref>(self,<sp/>raw):</highlight></codeline>
-<codeline lineno="1347"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>raw.lower()<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>(</highlight><highlight class="stringliteral">&apos;*&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;-&apos;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&apos;all&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="1348"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>raw<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;:&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1349"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>results<sp/>=<sp/>self.spanpattern.search(raw)</highlight></codeline>
-<codeline lineno="1350"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>results:</highlight></codeline>
-<codeline lineno="1351"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>IndexError</highlight></codeline>
-<codeline lineno="1352"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>results.group(</highlight><highlight class="stringliteral">&apos;separator&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="1353"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[self[self.<ref refid="classcmd2_1_1History_1a28fe5dc698da4c7bf82fdcdfb2e70506" kindref="member">to_index</ref>(results.group(</highlight><highlight class="stringliteral">&apos;start&apos;</highlight><highlight class="normal">))]]</highlight></codeline>
-<codeline lineno="1354"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>start<sp/>=<sp/>self.<ref refid="classcmd2_1_1History_1a28fe5dc698da4c7bf82fdcdfb2e70506" kindref="member">to_index</ref>(results.group(</highlight><highlight class="stringliteral">&apos;start&apos;</highlight><highlight class="normal">))</highlight></codeline>
-<codeline lineno="1355"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>end<sp/>=<sp/>self.<ref refid="classcmd2_1_1History_1a28fe5dc698da4c7bf82fdcdfb2e70506" kindref="member">to_index</ref>(results.group(</highlight><highlight class="stringliteral">&apos;end&apos;</highlight><highlight class="normal">))</highlight></codeline>
-<codeline lineno="1356"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>reverse<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1357"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>end<sp/></highlight><highlight class="keywordflow">is</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1358"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>end<sp/>&lt;<sp/>start:</highlight></codeline>
-<codeline lineno="1359"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(start,<sp/>end)<sp/>=<sp/>(end,<sp/>start)</highlight></codeline>
-<codeline lineno="1360"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>reverse<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1361"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>end<sp/>+=<sp/>1</highlight></codeline>
-<codeline lineno="1362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self[start:end]</highlight></codeline>
-<codeline lineno="1363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>reverse:</highlight></codeline>
-<codeline lineno="1364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result.reverse()</highlight></codeline>
-<codeline lineno="1365"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="1366"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1367" refid="classcmd2_1_1History_1a47db7cadf89510850e60e3c908a376f1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>rangePattern<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">r&apos;^\s*(?P&lt;start&gt;[\d]+)?\s*\-\s*(?P&lt;end&gt;[\d]+)?\s*$&apos;</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1368" refid="classcmd2_1_1History_1aef5a4f297a77df78cd0e6bb17b67fb16" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1aef5a4f297a77df78cd0e6bb17b67fb16" kindref="member">append</ref>(self,<sp/>new):</highlight></codeline>
-<codeline lineno="1369"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new<sp/>=<sp/><ref refid="classcmd2_1_1HistoryItem" kindref="compound">HistoryItem</ref>(new)</highlight></codeline>
-<codeline lineno="1370"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>list.append(self,<sp/>new)</highlight></codeline>
-<codeline lineno="1371"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new.idx<sp/>=<sp/>len(self)</highlight></codeline>
-<codeline lineno="1372" refid="classcmd2_1_1History_1a1c036910ea442db79fe012715b29c9db" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1a1c036910ea442db79fe012715b29c9db" kindref="member">extend</ref>(self,<sp/>new):</highlight></codeline>
-<codeline lineno="1373"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>n<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>new:</highlight></codeline>
-<codeline lineno="1374"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1History_1aef5a4f297a77df78cd0e6bb17b67fb16" kindref="member">append</ref>(n)</highlight></codeline>
-<codeline lineno="1375"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1376" refid="classcmd2_1_1History_1a030faac02c0b814fc676d21d8c5e049c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1History_1a030faac02c0b814fc676d21d8c5e049c" kindref="member">get</ref>(self,<sp/>getme=None,<sp/>fromEnd=False):</highlight></codeline>
-<codeline lineno="1377"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>getme:</highlight></codeline>
-<codeline lineno="1378"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self</highlight></codeline>
-<codeline lineno="1379"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1380"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>getme<sp/>=<sp/>int(getme)</highlight></codeline>
-<codeline lineno="1381"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>getme<sp/>&lt;<sp/>0:</highlight></codeline>
-<codeline lineno="1382"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self[:(-1<sp/>*<sp/>getme)]</highlight></codeline>
-<codeline lineno="1383"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1384"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[self[getme-1]]</highlight></codeline>
-<codeline lineno="1385"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>IndexError:</highlight></codeline>
-<codeline lineno="1386"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[]</highlight></codeline>
-<codeline lineno="1387"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>ValueError:</highlight></codeline>
-<codeline lineno="1388"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>rangeResult<sp/>=<sp/>self.rangePattern.search(getme)</highlight></codeline>
-<codeline lineno="1389"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>rangeResult:</highlight></codeline>
-<codeline lineno="1390"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>start<sp/>=<sp/>rangeResult.group(</highlight><highlight class="stringliteral">&apos;start&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1391"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>end<sp/>=<sp/>rangeResult.group(</highlight><highlight class="stringliteral">&apos;start&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1392"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>start:</highlight></codeline>
-<codeline lineno="1393"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>start<sp/>=<sp/>int(start)<sp/>-<sp/>1</highlight></codeline>
-<codeline lineno="1394"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>end:</highlight></codeline>
-<codeline lineno="1395"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>end<sp/>=<sp/>int(end)</highlight></codeline>
-<codeline lineno="1396"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>self[start:end]</highlight></codeline>
-<codeline lineno="1397"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1398"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>getme<sp/>=<sp/>getme.strip()</highlight></codeline>
-<codeline lineno="1399"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>getme.startswith(</highlight><highlight class="stringliteral">r&apos;/&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">and</highlight><highlight class="normal"><sp/>getme.endswith(</highlight><highlight class="stringliteral">r&apos;/&apos;</highlight><highlight class="normal">):</highlight></codeline>
-<codeline lineno="1401"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>finder<sp/>=<sp/>re.compile(getme[1:-1],<sp/>re.DOTALL<sp/>|<sp/>re.MULTILINE<sp/>|<sp/>re.IGNORECASE)</highlight></codeline>
-<codeline lineno="1402"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">isin(hi):</highlight></codeline>
-<codeline lineno="1403"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>finder.search(hi)</highlight></codeline>
-<codeline lineno="1404"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1405"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal">isin(hi):</highlight></codeline>
-<codeline lineno="1406"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(getme.lower()<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>hi.lowercase)</highlight></codeline>
-<codeline lineno="1407"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>[itm<sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>itm<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self<sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>isin(itm)]</highlight></codeline>
-<codeline lineno="1408"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1409" refid="classcmd2_1_1NotSettableError" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1NotSettableError" kindref="compound">NotSettableError</ref>(Exception):</highlight></codeline>
-<codeline lineno="1410"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1411"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1412" refid="namespacecmd2_1a0880940558f324b3958aedfc430f592d" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespacecmd2_1a0880940558f324b3958aedfc430f592d" kindref="member">cast</ref>(current,<sp/>new):</highlight></codeline>
-<codeline lineno="1413"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;&quot;&quot;Tries<sp/>to<sp/>force<sp/>a<sp/>new<sp/>value<sp/>into<sp/>the<sp/>same<sp/>type<sp/>as<sp/>the<sp/>current.&quot;&quot;&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1414"><highlight class="normal"><sp/><sp/><sp/><sp/>typ<sp/>=<sp/>type(current)</highlight></codeline>
-<codeline lineno="1415"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>typ<sp/>==<sp/>bool:</highlight></codeline>
-<codeline lineno="1416"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1417"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>bool(int(new))</highlight></codeline>
-<codeline lineno="1418"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>(ValueError,<sp/>TypeError):</highlight></codeline>
-<codeline lineno="1419"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1420"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1421"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>new<sp/>=<sp/>new.lower()<sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1422"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1423"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(new==</highlight><highlight class="stringliteral">&apos;on&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>(new[0]<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>(</highlight><highlight class="stringliteral">&apos;y&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;t&apos;</highlight><highlight class="normal">)):</highlight></codeline>
-<codeline lineno="1425"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1426"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(new==</highlight><highlight class="stringliteral">&apos;off&apos;</highlight><highlight class="normal">)<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>(new[0]<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>(</highlight><highlight class="stringliteral">&apos;n&apos;</highlight><highlight class="normal">,</highlight><highlight class="stringliteral">&apos;f&apos;</highlight><highlight class="normal">)):</highlight></codeline>
-<codeline lineno="1427"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1428"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1429"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>typ(new)</highlight></codeline>
-<codeline lineno="1431"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1432"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">pass</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1433"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">print</highlight><highlight class="normal"><sp/>(</highlight><highlight class="stringliteral">&quot;Problem<sp/>setting<sp/>parameter<sp/>(now<sp/>%s)<sp/>to<sp/>%s;<sp/>incorrect<sp/>type?&quot;</highlight><highlight class="normal"><sp/>%<sp/>(current,<sp/>new))</highlight></codeline>
-<codeline lineno="1434"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>current</highlight></codeline>
-<codeline lineno="1435"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1436" refid="classcmd2_1_1Statekeeper" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Statekeeper" kindref="compound">Statekeeper</ref>(object):</highlight></codeline>
-<codeline lineno="1437" refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Statekeeper_1a3550a0316a7f911d7b13da87844ee882" kindref="member">__init__</ref>(self,<sp/>obj,<sp/>attribs):</highlight></codeline>
-<codeline lineno="1438"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" kindref="member">obj</ref><sp/>=<sp/>obj</highlight></codeline>
-<codeline lineno="1439"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a18466d6cef3f084e92f086a86d4a7244" kindref="member">attribs</ref><sp/>=<sp/>attribs</highlight></codeline>
-<codeline lineno="1440"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" kindref="member">obj</ref>:</highlight></codeline>
-<codeline lineno="1441"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a848245f65d18fddf4bb768bd3f911b30" kindref="member">save</ref>()</highlight></codeline>
-<codeline lineno="1442" refid="classcmd2_1_1Statekeeper_1a848245f65d18fddf4bb768bd3f911b30" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Statekeeper_1a848245f65d18fddf4bb768bd3f911b30" kindref="member">save</ref>(self):</highlight></codeline>
-<codeline lineno="1443"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>attrib<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a18466d6cef3f084e92f086a86d4a7244" kindref="member">attribs</ref>:</highlight></codeline>
-<codeline lineno="1444"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>setattr(self,<sp/>attrib,<sp/>getattr(self.<ref refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" kindref="member">obj</ref>,<sp/>attrib))</highlight></codeline>
-<codeline lineno="1445" refid="classcmd2_1_1Statekeeper_1a00e6cfdbe169bcb76db888b9d0beff03" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Statekeeper_1a00e6cfdbe169bcb76db888b9d0beff03" kindref="member">restore</ref>(self):</highlight></codeline>
-<codeline lineno="1446"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" kindref="member">obj</ref>:</highlight></codeline>
-<codeline lineno="1447"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>attrib<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Statekeeper_1a18466d6cef3f084e92f086a86d4a7244" kindref="member">attribs</ref>:</highlight></codeline>
-<codeline lineno="1448"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>setattr(self.<ref refid="classcmd2_1_1Statekeeper_1a84a5071e786e0dff91a413e3fd0470c1" kindref="member">obj</ref>,<sp/>attrib,<sp/>getattr(self,<sp/>attrib))<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1449"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1450" refid="classcmd2_1_1Borg" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Borg" kindref="compound">Borg</ref>(object):</highlight></codeline>
-<codeline lineno="1451"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;All<sp/>instances<sp/>of<sp/>any<sp/>Borg<sp/>subclass<sp/>will<sp/>share<sp/>state.</highlight></codeline>
-<codeline lineno="1452"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>from<sp/>Python<sp/>Cookbook,<sp/>2nd<sp/>Ed.,<sp/>recipe<sp/>6.16&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1453" refid="classcmd2_1_1Borg_1a3af75c745a5c124376fa050b4d1c3912" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>_shared_state<sp/>=<sp/>{}</highlight></codeline>
-<codeline lineno="1454" refid="classcmd2_1_1Borg_1addff1031aaf78f5e1dc5ff0c6dba5137" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Borg_1addff1031aaf78f5e1dc5ff0c6dba5137" kindref="member">__new__</ref>(cls,<sp/>*a,<sp/>**k):</highlight></codeline>
-<codeline lineno="1455"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj<sp/>=<sp/>object.__new__(cls,<sp/>*a,<sp/>**k)</highlight></codeline>
-<codeline lineno="1456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>obj.__dict__<sp/>=<sp/>cls._shared_state</highlight></codeline>
-<codeline lineno="1457"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>obj</highlight></codeline>
-<codeline lineno="1458"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1459" refid="classcmd2_1_1OutputTrap" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OutputTrap" kindref="compound">OutputTrap</ref>(<ref refid="classcmd2_1_1Borg" kindref="compound">Borg</ref>):</highlight></codeline>
-<codeline lineno="1460"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Instantiate<sp/><sp/>an<sp/>OutputTrap<sp/>to<sp/>divert/capture<sp/>ALL<sp/>stdout<sp/>output.<sp/><sp/>For<sp/>use<sp/>in<sp/>unit<sp/>testing.</highlight></codeline>
-<codeline lineno="1461"><highlight class="stringliteral"><sp/><sp/><sp/><sp/>Call<sp/>`tearDown()`<sp/>to<sp/>return<sp/>to<sp/>normal<sp/>output.&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1462" refid="classcmd2_1_1OutputTrap_1ac7a0b848dc18c74b089bc0d4044996de" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OutputTrap_1a0dc45d536432b07d7ec32da5755b5c85" kindref="member">__init__</ref>(self):</highlight></codeline>
-<codeline lineno="1463"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1OutputTrap_1a9117a6d5bfa07f1eeade54f24eeba0ed" kindref="member">contents</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1464"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1OutputTrap_1ac7a0b848dc18c74b089bc0d4044996de" kindref="member">old_stdout</ref><sp/>=<sp/>sys.stdout</highlight></codeline>
-<codeline lineno="1465"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self</highlight></codeline>
-<codeline lineno="1466" refid="classcmd2_1_1OutputTrap_1aa3bec468fdc0d248cd43cb8e8e0d96cd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OutputTrap_1aa3bec468fdc0d248cd43cb8e8e0d96cd" kindref="member">write</ref>(self,<sp/>txt):</highlight></codeline>
-<codeline lineno="1467"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1OutputTrap_1a9117a6d5bfa07f1eeade54f24eeba0ed" kindref="member">contents</ref><sp/>+=<sp/>txt</highlight></codeline>
-<codeline lineno="1468" refid="classcmd2_1_1OutputTrap_1a492ceb8dfb3f6e90bf095a710ab56ad1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OutputTrap_1a492ceb8dfb3f6e90bf095a710ab56ad1" kindref="member">read</ref>(self):</highlight></codeline>
-<codeline lineno="1469"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.<ref refid="classcmd2_1_1OutputTrap_1a9117a6d5bfa07f1eeade54f24eeba0ed" kindref="member">contents</ref></highlight></codeline>
-<codeline lineno="1470"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1OutputTrap_1a9117a6d5bfa07f1eeade54f24eeba0ed" kindref="member">contents</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1471"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>result</highlight></codeline>
-<codeline lineno="1472" refid="classcmd2_1_1OutputTrap_1a06961b49c3e19e9984f077a08b3a75f2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1OutputTrap_1a06961b49c3e19e9984f077a08b3a75f2" kindref="member">tearDown</ref>(self):</highlight></codeline>
-<codeline lineno="1473"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>sys.stdout<sp/>=<sp/>self.<ref refid="classcmd2_1_1OutputTrap_1ac7a0b848dc18c74b089bc0d4044996de" kindref="member">old_stdout</ref></highlight></codeline>
-<codeline lineno="1474"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1OutputTrap_1a9117a6d5bfa07f1eeade54f24eeba0ed" kindref="member">contents</ref><sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1475"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1476" refid="classcmd2_1_1Cmd2TestCase" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase" kindref="compound">Cmd2TestCase</ref>(unittest.TestCase):</highlight></codeline>
-<codeline lineno="1477"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;&apos;&apos;Subclass<sp/>this,<sp/>setting<sp/>CmdApp,<sp/>to<sp/>make<sp/>a<sp/>unittest.TestCase<sp/>class</highlight></codeline>
-<codeline lineno="1478"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>that<sp/>will<sp/>execute<sp/>the<sp/>commands<sp/>in<sp/>a<sp/>transcript<sp/>file<sp/>and<sp/>expect<sp/>the<sp/>results<sp/>shown.</highlight></codeline>
-<codeline lineno="1479"><highlight class="stringliteral"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>See<sp/>example.py&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1480" refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>CmdApp<sp/>=<sp/></highlight><highlight class="keywordtype">None</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1481" refid="classcmd2_1_1Cmd2TestCase_1ad319aa2e1874f60202610e5b8de33dbb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase_1ad82fc3489ffaf8ae227e7b122df389e0" kindref="member">fetchTranscripts</ref>(self):</highlight></codeline>
-<codeline lineno="1482"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ad319aa2e1874f60202610e5b8de33dbb" kindref="member">transcripts</ref><sp/>=<sp/>{}</highlight></codeline>
-<codeline lineno="1483"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>fileset<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" kindref="member">CmdApp</ref>.testfiles:</highlight></codeline>
-<codeline lineno="1484"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>fname<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>glob.glob(fileset):</highlight></codeline>
-<codeline lineno="1485"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tfile<sp/>=<sp/>open(fname)</highlight></codeline>
-<codeline lineno="1486"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ad319aa2e1874f60202610e5b8de33dbb" kindref="member">transcripts</ref>[fname]<sp/>=<sp/>iter(tfile.readlines())</highlight></codeline>
-<codeline lineno="1487"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tfile.close()</highlight></codeline>
-<codeline lineno="1488"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>len(self.<ref refid="classcmd2_1_1Cmd2TestCase_1ad319aa2e1874f60202610e5b8de33dbb" kindref="member">transcripts</ref>):</highlight></codeline>
-<codeline lineno="1489"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>(StandardError,),<sp/></highlight><highlight class="stringliteral">&quot;No<sp/>test<sp/>files<sp/>found<sp/>-<sp/>nothing<sp/>to<sp/>test.&quot;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1490" refid="classcmd2_1_1Cmd2TestCase_1a5892c02ac5ee5a25c47bbfa1c648647b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase_1a5892c02ac5ee5a25c47bbfa1c648647b" kindref="member">setUp</ref>(self):</highlight></codeline>
-<codeline lineno="1491"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" kindref="member">CmdApp</ref>:</highlight></codeline>
-<codeline lineno="1492"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1adeb5a7b735ad3b7f23a3c44d15ad283e" kindref="member">outputTrap</ref><sp/>=<sp/><ref refid="classcmd2_1_1OutputTrap" kindref="compound">OutputTrap</ref>()</highlight></codeline>
-<codeline lineno="1493"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref><sp/>=<sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" kindref="member">CmdApp</ref>()</highlight></codeline>
-<codeline lineno="1494"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ad82fc3489ffaf8ae227e7b122df389e0" kindref="member">fetchTranscripts</ref>()</highlight></codeline>
-<codeline lineno="1495" refid="classcmd2_1_1Cmd2TestCase_1acc8585a2192f48e04a8eafd63348c590" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase_1acc8585a2192f48e04a8eafd63348c590" kindref="member">runTest</ref>(self):<sp/></highlight><highlight class="comment">#<sp/>was<sp/>testall</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1496"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" kindref="member">CmdApp</ref>:</highlight></codeline>
-<codeline lineno="1497"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>its<sp/>=<sp/>sorted(self.transcripts.items())</highlight></codeline>
-<codeline lineno="1498"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(fname,<sp/>transcript)<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>its:</highlight></codeline>
-<codeline lineno="1499"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1aaad687718f366338a76f83cb6547a258" kindref="member">_test_transcript</ref>(fname,<sp/>transcript)</highlight></codeline>
-<codeline lineno="1500" refid="classcmd2_1_1Cmd2TestCase_1aa85409ff40b934d96ca1b3d3ff9e897d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>regexPattern<sp/>=<sp/>pyparsing.QuotedString(quoteChar=</highlight><highlight class="stringliteral">r&apos;/&apos;</highlight><highlight class="normal">,<sp/>escChar=</highlight><highlight class="stringliteral">&apos;\\&apos;</highlight><highlight class="normal">,<sp/>multiline=</highlight><highlight class="keyword">True</highlight><highlight class="normal">,<sp/>unquoteResults=</highlight><highlight class="keyword">True</highlight><highlight class="normal">)</highlight></codeline>
-<codeline lineno="1501"><highlight class="normal"><sp/><sp/><sp/><sp/>regexPattern.ignore(pyparsing.cStyleComment)</highlight></codeline>
-<codeline lineno="1502" refid="classcmd2_1_1Cmd2TestCase_1a29b62f02c603b82014102babccd0c40e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>notRegexPattern<sp/>=<sp/>pyparsing.Word(pyparsing.printables)</highlight></codeline>
-<codeline lineno="1503"><highlight class="normal"><sp/><sp/><sp/><sp/>notRegexPattern.setParseAction(</highlight><highlight class="keyword">lambda</highlight><highlight class="normal"><sp/>t:<sp/>re.escape(t[0]))</highlight></codeline>
-<codeline lineno="1504" refid="classcmd2_1_1Cmd2TestCase_1af9574fde56ba05bc1532a6a028fb566d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>expectationParser<sp/>=<sp/>regexPattern<sp/>|<sp/>notRegexPattern</highlight></codeline>
-<codeline lineno="1505" refid="classcmd2_1_1Cmd2TestCase_1a946827bef7050042cee99d3749c976d0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>anyWhitespace<sp/>=<sp/>re.compile(</highlight><highlight class="stringliteral">r&apos;\s&apos;</highlight><highlight class="normal">,<sp/>re.DOTALL<sp/>|<sp/>re.MULTILINE)</highlight></codeline>
-<codeline lineno="1506" refid="classcmd2_1_1Cmd2TestCase_1aaad687718f366338a76f83cb6547a258" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase_1aaad687718f366338a76f83cb6547a258" kindref="member">_test_transcript</ref>(self,<sp/>fname,<sp/>transcript):</highlight></codeline>
-<codeline lineno="1507"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lineNum<sp/>=<sp/>0</highlight></codeline>
-<codeline lineno="1508"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>finished<sp/>=<sp/></highlight><highlight class="keyword">False</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1509"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>transcript.next()</highlight></codeline>
-<codeline lineno="1510"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lineNum<sp/>+=<sp/>1</highlight></codeline>
-<codeline lineno="1511"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tests_run<sp/>=<sp/>0</highlight></codeline>
-<codeline lineno="1512"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>finished:</highlight></codeline>
-<codeline lineno="1513"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Scroll<sp/>forward<sp/>to<sp/>where<sp/>actual<sp/>commands<sp/>begin</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1514"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>line.startswith(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.prompt):</highlight></codeline>
-<codeline lineno="1515"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1516"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>transcript.next()</highlight></codeline>
-<codeline lineno="1517"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>StopIteration:</highlight></codeline>
-<codeline lineno="1518"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>finished<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1519"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1520"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lineNum<sp/>+=<sp/>1</highlight></codeline>
-<codeline lineno="1521"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>command<sp/>=<sp/>[line[len(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.prompt):]]</highlight></codeline>
-<codeline lineno="1522"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>transcript.next()</highlight></codeline>
-<codeline lineno="1523"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Read<sp/>the<sp/>entirety<sp/>of<sp/>a<sp/>multi-line<sp/>command</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1524"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>line.startswith(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.continuation_prompt):</highlight></codeline>
-<codeline lineno="1525"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>command.append(line[len(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.continuation_prompt):])</highlight></codeline>
-<codeline lineno="1526"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1527"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>transcript.next()</highlight></codeline>
-<codeline lineno="1528"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>StopIteration:</highlight></codeline>
-<codeline lineno="1529"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>(StopIteration,<sp/></highlight></codeline>
-<codeline lineno="1530"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&apos;Transcript<sp/>broke<sp/>off<sp/>while<sp/>reading<sp/>command<sp/>beginning<sp/>at<sp/>line<sp/>%d<sp/>with\n%s&apos;</highlight><highlight class="normal"><sp/></highlight></codeline>
-<codeline lineno="1531"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>%<sp/>(command[0]))</highlight></codeline>
-<codeline lineno="1532"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lineNum<sp/>+=<sp/>1</highlight></codeline>
-<codeline lineno="1533"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>command<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">.join(command)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1534"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Send<sp/>the<sp/>command<sp/>into<sp/>the<sp/>application<sp/>and<sp/>capture<sp/>the<sp/>resulting<sp/>output</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1535"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>stop<sp/>=<sp/>self.cmdapp.onecmd_plus_hooks(command)</highlight></codeline>
-<codeline lineno="1536"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#TODO:<sp/>should<sp/>act<sp/>on<sp/>``stop``</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1537"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.outputTrap.read()</highlight></codeline>
-<codeline lineno="1538"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Read<sp/>the<sp/>expected<sp/>result<sp/>from<sp/>transcript</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1539"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>line.startswith(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.prompt):</highlight></codeline>
-<codeline lineno="1540"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>message<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;\nFile<sp/>%s,<sp/>line<sp/>%d\nCommand<sp/>was:\n%s\nExpected:<sp/>(nothing)\nGot:\n%s\n&apos;</highlight><highlight class="normal">%\</highlight></codeline>
-<codeline lineno="1541"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(fname,<sp/>lineNum,<sp/>command,<sp/>result)<sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1542"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.assert_(not(result.strip()),<sp/>message)</highlight></codeline>
-<codeline lineno="1543"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1544"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>expected<sp/>=<sp/>[]</highlight></codeline>
-<codeline lineno="1545"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>line.startswith(self.<ref refid="classcmd2_1_1Cmd2TestCase_1acc7fc3df4fb04682fd1e4b2c4cc4cd3c" kindref="member">cmdapp</ref>.prompt):</highlight></codeline>
-<codeline lineno="1546"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>expected.append(line)</highlight></codeline>
-<codeline lineno="1547"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">try</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1548"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>line<sp/>=<sp/>transcript.next()</highlight></codeline>
-<codeline lineno="1549"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">except</highlight><highlight class="normal"><sp/>StopIteration:</highlight></codeline>
-<codeline lineno="1550"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>finished<sp/>=<sp/></highlight><highlight class="keyword">True</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1551"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1552"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lineNum<sp/>+=<sp/>1</highlight></codeline>
-<codeline lineno="1553"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>expected<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">.join(expected)</highlight></codeline>
-<codeline lineno="1554"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Compare<sp/>actual<sp/>result<sp/>to<sp/>expected</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1555"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>message<sp/>=<sp/></highlight><highlight class="stringliteral">&apos;\nFile<sp/>%s,<sp/>line<sp/>%d\nCommand<sp/>was:\n%s\nExpected:\n%s\nGot:\n%s\n&apos;</highlight><highlight class="normal">%\</highlight></codeline>
-<codeline lineno="1556"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(fname,<sp/>lineNum,<sp/>command,<sp/>expected,<sp/>result)<sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1557"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>expected<sp/>=<sp/>self.expectationParser.transformString(expected)</highlight></codeline>
-<codeline lineno="1558"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>checking<sp/>whitespace<sp/>is<sp/>a<sp/>pain<sp/>-<sp/>let&apos;s<sp/>skip<sp/>it</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1559"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>expected<sp/>=<sp/>self.anyWhitespace.sub(</highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,<sp/>expected)</highlight></codeline>
-<codeline lineno="1560"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>result<sp/>=<sp/>self.anyWhitespace.sub(</highlight><highlight class="stringliteral">&apos;&apos;</highlight><highlight class="normal">,<sp/>result)</highlight></codeline>
-<codeline lineno="1561"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.assert_(re.match(expected,<sp/>result,<sp/>re.MULTILINE<sp/>|<sp/>re.DOTALL),<sp/>message)</highlight></codeline>
-<codeline lineno="1562"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1563" refid="classcmd2_1_1Cmd2TestCase_1a12a9839011a264bf817e646114523052" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="classcmd2_1_1Cmd2TestCase_1a12a9839011a264bf817e646114523052" kindref="member">tearDown</ref>(self):</highlight></codeline>
-<codeline lineno="1564"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>self.<ref refid="classcmd2_1_1Cmd2TestCase_1ae3ce50557636abee00a3941461dd450c" kindref="member">CmdApp</ref>:</highlight></codeline>
-<codeline lineno="1565"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>self.outputTrap.tearDown()</highlight></codeline>
-<codeline lineno="1566"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1567"><highlight class="normal"></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>__name__<sp/>==<sp/></highlight><highlight class="stringliteral">&apos;__main__&apos;</highlight><highlight class="normal">:</highlight></codeline>
-<codeline lineno="1568"><highlight class="normal"><sp/><sp/><sp/><sp/>doctest.testmod(optionflags<sp/>=<sp/>doctest.NORMALIZE_WHITESPACE)</highlight></codeline>
-<codeline lineno="1569"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
-<codeline lineno="1570"><highlight class="normal"></highlight><highlight class="stringliteral">&apos;&apos;&apos;</highlight></codeline>
-<codeline lineno="1571"><highlight class="stringliteral">To<sp/>make<sp/>your<sp/>application<sp/>transcript-testable,<sp/>replace<sp/></highlight></codeline>
-<codeline lineno="1572"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1573"><highlight class="stringliteral">::</highlight></codeline>
-<codeline lineno="1574"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1575"><highlight class="stringliteral"><sp/><sp/>app<sp/>=<sp/>MyApp()</highlight></codeline>
-<codeline lineno="1576"><highlight class="stringliteral"><sp/><sp/>app.cmdloop()</highlight></codeline>
-<codeline lineno="1577"><highlight class="stringliteral"><sp/><sp/></highlight></codeline>
-<codeline lineno="1578"><highlight class="stringliteral">with</highlight></codeline>
-<codeline lineno="1579"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1580"><highlight class="stringliteral">::</highlight></codeline>
-<codeline lineno="1581"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1582"><highlight class="stringliteral"><sp/><sp/>app<sp/>=<sp/>MyApp()</highlight></codeline>
-<codeline lineno="1583"><highlight class="stringliteral"><sp/><sp/>cmd2.run(app)</highlight></codeline>
-<codeline lineno="1584"><highlight class="stringliteral"><sp/><sp/></highlight></codeline>
-<codeline lineno="1585"><highlight class="stringliteral">Then<sp/>run<sp/>a<sp/>session<sp/>of<sp/>your<sp/>application<sp/>and<sp/>paste<sp/>the<sp/>entire<sp/>screen<sp/>contents</highlight></codeline>
-<codeline lineno="1586"><highlight class="stringliteral">into<sp/>a<sp/>file,<sp/>``transcript.test``,<sp/>and<sp/>invoke<sp/>the<sp/>test<sp/>like::</highlight></codeline>
-<codeline lineno="1587"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1588"><highlight class="stringliteral"><sp/><sp/>python<sp/>myapp.py<sp/>--test<sp/>transcript.test</highlight></codeline>
-<codeline lineno="1589"><highlight class="stringliteral"></highlight></codeline>
-<codeline lineno="1590"><highlight class="stringliteral">Wildcards<sp/>can<sp/>be<sp/>used<sp/>to<sp/>test<sp/>against<sp/>multiple<sp/>transcript<sp/>files.</highlight></codeline>
-<codeline lineno="1591"><highlight class="stringliteral">&apos;&apos;&apos;</highlight><highlight class="normal"></highlight></codeline>
-<codeline lineno="1592"><highlight class="normal"></highlight></codeline>
-<codeline lineno="1593"><highlight class="normal"></highlight></codeline>
- </programlisting>
- <location file="/Users/amrogers/Developer/Projects/cmd2/cmd2.py"/>
- </compounddef>
-</doxygen>