Exemplo n.º 1
0
static int 
copy_classic(PyObject *base, PyObject *result)
{
  PyObject *bases, *basebase;
  int i, l, err=-1;

  if (append_new(result, base) < 0)
    return -1;

  bases = PyObject_GetAttr(base, str__bases__);
  if (bases == NULL)
    return -1;

  l = PyTuple_Size(bases);
  if (l < 0) 
    goto end;

  for (i=0; i < l; i++)
    {
      basebase = PyTuple_GET_ITEM(bases, i);
      if (copy_classic(basebase, result) < 0)
        goto end;
    }

  err = 0;
 
 end:
  Py_DECREF(bases);
  return err;
}
Exemplo n.º 2
0
void	do_setenv(char **t, t_env *env)
{
  t_env_node	*node;
  char	*value;
  int	i;

  if (t[1] == NULL || t[2] == NULL)
    return;
  i = 3;
  value = my_strdup(t[2]);
  while (t[i] != NULL)
  {
    value = my_strcat(value, my_strdup(" "));
    value = my_strcat(value, my_strdup(t[i++]));
  }
  value = trim_quote(value);
  node = find_node(env->list, t[1]);
  if (node == NULL)
    node = append_new(env->list, t[1], value);
  else
    update_value(env->list, t[1], value);
  if (env->list == NULL)
    env->list = node;
  clean_wordtab(env->environ);
  env->environ = convert_to_tab(env->list);
  free(value);
}
Exemplo n.º 3
0
static int
copy_mro(PyObject *mro, PyObject *result)
{
  PyObject *base;
  int i, l;

  l = PyTuple_Size(mro);
  if (l < 0) 
    return -1;

  for (i=0; i < l; i++)
    {
      base = PyTuple_GET_ITEM(mro, i);
      if (append_new(result, base) < 0)
        return -1;
    }
  return 0;
}