示例#1
0
PathEntry* readfetchconf() // (PathEntry* pe_p)
{
	FILE* fp = fopen("/px/conf/fetch.conf", "r");
	if(fp == NULL)
	{
		return NULL;
	}

	PathEntry* pe = NULL;
	PathEntry* petail = NULL;

	char buf[PATH_MAX];
	while (readLine(fp, buf))
	{
		char tmp[PATH_MAX];
		PathEntry* pet = NULL;
		if((pet = parseentry(buf, PATHDIR_T, tmp)) == NULL)
			pet = parseentry(buf, PATHFILE_T, tmp);

		if(pe == NULL)
		{
			pe = pet;
			petail = pet;
		}
		else
		{
			if(petail)
			{
				petail->next = pet;
				petail = pet;
			}
		}
		continue;
	}

	PX_ASSERT(fclose(fp) == 0);

	return pe;
}
示例#2
0
bool TableReader::OpenTable(const char* TableFilename)
{
	list<string> EntryList;
	string Line;

	ifstream tablefile(TableFilename);

	if(!tablefile.is_open())
	{
		err.LineNumber = -1;
		err.Description = "Table file cannot be opened";
		TableErrors.push_back(err);
		return false;
	}

	// Gather text into the list
	while(!tablefile.eof())
	{
		getline(tablefile, Line);
		EntryList.push_back(Line);
	}
	
	tablefile.close();

	for(list<string>::iterator i = EntryList.begin(); i != EntryList.end(); i++)
	{
		LineNumber++;
		if(i->length() == 0) // Blank line
			continue;

		switch((*i)[0]) // first character of the line
		{
		case '$':
			break;
		case '(': // Bookmark (not implemented)
			break;
		case '[': // Script dump (not implemented)
			break;
		case '{': // Script insert (not implemented)
			break;
		case '@':	//insert auto fill char
			parseautofill(*i);
			break;
		case '~':	//insert test alignment fill char
			break;
		case '/': // End string value
			break;
		case '*': // End line value
			break;
		case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
		case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'A': case 'B': case 'C': case 'D':
		case 'E': case 'F': // Normal entry value
			parseentry(*i);
			break;
		default:
			err.LineNumber = LineNumber;
			err.Description = "First character of the line is not a recognized table character";
			TableErrors.push_back(err);
			break;
		}
	}

	if(TableErrors.empty())
		return true;
	else
		return false;
}