Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / muscle / enumtostr.cpp
diff --git a/website/archive/binaries/mac/src/muscle/enumtostr.cpp b/website/archive/binaries/mac/src/muscle/enumtostr.cpp
new file mode 100644 (file)
index 0000000..8b085a9
--- /dev/null
@@ -0,0 +1,16 @@
+#include "muscle.h"\r
+#include <stdio.h>\r
+\r
+static char szMsg[64];\r
+\r
+// Define XXXToStr(XXX x) functions for each enum type XXX.\r
+#define s(t)   const char *t##ToStr(t x) { switch (x) { case t##_Undefined: return "Undefined";\r
+#define c(t, x)        case t##_##x: return #x;\r
+#define e(t)   } sprintf(szMsg, #t "_%d", x); return szMsg; }\r
+#include "enums.h"\r
+\r
+// Define StrToXXX(const char *Str) functions for each enum type XXX.\r
+#define s(t)   t StrTo##t(const char *Str) { if (0) ;\r
+#define c(t, x)        else if (0 == stricmp(#x, Str)) return t##_##x;\r
+#define e(t)   Quit("Invalid value %s for type %s", Str, #t); return t##_Undefined; }\r
+#include "enums.h"\r