nannified
diff --git a/Demo/cwilib/cwilib.py b/Demo/cwilib/cwilib.py
index ebe468a..2b19637 100755
--- a/Demo/cwilib/cwilib.py
+++ b/Demo/cwilib/cwilib.py
@@ -18,22 +18,22 @@
     tn = telnetlib.Telnet(host, 0)
     #
     try:
-	vt.send(tn.read_until('login: ', 10))
-	tn.write('cwilib\r')
-	#
-	vt.send(tn.read_until('Hit <RETURN> to continue...', 10))
-	tn.write('\r')
-	#
-	vt.send(tn.read_until('QUIT', 20))
+        vt.send(tn.read_until('login: ', 10))
+        tn.write('cwilib\r')
+        #
+        vt.send(tn.read_until('Hit <RETURN> to continue...', 10))
+        tn.write('\r')
+        #
+        vt.send(tn.read_until('QUIT', 20))
     except EOFError:
-	sys.stderr.write('Connection closed prematurely\n')
-	sys.exit(1)
+        sys.stderr.write('Connection closed prematurely\n')
+        sys.exit(1)
     #
     define_screens(vt)
     matches = vt.which_screens()
     if 'menu' not in matches:
-	sys.stderr.write('Main menu does not appear\n')
-	sys.exit(1)
+        sys.stderr.write('Main menu does not appear\n')
+        sys.exit(1)
     #
     tn.write('\r\r')
     vt.open('Progress -- CWI Library')
@@ -41,109 +41,109 @@
     ui = UserInterface()
     #
     while 1:
-	try:
-	    data = tn.read_very_eager()
-	except EOFError:
-	    stdwin.message('Connection closed--goodbye')
-	    break
-	if data:
-	    print 'send...'
-	    vt.send(data)
-	    print 'send...done'
-	    continue
-	event = stdwin.pollevent()
-	if event:
-	    type, window, detail = event
-	    if window == None and type == WE_LOST_SEL:
-		window = ui.queryform.window
-		event = type, window, detail
-	    if type == WE_CLOSE:
-		break
-	    if window in ui.windows:
-		ui.dispatch(type, window, detail)
-	    elif window == vt.window:
-		if type == WE_NULL:
-		    pass
-		elif type == WE_COMMAND:
-		    if detail == WC_RETURN:
-			tn.write('\r')
-		    elif detail == WC_BACKSPACE:
-			tn.write('\b')
-		    elif detail == WC_TAB:
-			tn.write('\t')
-		    elif detail == WC_UP:
-			tn.write('\033[A')
-		    elif detail == WC_DOWN:
-			tn.write('\033[B')
-		    elif detail == WC_RIGHT:
-			tn.write('\033[C')
-		    elif detail == WC_LEFT:
-			tn.write('\033[D')
-		    else:
-			print '*** Command:', detail
-		elif type == WE_CHAR:
-		    tn.write(detail)
-		elif type == WE_DRAW:
-		    vt.draw(detail)
-		elif type in (WE_ACTIVATE, WE_DEACTIVATE):
-		    pass
-		else:
-		    print '*** VT100 event:', type, detail
-	    else:
-		print '*** Alien event:', type, window, detail
-	    continue
-	rfd, wfd, xfd = select.select([tn, stdwin], [], [])
+        try:
+            data = tn.read_very_eager()
+        except EOFError:
+            stdwin.message('Connection closed--goodbye')
+            break
+        if data:
+            print 'send...'
+            vt.send(data)
+            print 'send...done'
+            continue
+        event = stdwin.pollevent()
+        if event:
+            type, window, detail = event
+            if window == None and type == WE_LOST_SEL:
+                window = ui.queryform.window
+                event = type, window, detail
+            if type == WE_CLOSE:
+                break
+            if window in ui.windows:
+                ui.dispatch(type, window, detail)
+            elif window == vt.window:
+                if type == WE_NULL:
+                    pass
+                elif type == WE_COMMAND:
+                    if detail == WC_RETURN:
+                        tn.write('\r')
+                    elif detail == WC_BACKSPACE:
+                        tn.write('\b')
+                    elif detail == WC_TAB:
+                        tn.write('\t')
+                    elif detail == WC_UP:
+                        tn.write('\033[A')
+                    elif detail == WC_DOWN:
+                        tn.write('\033[B')
+                    elif detail == WC_RIGHT:
+                        tn.write('\033[C')
+                    elif detail == WC_LEFT:
+                        tn.write('\033[D')
+                    else:
+                        print '*** Command:', detail
+                elif type == WE_CHAR:
+                    tn.write(detail)
+                elif type == WE_DRAW:
+                    vt.draw(detail)
+                elif type in (WE_ACTIVATE, WE_DEACTIVATE):
+                    pass
+                else:
+                    print '*** VT100 event:', type, detail
+            else:
+                print '*** Alien event:', type, window, detail
+            continue
+        rfd, wfd, xfd = select.select([tn, stdwin], [], [])
 
 
 # Subroutine to define our screen recognition patterns
 
 def define_screens(vt):
     vt.define_screen('menu', {
-	      'title': ('search', 0, 0, 80,
-			' SEARCH FUNCTIONS  +OTHER FUNCTIONS '),
-	      })
+              'title': ('search', 0, 0, 80,
+                        ' SEARCH FUNCTIONS  +OTHER FUNCTIONS '),
+              })
     vt.define_screen('search', {
-	      'title': ('search', 0, 0, 80, ' Search '),
-	      })
+              'title': ('search', 0, 0, 80, ' Search '),
+              })
     vt.define_screen('shortlist', {'title': ('search', 0, 0, 80,
-	      ' Short-list')})
+              ' Short-list')})
     vt.define_screen('showrecord', {
-	      'title': ('search', 0, 0, 80, ' Show record '),
-	      })
+              'title': ('search', 0, 0, 80, ' Show record '),
+              })
     vt.define_screen('timelimit', {
-	      'limit': ('search', 12, 0, 80, ' TIME LIMIT '),
-	      })
+              'limit': ('search', 12, 0, 80, ' TIME LIMIT '),
+              })
     vt.define_screen('attention', {
-	      'BASE': ('copy', 0, 0, 0, 'search'),
-	      'title': ('search', 10, 0, 80, ' ATTENTION ')})
+              'BASE': ('copy', 0, 0, 0, 'search'),
+              'title': ('search', 10, 0, 80, ' ATTENTION ')})
     vt.define_screen('syntaxerror', {
-	      'BASE': ('copy', 0, 0, 0, 'attention'),
-	      'message': ('search', 12, 0, 80, ' Syntax error'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'attention'),
+              'message': ('search', 12, 0, 80, ' Syntax error'),
+              })
     vt.define_screen('emptyerror', {
-	      'BASE': ('copy', 0, 0, 0, 'attention'),
-	      'message': ('search', 12, 0, 80,
-			  ' Check your input. Search at least one term'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'attention'),
+              'message': ('search', 12, 0, 80,
+                          ' Check your input. Search at least one term'),
+              })
     vt.define_screen('unsortedwarning', {
-	      'BASE': ('copy', 0, 0, 0, 'attention'),
-	      'message': ('search', 12, 0, 80,
-			  ' Number of records exceeds sort limit'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'attention'),
+              'message': ('search', 12, 0, 80,
+                          ' Number of records exceeds sort limit'),
+              })
     vt.define_screen('thereismore', {
-	      'BASE': ('copy', 0, 0, 0, 'showrecord'),
-	      'message': ('search', 15, 0, 80,
-		 'There is more within this record. Use the arrow keys'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'showrecord'),
+              'message': ('search', 15, 0, 80,
+                 'There is more within this record. Use the arrow keys'),
+              })
     vt.define_screen('nofurther', {
-	      'BASE': ('copy', 0, 0, 0, 'showrecord'),
-	      'message': ('search', 17, 0, 80, 'You cannot go further\.'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'showrecord'),
+              'message': ('search', 17, 0, 80, 'You cannot go further\.'),
+              })
     vt.define_screen('nofurtherback', {
-	      'BASE': ('copy', 0, 0, 0, 'showrecord'),
-	      'message': ('search', 17, 0, 80,
-			  'You cannot go further back'),
-	      })
+              'BASE': ('copy', 0, 0, 0, 'showrecord'),
+              'message': ('search', 17, 0, 80,
+                          'You cannot go further back'),
+              })
 
 
 # Class to implement our user interface.
@@ -151,29 +151,29 @@
 class UserInterface:
 
     def __init__(self):
-	stdwin.setfont('7x14')
-	self.queryform = QueryForm()
-	self.listform = ListForm()
-	self.recordform = RecordForm()
-	self.forms = [self.queryform, self.listform, self.recordform]
-	define_query_fields(self.queryform)
-	self.windows = []
-	for form in self.forms:
-	    if form.formheight > 0:
-		form.open()
-		self.windows.append(form.window)
+        stdwin.setfont('7x14')
+        self.queryform = QueryForm()
+        self.listform = ListForm()
+        self.recordform = RecordForm()
+        self.forms = [self.queryform, self.listform, self.recordform]
+        define_query_fields(self.queryform)
+        self.windows = []
+        for form in self.forms:
+            if form.formheight > 0:
+                form.open()
+                self.windows.append(form.window)
 
     def __del__(self):
-	self.close()
+        self.close()
 
     def close(self):
-	for form in self.forms:
-	    form.close()
+        for form in self.forms:
+            form.close()
 
     def dispatch(self, type, window, detail):
-	for form in self.forms:
-	    if window == form.window:
-		form.dispatch(type, detail)
+        for form in self.forms:
+            if window == form.window:
+                form.dispatch(type, detail)
 
 
 def define_query_fields(f):
@@ -189,25 +189,25 @@
 class QueryForm(Form):
 
     def __init__(self):
-	Form.__init__(self, 'Query form -- CWI Library')
+        Form.__init__(self, 'Query form -- CWI Library')
 
     def dispatch(self, type, detail):
-	if type == WE_COMMAND and detail == WC_RETURN:
-	    print '*** SUBMIT ***'
-	else:
-	    Form.dispatch(self, type, detail)
+        if type == WE_COMMAND and detail == WC_RETURN:
+            print '*** SUBMIT ***'
+        else:
+            Form.dispatch(self, type, detail)
 
 
 class ListForm(Form):
 
     def __init__(self):
-	Form.__init__(self, 'Short list -- CWI Library')
+        Form.__init__(self, 'Short list -- CWI Library')
 
 
 class RecordForm(Form):
 
     def __init__(self):
-	Form.__init__(self, 'Record detail -- CWI Library')
+        Form.__init__(self, 'Record detail -- CWI Library')
 
 
 main()