def process_property(property, value)
      
      value.chomp!

      #If either the property or value are empty (or contain invalid whitespace),
      #abort.
      return if property.empty? and value.empty?
      return if value.sub!(%r/\\\s*\z/, '')

      #Strip any leading/trailing characters.
      property.strip!
      value.strip!

      #Raise an error if we have an invalid property name.
      parse_error if property.empty?

      #Parse ISE's value into a path.
      set_by_path(CGI::unescape(property), unescape_value(value.dup), current_section)

      #And continue processing the property and value.
      property.slice!(0, property.length)
      value.slice!(0, value.length)

      #Return nil.
      nil
    
    end
def process_property(property, value)
      
      value.chomp!

      #If either the property or value are empty (or contain invalid whitespace),
      #abort.
      return if property.empty? and value.empty?
      return if value.sub!(%r/\\\s*\z/, '')

      #Strip any leading/trailing characters.
      property.strip!
      value.strip!

      #Raise an error if we have an invalid property name.
      parse_error if property.empty?

      #Parse ISE's value into a path.
      set_by_path(CGI::unescape(property), unescape_value(value.dup), current_section)

      #And continue processing the property and value.
      property.slice!(0, property.length)
      value.slice!(0, value.length)

      #Return nil.
      nil
    
    end
Processes a given name-value pair, adding them
 to the current INI database.

 Code taken from the 'inifile' gem.