void streamtools_object::test<6>()
	{
		char arr[255];
		std::string str;
		std::string expected_result;
		std::string actual_result;
		std::istringstream is;
		bool ret;

		is.clear();
		is.str(str = "FIRSTKEY followed by second delimiter\nSECONDKEY\t SecondValue followed by third delimiter   \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld.");
		ret = skip_to_end_of_next_keyword("FIRSTKEY", is); 
		is.get(arr, 255, '\0');
		expected_result = " followed by second delimiter\nSECONDKEY\t SecondValue followed by third delimiter   \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld.";
		ensure_equals("skip_to_end_of_next_keyword: 1", arr, expected_result);

		is.clear();
		is.str(expected_result);
		ret = skip_to_end_of_next_keyword("SECONDKEY", is); 
		is.get(arr, 255, '\0');
		expected_result = "\t SecondValue followed by third delimiter   \nSECONDKEY\nFOURTHKEY FOURTHVALUEis a 3DWorld.";
		ensure_equals("skip_to_end_of_next_keyword: 2", arr, expected_result);

		is.clear();
		is.str(expected_result);
		ret = skip_to_end_of_next_keyword("SECONDKEY", is); 
		is.get(arr, 255, '\0');
		expected_result = "\nFOURTHKEY FOURTHVALUEis a 3DWorld.";
		ensure_equals("skip_to_end_of_next_keyword: 3", arr, expected_result);

		is.clear();
		is.str(expected_result);
		ret = skip_to_end_of_next_keyword("FOURTHKEY", is); 
		is.get(arr, 255, '\0');
		expected_result = " FOURTHVALUEis a 3DWorld.";
		ensure_equals("skip_to_end_of_next_keyword: 4", arr, expected_result);

		is.clear();
		is.str(str = "{should be skipped as newline/space/tab does not follow but this one should be picked\n { Does it?\n");
		ret = skip_to_end_of_next_keyword("{", is); 
		is.get(arr, 255, '\0');
		expected_result = " Does it?\n";
		ensure_equals("skip_to_end_of_next_keyword: multiple delim matches on same line", arr, expected_result);

		is.clear();
		is.str(str = "Delim { could not be found at start");
		ret = skip_to_end_of_next_keyword("{", is); 
		ensure("skip_to_end_of_next_keyword: delim should not be present", ret == false);

		is.clear();
		is.str(str = "Empty Delim");
		ret = skip_to_end_of_next_keyword("", is); 
		ensure("skip_to_end_of_next_keyword: empty delim should not be valid", ret == false);

		is.clear();
		is.str(str = "");
		ret = skip_to_end_of_next_keyword("}", is); 
		ensure("skip_to_end_of_next_keyword: empty string", ret == false);
	}
BOOL LLParcel::importMediaURLFilter(std::istream& input_stream, std::string& url)
{
	skip_to_end_of_next_keyword("{", input_stream);

	while(input_stream.good())
	{
		skip_comments_and_emptyspace(input_stream);
		std::string line, keyword, value;
		get_line(line, input_stream, MAX_STRING);
		get_keyword_and_value(keyword, value, line);

		if ("}" == keyword)
		{
			break;
		}
		else if ("url" == keyword)
		{
			url = value;
		}
		else
		{
			llwarns << "Unknown keyword in parcel media url filter section: <"
					<< keyword << ">" << llendl;
		}
	}
	return input_stream.good();
}
BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entry)
{
    skip_to_end_of_next_keyword("{", input_stream);
    while (input_stream.good())
    {
        skip_comments_and_emptyspace(input_stream);
        std::string line, keyword, value;
        get_line(line, input_stream, MAX_STRING);
        get_keyword_and_value(keyword, value, line);
        
        if ("}" == keyword)
        {
            break;
        }
        else if ("id" == keyword)
        {
            entry->mID.set( value );
        }
        else if ("name" == keyword)
        {
            // deprecated
        }
        else if ("time" == keyword)
        {
            S32 when = -1;
            LLStringUtil::convertToS32(value, when);
            entry->mTime = when;
        }
        else if ("flags" == keyword)
        {
            U32 setting = 0xFFFFFFFF;
            LLStringUtil::convertToU32(value, setting);
            entry->mFlags = setting;
        }
        else
        {
            LL_WARNS() << "Unknown keyword in parcel access entry section: <" 
            << keyword << ">" << LL_ENDL;
        }
    }
    return input_stream.good();
}