summaryrefslogtreecommitdiff
path: root/python/vte.override
diff options
context:
space:
mode:
Diffstat (limited to 'python/vte.override')
-rw-r--r--python/vte.override657
1 files changed, 0 insertions, 657 deletions
diff --git a/python/vte.override b/python/vte.override
deleted file mode 100644
index 3f26f5a5..00000000
--- a/python/vte.override
+++ /dev/null
@@ -1,657 +0,0 @@
-/* -*- Mode: C; c-basic-offset: 4 -*- */
-%%
-headers
-#include <Python.h>
-#define NO_IMPORT_PYGTK
-#include <pygtk/pygtk.h>
-#include <pygobject.h>
-#include <gtk/gtk.h>
-#include "../src/vte.h"
-
-void pyvte_add_constants(PyObject *module, const gchar *strip_prefix);
-void pyvte_register_classes(PyObject *d);
-%%
-modulename vte
-%%
-import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
-import gtk.MenuShell as PyGtkMenuShell_Type
-import gtk.Widget as PyGtkWidget_Type
-%%
-override vte_terminal_feed kwargs
-static PyObject *
-_wrap_vte_terminal_feed(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "data", "length", NULL };
- char *data;
- int length;
- PyObject *length_obj = NULL;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "s#|O:VteTerminal.feed",
- kwlist, &data, &length, &length_obj)) {
- return NULL;
- }
- if ((length_obj != NULL) && PyNumber_Check(length_obj)) {
- PyObject *intobj;
- intobj = PyNumber_Int(length_obj);
- if (intobj) {
- if (PyInt_AsLong(intobj) != -1) {
- length = PyInt_AsLong(intobj);
- }
- Py_DECREF(intobj);
- }
- }
- vte_terminal_feed(VTE_TERMINAL(self->obj), data, length);
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%
-override vte_terminal_feed_child kwargs
-static PyObject *
-_wrap_vte_terminal_feed_child(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "data", "length", NULL };
- char *data;
- int length;
- PyObject *length_obj = NULL;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "s#|O:VteTerminal.feed_child",
- kwlist, &data, &length, &length_obj)) {
- return NULL;
- }
- if ((length_obj != NULL) && PyNumber_Check(length_obj)) {
- PyObject *intobj;
- intobj = PyNumber_Int(length_obj);
- if (intobj) {
- if (PyInt_AsLong(intobj) != -1) {
- length = PyInt_AsLong(intobj);
- }
- Py_DECREF(intobj);
- }
- }
- vte_terminal_feed_child(VTE_TERMINAL(self->obj), data, length);
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%
-override vte_terminal_feed_child_binary kwargs
-static PyObject *
-_wrap_vte_terminal_feed_child_binary(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "data", "length", NULL };
- char *data;
- int length;
- PyObject *length_obj = NULL;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "s#|O:VteTerminal.feed_child_binary",
- kwlist, &data, &length, &length_obj)) {
- return NULL;
- }
- if ((length_obj != NULL) && PyNumber_Check(length_obj)) {
- PyObject *intobj;
- intobj = PyNumber_Int(length_obj);
- if (intobj) {
- if (PyInt_AsLong(intobj) != -1) {
- length = PyInt_AsLong(intobj);
- }
- Py_DECREF(intobj);
- }
- }
- vte_terminal_feed_child_binary(VTE_TERMINAL(self->obj), data, length);
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%
-override vte_terminal_fork_command kwargs
-
-static int
-_build_envv(PyObject *py_envv, char ***envv)
-{
- int i, pos, n_envs;
- PyObject *py_dict_k, *py_dict_v;
-
- if (py_envv == NULL || py_envv == Py_None) {
- return 0;
- }
-
- if (PyDict_Check(py_envv)) {
- n_envs = PyMapping_Length(py_envv);
- *envv = g_new(gchar *, n_envs + 1);
- pos = 0;
- i = 0;
- while (PyDict_Next(py_envv, &pos, &py_dict_k, &py_dict_v)) {
- (*envv)[i++] = g_strdup_printf("%s=%s",
- PyString_AsString(py_dict_k),
- PyString_AsString(py_dict_v));
- }
- (*envv)[n_envs] = NULL;
- } else if (PySequence_Check(py_envv)) {
- n_envs = PySequence_Length(py_envv);
- *envv = g_new(gchar *, n_envs + 1);
- for (i = 0; i < n_envs; i++) {
- PyObject *item = PySequence_GetItem(py_envv, i);
- Py_DECREF(item); /* PySequence_GetItem INCREF's */
- (*envv)[i] = PyString_AsString(item);
- }
- (*envv)[n_envs] = NULL;
- } else {
- PyErr_SetString(PyExc_TypeError,
- "envv must be a sequence or a dictionary");
- return -1;
- }
-
- return n_envs;
-}
-
-static void
-_free_envv(PyObject *py_envv, char **envv)
-{
- if (PyDict_Check(py_envv)) {
- g_strfreev(envv);
- } else {
- g_free(envv);
- }
-}
-
-static PyObject *
-_wrap_vte_terminal_fork_command(PyGObject * self, PyObject * args,
- PyObject * kwargs)
-{
- gchar **argv = NULL, **envv = NULL;
- gchar *command = NULL, *directory = NULL;
- static char *kwlist[] = { "command", "argv", "envv", "directory",
- "loglastlog", "logutmp", "logwtmp",
- NULL };
- PyObject *py_argv = NULL, *py_envv = NULL,
- *loglastlog = NULL, *logutmp = NULL, *logwtmp = NULL;
- int i, n_args, n_envs;
- pid_t pid;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|zOOzOOO:fork_command",
- kwlist, &command, &py_argv, &py_envv,
- &directory,
- &loglastlog, &logutmp, &logwtmp)) {
- return NULL;
- }
-
-
- if (py_argv != NULL && py_argv != Py_None) {
- if (!PySequence_Check(py_argv)) {
- PyErr_SetString(PyExc_TypeError,
- "argv must be a sequence");
- return NULL;
- }
-
- n_args = PySequence_Length(py_argv);
- argv = g_new(gchar *, n_args + 1);
- for (i = 0; i < n_args; i++) {
- PyObject *item = PySequence_GetItem(py_argv, i);
- Py_DECREF(item); /* PySequence_GetItem INCREF's */
- argv[i] = PyString_AsString(item);
- }
- argv[n_args] = NULL;
- }
-
- n_envs = _build_envv(py_envv, &envv);
- if (n_envs == -1) {
- g_free(argv);
- return NULL;
- }
-
- pid = vte_terminal_fork_command(VTE_TERMINAL(self->obj),
- command, argv, envv, directory,
- (loglastlog != NULL) &&
- PyObject_IsTrue(loglastlog),
- (logutmp != NULL) &&
- PyObject_IsTrue(logutmp),
- (logwtmp != NULL) &&
- PyObject_IsTrue(logwtmp));
-
- if (envv) {
- _free_envv(py_envv, envv);
- }
-
- if (argv) {
- g_free(argv);
- }
-
- return PyInt_FromLong(pid);
-}
-%%
-override vte_terminal_forkpty kwargs
-
-static PyObject *
-_wrap_vte_terminal_forkpty(PyGObject * self, PyObject * args, PyObject * kwargs)
-{
- gchar **envv = NULL, *directory = NULL;
- static char *kwlist[] = { "envv", "directory",
- "loglastlog", "logutmp", "logwtmp",
- NULL };
- PyObject *py_envv = NULL,
- *loglastlog = NULL, *logutmp = NULL, *logwtmp = NULL;
- int n_envs;
- pid_t pid;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OzOOO:forkpty",
- kwlist, &py_envv, &directory,
- &loglastlog, &logutmp, &logwtmp)) {
- return NULL;
- }
-
- n_envs = _build_envv(py_envv, &envv);
- if (n_envs == -1) {
- return NULL;
- }
-
- pid = vte_terminal_forkpty(VTE_TERMINAL(self->obj),
- envv, directory,
- (loglastlog != NULL) &&
- PyObject_IsTrue(loglastlog),
- (logutmp != NULL) &&
- PyObject_IsTrue(logutmp),
- (logwtmp != NULL) &&
- PyObject_IsTrue(logwtmp));
-
- if (envv) {
- _free_envv(py_envv, envv);
- }
-
- return PyInt_FromLong(pid);
-}
-%%
-override vte_terminal_get_cursor_position noargs
-
-static PyObject *
-_wrap_vte_terminal_get_cursor_position(PyGObject *self)
-{
- PyObject *ret;
- glong column, row;
-
- vte_terminal_get_cursor_position(VTE_TERMINAL(self->obj),
- &column, &row);
- ret = PyTuple_New(2);
- PyTuple_SetItem(ret, 0, PyInt_FromLong(column));
- PyTuple_SetItem(ret, 1, PyInt_FromLong(row));
- return ret;
-}
-%%
-override vte_terminal_get_padding noargs
-
-static PyObject *
-_wrap_vte_terminal_get_padding(PyGObject *self)
-{
- PyObject *ret;
- int xpad, ypad;
-
- vte_terminal_get_padding(VTE_TERMINAL(self->obj), &xpad, &ypad);
- ret = PyTuple_New(2);
- PyTuple_SetItem(ret, 0, PyInt_FromLong(xpad));
- PyTuple_SetItem(ret, 1, PyInt_FromLong(ypad));
- return ret;
-}
-%%
-override vte_terminal_get_text kwargs
-
-static gboolean
-call_callback(VteTerminal *terminal, glong column, glong row, gpointer data)
-{
- PyObject *cb, *args, *result;
- gboolean ret;
-
- if (!PySequence_Check(data)) {
- PyErr_SetString(PyExc_TypeError, "expected argument list in a tuple");
- return FALSE;
- }
-
- cb = PySequence_GetItem(data, 0); /* INCREFs */
- Py_XDECREF(cb);
-
- if (!PyCallable_Check(cb)) {
- PyErr_SetString(PyExc_TypeError, "callback is not a callable object");
- return FALSE;
- }
-
- args = PyTuple_New(4);
- PyTuple_SetItem(args, 0, PySequence_GetItem(data, 1));
- PyTuple_SetItem(args, 1, PyInt_FromLong(column));
- PyTuple_SetItem(args, 2, PyInt_FromLong(row));
- PyTuple_SetItem(args, 3, PySequence_GetItem(data, 2));
-
- result = PyObject_CallObject(cb, args);
- Py_DECREF(args);
-
- ret = (result && PyObject_IsTrue(result));
- Py_XDECREF(result);
-
- return ret;
-}
-
-static PyObject*
-build_attributes(GArray *attrs)
-{
- PyObject *py_attrs = PyTuple_New(attrs->len);
- int count;
- PyObject *row = PyString_FromString("row");
- PyObject *column = PyString_FromString("column");
- PyObject *fore = PyString_FromString("fore");
- PyObject *back = PyString_FromString("back");
- PyObject *underline = PyString_FromString("underline");
- PyObject *striketrough = PyString_FromString("striketrough");
-
- for (count = 0; count < attrs->len; count++) {
- VteCharAttributes *cht;
- PyObject *py_char_attr;
-
- py_char_attr = Py_BuildValue("{S:l,S:l,S:N,S:N,S:I,S:I}",
- row, cht->row,
- column, cht->column,
- fore, pyg_boxed_new(GDK_TYPE_COLOR, &cht->fore, TRUE, TRUE),
- back, pyg_boxed_new(GDK_TYPE_COLOR, &cht->back, TRUE, TRUE),
- underline, (unsigned int) cht->underline,
- striketrough, (unsigned int) cht->strikethrough);
- PyTuple_SetItem(py_attrs, count, py_char_attr);
- }
-
- Py_DECREF(row);
- Py_DECREF(column);
- Py_DECREF(fore);
- Py_DECREF(back);
- Py_DECREF(underline);
- Py_DECREF(striketrough);
-
- return py_attrs;
-}
-
-static gboolean
-always_true(VteTerminal *terminal, glong row, glong column, gpointer data)
-{
- return TRUE;
-}
-
-static PyObject *
-_wrap_vte_terminal_get_text(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "callback", "get_attributes", "data", NULL };
- PyObject *callback = NULL, *do_attr = NULL, *data = NULL;
- PyObject *callback_and_args = NULL;
- PyObject *result = NULL;
- GArray *attrs = NULL;
- char *text;
- PyObject *py_attrs;
- int count;
- long length;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OO:terminal_get_text",
- kwlist, &callback, &do_attr, &data)) {
- return NULL;
- }
-
- if ((do_attr != NULL) && (PyObject_IsTrue(do_attr))) {
- attrs = g_array_new(FALSE, TRUE, sizeof(VteCharAttributes));
- } else {
- attrs = NULL;
- }
-
- if (callback != NULL) {
- if (!PyCallable_Check(callback)) {
- PyErr_SetString(PyExc_TypeError, "1st argument not callable.");
- if (attrs) {
- g_array_free(attrs, TRUE);
- }
- return NULL;
- }
-
- callback_and_args = PyTuple_New(3);
- Py_INCREF(callback); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 0, callback);
- Py_INCREF(self); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 1, (PyObject*) self);
- if (data != NULL) {
- Py_INCREF(data); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 2, data);
- } else {
- PyTuple_SetItem(callback_and_args, 2, PyTuple_New(0));
- }
- text = vte_terminal_get_text(VTE_TERMINAL(self->obj),
- call_callback,
- callback_and_args,
- attrs);
- Py_DECREF(callback_and_args);
- } else {
- text = vte_terminal_get_text(VTE_TERMINAL(self->obj),
- always_true,
- NULL,
- attrs);
- }
-
- if (attrs) {
- py_attrs = build_attributes(attrs);
- length = attrs->len;
- g_array_free(attrs, TRUE);
- result = Py_BuildValue("(s#N)", text, length, py_attrs);
- } else {
- result = Py_BuildValue("s", text);
- }
-
- g_free (text);
- return result;
-}
-%%
-override vte_terminal_get_text_include_trailing_spaces kwargs
-
-static PyObject *
-_wrap_vte_terminal_get_text_include_trailing_spaces(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "callback", "get_attributes", "data", NULL };
- PyObject *callback = NULL, *do_attr = NULL, *data = NULL;
- PyObject *callback_and_args = NULL;
- PyObject *result = NULL;
- GArray *attrs = NULL;
- char *text;
- PyObject *py_attrs;
- int count;
- long length;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OO:terminal_get_text_include_trailing_spaces",
- kwlist, &callback, &do_attr, &data)) {
- return NULL;
- }
-
- if ((do_attr != NULL) && (PyObject_IsTrue(do_attr))) {
- attrs = g_array_new(FALSE, TRUE, sizeof(VteCharAttributes));
- } else {
- attrs = NULL;
- }
-
- if (callback != NULL) {
- if (!PyCallable_Check(callback)) {
- PyErr_SetString(PyExc_TypeError, "1st argument not callable.");
- if (attrs) {
- g_array_free(attrs, TRUE);
- }
- return NULL;
- }
-
- callback_and_args = PyTuple_New(3);
- Py_INCREF(callback); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 0, callback);
- Py_INCREF(self); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 1, (PyObject*) self);
- if (data != NULL) {
- Py_INCREF(data); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 2, data);
- } else {
- PyTuple_SetItem(callback_and_args, 2, PyTuple_New(0));
- }
- text = vte_terminal_get_text_include_trailing_spaces(VTE_TERMINAL(self->obj),
- call_callback,
- callback_and_args,
- attrs);
- Py_DECREF(callback_and_args);
- } else {
- text = vte_terminal_get_text_include_trailing_spaces(VTE_TERMINAL(self->obj),
- always_true,
- NULL,
- attrs);
- }
-
- if (attrs) {
- py_attrs = build_attributes(attrs);
- length = attrs->len;
- g_array_free(attrs, TRUE);
- result = Py_BuildValue("(s#N)", text, length, py_attrs);
- } else {
- result = Py_BuildValue("s", text);
- }
- g_free (text);
- return result;
-}
-%%
-override vte_terminal_get_text_range kwargs
-static PyObject *
-_wrap_vte_terminal_get_text_range(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "start_row", "start_col", "end_row", "end_col",
- "callback", "get_attributes", "data", NULL };
- PyObject *callback = NULL, *do_attr = NULL, *data = NULL;
- glong start_row, start_col, end_row, end_col;
- PyObject *callback_and_args = NULL;
- PyObject *result = NULL;
- GArray *attrs = NULL;
- char *text;
- PyObject *py_attrs;
- int count;
- long length;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "llllO|OO:terminal_get_text_range",
- kwlist,
- &start_row, &start_col, &end_row, &end_col,
- &callback, &do_attr, &data)) {
- return NULL;
- }
-
- if ((do_attr != NULL) && (PyObject_IsTrue(do_attr))) {
- attrs = g_array_new(FALSE, TRUE, sizeof(VteCharAttributes));
- } else {
- attrs = NULL;
- }
-
- if (callback != NULL) {
- if (!PyCallable_Check(callback)) {
- PyErr_SetString(PyExc_TypeError, "1st argument not callable.");
- if (attrs) {
- g_array_free(attrs, TRUE);
- }
- return NULL;
- }
-
- callback_and_args = PyTuple_New(3);
- Py_INCREF(callback); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 0, callback);
- Py_INCREF(self); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 1, (PyObject*) self);
- if (data != NULL) {
- Py_INCREF(data); /* PyTuple_SetItem will assume ownership. */
- PyTuple_SetItem(callback_and_args, 2, data);
- } else {
- PyTuple_SetItem(callback_and_args, 2, PyTuple_New(0));
- }
- text = vte_terminal_get_text_range(VTE_TERMINAL(self->obj),
- start_row, start_col,
- end_row, end_col,
- call_callback,
- callback_and_args,
- attrs);
- Py_DECREF(callback_and_args);
- } else {
- text = vte_terminal_get_text_range(VTE_TERMINAL(self->obj),
- start_row, start_col,
- end_row, end_col,
- always_true,
- NULL,
- attrs);
- }
-
- if (attrs) {
- py_attrs = build_attributes(attrs);
- length = attrs->len;
- g_array_free(attrs, TRUE);
- result = Py_BuildValue("(s#N)", text, length, py_attrs);
- } else {
- result = Py_BuildValue("s", text);
- }
-
- g_free (text);
- return result;
-}
-%%
-override vte_terminal_set_colors kwargs
-static PyObject *
-_wrap_vte_terminal_set_colors(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "foreground", "background", "palette", NULL };
- PyObject *py_foreground, *py_background, *py_palette, *item;
- int palette_size, i;
- GdkColor *foreground = NULL, *background = NULL, *palette = NULL;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOO:VteTerminal.set_colors", kwlist, &py_foreground, &py_background, &py_palette, &palette_size))
- return NULL;
- if (pyg_boxed_check(py_foreground, GDK_TYPE_COLOR))
- foreground = pyg_boxed_get(py_foreground, GdkColor);
- else {
- PyErr_SetString(PyExc_TypeError, "foreground should be a GdkColor");
- return NULL;
- }
- if (pyg_boxed_check(py_background, GDK_TYPE_COLOR))
- background = pyg_boxed_get(py_background, GdkColor);
- else {
- PyErr_SetString(PyExc_TypeError, "background should be a GdkColor");
- return NULL;
- }
- if (PySequence_Check(py_palette)) {
- palette_size = PySequence_Length(py_palette);
- palette = g_malloc(sizeof(GdkColor) * palette_size);
- for (i = 0; i < palette_size; i++) {
- item = PySequence_GetItem(py_palette, i); /* INCREFs */
- if (!pyg_boxed_check(item, GDK_TYPE_COLOR)) {
- g_free(palette);
- PyErr_SetString(PyExc_TypeError, "palette should be a list of GdkColors");
- return NULL;
- }
- palette[i] = *((GdkColor*)pyg_boxed_get(item, GdkColor));
- Py_DECREF(item);
- }
- } else {
- PyErr_SetString(PyExc_TypeError, "palette should be a list of GdkColors");
- return NULL;
- }
- vte_terminal_set_colors(VTE_TERMINAL(self->obj), foreground, background, palette, palette_size);
- g_free(palette);
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%
-override vte_terminal_match_check kwargs
-static PyObject *
-_wrap_vte_terminal_match_check(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "column", "row", NULL };
- gchar *ret;
- glong column, row;
- int *tag;
-
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ll:VteTerminal.match_check", kwlist, &column, &row))
- return NULL;
- ret = vte_terminal_match_check(VTE_TERMINAL(self->obj), column, row, &tag);
- if (ret) {
- PyObject *py_ret = Py_BuildValue("si", ret, tag);
- g_free(ret);
- return py_ret;
- }
- Py_INCREF(Py_None);
- return Py_None;
-}
-%%