parameters: (self, buffer, freshlen, searchwindowsize=None)
return_statement: return best_index
docstring: This searches 'buffer' for the first occurence of one of the regular
          expressions. 'freshlen' must indicate the number of bytes at the end of
          'buffer' which have not been searched before.
  
          See class spawn for the 'searchwindowsize' argument.
  
          If there is a match this returns the index of that string, and sets
          'start', 'end' and 'match'. Otherwise, returns -1.
docstring_summary: This searches 'buffer' for the first occurence of one of the regular
          expressions. 'freshlen' must indicate the number of bytes at the end of
          'buffer' which have not been searched before.
docstring_tokens: This searches buffer for the first occurence of one of the regular expressions . freshlen must indicate the number of bytes at the end of buffer which have not been searched before .
function: def search(self, buffer, freshlen, searchwindowsize=None):
          """This searches 'buffer' for the first occurence of one of the regular
          expressions. 'freshlen' must indicate the number of bytes at the end of
          'buffer' which have not been searched before.
  
          See class spawn for the 'searchwindowsize' argument.
  
          If there is a match this returns the index of that string, and sets
          'start', 'end' and 'match'. Otherwise, returns -1."""
  
          absurd_match = len(buffer)
          first_match = absurd_match
          # 'freshlen' doesn't help here -- we cannot predict the
          # length of a match, and the re module provides no help.
          if searchwindowsize is None:
              searchstart = 0
          else:
              searchstart = max(0, len(buffer) - searchwindowsize)
          for index, s in self._searches:
              match = s.search(buffer, searchstart)
              if match is None:
                  continue
              n = match.start()
              if n < first_match:
                  first_match = n
                  the_match = match
                  best_index = index
          if first_match == absurd_match:
              return -1
          self.start = first_match
          self.match = the_match
          self.end = self.match.end()
          return best_index
function_tokens: def search ( self , buffer , freshlen , searchwindowsize = None ) : absurd_match = len ( buffer ) first_match = absurd_match # 'freshlen' doesn't help here -- we cannot predict the # length of a match, and the re module provides no help. if searchwindowsize is None : searchstart = 0 else : searchstart = max ( 0 , len ( buffer ) - searchwindowsize ) for index , s in self . _searches : match = s . search ( buffer , searchstart ) if match is None : continue n = match . start ( ) if n < first_match : first_match = n the_match = match best_index = index if first_match == absurd_match : return - 1 self . start = first_match self . match = the_match self . end = self . match . end ( ) return best_index