Esempio n. 1
0
void
TLJPak::scan(const std::vector<std::string>& lst, ProgressLogger& logger)
{
  std::map<int, std::string> entry2name;

  for(std::vector<std::string>::const_iterator i = lst.begin(); i != lst.end(); ++i)
    {
      int j = lookup(*i);
      if (j != -1)
        files[j].pathname = *i;
    }

  logger.set_task_size(files.size());
  for(int i = 0; i < int(files.size()); ++i)
    {
      if (files[i].is_file() && files[i].pathname.empty())
        {
          // FIXME: Add filtering somewhere
          files[i].guesses = guess(i);
          assert(files[i].guesses.size() > 0);
          files[i].pathname = files[i].guesses.front();
          logger.println("found " + files[i].pathname + " (guessed)");
        }
      /* to much of an speed impact
      else if (!files[i].pathname.empty())
        {
        logger.println("found " + files[i].pathname);
        }
      */

      files[i].filetype = get_type(i);

      logger.set_task_status(i);
      logger.sync();
    }
}