def buffer_changed
      # display the pattern on the header
      @header.text1(">>>#{@buffer}_") if @header
      @header.text_right(Dir.pwd) if @header
      @no_match = false

      if @command
        @list = @command.call(@buffer)
      else
        @list = @__list.select do |line|
          line.index @buffer
        end
      end
      sz = @list.size
      if sz == 0
        Ncurses.beep
        #return 1
        #this should make ENTER and arrow keys unusable except for BS or Esc, 
        @list = ["No entries"]
        @no_match = true
      end
      data_changed @list
      0
    end
def buffer_changed
      # display the pattern on the header
      @header.text1(">>>#{@buffer}_") if @header
      @header.text_right(Dir.pwd) if @header
      @no_match = false

      if @command
        @list = @command.call(@buffer)
      else
        @list = @__list.select do |line|
          line.index @buffer
        end
      end
      sz = @list.size
      if sz == 0
        Ncurses.beep
        #return 1
        #this should make ENTER and arrow keys unusable except for BS or Esc, 
        @list = ["No entries"]
        @no_match = true
      end
      data_changed @list
      0
    end
signal that the user has added or deleted a char from the pattern
 and data should be requeried, etc