/* Return a copy of argv[0] encoded in the default encoding. * * Return a newly allocated buffer to be released with free(). * * Return NULL in case of error. If the error shouldn't be ignored, also set * a Python exception. */ static char * get_encoded_arg0(wchar_t *argv0) { PyObject *ua = NULL, *ba = NULL; char *rv = NULL; if (!(ua = PyUnicode_FromWideChar(argv0, -1))) { spt_debug("failed to convert argv[0] to unicode"); PyErr_Clear(); goto exit; } if (!(ba = PyUnicode_AsEncodedString( ua, PyUnicode_GetDefaultEncoding(), "strict"))) { spt_debug("failed to encode argv[0]"); PyErr_Clear(); goto exit; } if (!(rv = strdup(PyBytes_AsString(ba)))) { PyErr_NoMemory(); } exit: Py_XDECREF(ua); Py_XDECREF(ba); return rv; }
PyObject *PyString_AsEncodedObject(PyObject *str, const char *encoding, const char *errors) { PyObject *v; if (!PyString_Check(str)) { PyErr_BadArgument(); goto onError; } if (encoding == NULL) { #ifdef Py_USING_UNICODE encoding = PyUnicode_GetDefaultEncoding(); #else PyErr_SetString(PyExc_ValueError, "no encoding specified"); goto onError; #endif } /* Encode via the codec registry */ v = PyCodec_Encode(str, encoding, errors); if (v == NULL) goto onError; return v; onError: return NULL; }
static PyObject * _codecs_decode_impl(PyObject *module, PyObject *obj, const char *encoding, const char *errors) /*[clinic end generated code: output=679882417dc3a0bd input=7702c0cc2fa1add6]*/ { if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); /* Decode via the codec registry */ return PyCodec_Decode(obj, encoding, errors); }
static PyObject * _codecs_encode_impl(PyObject *module, PyObject *obj, const char *encoding, const char *errors) /*[clinic end generated code: output=385148eb9a067c86 input=cd5b685040ff61f0]*/ { if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); /* Encode via the codec registry */ return PyCodec_Encode(obj, encoding, errors); }
static PyObject * codec_encode(PyObject *self, PyObject *args) { const char *encoding = NULL; const char *errors = NULL; PyObject *v; if (!PyArg_ParseTuple(args, "O|ss:encode", &v, &encoding, &errors)) return NULL; if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); /* Encode via the codec registry */ return PyCodec_Encode(v, encoding, errors); }
static PyObject * codec_encode(PyObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = {"obj", "encoding", "errors", NULL}; const char *encoding = NULL; const char *errors = NULL; PyObject *v; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|ss:encode", kwlist, &v, &encoding, &errors)) return NULL; if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); /* Encode via the codec registry */ return PyCodec_Encode(v, encoding, errors); }
Box* sysGetDefaultEncoding() { return boxString(PyUnicode_GetDefaultEncoding()); }
Box* sysGetDefaultEncoding() { return boxStrConstant(PyUnicode_GetDefaultEncoding()); }