diff options
author | K. Richard Pixley <rich@cygnus> | 1991-04-04 18:19:53 +0000 |
---|---|---|
committer | K. Richard Pixley <rich@cygnus> | 1991-04-04 18:19:53 +0000 |
commit | fecd2382e77b89f12c9d630ed4e42e9a54ba6953 (patch) | |
tree | 6cddf76f492c3485605175c97c13d9a24c65306f /gas/strstr.c | |
parent | b6fc45ca4c306a4f6f6bdbaf90a69d3dab62777a (diff) | |
download | gdb-fecd2382e77b89f12c9d630ed4e42e9a54ba6953.zip gdb-fecd2382e77b89f12c9d630ed4e42e9a54ba6953.tar.gz gdb-fecd2382e77b89f12c9d630ed4e42e9a54ba6953.tar.bz2 |
Initial revision
Diffstat (limited to 'gas/strstr.c')
-rw-r--r-- | gas/strstr.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/gas/strstr.c b/gas/strstr.c new file mode 100644 index 0000000..9823249 --- /dev/null +++ b/gas/strstr.c @@ -0,0 +1,55 @@ +/* strstr - find first occurrence of wanted in s + Copyright (C) 1989, 1990, 1991 Free Software Foundation. + +This file is part of GAS, the GNU Assembler. + +GAS is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GAS is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GAS; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* static const char rcsid[] = "$Id$"; */ + + /* If your compiler is really ansi, then you don't need this. */ +#ifndef __STDC__ + +#define SIZET int + +#define NULL 0 + +#include <string.h> + +char * /* found string, or NULL if none */ +strstr(s, wanted) +char *s; +char *wanted; +{ + register char *scan; + register SIZET len; + register char firstc; + + /* + * The odd placement of the two tests is so "" is findable. + * Also, we inline the first char for speed. + * The ++ on scan has been moved down for optimization. + */ + firstc = *wanted; + len = strlen(wanted); + for (scan = s; *scan != firstc || strncmp(scan, wanted, len) != 0; ) + if (*scan++ == '\0') + return(NULL); + return(scan); +} /* strstr() */ + +#endif /* __STDC__ */ + +/* end of strstr.c */ |