added "magic" number to the _sre module, to avoid weird errors caused
by compiler/engine mismatches
This commit is contained in:
parent
142297ac92
commit
b35ffc0417
|
@ -12,6 +12,8 @@ import _sre
|
|||
|
||||
from sre_constants import *
|
||||
|
||||
assert _sre.MAGIC == MAGIC, "SRE module mismatch"
|
||||
|
||||
MAXCODE = 65535
|
||||
|
||||
def _compile(code, pattern, flags):
|
||||
|
|
|
@ -9,8 +9,15 @@
|
|||
# See the sre.py file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
# update when constants are added or removed
|
||||
|
||||
MAGIC = 20010115
|
||||
|
||||
# max code word in this release
|
||||
|
||||
MAXREPEAT = 65535
|
||||
|
||||
# SRE standard exception (access as sre.error)
|
||||
# should this really be here?
|
||||
|
||||
class error(Exception):
|
||||
|
@ -211,6 +218,8 @@ if __name__ == "__main__":
|
|||
|
||||
""")
|
||||
|
||||
f.write("#define SRE_MAGIC %d\n" % MAGIC)
|
||||
|
||||
dump(f, OPCODES, "SRE_OP")
|
||||
dump(f, ATCODES, "SRE")
|
||||
dump(f, CHCODES, "SRE")
|
||||
|
|
|
@ -2355,11 +2355,19 @@ __declspec(dllexport)
|
|||
#endif
|
||||
init_sre(void)
|
||||
{
|
||||
PyObject* m;
|
||||
PyObject* d;
|
||||
|
||||
/* Patch object types */
|
||||
Pattern_Type.ob_type = Match_Type.ob_type =
|
||||
Scanner_Type.ob_type = &PyType_Type;
|
||||
|
||||
Py_InitModule("_" MODULE, _functions);
|
||||
m = Py_InitModule("_" MODULE, _functions);
|
||||
d = PyModule_GetDict(m);
|
||||
|
||||
PyDict_SetItemString(
|
||||
d, "MAGIC", (PyObject*) PyInt_FromLong(SRE_MAGIC)
|
||||
);
|
||||
}
|
||||
|
||||
#endif /* !defined(SRE_RECURSIVE) */
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* See the _sre.c file for information on usage and redistribution.
|
||||
*/
|
||||
|
||||
#define SRE_MAGIC 20010115
|
||||
#define SRE_OP_FAILURE 0
|
||||
#define SRE_OP_SUCCESS 1
|
||||
#define SRE_OP_ANY 2
|
||||
|
|
Loading…
Reference in New Issue