PCRE support name conflict with Tcl

Currently, there is a name conflict between ExpectPy and the Tcl library that is used by Expect itself. Expect's exp_expectv() function calls TclRegExec() when given a regular expression.

When compiled with PCRE, TclRegExec is overridden with a function to run the PCRE regular expression code. This would normally cause a problem when another dynamically loaded module is imported that uses Tcl (like _tkinter). There are two solutions:

  1. If the other module(s) will not need regular expressions inside Tcl (like _tkinter), then import ExpectPy before the other module(s).
  2. If the other module(s) require Tcl's regular expressions, then compile ExpectPy with configure's --with-tcl option instead.
If you know that you will not be using regular expressions, then compile ExpectPy with --without-pcre.

The variable re_type will contain either "re", "tclre" or None based on which type of regular expression support there is.

This is not a bug that can be fixed within this module, but is a symbol conflict between Tcl and PCRE-support inside ExpectPy.


Stty objects only work on unspawned objects

I have not determined the reason, but spawn().stty fails with the error EINVAL. Only use it on error_spawn_id, user_spawn_id and tty_spawn_id objects.


Python Setup earlier than 1.5.2

You cannot use makesetup with ExpectPy in Python 1.5.1 or earlier. There is a bug within makesetup which does not include the extension header files before the Python header files. This causes a conflict with the patchlevel.h file (and might cause other problems as well). The program also cannot handle absolute pathnames.

These have been fixed in Python 1.5.2. For other releases, apply the appropriate patch for makesetup in the etc/ directory.


Python 1.4 and shared objects

The system tests have failed creating ExpectPy as a shared object (dynamic library) module with Python 1.4.