diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-07-19 15:40:40 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-07-19 15:40:40 +0200 |
| commit | 48cc0bcaabe824f49987ed3236b9421c583226dd (patch) | |
| tree | b993f5ede89dfd33a189b8bcb172b523a9fb391b /python/progress.cc | |
| parent | 92d2315a87d24c51f2f0d3265c87c59f0d9730c3 (diff) | |
| download | python-apt-48cc0bcaabe824f49987ed3236b9421c583226dd.tar.gz | |
python/progress.cc: CdromProgress.ask_cdrom_name() shall return None on failure.
Diffstat (limited to 'python/progress.cc')
| -rw-r--r-- | python/progress.cc | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/python/progress.cc b/python/progress.cc index b19ab0c7..55ed13f9 100644 --- a/python/progress.cc +++ b/python/progress.cc @@ -548,20 +548,28 @@ bool PyCdromProgress::ChangeCdrom() bool PyCdromProgress::AskCdromName(string &Name) { PyObject *arglist = Py_BuildValue("()"); - PyObject *result; - - if (!RunSimpleCallback("ask_cdrom_name", arglist, &result)) - RunSimpleCallback("askCdromName", arglist, &result); - const char *new_name; bool res; - if(!PyArg_Parse(result, "(bs)", &res, &new_name)) - std::cerr << "AskCdromName: result could not be parsed" << std::endl; - - //std::cerr << "got: " << res << " " << "name: " << new_name << std::endl; + PyObject *result; - // set the new name - Name = string(new_name); + // New style: String on success, None on failure. + if (RunSimpleCallback("ask_cdrom_name", arglist, &result)) { + if(result == Py_None) + return false; + if(!PyArg_Parse(result, "s", &new_name)) + std::cerr << "AskCdromName: result could not be parsed" << std::endl; + else + Name = string(new_name); + return true; + } + // Old style: (True, name) on success, (False, name) on failure. + else { + RunSimpleCallback("askCdromName", arglist, &result); + if(!PyArg_Parse(result, "(bs)", &res, &new_name)) + std::cerr << "AskCdromName: result could not be parsed" << std::endl; + // set the new name + Name = string(new_name); - return res; + return res; + } } |
