• Barry Warsaw's avatar
    Several changes. Test program to follow. · c3573256
    Barry Warsaw yazdı
    - Where optional arguments were being used, converted to
      PyArg_ParseTuple() style instead of nested PyArg_Parse() style.
    
    - Check for and handle many potential error conditions that were never
      being tested.
    
    - internal reg_* functions renamed to regobj_* (makes it easier to
      figure out which are global regex functions and which are for regex
      objects).
    
    - reg_group (now regobj_group) was quite extensively reworked.  it no
      longer recurses to do its job (by factoring core functionality into
      a separate function that knows about string and integer indexes).
    
    - some minor formatting fixes.
    
    - regex_set_syntax() now invalidates the cache.  Without this change
      (in the example below), the second search would produce different
      output depending on whether the first search were performed or not
      (since performing the first search would cache the compiled object
      with RE_SYNTAX_EMACS, causing the second test to unexpectedly fail).
    
      regex.search('(a+)|(b+)', 'cdb')
      prev = regex.set_syntax(RE_SYNTAX_AWK)
      regex.search('(a+)|(b+)', 'cdb')
    c3573256
regexmodule.c 15.7 KB