diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | isys/str.c | 40 | ||||
-rw-r--r-- | isys/str.h | 2 | ||||
-rw-r--r-- | loader2/net.c | 15 |
4 files changed, 45 insertions, 15 deletions
@@ -1,6 +1,9 @@ 2007-03-06 David Cantrell <dcantrell@redhat.com> * loader2/urls.c (convertURLToUI): Whitespace cleanup before code changes. + * loader2/net.c (strcount): Moved to isys/str.c. + * isys/str.c: Added strcount() function. + * isys/str.h: Prototype for strcount. 2007-03-05 Jeremy Katz <katzj@redhat.com> diff --git a/isys/str.c b/isys/str.c index a85ba3d5b..b3a6fdd9a 100644 --- a/isys/str.c +++ b/isys/str.c @@ -73,4 +73,44 @@ char *str2lower(char *str) { return str2case(str, 'A', 'Z', 32); } +/** + * Pretty much an exact copy of index(3) from the C library. + * @param str String to scan. + * @param ch Character to scan for. + * @return Position of ch in str, NULL if not found. + */ +char *strindex(char *str, int ch) { + if (str == NULL) + return NULL; + + do { + if (*str == ch) + return str; + else + str++; + } while (str != NULL); + + return NULL; +} + +/** + * Return number of occurrences of a character in a string. + * @param str String to scan. + * @param ch Character to scan for. + * @return Number of occurrences of ch in str. + */ +int strcount(char *str, int ch) { + int retval = 0; + char *tmp = str; + + do { + if ((tmp = strindex(tmp, ch)) != NULL) { + tmp++; + retval++; + } + } while (tmp != NULL); + + return retval; +} + /* vim:set shiftwidth=4 softtabstop=4: */ diff --git a/isys/str.h b/isys/str.h index 10b3d9865..d5910fe45 100644 --- a/isys/str.h +++ b/isys/str.h @@ -17,5 +17,7 @@ char *str2case(char *str, char lower, char upper, int shift); char *str2upper(char *str); char *str2lower(char *str); +int strcount(char *str, int ch); +char *strindex(char *str, int ch); /* vim:set shiftwidth=4 softtabstop=4: */ diff --git a/loader2/net.c b/loader2/net.c index ba59f5d5b..c56e139b0 100644 --- a/loader2/net.c +++ b/loader2/net.c @@ -1895,21 +1895,6 @@ int kickstartNetworkUp(struct loaderData_s * loaderData, return 0; } -static int strcount (char *str, int ch) -{ - int retval = 0; - char *tmp = str; - - do { - if ((tmp = index(tmp, ch)) != NULL) { - tmp++; - retval++; - } - } while (tmp != NULL); - - return retval; -} - void splitHostname (char *str, char **host, char **port) { char *rightbrack = strchr(str, ']'); |