// -----------------------------------------------------------------------------
//  CUpnpRangeHeaderParser::HasImproperChars
//  Checks number format
// -----------------------------------------------------------------------------
//  
TBool CUpnpRangeHeaderParser::HasImproperChars( const TLex8& aNumber )
    {
    TPtrC8 rem_ptr = aNumber.Remainder();
    for( TInt index = 0; index < rem_ptr.Length(); index++ )
        {
        if( rem_ptr[ index ] != UpnpString::KSpace()[0] &&
            rem_ptr[ index ] != UpnpString::KTab()[0] )
            return ETrue;
        }
    return EFalse;    
    }
TBool CTestConfig::IsNewItem(const TDesC8& aSource, const TLex8& aLex, TPtrC8& aItem, TInt& aStartOfVal) const
	{
	TBool ret(EFalse);

	if (IsAtStartOfNewLine(aSource, aLex, ETrue))
		{
		const TPtrC8 itemEnd(KScriptItemEnd);
		const TInt itemEndLen(itemEnd.Length());

		TPtrC8 token(aLex.MarkedToken());

		//First check to see if this token contains '='
		const TInt find = token.Find(itemEnd);
		if (find > 0)
			{
			aStartOfVal = find + itemEndLen;
			aItem.Set(token.Left(find));
			ret = ETrue;
			}
		else
			{
			aItem.Set(token);
			aStartOfVal = token.Length();

			const TPtrC8 remain(aLex.Remainder());
			TLex8 lex(remain);
			//Check that the next token starts with and '='
			lex.SkipSpaceAndMark();
			lex.SkipCharacters();
			token.Set(lex.MarkedToken());

			if (token.Find(itemEnd) == 0)
				{
				aStartOfVal += lex.MarkedOffset() + itemEndLen;
				ret = ETrue;
				}
			}
		}

	return ret;
	}