def edit_line lineno=@current_index
      line = self[lineno]
      prompt = "Edit: "
      maxlen = 80
      config={}; 
      oldline = line.dup
      config[:default] = line
      ret, str = rb_getstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
      $log.debug " rb_getstr returned #{ret} , #{str} "
      return if ret != 0
      # we possibly cou;d have done []= but maybe in textpad or something that would replace a row pointer ??
      self[lineno].replace(str)
      fire_handler :CHANGE, InputDataEvent.new(0,oldline.length, self, :DELETE_LINE, lineno, oldline)     #  2008-12-24 18:34 
      fire_handler :CHANGE, InputDataEvent.new(0,str.length, self, :INSERT_LINE, lineno, str)
      fire_row_changed lineno
    end
def edit_line lineno=@current_index
      line = self[lineno]
      prompt = "Edit: "
      maxlen = 80
      config={}; 
      oldline = line.dup
      config[:default] = line
      ret, str = rb_getstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
      $log.debug " rb_getstr returned #{ret} , #{str} "
      return if ret != 0
      # we possibly cou;d have done []= but maybe in textpad or something that would replace a row pointer ??
      self[lineno].replace(str)
      fire_handler :CHANGE, InputDataEvent.new(0,oldline.length, self, :DELETE_LINE, lineno, oldline)     #  2008-12-24 18:34 
      fire_handler :CHANGE, InputDataEvent.new(0,str.length, self, :INSERT_LINE, lineno, str)
      fire_row_changed lineno
    end
edit current or given line