Index: trunk/Ohana/src/libohana/include/ohana.h
===================================================================
--- trunk/Ohana/src/libohana/include/ohana.h	(revision 34459)
+++ trunk/Ohana/src/libohana/include/ohana.h	(revision 34460)
@@ -256,4 +256,6 @@
 int     iparse                 PROTO((int *X, int NX, char *line));
 int     iparse_csv             PROTO((int *X, int NX, char *line));
+int     charparse_csv          PROTO((char *X, int NX, char *line));
+int     charparse              PROTO((char *X, int NX, char *line));
 int     tparse                 PROTO((time_t *X, int NX, char *line));
 int     tparse_csv             PROTO((time_t *X, int NX, char *line));
Index: trunk/Ohana/src/libohana/src/string.c
===================================================================
--- trunk/Ohana/src/libohana/src/string.c	(revision 34459)
+++ trunk/Ohana/src/libohana/src/string.c	(revision 34460)
@@ -267,4 +267,36 @@
 }
 
+int charparse (char *X, int NX, char *line) {
+
+  int i;
+  char *word;
+
+  word = line;
+  for (i = 0; i < NX - 1; i++)
+    word = _parse_nextword (word);
+
+  *X = word[0];
+  return (1);
+}
+
+int charparse_csv (char *X, int NX, char *line) {
+
+  int i;
+  char *word;
+
+  word = line;
+  for (i = 0; i < NX - 1; i++)
+    word = _parse_nextword_csv (word);
+  
+  if (word[0] == '"') word[0] = word[1];
+  if (word[0] == ',') {
+      *X = 0;
+      return 1;
+  }
+
+  *X = word[0];
+  return (1);
+}
+
 int tparse (time_t *X, int NX, char *line) {
 
