Hi,

I'm on a Linux env and try to get
word completion form sdtin done,
like Perl's
  $stdin = Complete( "\t: ", @choices );

What I have so far shows me the directory listing
on the second hit on TAB and not the list of
choices on the first like I wanted to have.

Any help appreciated,
        Bernd


#! /usr/bin/python

import readline
import string
import readline


##
## completer function
##

def comp( text, state ):
        global compList
         matches = [ ]
        text = readline.get_line_buffer( )
         n = len( text )
         for word in compList:
                 if word[ :n ] == text:
                     matches.append( word )
         return matches
        
        
##
## chosser function
##

def chooser( inList, msgString ):
        
        stdin = None
        compList = inList

        while stdin not in inList:
                print "\nSelect a %s <>:\n" % msgString
                for elem in inList:
                        print "\t", elem
                print "" # equivalent to newline /n
                stdin = string.rstrip( raw_input( "\t: " ) )
                if stdin not in inList:
                        print "\nWrong %s, select again!" % msgString
        return sdtin    
        
        
                
readline.parse_and_bind( "tab: complete" )
readline.set_completer( comp )
        
choices = [ "appel", "pear" ]

chooser( choices , "fruit" )
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to