diff options
Diffstat (limited to 'firmware/common/strrchr.c')
-rw-r--r-- | firmware/common/strrchr.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/firmware/common/strrchr.c b/firmware/common/strrchr.c new file mode 100644 index 0000000000..4f903afe2b --- /dev/null +++ b/firmware/common/strrchr.c | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | FUNCTION | ||
3 | <<strrchr>>---reverse search for character in string | ||
4 | |||
5 | INDEX | ||
6 | strrchr | ||
7 | |||
8 | ANSI_SYNOPSIS | ||
9 | #include <string.h> | ||
10 | char * strrchr(const char *<[string]>, int <[c]>); | ||
11 | |||
12 | TRAD_SYNOPSIS | ||
13 | #include <string.h> | ||
14 | char * strrchr(<[string]>, <[c]>); | ||
15 | char *<[string]>; | ||
16 | int *<[c]>; | ||
17 | |||
18 | DESCRIPTION | ||
19 | This function finds the last occurence of <[c]> (converted to | ||
20 | a char) in the string pointed to by <[string]> (including the | ||
21 | terminating null character). | ||
22 | |||
23 | RETURNS | ||
24 | Returns a pointer to the located character, or a null pointer | ||
25 | if <[c]> does not occur in <[string]>. | ||
26 | |||
27 | PORTABILITY | ||
28 | <<strrchr>> is ANSI C. | ||
29 | |||
30 | <<strrchr>> requires no supporting OS subroutines. | ||
31 | |||
32 | QUICKREF | ||
33 | strrchr ansi pure | ||
34 | */ | ||
35 | |||
36 | #include <string.h> | ||
37 | |||
38 | char * | ||
39 | _DEFUN (strrchr, (s, i), | ||
40 | _CONST char *s _AND | ||
41 | int i) | ||
42 | { | ||
43 | _CONST char *last = NULL; | ||
44 | |||
45 | if (i) | ||
46 | { | ||
47 | while ((s=strchr(s, i))) | ||
48 | { | ||
49 | last = s; | ||
50 | s++; | ||
51 | } | ||
52 | } | ||
53 | else | ||
54 | { | ||
55 | last = strchr(s, i); | ||
56 | } | ||
57 | |||
58 | return (char *) last; | ||
59 | } | ||