Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 727514
Collapse All | Expand All

(-)a/src/nautilus-python-object.c (-5 / +5 lines)
Lines 40-46 int __PyString_Check(PyObject *obj) { Link Here
40
#endif
40
#endif
41
}
41
}
42
42
43
char* __PyString_AsString(PyObject *obj) {
43
const char* __PyString_AsString(PyObject *obj) {
44
#if PY_MAJOR_VERSION >= 3
44
#if PY_MAJOR_VERSION >= 3
45
    return PyUnicode_AsUTF8(obj);
45
    return PyUnicode_AsUTF8(obj);
46
#else
46
#else
Lines 389-395 beach: Link Here
389
#define METHOD_NAME "update_file_info"
389
#define METHOD_NAME "update_file_info"
390
static NautilusOperationResult
390
static NautilusOperationResult
391
nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
391
nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
392
                                         NautilusFile                 *file,
392
                                         NautilusFileInfo             *file_info,
393
                                         GClosure                     *update_complete,
393
                                         GClosure                     *update_complete,
394
                                         NautilusOperationHandle   **handle) {
394
                                         NautilusOperationHandle   **handle) {
395
    NautilusPythonObject *object = (NautilusPythonObject*)provider;
395
    NautilusPythonObject *object = (NautilusPythonObject*)provider;
Lines 408-419 nautilus_python_object_update_file_info (NautilusInfoProvider *provider, Link Here
408
                                     pygobject_new((GObject*)provider),
408
                                     pygobject_new((GObject*)provider),
409
                                     py_handle,
409
                                     py_handle,
410
                                     pyg_boxed_new(G_TYPE_CLOSURE, update_complete, TRUE, TRUE),
410
                                     pyg_boxed_new(G_TYPE_CLOSURE, update_complete, TRUE, TRUE),
411
                                     pygobject_new((GObject*)file));
411
                                     pygobject_new((GObject*)file_info));
412
    }
412
    }
413
    else if (PyObject_HasAttrString(object->instance, "update_file_info")) {
413
    else if (PyObject_HasAttrString(object->instance, "update_file_info")) {
414
        py_ret = PyObject_CallMethod(object->instance,
414
        py_ret = PyObject_CallMethod(object->instance,
415
                                     METHOD_PREFIX METHOD_NAME, "(N)",
415
                                     METHOD_PREFIX METHOD_NAME, "(N)",
416
                                     pygobject_new((GObject*)file));
416
                                     pygobject_new((GObject*)file_info));
417
    }
417
    }
418
    else {
418
    else {
419
        goto beach;
419
        goto beach;
Lines 434-440 nautilus_python_object_update_file_info (NautilusInfoProvider *provider, Link Here
434
#endif
434
#endif
435
435
436
beach:
436
beach:
437
    free_pygobject_data(file, NULL);
437
    free_pygobject_data(file_info, NULL);
438
    Py_XDECREF(py_ret);
438
    Py_XDECREF(py_ret);
439
    pyg_gil_state_release(state);
439
    pyg_gil_state_release(state);
440
    return ret;
440
    return ret;
(-)a/src/nautilus-python.c (+13 lines)
Lines 22-27 Link Here
22
#endif
22
#endif
23
23
24
#include <Python.h>
24
#include <Python.h>
25
#define NO_IMPORT_PYGOBJECT //To avoid a multiple definition, nautilus-python-object.c also includes and does the import.
25
#include <pygobject.h>
26
#include <pygobject.h>
26
#include <gmodule.h>
27
#include <gmodule.h>
27
#include <gtk/gtk.h>
28
#include <gtk/gtk.h>
Lines 42-47 static gboolean nautilus_python_init_python(void); Link Here
42
static GArray *all_types = NULL;
43
static GArray *all_types = NULL;
43
44
44
45
46
PyTypeObject *_PyGtkWidget_Type;
47
PyTypeObject *_PyNautilusColumn_Type;
48
PyTypeObject *_PyNautilusColumnProvider_Type;
49
PyTypeObject *_PyNautilusInfoProvider_Type;
50
PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
51
PyTypeObject *_PyNautilusMenu_Type;
52
PyTypeObject *_PyNautilusMenuItem_Type;
53
PyTypeObject *_PyNautilusMenuProvider_Type;
54
PyTypeObject *_PyNautilusPropertyPage_Type;
55
PyTypeObject *_PyNautilusPropertyPageProvider_Type;
56
PyTypeObject *_PyNautilusOperationHandle_Type;
57
45
static inline gboolean 
58
static inline gboolean 
46
np_init_pygobject(void) {
59
np_init_pygobject(void) {
47
    PyObject *gobject = pygobject_init (PYGOBJECT_MAJOR_VERSION, PYGOBJECT_MINOR_VERSION, PYGOBJECT_MICRO_VERSION);
60
    PyObject *gobject = pygobject_init (PYGOBJECT_MAJOR_VERSION, PYGOBJECT_MINOR_VERSION, PYGOBJECT_MICRO_VERSION);
(-)a/src/nautilus-python.h (-11 / +11 lines)
Lines 43-79 extern NautilusPythonDebug nautilus_python_debug; Link Here
43
#define debug_enter_args(x, y) { if (nautilus_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
43
#define debug_enter_args(x, y) { if (nautilus_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
44
                                     g_printf("%s: entered " x "\n", __FUNCTION__, y); }
44
                                     g_printf("%s: entered " x "\n", __FUNCTION__, y); }
45
45
46
PyTypeObject *_PyGtkWidget_Type;
46
extern PyTypeObject *_PyGtkWidget_Type;
47
#define PyGtkWidget_Type (*_PyGtkWidget_Type)
47
#define PyGtkWidget_Type (*_PyGtkWidget_Type)
48
48
49
PyTypeObject *_PyNautilusColumn_Type;
49
extern PyTypeObject *_PyNautilusColumn_Type;
50
#define PyNautilusColumn_Type (*_PyNautilusColumn_Type)
50
#define PyNautilusColumn_Type (*_PyNautilusColumn_Type)
51
51
52
PyTypeObject *_PyNautilusColumnProvider_Type;
52
extern PyTypeObject *_PyNautilusColumnProvider_Type;
53
#define PyNautilusColumnProvider_Type (*_PyNautilusColumnProvider_Type)
53
#define PyNautilusColumnProvider_Type (*_PyNautilusColumnProvider_Type)
54
54
55
PyTypeObject *_PyNautilusInfoProvider_Type;
55
extern PyTypeObject *_PyNautilusInfoProvider_Type;
56
#define PyNautilusInfoProvider_Type (*_PyNautilusInfoProvider_Type)
56
#define PyNautilusInfoProvider_Type (*_PyNautilusInfoProvider_Type)
57
57
58
PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
58
extern PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
59
#define PyNautilusLocationWidgetProvider_Type (*_PyNautilusLocationWidgetProvider_Type)
59
#define PyNautilusLocationWidgetProvider_Type (*_PyNautilusLocationWidgetProvider_Type)
60
60
61
PyTypeObject *_PyNautilusMenu_Type;
61
extern PyTypeObject *_PyNautilusMenu_Type;
62
#define PyNautilusMenu_Type (*_PyNautilusMenu_Type)
62
#define PyNautilusMenu_Type (*_PyNautilusMenu_Type)
63
63
64
PyTypeObject *_PyNautilusMenuItem_Type;
64
extern PyTypeObject *_PyNautilusMenuItem_Type;
65
#define PyNautilusMenuItem_Type (*_PyNautilusMenuItem_Type)
65
#define PyNautilusMenuItem_Type (*_PyNautilusMenuItem_Type)
66
66
67
PyTypeObject *_PyNautilusMenuProvider_Type;
67
extern PyTypeObject *_PyNautilusMenuProvider_Type;
68
#define PyNautilusMenuProvider_Type (*_PyNautilusMenuProvider_Type)
68
#define PyNautilusMenuProvider_Type (*_PyNautilusMenuProvider_Type)
69
69
70
PyTypeObject *_PyNautilusPropertyPage_Type;
70
extern PyTypeObject *_PyNautilusPropertyPage_Type;
71
#define PyNautilusPropertyPage_Type (*_PyNautilusPropertyPage_Type)
71
#define PyNautilusPropertyPage_Type (*_PyNautilusPropertyPage_Type)
72
72
73
PyTypeObject *_PyNautilusPropertyPageProvider_Type;
73
extern PyTypeObject *_PyNautilusPropertyPageProvider_Type;
74
#define PyNautilusPropertyPageProvider_Type (*_PyNautilusPropertyPageProvider_Type)
74
#define PyNautilusPropertyPageProvider_Type (*_PyNautilusPropertyPageProvider_Type)
75
75
76
PyTypeObject *_PyNautilusOperationHandle_Type;
76
extern PyTypeObject *_PyNautilusOperationHandle_Type;
77
#define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type)
77
#define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type)
78
78
79
#endif /* NAUTILUS_PYTHON_H */
79
#endif /* NAUTILUS_PYTHON_H */

Return to bug 727514