summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--isys/str.c40
-rw-r--r--isys/str.h2
-rw-r--r--loader2/net.c15
4 files changed, 45 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index f3b0b181f..42eddaff7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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, ']');