diff options
author | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2009-06-12 20:00:13 -0400 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2009-06-12 20:00:13 -0400 |
commit | c106029959fe3fbaa956729e1960c241fed868af (patch) | |
tree | 2219d47507c0c0113f5829fc0fbd75b8bfd36705 | |
parent | a425237305a2dec6e2f05607e6f3f9a89210d2d1 (diff) | |
download | screen-c106029959fe3fbaa956729e1960c241fed868af.tar.gz |
Comapre and Represent displays.
-rw-r--r-- | src/python.c | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/src/python.c b/src/python.c index f33a03e..29a4a27 100644 --- a/src/python.c +++ b/src/python.c @@ -65,10 +65,7 @@ typedef struct } SPyClosure; -#define compare_display NULL #define compare_callback NULL - -#define repr_display NULL #define repr_callback NULL #define REGISTER_TYPE(type, Type, closures, methods) \ @@ -195,7 +192,40 @@ static SPyClosure dclosures[] = SPY_CLOSURE("height", "Display height", T_INT, d_height, NULL), {NULL} }; -REGISTER_TYPE(display, Display, dclosures, NULL) + +static PyMethodDef dmethods[] = +{ + {NULL} +}; + +static int +compare_display(PyDisplay *one, PyDisplay *two) +{ + struct display *done = one->_obj; + struct display *dtwo = two->_obj; + struct display *iter; + + if (done->d_userpid == dtwo->d_userpid) + return 0; + + for (iter = displays; iter; iter = iter->d_next) + if (iter == done) + return -1; + else if (iter == dtwo) + return 1; + + return 0; +} + +static PyObject * +repr_display(PyObject *obj) +{ + PyDisplay *d = obj; + struct display *disp = d->_obj; + return PyString_FromFormat("display (term: %s, tty: %s)", disp->d_termname, disp->d_usertty); +} + +REGISTER_TYPE(display, Display, dclosures, dmethods) #undef SPY_CLOSURE /** }}} */ |