Exemple #1
0
int tool::source::Column::Check()
{
	if (m_read.Open())
	{
		int character = 0;
		std::size_t column = 1;
		std::string string_line = "";
		while (!m_read.IsEOF())
		{
			character = m_read.GetCharacter();
			if (IsNewLine(character))
			{
				Newline(column, string_line);
				column = 1;
				string_line.clear();
			}
			else if (IsSkip(character))
			{
				continue;
			}
			else if (std::isspace(character))
			{
				if (character == ' ')
				{
					++column;
					string_line.push_back(character);
				}
				else if (character == '\t')
				{
					column += (4 - ((column - 1) % 4));
					string_line.push_back(character);
				}
			}
			else
			{
				++column;
				if (string_line.size() < 
					MAXIMUM_STRING_COLUMN_BUFFER_SIZE + 1)
				{
					string_line.push_back(character);
				}
				else if (string_line.size() == 
					MAXIMUM_STRING_COLUMN_BUFFER_SIZE + 1)
				{
					string_line += "...";
				}
			}
		}
		if (!string_line.empty())
		{
			Newline(column - 1, string_line);
		}
		return 0;
	}
	return 1;
}
Exemple #2
0
const char* CSvnProp::ReadSingle(const char* data, const char* dataEnd)
{
	//name
	std::string name;
	for(;data != dataEnd && !IsSkip(*data); ++data)
		name += *data;
	Skip(&data, dataEnd);
	
	std::string value;
	for(;data != dataEnd && !IsEnd(*data); ++data)
		value += *data;
	Skip(&data, dataEnd);

	m_NameVal[name].swap(value);
	return data;
}
Exemple #3
0
static void Skip(const char** data, const char* dataEnd)
{
	while(*data != dataEnd && IsSkip(**data)) ++*data;
}