- // Open the stream for reading
- ifstream F(File.c_str(),ios::in | ios::nocreate);
- if (!F != 0)
- return _error->Errno("ifstream::ifstream","Opening %s",File.c_str());
-
- List.erase(List.begin(),List.end());
- char Buffer[300];
-
- int CurLine = 0;
- while (F.eof() == false)
- {
- F.getline(Buffer,sizeof(Buffer));
- CurLine++;
- _strtabexpand(Buffer,sizeof(Buffer));
- _strstrip(Buffer);
-
- // Comment or blank
- if (Buffer[0] == '#' || Buffer[0] == 0)
- continue;
-
- // Grok it
- string Type;
- string URI;
- Item Itm;
- const char *C = Buffer;
- if (ParseQuoteWord(C,Type) == false)
- return _error->Error("Malformed line %u in source list %s (type)",CurLine,File.c_str());
- if (ParseQuoteWord(C,URI) == false)
- return _error->Error("Malformed line %u in source list %s (URI)",CurLine,File.c_str());
- if (ParseQuoteWord(C,Itm.Dist) == false)
- return _error->Error("Malformed line %u in source list %s (dist)",CurLine,File.c_str());
- if (Itm.SetType(Type) == false)
- return _error->Error("Malformed line %u in source list %s (type parse)",CurLine,File.c_str());
- if (Itm.SetURI(URI) == false)
- return _error->Error("Malformed line %u in source list %s (URI parse)",CurLine,File.c_str());