All pastes #413449 Raw Edit

Untitled

public text v1 · immutable
#413449 ·published 2007-03-28 12:58 UTC
rendered paste body
diff --git a/src/bcop.h b/src/bcop.h
index ed28968..1f0f0d2 100644
--- a/src/bcop.h
+++ b/src/bcop.h
@@ -212,6 +212,7 @@ typedef struct _ParserState {
 char * strToLower(char *str);
 char * strToUpper(char *str);
 char * strToFirstUp(char *str);
+char * strToCamel(char *str);
 
 int genCode(char *src, char *hdr);
 
diff --git a/src/xml_parser.c b/src/xml_parser.c
index 2609e59..5fabf3e 100644
--- a/src/xml_parser.c
+++ b/src/xml_parser.c
@@ -573,7 +573,7 @@ parseOption(xmlDoc *doc, ParserState* pState, xmlNode *node)
 	Option *ns = calloc(1, sizeof(Option));
 	ns->name = strToLower((char *)name);
 	ns->uName = strToUpper((char *)name);
-	ns->fUName = strToFirstUp((char *)name);
+	ns->fUName = strToCamel((char *)name);
 	ns->type = sType;
 	ns->group = (pState->group)?strdup(pState->group):NULL;
 	ns->subGroup = (pState->subGroup)?strdup(pState->subGroup):NULL;
@@ -833,6 +833,28 @@ char * strToFirstUp(char *str)
 	return ret;
 }
 
+char * strToCamel(char *str)
+{
+	char *lowString = strToLower(str);
+	char *token;
+	char *buffer;
+
+	buffer = malloc (sizeof(char) * (strlen(lowString) + 1));
+	strcpy (buffer, "");
+
+	token = strtok (lowString, "_");
+	while (token)
+	{
+		token[0] = toupper(token[0]);
+		strcat (buffer, token);
+		token = strtok (NULL, "_");
+	}
+
+	free (lowString);
+	
+	return buffer;
+}
+
 static void usage(void)
 {
 	printf("Usage: %9s [options] <options file>\n",programName);