PyObject *py_ped_unit_parse(PyObject *s, PyObject *args) { int ret; char *str = NULL; PedDevice *out_dev = NULL; PedSector sector; PyObject *in_geom = NULL; PedGeometry *out_geom = NULL; if (!PyArg_ParseTuple(args, "zLO!", &str, §or, &_ped_Geometry_Type_obj, &in_geom)) { return NULL; } out_dev = _ped_Device2PedDevice(s); if (out_dev == NULL) { return NULL; } out_geom = _ped_Geometry2PedGeometry(in_geom); if (out_geom == NULL) { return NULL; } ret = ped_unit_parse(str, out_dev, §or, &out_geom); if (ret) { Py_RETURN_TRUE; } else { Py_RETURN_FALSE; } }
int command_line_get_sector (const char* prompt, PedDevice* dev, PedSector* value, PedGeometry** range, char** raw_input) { char* def_str; char* input; int valid; def_str = ped_unit_format (dev, *value); input = command_line_get_word (prompt, *value ? def_str : NULL, NULL, 1); /* def_str might have rounded *value a little bit. If the user picked * the default, make sure the selected sector is identical to the * default. */ if (input && *value && !strcmp (input, def_str)) { if (range) { *range = ped_geometry_new (dev, *value, 1); free (def_str); free (input); return *range != NULL; } free (def_str); free (input); return 1; } free (def_str); if (!input) { *value = 0; if (range) *range = NULL; return 0; } valid = ped_unit_parse (input, dev, value, range); if (raw_input) *raw_input = input; else free (input); return valid; }