Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
 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)