def insert(self, entry=None): if entry is None: entry = self.cursor_entry() escape = False if self.cmdline.mode.__class__.__name__ == "Shell" and \ not self.parser.now_in_quote() and \ not isinstance(entry, Argument): escape = True text = entry.match(self.parser.part[1]) if escape: text = util.string_to_safe(text) self.cmdline.settext(self.parser.part[0] + text + self.parser.part[2]) self.cmdline.cursor = util.mbslen(self.parser.part[0]+text) self.finish()
def _update_completion_path(self): def _dirname(path_): if path_.endswith(os.sep): return path_ else: dname = os.path.dirname(path_) if dname.endswith(os.sep) or not dname: return dname else: return dname + os.sep path = self.parser.part[1] if issubclass(self.__class__, ShellCompletionFunction) and \ not self.parser.now_in_quote(): self.parser.part[0] += _dirname(util.string_to_safe(path)) else: self.parser.part[0] += _dirname(path) bname = os.path.basename(path) dpath = os.path.expanduser(util.abspath(os.path.dirname(path))) self.parser.part[1] = bname return (bname, dpath)