#include <iostream>
#include <fstream>
#include <string>

using namespace std;

#include "filename.h"


/*****************************************************************************
*
*  Function: checkValidFilenames()
*
*  Parameters - argc: number of command-line arguments
*               argv: command-line argument list
*
*  Return Value - Record of all valid filenames given (type: Filename)
*
*  Purpose - Parses the command-line for valid filename(s)
*****************************************************************************/
Filename checkValidFilenames(int argc, char **argv)
{
   Filename validFiles;
   ifstream fin;

   for (int currentFile = 1; currentFile < argc; currentFile++)
   {
      fin.open(argv[currentFile]);

      if (fin.fail())
      {
         fin.ignore();
         fin.clear();
      }
      else
         validFiles.insert(argv[currentFile]);

      fin.close();
   }
   
   return validFiles;
}


int main(int argc, char **argv)
{
   Filename validFiles;
   int numFiles = 0;

   validFiles = checkValidFilenames(argc, argv);
   numFiles = validFiles.getNumFiles();

   cout << "Valid filenames found:\n";
   for (int i = 0; i < numFiles; i++)
   {
      cout << '\t' << validFiles.remove() << endl;
   }

   return 0;
}
