8000 Use unicode · python/cpython@a369c5a · GitHub
[go: up one dir, main page]

Skip to content

Commit a369c5a

Browse files
committed
Use unicode
1 parent 1978470 commit a369c5a

File tree

5 files changed

+37
-22
lines changed

5 files changed

+37
-22
lines changed

Objects/descrobject.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ method_get_doc(PyMethodDescrObject *descr, void *closure)
316316
Py_INCREF(Py_None);
317317
return Py_None;
318318
}
319-
return PyString_FromString(descr->d_method->ml_doc);
319+
return PyUnicode_FromString(descr->d_method->ml_doc);
320320
}
321321

322322
static PyMemberDef descr_members[] = {
@@ -337,7 +337,7 @@ member_get_doc(PyMemberDescrObject *descr, void *closure)
337337
Py_INCREF(Py_None);
338338
return Py_None;
339339
}
340-
return PyString_FromString(descr->d_member->doc);
340+
return PyUnicode_FromString(descr->d_member->doc);
341341
}
342342

343343
static PyGetSetDef member_getset[] = {
@@ -352,7 +352,7 @@ getset_get_doc(PyGetSetDescrObject *descr, void *closure)
352352
Py_INCREF(Py_None);
353353
return Py_None;
354354
}
355-
return PyString_FromString(descr->d_getset->doc);
355+
return PyUnicode_FromString(descr->d_getset->doc);
356356
}
357357

358358
static PyGetSetDef getset_getset[] = {
@@ -367,7 +367,7 @@ wrapperdescr_get_doc(PyWrapperDescrObject *descr, void *closure)
367367
Py_INCREF(Py_None);
368368
return Py_None;
369369
}
370-
return PyString_FromString(descr->d_base->doc);
370+
return PyUnicode_FromString(descr->d_base->doc);
371371
}
372372

373373
static PyGetSetDef wrapperdescr_getset[] = {
@@ -936,22 +936,22 @@ wrapper_objclass(wrapperobject *wp)
936936
static PyObject *
937937
wrapper_name(wrapperobject *wp)
938938
{
939-
char *s = wp->descr->d_base->name;
939+
const char *s = wp->descr->d_base->name;
940940

941-
return PyString_FromString(s);
941+
return PyUnicode_FromString(s);
942942
}
943943

944944
static PyObject *
945945
wrapper_doc(wrapperobject *wp)
946946
{
947-
char *s = wp->descr->d_base->doc;
947+
const char *s = wp->descr->d_base->doc;
948948

949949
if (s == NULL) {
950950
Py_INCREF(Py_None);
951951
return Py_None;
952952
}
953953
else {
954-
return PyString_FromString(s);
954+
return PyUnicode_FromString(s);
955955
}
956956
}
957957

Objects/typeobject.c

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ type_get_doc(PyTypeObject *type, void *context)
343343
{
344344
PyObject *result;
345345
if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE) && type->tp_doc != NULL)
346-
return PyString_FromString(type->tp_doc);
346+
return PyUnicode_FromString(type->tp_doc);
347347
result = PyDict_GetItemString(type->tp_dict, "__doc__");
348348
if (result == NULL) {
349349
result = Py_None;
@@ -1918,15 +1918,30 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
19181918
*/
19191919
{
19201920
PyObject *doc = PyDict_GetItemString(dict, "__doc__");
1921-
if (doc != NULL && PyString_Check(doc)) {
1922-
const size_t n = (size_t)PyString_GET_SIZE(doc);
1923-
char *tp_doc = (char *)PyObject_MALLOC(n+1);
1924-
if (tp_doc == NULL) {
1925-
Py_DECREF(type);
1926-
return NULL;
1921+
if (doc != NULL) {
1922+
char *tp_doc;
1923+
const char *str = NULL;
1924+
size_t n;
1925+
if (PyString_Check(doc)) {
1926+
str = PyString_AS_STRING(doc);
1927+
n = (size_t)PyString_GET_SIZE(doc);
1928+
} else if (PyUnicode_Check(doc)) {
1929+
str = PyUnicode_AsString(doc);
1930+
if (str == NULL) {
1931+
Py_DECREF(type);
1932+
return NULL;
1933+
}
1934+
n = strlen(str);
1935+
}
1936+
if (str != NULL) {
1937+
tp_doc = (char *)PyObject_MALLOC(n+1);
1938+
if (tp_doc == NULL) {
1939+
Py_DECREF(type);
1940+
return NULL;
1941+
}
1942+
memcpy(tp_doc, str, n+1);
1943+
type->tp_doc = tp_doc;
19271944
}
1928-
memcpy(tp_doc, PyString_AS_STRING(doc), n+1);
1929-
type->tp_doc 10BC0 = tp_doc;
19301945
}
19311946
}
19321947

@@ -3485,7 +3500,7 @@ PyType_Ready(PyTypeObject *type)
34853500
*/
34863501
if (PyDict_GetItemString(type->tp_dict, "__doc__") == NULL) {
34873502
if (type->tp_doc != NULL) {
3488-
PyObject *doc = PyString_FromString(type->tp_doc);
3503+
PyObject *doc = PyUnicode_FromString(type->tp_doc);
34893504
if (doc == NULL)
34903505
goto error;
34913506
PyDict_SetItemString(type->tp_dict, "__doc__", doc);

PC/winsound.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ static struct PyMethodDef sound_methods[] =
202202
static void
203203
add_define(PyObject *dict, const char *key, long value)
204204
{
205-
PyObject *k=PyString_FromString(key);
205+
PyObject *k=PyUnicode_FromString(key);
206206
PyObject *v=PyLong_FromLong(value);
207207
if(v&&k)
208208
{

Python/future.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ future_check_features(PyFutureFeatures *ff, stmt_ty s, const char *filename)
2020
names = s->v.ImportFrom.names;
2121
for (i = 0; i < asdl_seq_LEN(names); i++) {
2222
alias_ty name = (alias_ty)asdl_seq_GET(names, i);
23-
const char *feature = PyString_AsString(name->name);
23+
const char *feature = PyUnicode_AsString(name->name);
2424
if (!feature)
2525
return 0;
2626
if (strcmp(feature, FUTURE_NESTED_SCOPES) == 0) {

Python/pythonrun.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -707,12 +707,12 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag
707707
}
708708
v = PySys_GetObject("ps1");
709709
if (v == NULL) {
710-
PySys_SetObject("ps1", v = PyString_FromString(">>> "));
710+
PySys_SetObject("ps1", v = PyUnicode_FromString(">>> "));
711711
Py_XDECREF(v);
712712
}
713713
v = PySys_GetObject("ps2");
714714
if (v == NULL) {
715-
PySys_SetObject("ps2", v = PyString_FromString("... "));
715+
PySys_SetObject("ps2", v = PyUnicode_FromString("... "));
716716
Py_XDECREF(v);
717717
}
718718
for (;;) {

0 commit comments

Comments
 (0)
0