1*b30d1939SAndy Fiddaman /*********************************************************************** 2*b30d1939SAndy Fiddaman * * 3*b30d1939SAndy Fiddaman * This software is part of the ast package * 4*b30d1939SAndy Fiddaman * Copyright (c) 1985-2011 AT&T Intellectual Property * 5*b30d1939SAndy Fiddaman * and is licensed under the * 6*b30d1939SAndy Fiddaman * Eclipse Public License, Version 1.0 * 7*b30d1939SAndy Fiddaman * by AT&T Intellectual Property * 8*b30d1939SAndy Fiddaman * * 9*b30d1939SAndy Fiddaman * A copy of the License is available at * 10*b30d1939SAndy Fiddaman * http://www.eclipse.org/org/documents/epl-v10.html * 11*b30d1939SAndy Fiddaman * (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12*b30d1939SAndy Fiddaman * * 13*b30d1939SAndy Fiddaman * Information and Software Systems Research * 14*b30d1939SAndy Fiddaman * AT&T Research * 15*b30d1939SAndy Fiddaman * Florham Park NJ * 16*b30d1939SAndy Fiddaman * * 17*b30d1939SAndy Fiddaman * Glenn Fowler <gsf@research.att.com> * 18*b30d1939SAndy Fiddaman * David Korn <dgk@research.att.com> * 19*b30d1939SAndy Fiddaman * Phong Vo <kpv@research.att.com> * 20*b30d1939SAndy Fiddaman * * 21*b30d1939SAndy Fiddaman ***********************************************************************/ 22*b30d1939SAndy Fiddaman #pragma prototyped 23*b30d1939SAndy Fiddaman 24*b30d1939SAndy Fiddaman #if defined(__STDPP__directive) && defined(__STDPP__hide) 25*b30d1939SAndy Fiddaman __STDPP__directive pragma pp:hide strstr 26*b30d1939SAndy Fiddaman #else 27*b30d1939SAndy Fiddaman #define strstr ______strstr 28*b30d1939SAndy Fiddaman #endif 29*b30d1939SAndy Fiddaman 30*b30d1939SAndy Fiddaman #include <ast.h> 31*b30d1939SAndy Fiddaman 32*b30d1939SAndy Fiddaman #if defined(__STDPP__directive) && defined(__STDPP__hide) 33*b30d1939SAndy Fiddaman __STDPP__directive pragma pp:nohide strstr 34*b30d1939SAndy Fiddaman #else 35*b30d1939SAndy Fiddaman #undef strstr 36*b30d1939SAndy Fiddaman #endif 37*b30d1939SAndy Fiddaman 38*b30d1939SAndy Fiddaman #if _lib_strstr 39*b30d1939SAndy Fiddaman 40*b30d1939SAndy Fiddaman NoN(strstr) 41*b30d1939SAndy Fiddaman 42*b30d1939SAndy Fiddaman #else 43*b30d1939SAndy Fiddaman 44*b30d1939SAndy Fiddaman #if defined(__EXPORT__) 45*b30d1939SAndy Fiddaman #define extern __EXPORT__ 46*b30d1939SAndy Fiddaman #endif 47*b30d1939SAndy Fiddaman 48*b30d1939SAndy Fiddaman extern char* 49*b30d1939SAndy Fiddaman strstr(register const char* s1, register const char* s2) 50*b30d1939SAndy Fiddaman { 51*b30d1939SAndy Fiddaman register int c1; 52*b30d1939SAndy Fiddaman register int c2; 53*b30d1939SAndy Fiddaman register const char* t1; 54*b30d1939SAndy Fiddaman register const char* t2; 55*b30d1939SAndy Fiddaman 56*b30d1939SAndy Fiddaman if (s2) 57*b30d1939SAndy Fiddaman { 58*b30d1939SAndy Fiddaman if (!*s2) 59*b30d1939SAndy Fiddaman return (char*)s1; 60*b30d1939SAndy Fiddaman c2 = *s2++; 61*b30d1939SAndy Fiddaman while (c1 = *s1++) 62*b30d1939SAndy Fiddaman if (c1 == c2) 63*b30d1939SAndy Fiddaman { 64*b30d1939SAndy Fiddaman t1 = s1; 65*b30d1939SAndy Fiddaman t2 = s2; 66*b30d1939SAndy Fiddaman do 67*b30d1939SAndy Fiddaman { 68*b30d1939SAndy Fiddaman if (!*t2) 69*b30d1939SAndy Fiddaman return (char*)s1 - 1; 70*b30d1939SAndy Fiddaman } while (*t1++ == *t2++); 71*b30d1939SAndy Fiddaman } 72*b30d1939SAndy Fiddaman } 73*b30d1939SAndy Fiddaman return 0; 74*b30d1939SAndy Fiddaman } 75*b30d1939SAndy Fiddaman 76*b30d1939SAndy Fiddaman #endif 77