Exemple #1
0
bool
ConfigScope::listFilter(
	const char *				name,
	const StringVector &		filterPatterns) const
{
	int							i;
	int							len;
	const char *				unexpandedName;
	const char *				pattern;
	StringBuffer				buf;
	UidIdentifierProcessor		uidProc;

	len = filterPatterns.length();
	if (len == 0) {
		return true;
	}

	unexpandedName = uidProc.unexpand(name, buf);
	for (i = 0; i < len; i++) {
		pattern = filterPatterns[i];
		if (Configuration::patternMatch(unexpandedName, pattern)) {
			return true;
		}
	}
	return false;
}
Exemple #2
0
void
ConfigItem::dump(
	StringBuffer &				buf,
	const char *				name,
	bool						wantExpandedUidNames,
	int							indentLevel) const
{
	int							i;
	int							len;
	char *						escStr;
	StringBuffer				nameBuf;
	UidIdentifierProcessor		uidIdProc;

	if (!wantExpandedUidNames) {
		name = uidIdProc.unexpand(name, nameBuf);
	}
	printIndent(buf, indentLevel);
	switch (m_type) {
	case Configuration::CFG_STRING:
		escStr = escapeString(m_stringVal);
		buf << name << " = \"" << escStr << "\";\n";
		delete [] escStr;
		break;
	case Configuration::CFG_LIST:
		buf << name << " = [";
		len = m_listVal->length();
		for (i = 0; i < len; i++) {
			escStr = escapeString((*m_listVal)[i]);
			buf << "\"" << escStr << "\"";
			delete [] escStr;
			if (i < len-1) {
				buf << ", ";
			}
		}
		buf << "];\n";
		break;
	case Configuration::CFG_SCOPE:
		buf << name << " {\n";
		m_scope->dump(buf, wantExpandedUidNames, indentLevel + 1);
		printIndent(buf, indentLevel);
		buf << "}\n";
		break;
	default:
		assert(0);	// Bug
		break;
	};
}