This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Perl_instr() implement with libc equivalent.
authorKarl Williamson <public@khwilliamson.com>
Mon, 24 Dec 2012 15:56:22 +0000 (08:56 -0700)
committerKarl Williamson <public@khwilliamson.com>
Thu, 27 Dec 2012 16:13:45 +0000 (09:13 -0700)
commit5d1d68e202770f3a59cef999bc11d534a2364d5f
tree358620185a1047ddce0b8090292c693c67006807
parentca143fe89ad63be1f1d07f4a6d5fee4ad416cd3f
Perl_instr() implement with libc equivalent.

C89 libc contains the strstr() function that does the same thing as
instr().  Convert to use it under the assumption that it is faster than
our code, and is less for us to maintain.  Because early versions of
Lunix libc had a bug when the 'little' argument was NULL (fixed in late
1994), check for that explicitly.  If we were willing to ignore issues
with such old libc versions, or if we had a Configure probe that tested
for the bug, we could replace the macro instr() completely with a call
to strstr().

The memmem() GNU extension does the same thing as Perl_ninstr().  It
however has bugs in much later libc versions.  A Configure probe could
be written to see if it is usable.
util.c