delete xml; delete files;
int installConsole(int argc, char *argv[]) {  File         *files;  XML          *xml;  list<string> flist;  string       s = argv[0];  string       working_dir = s.substr(0, s.find_last_of("/")+1);  string       input;  xml   = new XML(working_dir + SETUP_FILE);  files = new File();  // Wee need an object for file operations  // A little gossip...  cout << "==== Welcome to " << PACKAGE_STRING << " ====" << endl << endl;  cout << "I will install " << xml->GetProduct() <<		" Version " << xml->GetVersion() << "." << endl;  // Show license  if (xml->GetLicense() != "") {    cout << endl << "Hit RETURN to start";    getline(cin, input, '\n');    files->Less(working_dir + xml->GetLicense());    cout << endl << "Thank you! Hit RETURN to go on";    getline(cin, input, '\n');    cout << endl;  }  // Target directory...  cout << "Target directory [" << xml->GetTargetDir() << "] ";  getline(cin, input, '\n');  if (input != "")    xml->SetTargetDir(input);  cout << endl << endl;  if (!files->isDir(xml->GetTargetDir())) {    cout << xml->GetTargetDir() << " does not exist. Create [Y/n]? ";    getline(cin, input, '\n');    if ((input == "") || (input[0] == 'y') || (input[0] == 'Y')) {      if (files->MkDir(xml->GetTargetDir()))        return 0;    } else      return 1;    cout << endl << endl;  }  // Start copying...  cout << "I will copy: " << endl;  flist = xml->GetFiles();  list<string>::iterator iter = flist.begin();  while (iter != flist.end()) {    files->Copy(working_dir + (string)*iter,         (string)xml->GetTargetDir()+ (string)*iter);    iter++;  }  // Show README  if (xml->GetReadme() != "") {    cout << "Do want to read the README file [Y/n]?";    getline(cin, input, '\n');    if ((input == "") || (input[0] == 'y') || (input[0] == 'Y')) {      files->Less(working_dir + xml->GetReadme());    }  }  cout << endl << xml->GetProduct() << " is installed!" << endl << endl;  return 1;}