use os.sep and strip what's already in input box from complete options

This commit is contained in:
Nick Lanham 2011-04-13 11:52:03 +02:00
parent 19799d74b4
commit bb0746c3e8
1 changed files with 6 additions and 5 deletions

View File

@ -42,7 +42,7 @@ try:
except ImportError:
pass
import logging,os.path
import logging,os,os.path
from popup import Popup
@ -476,7 +476,8 @@ class TextInput(InputField):
self.cursor = len(prefix)
if len(opts) > 1 and second_hit: # display multiple options on second tab hit
self.opts = " ".join(opts)
sp = self.value.rfind(os.sep)+1
self.opts = " ".join([o[sp:] for o in opts])
# Cursor movement
elif c == curses.KEY_LEFT:
@ -519,6 +520,7 @@ class TextInput(InputField):
self.value = self.value[:self.cursor] + uchar + self.value[self.cursor:]
# Move the cursor forward
self.cursor+=1
def complete(self,line):
line = os.path.abspath(os.path.expanduser(line))
@ -534,7 +536,7 @@ class TextInput(InputField):
continue
f = os.path.join(line, f)
if os.path.isdir(f):
f += "/"
f += os.sep
ret.append(f)
else:
# This is a file, but we could be looking for another file that
@ -552,9 +554,8 @@ class TextInput(InputField):
p = os.path.join(os.path.dirname(line), f)
if os.path.isdir(p):
p += "/"
p += os.sep
ret.append(p)
return ret