RFindInReadable_Impl( const basic_nsAReadableString<CharT>& aPattern,
RFindInReadable_Impl( const typename nsStringTraits<CharT>::abstract_string_type& aPattern,
RFindInReadable_Impl( const basic_nsAReadableString<CharT>& aPattern,                      nsReadingIterator<CharT>& aSearchStart,                      nsReadingIterator<CharT>& aSearchEnd )  {    PRBool found_it = PR_FALSE;    nsReadingIterator<CharT> savedSearchEnd(aSearchEnd);    nsReadingIterator<CharT> searchStart(aSearchStart), searchEnd(aSearchEnd);    while ( searchStart != searchEnd )      {        if ( FindInReadable(aPattern, searchStart, searchEnd) )          {            found_it = PR_TRUE;              // this is the best match so far, so remember it            aSearchStart = searchStart;            aSearchEnd = searchEnd;              // ...and get ready to search some more              //  (it's tempting to set |searchStart=searchEnd| ... but that misses overlapping patterns)            ++searchStart;            searchEnd = savedSearchEnd;          }      }      // if we never found it, return an empty range    if ( !found_it )      aSearchStart = aSearchEnd;    return found_it;  }