Пример #1
0
static PyObject *
gcc_python_get_parameters(PyObject *self, PyObject *args)
{
    PyObject *dict;
    size_t i;

    dict = PyDict_New();
    if (!dict) {
	goto error;
    }

    for (i = 0; i < get_num_compiler_params(); i++) {
        PyObject *param_obj = gcc_python_make_wrapper_param_num(i);
        if (!param_obj) {
	    goto error;
        }
        if (-1 == PyDict_SetItemString(dict,
                                       compiler_params[i].option,
                                       param_obj)) {
	    Py_DECREF(param_obj);
	    goto error;
	}
        Py_DECREF(param_obj);
    }

    return dict;

 error:
    Py_XDECREF(dict);
    return NULL;
}
void
option_proposer::find_param_completions (const char separator,
					 const char *param_prefix,
					 auto_string_vec &results)
{
  char separator_str[] = {separator, '\0'};
  size_t length = strlen (param_prefix);
  for (unsigned i = 0; i < get_num_compiler_params (); ++i)
    {
      const char *candidate = compiler_params[i].option;
      if (strlen (candidate) >= length
	  && strstr (candidate, param_prefix) == candidate)
	results.safe_push (concat ("--param", separator_str, candidate, NULL));
    }
}