diff options
author | David Kalnischkies <david@kalnischkies.de> | 2014-03-10 00:09:56 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2014-03-13 13:58:45 +0100 |
commit | b374004b8ffebe393c5fd5e8056f7a99849c0ebd (patch) | |
tree | 5c7a650c54eb769face92a51a864e7f46f9399ae | |
parent | 454b97a57ff3b7ced87ac359658adecaae7af7ee (diff) |
apt-cdrom ident shouldn't be interactive
Commit 62dcbf84 changed the code of ident to look more like the code for
add on my suggestion. This made ident interactive as it starts with a
unmount, press enter, mount cycle. The first two are skipped now.
This fixes d-i/apt-setup which is using it to get ID as well as label.
Closes: 740673
-rw-r--r-- | apt-pkg/cdrom.cc | 27 | ||||
-rw-r--r-- | apt-pkg/cdrom.h | 2 |
2 files changed, 16 insertions, 13 deletions
diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 262ff9eab..dd6d51e97 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -563,7 +563,7 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source) return true; } /*}}}*/ -bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, std::string &ident, pkgCdromStatus * const log)/*{{{*/ +bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, std::string &ident, pkgCdromStatus * const log, bool const interactive)/*{{{*/ { // Startup CDROM = _config->FindDir("Acquire::cdrom::mount"); @@ -581,16 +581,19 @@ bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, s // Unmount the CD and get the user to put in the one they want if (_config->FindB("APT::CDROM::NoMount", false) == false) { - if(log != NULL) - log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT); - UnmountCdrom(CDROM); - - if(log != NULL) + if (interactive == true) { - log->Update(_("Waiting for disc...\n"), STEP_WAIT); - if(!log->ChangeCdrom()) { - // user aborted - return false; + if(log != NULL) + log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT); + UnmountCdrom(CDROM); + + if(log != NULL) + { + log->Update(_("Waiting for disc...\n"), STEP_WAIT); + if(!log->ChangeCdrom()) { + // user aborted + return false; + } } } @@ -636,7 +639,7 @@ bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log) /*{{{*/ { Configuration Database; std::string CDROM; - if (MountAndIdentCDROM(Database, CDROM, ident, log) == false) + if (MountAndIdentCDROM(Database, CDROM, ident, log, false) == false) return false; if (log != NULL) @@ -662,7 +665,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log) /*{{{*/ { Configuration Database; std::string ID, CDROM; - if (MountAndIdentCDROM(Database, CDROM, ID, log) == false) + if (MountAndIdentCDROM(Database, CDROM, ID, log, true) == false) return false; if(log != NULL) diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index f4a873808..0ed4a6a73 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -74,7 +74,7 @@ class pkgCdrom /*{{{*/ private: bool MountAndIdentCDROM(Configuration &Database, std::string &CDROM, - std::string &ident, pkgCdromStatus * const log); + std::string &ident, pkgCdromStatus * const log, bool const interactive); }; /*}}}*/ |