Skip to content

cmd.Cmd fails tab completion for lines beginning with ! (bang space) #133363

Closed
@godlygeek

Description

@godlygeek

Bug report

Bug description:

As noted in #133351 (comment) PDB allows commands that start with !, but Cmd fails to tab complete them if there's a space after the !, because it falls down this code path:

cpython/Lib/cmd.py

Lines 274 to 280 in 2bc8365

if begidx>0:
cmd, args, foo = self.parseline(line)
if cmd == '':
compfunc = self.completedefault
else:
try:
compfunc = getattr(self, 'complete_' + cmd)

which expects cmd to always be a string, but parsecmd is returning None instead when the line starts with ! and do_shell is not defined.

CPython versions tested on:

CPython main branch

Operating systems tested on:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions