|  | @@ -6,6 +6,7 @@ import osex
 | 
	
		
			
				|  |  |  import curses
 | 
	
		
			
				|  |  |  import pprint
 | 
	
		
			
				|  |  |  import locale
 | 
	
		
			
				|  |  | +import textwrap
 | 
	
		
			
				|  |  |  import argparse
 | 
	
		
			
				|  |  |  import argcomplete
 | 
	
		
			
				|  |  |  import ioex, ioex.cursesex, ioex.selector
 | 
	
	
		
			
				|  | @@ -42,9 +43,25 @@ class LocateRootNode(ioex.selector.Node):
 | 
	
		
			
				|  |  |          return self._header_height
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def show_patterns(self):
 | 
	
		
			
				|  |  | -        self._window.addstr(0, 0, 'locate-select', curses.A_BOLD)
 | 
	
		
			
				|  |  | +        label = 'patterns: '
 | 
	
		
			
				|  |  | +        self._window.addstr(0, 0, label, curses.A_BOLD)
 | 
	
		
			
				|  |  | +        # join patterns so textwrap.fill may be applied
 | 
	
		
			
				|  |  | +        patterns_text = textwrap.fill(
 | 
	
		
			
				|  |  | +            '\1'.join(self._patterns),
 | 
	
		
			
				|  |  | +            # fixme: unwanted new lines occur if width is not decremented
 | 
	
		
			
				|  |  | +            self.get_window_width() - 1,
 | 
	
		
			
				|  |  | +            initial_indent = '#' * len(label),
 | 
	
		
			
				|  |  | +            subsequent_indent = ' ' * len(label)
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +        patterns_wrapped = patterns_text[len(label):].split('\1')
 | 
	
		
			
				|  |  | +        for pattern_wrapped in patterns_wrapped:
 | 
	
		
			
				|  |  | +            self._window.addstr(pattern_wrapped, curses.A_REVERSE)
 | 
	
		
			
				|  |  | +            self._window.addstr(' ')
 | 
	
		
			
				|  |  |          self._window.refresh()
 | 
	
		
			
				|  |  | -        self._header_height = 1
 | 
	
		
			
				|  |  | +        self._header_height = patterns_text.count('\n') + 1
 | 
	
		
			
				|  |  | +        # remove A_REVERSE attribute from ident blocks
 | 
	
		
			
				|  |  | +        for row_index in range(1, self._header_height):
 | 
	
		
			
				|  |  | +            self._window.addstr(row_index, 0, ' ' * len(label))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def show_header(self):
 | 
	
		
			
				|  |  |          self.show_patterns()
 |