def set_selection_for_char char=nil
      char = _ask_a_char unless char
      #alert "got #{char} "
      return :UNHANDLED if char == :UNHANDLED
      @oldrow = @current_index
      @last_regex = /^#{char}/
      ix = next_regex @last_regex
      #alert "next returned #{ix}"
      return unless ix
      @current_index = ix[0] 
      @search_found_ix = @current_index
      @curpos = ix[1]
      ensure_visible
      return @current_index
    end
def set_selection_for_char char=nil
      char = _ask_a_char unless char
      #alert "got #{char} "
      return :UNHANDLED if char == :UNHANDLED
      @oldrow = @current_index
      @last_regex = /^#{char}/
      ix = next_regex @last_regex
      #alert "next returned #{ix}"
      return unless ix
      @current_index = ix[0] 
      @search_found_ix = @current_index
      @curpos = ix[1]
      ensure_visible
      return @current_index
    end
sets the selection to the next row starting with char
 Trying to return unhandled is having no effect right now. if only we could pop it into a
 stack or unget it.