summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/lv1ws.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/lv1ws.c')
-rwxr-xr-xreference/C/CONTRIB/SNIP/lv1ws.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/lv1ws.c b/reference/C/CONTRIB/SNIP/lv1ws.c
new file mode 100755
index 0000000..b029cfe
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/lv1ws.c
@@ -0,0 +1,36 @@
+/*
+** Originally published as part of the MicroFirm Function Library
+**
+** Copyright 1987-88, Robert B.Stout
+**
+** Subset version released to the public domain, 1992
+**
+** Makes all whitespace single spaces. Passed a string, lv1ws()
+** converts all multiple whitespace characters to single spaces.
+*/
+
+#include <ctype.h>
+
+void lv1ws(char *str)
+{
+ char *ibuf = str, *obuf = str;
+ int i = 0, cnt = 0;
+
+ while(*ibuf)
+ {
+ if(isspace(*ibuf) && cnt)
+ ibuf++;
+ else
+ {
+ if (!isspace(*ibuf))
+ cnt = 0;
+ else
+ {
+ *ibuf = ' ';
+ cnt = 1;
+ }
+ obuf[i++] = *ibuf++;
+ }
+ }
+ obuf[i] = '\0';
+}