diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2007-09-17 23:06:23 +0000 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2007-09-17 23:06:23 +0000 |
commit | 2077cebca00f57061b6a2c0ba41ab24cc97f3596 (patch) | |
tree | 92c085016a806e5c4e9f23b28c8e378f7de8c4e0 /firmware/common | |
parent | 689d5fd4462c8b2069278e9c1c7ee054aae0b946 (diff) | |
download | rockbox-2077cebca00f57061b6a2c0ba41ab24cc97f3596.tar.gz rockbox-2077cebca00f57061b6a2c0ba41ab24cc97f3596.zip |
* implement strstr
* clean up usb_arcotg_dcd_enable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14740 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/common')
-rw-r--r-- | firmware/common/strstr.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/firmware/common/strstr.c b/firmware/common/strstr.c new file mode 100644 index 0000000000..2f33629997 --- /dev/null +++ b/firmware/common/strstr.c | |||
@@ -0,0 +1,45 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id: $ | ||
9 | * | ||
10 | * Copyright (C) 2007 by Christian Gmeiner | ||
11 | * | ||
12 | ****************************************************************************/ | ||
13 | |||
14 | #include <string.h> | ||
15 | |||
16 | /** | ||
17 | * Locate substring. | ||
18 | * @param search c string to be scanned. | ||
19 | * @param find c string containing the sequence of characters to match. | ||
20 | * @return a pointer to the first occurrence in search of any of the | ||
21 | * entire sequence of characters specified in find, or a | ||
22 | * null pointer if the sequence is not present in search. | ||
23 | */ | ||
24 | char *strstr(const char *search, const char *find) | ||
25 | { | ||
26 | char *hend; | ||
27 | char *a, *b; | ||
28 | |||
29 | if (*find == 0) return (char*)search; | ||
30 | hend = (char *)search + strlen(search) - strlen(find) + 1; | ||
31 | while (search < hend) { | ||
32 | if (*search == *find) { | ||
33 | a = (char *)search; | ||
34 | b = (char *)find; | ||
35 | for (;;) { | ||
36 | if (*b == 0) return (char*)search; | ||
37 | if (*a++ != *b++) { | ||
38 | break; | ||
39 | } | ||
40 | } | ||
41 | } | ||
42 | search++; | ||
43 | } | ||
44 | return 0; | ||
45 | } | ||