pygobject r913 - in trunk: . glib
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: pygobject r913 - in trunk: . glib
- Date: Sat, 2 Aug 2008 08:29:37 +0000 (UTC)
Author: johan
Date: Sat Aug 2 08:29:37 2008
New Revision: 913
URL: http://svn.gnome.org/viewvc/pygobject?rev=913&view=rev
Log:
2008-08-02 Johan Dahlin <johan gnome org>
* glib/glibmodule.c (pyglib_set_prgname):
* glib/pygoptioncontext.c (pyg_option_context_init),
(pyg_option_context_set_help_enabled),
(pyg_option_context_set_ignore_unknown_options),
(pyg_option_context_set_main_group),
(pyg_option_context_add_group):
* glib/pygoptiongroup.c (arg_func), (pyg_option_group_add_entries),
(pyg_option_group_set_translation_domain),
(pyg_option_group_compare), (pyglib_option_group_register_types):
Fix compilation warnings, clean up style and indentation.
Modified:
trunk/ChangeLog
trunk/glib/glibmodule.c
trunk/glib/pygoptioncontext.c
trunk/glib/pygoptiongroup.c
Modified: trunk/glib/glibmodule.c
==============================================================================
--- trunk/glib/glibmodule.c (original)
+++ trunk/glib/glibmodule.c Sat Aug 2 08:29:37 2008
@@ -516,7 +516,7 @@
{
if (!PyString_Check(arg)) {
PyErr_Format(PyExc_TypeError,
- "first argument must be a string, not %r",
+ "first argument must be a string, not '%s'",
PyString_AS_STRING(PyObject_Repr(arg)));
return NULL;
}
Modified: trunk/glib/pygoptioncontext.c
==============================================================================
--- trunk/glib/pygoptioncontext.c (original)
+++ trunk/glib/pygoptioncontext.c Sat Aug 2 08:29:37 2008
@@ -31,15 +31,16 @@
PYGLIB_DEFINE_TYPE("glib.OptionContext", PyGOptionContext_Type, PyGOptionContext)
static int
-pyg_option_context_init(PyGOptionContext *self,
+pyg_option_context_init(PyGOptionContext *self,
PyObject *args,
PyObject *kwargs)
{
char *parameter_string;
+
if (!PyArg_ParseTuple(args, "s:glib.GOptionContext.__init__",
¶meter_string))
return -1;
-
+
self->context = g_option_context_new(parameter_string);
return 0;
}
@@ -48,7 +49,7 @@
pyg_option_context_dealloc(PyGOptionContext *self)
{
Py_CLEAR(self->main_group);
-
+
if (self->context != NULL)
{
GOptionContext *tmp = self->context;
@@ -60,8 +61,8 @@
}
static PyObject *
-pyg_option_context_parse(PyGOptionContext *self,
- PyObject *args,
+pyg_option_context_parse(PyGOptionContext *self,
+ PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "argv", NULL };
@@ -72,26 +73,26 @@
char **argv_content, **original;
GError *error = NULL;
gboolean result;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GOptionContext.parse",
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GOptionContext.parse",
kwlist, &argv))
return NULL;
-
+
if (!PyList_Check(argv))
{
- PyErr_SetString(PyExc_TypeError,
+ PyErr_SetString(PyExc_TypeError,
"GOptionContext.parse expects a list of strings.");
return NULL;
}
-
+
argv_length = PyList_Size(argv);
if (argv_length == -1)
{
- PyErr_SetString(PyExc_TypeError,
+ PyErr_SetString(PyExc_TypeError,
"GOptionContext.parse expects a list of strings.");
return NULL;
}
-
+
argv_content = g_new(char*, argv_length + 1);
argv_content[argv_length] = NULL;
for (pos = 0; pos < argv_length; pos++)
@@ -121,31 +122,34 @@
pyglib_error_check(&error);
return NULL;
}
-
+
new_argv = PyList_New(g_strv_length(argv_content));
for (pos = 0; pos < argv_length; pos++)
{
arg = _PyUnicode_FromString(argv_content[pos]);
PyList_SetItem(new_argv, pos, arg);
}
-
+
g_strfreev(original);
g_strfreev(argv_content);
return new_argv;
}
static PyObject *
-pyg_option_context_set_help_enabled(PyGOptionContext *self,
+pyg_option_context_set_help_enabled(PyGOptionContext *self,
PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "help_enable", NULL };
+
PyObject *help_enabled;
- if (! PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GOptionContext.set_help_enabled",
+ if (! PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O:GOptionContext.set_help_enabled",
kwlist, &help_enabled))
return NULL;
+
g_option_context_set_help_enabled(self->context, PyObject_IsTrue(help_enabled));
+
Py_INCREF(Py_None);
return Py_None;
}
@@ -157,18 +161,22 @@
}
static PyObject *
-pyg_option_context_set_ignore_unknown_options(PyGOptionContext *self,
+pyg_option_context_set_ignore_unknown_options(PyGOptionContext *self,
PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "ignore_unknown_options", NULL };
PyObject *ignore_unknown_options;
- if (! PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GOptionContext.set_ignore_unknown_options",
+
+ if (! PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O:GOptionContext.set_ignore_unknown_options",
kwlist, &ignore_unknown_options))
return NULL;
- g_option_context_set_ignore_unknown_options(self->context,
- PyObject_IsTrue(ignore_unknown_options));
+
+ g_option_context_set_ignore_unknown_options(self->context,
+ PyObject_IsTrue(ignore_unknown_options));
+
+
Py_INCREF(Py_None);
return Py_None;
}
@@ -181,21 +189,21 @@
}
static PyObject *
-pyg_option_context_set_main_group(PyGOptionContext *self,
- PyObject *args,
+pyg_option_context_set_main_group(PyGOptionContext *self,
+ PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "group", NULL };
GOptionGroup *g_group;
PyObject *group;
-
- if (! PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GOptionContext.set_main_group",
+
+ if (! PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O:GOptionContext.set_main_group",
kwlist, &group))
return NULL;
if (PyObject_IsInstance(group, (PyObject*) &PyGOptionGroup_Type) != 1) {
- PyErr_SetString(PyExc_TypeError,
+ PyErr_SetString(PyExc_TypeError,
"GOptionContext.set_main_group expects a GOptionGroup.");
return NULL;
}
@@ -209,9 +217,10 @@
}
g_option_context_set_main_group(self->context, g_group);
+
Py_INCREF(group);
self->main_group = (PyGOptionGroup*) group;
-
+
Py_INCREF(Py_None);
return Py_None;
}
@@ -223,41 +232,45 @@
{
Py_INCREF(Py_None);
return Py_None;
- }
+ }
Py_INCREF(self->main_group);
return (PyObject*) self->main_group;
}
static PyObject *
-pyg_option_context_add_group(PyGOptionContext *self,
- PyObject *args,
+pyg_option_context_add_group(PyGOptionContext *self,
+ PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "group", NULL };
GOptionGroup *g_group;
PyObject *group;
- if (! PyArg_ParseTupleAndKeywords(args, kwargs,
- "O:GOptionContext.add_group",
+
+ if (! PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O:GOptionContext.add_group",
kwlist, &group))
return NULL;
+
if (PyObject_IsInstance(group, (PyObject*) &PyGOptionGroup_Type) != 1) {
PyErr_SetString(PyExc_TypeError,
"GOptionContext.add_group expects a GOptionGroup.");
return NULL;
}
+
g_group = pyglib_option_group_transfer_group(group);
if (g_group == NULL)
{
- PyErr_SetString(PyExc_RuntimeError,
+ PyErr_SetString(PyExc_RuntimeError,
"Group is already in a OptionContext.");
return NULL;
}
Py_INCREF(group);
+
g_option_context_add_group(self->context, g_group);
-
+
Py_INCREF(Py_None);
return Py_None;
-}
+}
static int
pyg_option_context_compare(PyGOptionContext *self, PyGOptionContext *context)
Modified: trunk/glib/pygoptiongroup.c
==============================================================================
--- trunk/glib/pygoptiongroup.c (original)
+++ trunk/glib/pygoptiongroup.c Sat Aug 2 08:29:37 2008
@@ -1,5 +1,5 @@
/* -*- Mode: C; c-basic-offset: 4 -*-
- * pygtk- Python bindings for the GTK toolkit.
+ * pygobject - Python bindings for the GLib, GObject and GIO
* Copyright (C) 2006 Johannes Hoelzl
*
* pygoptiongroup.c: GOptionContext and GOptionGroup wrapper
@@ -53,36 +53,36 @@
g_slist_foreach(self->strings, (GFunc) g_free, NULL);
g_slist_free(self->strings);
self->strings = NULL;
-
+
if (self->is_in_context)
{
Py_DECREF(self);
}
-
+
pyglib_gil_state_release(state);
}
static int
pyg_option_group_init(PyGOptionGroup *self, PyObject *args, PyObject *kwargs)
{
- static char *kwlist[] = { "name", "description", "help_description",
+ static char *kwlist[] = { "name", "description", "help_description",
"callback", NULL };
char *name, *description, *help_description;
PyObject *callback;
-
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "zzzO:GOptionGroup.__init__",
- kwlist, &name, &description,
+ kwlist, &name, &description,
&help_description, &callback))
return -1;
-
+
self->group = g_option_group_new(name, description, help_description,
self, (GDestroyNotify) destroy_g_group);
self->other_owner = FALSE;
self->is_in_context = FALSE;
-
+
Py_INCREF(callback);
self->callback = callback;
-
+
return 0;
}
@@ -100,7 +100,7 @@
PyObject_Del(self);
}
-static gboolean
+static gboolean
arg_func(const gchar *option_name,
const gchar *value,
PyGOptionGroup *self,
@@ -109,52 +109,46 @@
PyObject *ret;
PyGILState_STATE state;
gboolean no_error;
-
+
state = pyglib_gil_state_ensure();
-
+
if (value == NULL)
- {
- ret = PyObject_CallFunction(self->callback, "sOO",
+ ret = PyObject_CallFunction(self->callback, "sOO",
option_name, Py_None, self);
- }
else
- {
- ret = PyObject_CallFunction(self->callback, "ssO",
+ ret = PyObject_CallFunction(self->callback, "ssO",
option_name, value, self);
- }
-
+
if (ret != NULL)
{
Py_DECREF(ret);
- pyglib_gil_state_release(state);
- return TRUE;
- }
- else
- {
- no_error = pyglib_gerror_exception_check(error) != -1;
- pyglib_gil_state_release(state);
- return no_error;
- }
+ no_error = TRUE;
+ } else
+ no_error = pyglib_gerror_exception_check(error) != -1;
+
+ pyglib_gil_state_release(state);
+ return no_error;
}
static PyObject *
-pyg_option_group_add_entries(PyGOptionGroup *self, PyObject *args,
+pyg_option_group_add_entries(PyGOptionGroup *self, PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "entries", NULL };
gssize entry_count, pos;
PyObject *entry_tuple, *list;
GOptionEntry *entries;
-
- if (check_if_owned(self)) return NULL;
-
+
+ if (check_if_owned(self))
+ return NULL;
+
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GOptionGroup.add_entries",
kwlist, &list))
return NULL;
-
+
if (!PyList_Check(list))
{
- PyErr_SetString(PyExc_TypeError,
+ PyErr_SetString(PyExc_TypeError,
"GOptionGroup.add_entries expected a list of entries");
return NULL;
}
@@ -162,11 +156,11 @@
entry_count = PyList_Size(list);
if (entry_count == -1)
{
- PyErr_SetString(PyExc_TypeError,
+ PyErr_SetString(PyExc_TypeError,
"GOptionGroup.add_entries expected a list of entries");
return NULL;
}
-
+
entries = g_new0(GOptionEntry, entry_count + 1);
for (pos = 0; pos < entry_count; pos++)
{
@@ -202,13 +196,13 @@
arg_description = g_strdup(arg_description);
self->strings = g_slist_prepend(self->strings, arg_description);
entries[pos].arg_description = arg_description;
-
+
entries[pos].arg = G_OPTION_ARG_CALLBACK;
entries[pos].arg_data = arg_func;
}
-
+
g_option_group_add_entries(self->group, entries);
-
+
g_free(entries);
Py_INCREF(Py_None);
@@ -217,26 +211,31 @@
static PyObject *
-pyg_option_group_set_translation_domain(PyGOptionGroup *self,
- PyObject *args,
+pyg_option_group_set_translation_domain(PyGOptionGroup *self,
+ PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "domain", NULL };
char *domain;
- if (check_if_owned(self)) return NULL;
+
+ if (check_if_owned(self))
+ return NULL;
if (self->group == NULL)
{
- PyErr_SetString(PyExc_RuntimeError,
+ PyErr_SetString(PyExc_RuntimeError,
"The corresponding GOptionGroup was already freed, "
"probably through the release of GOptionContext");
return NULL;
}
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "z:GOptionGroup.set_translate_domain",
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "z:GOptionGroup.set_translate_domain",
kwlist, &domain))
return NULL;
+
g_option_group_set_translation_domain(self->group, domain);
+
Py_INCREF(Py_None);
return Py_None;
}
@@ -244,9 +243,12 @@
static int
pyg_option_group_compare(PyGOptionGroup *self, PyGOptionGroup *group)
{
- if (self->group == group->group) return 0;
+ if (self->group == group->group)
+ return 0;
+
if (self->group > group->group)
return 1;
+
return -1;
}
@@ -266,6 +268,3 @@
PyGOptionGroup_Type.tp_init = (initproc)pyg_option_group_init;
PYGLIB_REGISTER_TYPE(d, PyGOptionGroup_Type, "OptionGroup");
}
-
-
-
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]