Backport fix of #1752175.

This commit is contained in:
Georg Brandl 2007-08-23 18:08:33 +00:00
parent 7d108b8806
commit eec47f3556
2 changed files with 7 additions and 1 deletions

View file

@ -3115,6 +3115,7 @@ decode_utf8(const char **sPtr, const char *end, char* encoding)
#endif #endif
} }
#ifdef Py_USING_UNICODE
static PyObject * static PyObject *
decode_unicode(const char *s, size_t len, int rawmode, const char *encoding) decode_unicode(const char *s, size_t len, int rawmode, const char *encoding)
{ {
@ -3176,6 +3177,7 @@ decode_unicode(const char *s, size_t len, int rawmode, const char *encoding)
Py_XDECREF(u); Py_XDECREF(u);
return v; return v;
} }
#endif
/* s is a Python string literal, including the bracketing quote characters, /* s is a Python string literal, including the bracketing quote characters,
* and r &/or u prefixes (if any), and embedded escape sequences (if any). * and r &/or u prefixes (if any), and embedded escape sequences (if any).

View file

@ -119,15 +119,19 @@ _PyImport_Init(void)
/* prepare _PyImport_Filetab: copy entries from /* prepare _PyImport_Filetab: copy entries from
_PyImport_DynLoadFiletab and _PyImport_StandardFiletab. _PyImport_DynLoadFiletab and _PyImport_StandardFiletab.
*/ */
#ifdef HAVE_DYNAMIC_LOADING
for (scan = _PyImport_DynLoadFiletab; scan->suffix != NULL; ++scan) for (scan = _PyImport_DynLoadFiletab; scan->suffix != NULL; ++scan)
++countD; ++countD;
#endif
for (scan = _PyImport_StandardFiletab; scan->suffix != NULL; ++scan) for (scan = _PyImport_StandardFiletab; scan->suffix != NULL; ++scan)
++countS; ++countS;
filetab = PyMem_NEW(struct filedescr, countD + countS + 1); filetab = PyMem_NEW(struct filedescr, countD + countS + 1);
if (filetab == NULL) if (filetab == NULL)
Py_FatalError("Can't initialize import file table."); Py_FatalError("Can't initialize import file table.");
#ifdef HAVE_DYNAMIC_LOADING
memcpy(filetab, _PyImport_DynLoadFiletab, memcpy(filetab, _PyImport_DynLoadFiletab,
countD * sizeof(struct filedescr)); countD * sizeof(struct filedescr));
#endif
memcpy(filetab + countD, _PyImport_StandardFiletab, memcpy(filetab + countD, _PyImport_StandardFiletab,
countS * sizeof(struct filedescr)); countS * sizeof(struct filedescr));
filetab[countD + countS].suffix = NULL; filetab[countD + countS].suffix = NULL;
@ -1366,7 +1370,7 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf,
saved_namelen = namelen; saved_namelen = namelen;
#endif /* PYOS_OS2 */ #endif /* PYOS_OS2 */
for (fdp = _PyImport_Filetab; fdp->suffix != NULL; fdp++) { for (fdp = _PyImport_Filetab; fdp->suffix != NULL; fdp++) {
#if defined(PYOS_OS2) #if defined(PYOS_OS2) && defined(HAVE_DYNAMIC_LOADING)
/* OS/2 limits DLLs to 8 character names (w/o /* OS/2 limits DLLs to 8 character names (w/o
extension) extension)
* so if the name is longer than that and its a * so if the name is longer than that and its a