src/hg/autoSql/autoSql.c 1.38
1.38 2009/07/04 04:45:29 markd
adjust enum/set values to be valid C indentifiers
Index: src/hg/autoSql/autoSql.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/autoSql/autoSql.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -b -B -U 4 -r1.37 -r1.38
--- src/hg/autoSql/autoSql.c 17 Mar 2009 23:31:45 -0000 1.37
+++ src/hg/autoSql/autoSql.c 4 Jul 2009 04:45:29 -0000 1.38
@@ -84,9 +84,18 @@
static void cSymTypePrName(struct asObject *dbObj, char *name, FILE *f)
/* print the C type name, prefixed with the object name */
{
-fprintf(f, "%s%c%s", dbObj->name, toupper(name[0]), name+1);
+char cname[1024];
+safef(cname, sizeof(cname), "%s%c%s", dbObj->name, toupper(name[0]), name+1);
+// Fix name so that it is a valid C identifier.
+char *c;
+for (c = cname; *c != '\0'; c++)
+ {
+ if (!(isalnum(*c) || (*c == '_')))
+ *c = '_';
+ }
+fputs(cname, f);
}
void cSymTypeDef(struct asObject *dbObj, struct asColumn *col, FILE *f)
/* print out C enum for enum or set columns. enum and value names are