| OLD | NEW |
| (Empty) |
| 1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | |
| 2 /* This Source Code Form is subject to the terms of the Mozilla Public | |
| 3 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
| 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
| 5 | |
| 6 #include "plstr.h" | |
| 7 #include <string.h> | |
| 8 | |
| 9 PR_IMPLEMENT(char *) | |
| 10 PL_strchr(const char *s, char c) | |
| 11 { | |
| 12 if( (const char *)0 == s ) return (char *)0; | |
| 13 | |
| 14 return strchr(s, c); | |
| 15 } | |
| 16 | |
| 17 PR_IMPLEMENT(char *) | |
| 18 PL_strrchr(const char *s, char c) | |
| 19 { | |
| 20 if( (const char *)0 == s ) return (char *)0; | |
| 21 | |
| 22 return strrchr(s, c); | |
| 23 } | |
| 24 | |
| 25 PR_IMPLEMENT(char *) | |
| 26 PL_strnchr(const char *s, char c, PRUint32 n) | |
| 27 { | |
| 28 if( (const char *)0 == s ) return (char *)0; | |
| 29 | |
| 30 for( ; n && *s; s++, n-- ) | |
| 31 if( *s == c ) | |
| 32 return (char *)s; | |
| 33 | |
| 34 if( ((char)0 == c) && (n > 0) && ((char)0 == *s) ) return (char *)s; | |
| 35 | |
| 36 return (char *)0; | |
| 37 } | |
| 38 | |
| 39 PR_IMPLEMENT(char *) | |
| 40 PL_strnrchr(const char *s, char c, PRUint32 n) | |
| 41 { | |
| 42 const char *p; | |
| 43 | |
| 44 if( (const char *)0 == s ) return (char *)0; | |
| 45 | |
| 46 for( p = s; n && *p; p++, n-- ) | |
| 47 ; | |
| 48 | |
| 49 if( ((char)0 == c) && (n > 0) && ((char)0 == *p) ) return (char *)p; | |
| 50 | |
| 51 for( p--; p >= s; p-- ) | |
| 52 if( *p == c ) | |
| 53 return (char *)p; | |
| 54 | |
| 55 return (char *)0; | |
| 56 } | |
| OLD | NEW |