on master help sign in
- Add default ctrl+c handler to python3 + python3

- Fix Eval in python3

commit276ca5f69b04aac645c2247cc402ad449e62b111 authorRob Blanckaert <basicer@basicer.com> dateWed 14 Nov 2018, 18:45 (8 years ago) parent10d3505
3 files changed+17−2
languages/python2/main.go+2 languages/python3/main.go+2 languages/python3/pry_python3.c+13−2
languages/python2/main.go+2
@@ -15,6 +15,8 @@ type Python struct{}
1515
1616func (p Python) Open() {
1717 C.Py_Initialize()
18+ p.Eval("import signal")
19+ p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
1820}
1921
2022func (p Python) Version() string {
languages/python3/main.go+2
@@ -16,6 +16,8 @@ type Python struct{}
1616
1717func (p Python) Open() {
1818 C.Py_Initialize()
19+ p.Eval("import signal")
20+ p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
1921}
2022
2123func (p Python) Version() string {
languages/python3/pry_python3.c+13−2
@@ -12,12 +12,13 @@ void pry_eval_file(FILE *f, const char *file, int argn, const char *argv)
1212 xargv[argn] = NULL;
1313 PySys_SetArgvEx(argn, xargv, 1);
1414 PyRun_AnyFile(f, file);
15+
1516}
1617
1718const char *pry_eval(const char *code, int start)
1819{
1920
20− PyObject *m, *d, *s, *v;
21+ PyObject *m, *d, *s, *t, *v;
2122 PyObject *c;
2223 m = PyImport_AddModule("__main__");
2324
@@ -43,9 +44,19 @@ const char *pry_eval(const char *code, int start)
4344 PyErr_Print();
4445 return NULL;
4546 }
46− char *str = PyBytes_AS_STRING(s);
47+
48+ t = PyUnicode_AsUTF8String(s);
49+ if (t == NULL)
50+ {
51+ PyErr_Print();
52+ return NULL;
53+ }
54+
55+
56+ char *str = PyBytes_AsString(t);
4757 Py_DECREF(v);
4858 Py_DECREF(s);
59+ Py_DECREF(t);
4960 return str;
5061}
5162