mirror of https://github.com/python/cpython
bpo-46670: Define all macros for stringlib (GH-31176)
bytesobject.c, bytearrayobject.c and unicodeobject.c now define all macros used by stringlib, to avoid using undefined macros. Fix "gcc -Wundef" warnings.
This commit is contained in:
parent
16f96a4cf9
commit
097f74a5a3
|
@ -1074,6 +1074,7 @@ bytearray_dealloc(PyByteArrayObject *self)
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
/* Methods */
|
/* Methods */
|
||||||
|
|
||||||
|
#define STRINGLIB_IS_UNICODE 0
|
||||||
#define FASTSEARCH fastsearch
|
#define FASTSEARCH fastsearch
|
||||||
#define STRINGLIB(F) stringlib_##F
|
#define STRINGLIB(F) stringlib_##F
|
||||||
#define STRINGLIB_CHAR char
|
#define STRINGLIB_CHAR char
|
||||||
|
|
|
@ -1235,6 +1235,7 @@ PyBytes_AsStringAndSize(PyObject *obj,
|
||||||
#define STRINGLIB_GET_EMPTY() bytes_get_empty()
|
#define STRINGLIB_GET_EMPTY() bytes_get_empty()
|
||||||
|
|
||||||
#include "stringlib/stringdefs.h"
|
#include "stringlib/stringdefs.h"
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#include "stringlib/fastsearch.h"
|
#include "stringlib/fastsearch.h"
|
||||||
#include "stringlib/count.h"
|
#include "stringlib/count.h"
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define STRINGLIB_NEW(STR,LEN) _PyUnicode_FromASCII((const char*)(STR),(LEN))
|
#define STRINGLIB_NEW(STR,LEN) _PyUnicode_FromASCII((const char*)(STR),(LEN))
|
||||||
#define STRINGLIB_CHECK PyUnicode_Check
|
#define STRINGLIB_CHECK PyUnicode_Check
|
||||||
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#define STRINGLIB_TOSTR PyObject_Str
|
#define STRINGLIB_TOSTR PyObject_Str
|
||||||
#define STRINGLIB_TOASCII PyObject_ASCII
|
#define STRINGLIB_TOASCII PyObject_ASCII
|
||||||
|
|
|
@ -32,7 +32,7 @@ STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
|
||||||
Py_DECREF(seq);
|
Py_DECREF(seq);
|
||||||
return STRINGLIB_NEW(NULL, 0);
|
return STRINGLIB_NEW(NULL, 0);
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (seqlen == 1) {
|
if (seqlen == 1) {
|
||||||
item = PySequence_Fast_GET_ITEM(seq, 0);
|
item = PySequence_Fast_GET_ITEM(seq, 0);
|
||||||
if (STRINGLIB_CHECK_EXACT(item)) {
|
if (STRINGLIB_CHECK_EXACT(item)) {
|
||||||
|
|
|
@ -70,7 +70,7 @@ STRINGLIB(split_whitespace)(PyObject* str_obj,
|
||||||
j = i; i++;
|
j = i; i++;
|
||||||
while (i < str_len && !STRINGLIB_ISSPACE(str[i]))
|
while (i < str_len && !STRINGLIB_ISSPACE(str[i]))
|
||||||
i++;
|
i++;
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (j == 0 && i == str_len && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (j == 0 && i == str_len && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* No whitespace in str_obj, so just use it as list[0] */
|
/* No whitespace in str_obj, so just use it as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -122,7 +122,7 @@ STRINGLIB(split_char)(PyObject* str_obj,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* ch not in str_obj, so just use str_obj as list[0] */
|
/* ch not in str_obj, so just use str_obj as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -170,7 +170,7 @@ STRINGLIB(split)(PyObject* str_obj,
|
||||||
SPLIT_ADD(str, i, j);
|
SPLIT_ADD(str, i, j);
|
||||||
i = j + sep_len;
|
i = j + sep_len;
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* No match in str_obj, so just use it as list[0] */
|
/* No match in str_obj, so just use it as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -209,7 +209,7 @@ STRINGLIB(rsplit_whitespace)(PyObject* str_obj,
|
||||||
j = i; i--;
|
j = i; i--;
|
||||||
while (i >= 0 && !STRINGLIB_ISSPACE(str[i]))
|
while (i >= 0 && !STRINGLIB_ISSPACE(str[i]))
|
||||||
i--;
|
i--;
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (j == str_len - 1 && i < 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (j == str_len - 1 && i < 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* No whitespace in str_obj, so just use it as list[0] */
|
/* No whitespace in str_obj, so just use it as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -262,7 +262,7 @@ STRINGLIB(rsplit_char)(PyObject* str_obj,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* ch not in str_obj, so just use str_obj as list[0] */
|
/* ch not in str_obj, so just use str_obj as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -311,7 +311,7 @@ STRINGLIB(rsplit)(PyObject* str_obj,
|
||||||
SPLIT_ADD(str, pos + sep_len, j);
|
SPLIT_ADD(str, pos + sep_len, j);
|
||||||
j = pos;
|
j = pos;
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (count == 0 && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* No match in str_obj, so just use it as list[0] */
|
/* No match in str_obj, so just use it as list[0] */
|
||||||
Py_INCREF(str_obj);
|
Py_INCREF(str_obj);
|
||||||
|
@ -370,7 +370,7 @@ STRINGLIB(splitlines)(PyObject* str_obj,
|
||||||
if (keepends)
|
if (keepends)
|
||||||
eol = i;
|
eol = i;
|
||||||
}
|
}
|
||||||
#ifndef STRINGLIB_MUTABLE
|
#if !STRINGLIB_MUTABLE
|
||||||
if (j == 0 && eol == str_len && STRINGLIB_CHECK_EXACT(str_obj)) {
|
if (j == 0 && eol == str_len && STRINGLIB_CHECK_EXACT(str_obj)) {
|
||||||
/* No linebreak in str_obj, so just use it as list[0] */
|
/* No linebreak in str_obj, so just use it as list[0] */
|
||||||
if (PyList_Append(list, str_obj))
|
if (PyList_Append(list, str_obj))
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define STRINGLIB_NEW _PyUnicode_FromUCS1
|
#define STRINGLIB_NEW _PyUnicode_FromUCS1
|
||||||
#define STRINGLIB_CHECK PyUnicode_Check
|
#define STRINGLIB_CHECK PyUnicode_Check
|
||||||
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#define STRINGLIB_TOSTR PyObject_Str
|
#define STRINGLIB_TOSTR PyObject_Str
|
||||||
#define STRINGLIB_TOASCII PyObject_ASCII
|
#define STRINGLIB_TOASCII PyObject_ASCII
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define STRINGLIB_NEW _PyUnicode_FromUCS2
|
#define STRINGLIB_NEW _PyUnicode_FromUCS2
|
||||||
#define STRINGLIB_CHECK PyUnicode_Check
|
#define STRINGLIB_CHECK PyUnicode_Check
|
||||||
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#define STRINGLIB_TOSTR PyObject_Str
|
#define STRINGLIB_TOSTR PyObject_Str
|
||||||
#define STRINGLIB_TOASCII PyObject_ASCII
|
#define STRINGLIB_TOASCII PyObject_ASCII
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#define STRINGLIB_NEW _PyUnicode_FromUCS4
|
#define STRINGLIB_NEW _PyUnicode_FromUCS4
|
||||||
#define STRINGLIB_CHECK PyUnicode_Check
|
#define STRINGLIB_CHECK PyUnicode_Check
|
||||||
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#define STRINGLIB_TOSTR PyObject_Str
|
#define STRINGLIB_TOSTR PyObject_Str
|
||||||
#define STRINGLIB_TOASCII PyObject_ASCII
|
#define STRINGLIB_TOASCII PyObject_ASCII
|
||||||
|
|
|
@ -7,4 +7,4 @@
|
||||||
#undef STRINGLIB_LEN
|
#undef STRINGLIB_LEN
|
||||||
#undef STRINGLIB_NEW
|
#undef STRINGLIB_NEW
|
||||||
#undef STRINGLIB_IS_UNICODE
|
#undef STRINGLIB_IS_UNICODE
|
||||||
|
#undef STRINGLIB_MUTABLE
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#define STRINGLIB_NEW PyUnicode_FromUnicode
|
#define STRINGLIB_NEW PyUnicode_FromUnicode
|
||||||
#define STRINGLIB_CHECK PyUnicode_Check
|
#define STRINGLIB_CHECK PyUnicode_Check
|
||||||
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
||||||
|
#define STRINGLIB_MUTABLE 0
|
||||||
|
|
||||||
#define STRINGLIB_TOSTR PyObject_Str
|
#define STRINGLIB_TOSTR PyObject_Str
|
||||||
#define STRINGLIB_TOASCII PyObject_ASCII
|
#define STRINGLIB_TOASCII PyObject_ASCII
|
||||||
|
|
Loading…
Reference in New Issue