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 | |
| 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')
| -rw-r--r-- | python/cdromprogress.cc | 6 | ||||
| -rw-r--r-- | python/progress.cc | 32 |
2 files changed, 23 insertions, 15 deletions
diff --git a/python/cdromprogress.cc b/python/cdromprogress.cc index 09c76a2a..440b5ce6 100644 --- a/python/cdromprogress.cc +++ b/python/cdromprogress.cc @@ -37,7 +37,7 @@ static PyObject *cdromprogress_change_cdrom(PyObject *self, PyObject *args) // Takes a single PyObject argument as *arg static PyObject *cdromprogress_ask_cdrom_name(PyObject *self, PyObject *arg) { - Py_RETURN_FALSE; + Py_RETURN_NONE; } static PyMethodDef cdromprogress_methods[] = { @@ -47,8 +47,8 @@ static PyMethodDef cdromprogress_methods[] = { "change_cdrom() -> bool\n\nAsk for the CD-ROM to be changed.\n" "Return False if the user requested to cancel the action (default)."}, {"ask_cdrom_name",cdromprogress_ask_cdrom_name,METH_O, - "ask_cdrom_name(name: str) -> bool\n\nAsk for the name of the CD-ROM.\n" - "Return False if the user requested to cancel the action (default)."}, + "ask_cdrom_name() -> str\n\nAsk for the name of the CD-ROM.\n" + "Return None if the user requested to cancel the action (default)."}, {NULL} }; 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; + } } |
