summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/utils.c19
-rw-r--r--utils/utils.h4
2 files changed, 21 insertions, 2 deletions
diff --git a/utils/utils.c b/utils/utils.c
index a5df77f7b..8440c7b12 100644
--- a/utils/utils.c
+++ b/utils/utils.c
@@ -1,5 +1,5 @@
/**
- * $Id: utils.c,v 1.1.1.1 2002/04/22 09:24:34 bursa Exp $
+ * $Id: utils.c,v 1.2 2002/05/21 21:27:29 bursa Exp $
*/
#include <ctype.h>
@@ -73,3 +73,20 @@ char * load(const char * const path)
fclose(fp);
return buf;
}
+
+char * squash_whitespace(const char * s)
+{
+ char * c = malloc(strlen(s) + 1);
+ int i = 0, j = 0;
+ if (c == 0) die("Out of memory in squash_whitespace()");
+ do {
+ if (isspace(s[i])) {
+ c[j++] = ' ';
+ while (s[i] != 0 && isspace(s[i]))
+ i++;
+ }
+ c[j++] = s[i++];
+ } while (s[i - 1] != 0);
+ return c;
+}
+
diff --git a/utils/utils.h b/utils/utils.h
index ced14cb6f..445c7167e 100644
--- a/utils/utils.h
+++ b/utils/utils.h
@@ -1,5 +1,5 @@
/**
- * $Id: utils.h,v 1.1.1.1 2002/04/22 09:24:34 bursa Exp $
+ * $Id: utils.h,v 1.2 2002/05/21 21:27:29 bursa Exp $
*/
void die(const char * const error);
@@ -9,3 +9,5 @@ void * xcalloc(const size_t n, const size_t size);
void * xrealloc(void * p, const size_t size);
char * xstrdup(const char * const s);
char * load(const char * const path);
+char * squash_whitespace(const char * s);
+