commit 030672ab8f58fc848fcff87713b57e392e3b56e0
parent e10d74a7780263747c4340a78c1286b453cd4785
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Sat, 15 Jul 2017 11:30:20 -0400
Fix Errors In Schema's 'default' Field
Diffstat:
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/Effects/Effect.h b/src/Effects/Effect.h
@@ -45,7 +45,7 @@
#endif
#define rEffParCommon(pname, rshort, rdoc, idx, ...) \
-{STRINGIFY(pname) ":", rProp(parameter) rLinear(0,127) \
+{STRINGIFY(pname) "::i", rProp(parameter) rLinear(0,127) \
rShort(rshort) rDoc(rdoc), \
0, \
[](const char *msg, rtosc::RtData &d) \
diff --git a/src/Misc/Schema.cpp b/src/Misc/Schema.cpp
@@ -11,6 +11,30 @@ void walk_ports2(const rtosc::Ports *base,
namespace zyn {
+static const char *escape_string(const char *msg)
+{
+ if(!msg)
+ return NULL;
+ char *out = (char*)malloc(strlen(msg)*2+1);
+ memset(out, 0, strlen(msg)*2+1);
+ char *itr = out;
+ while(*msg) {
+ if(*msg == '"') {
+ *itr++ = '\\';
+ *itr++ = '\"';
+ } else if(*msg == '\\') {
+ *itr++ = '\\';
+ *itr++ = '\\';
+ } else {
+ *itr++ = *msg;
+ }
+
+ msg++;
+
+ }
+ return out;
+}
+
/*
* root :
* - 'parameters' : [parameter...]
@@ -181,6 +205,7 @@ void dump_param_cb(const rtosc::Port *p, const char *full_name, const char*,
const char *min = meta["min"];
const char *max = meta["max"];
const char *def = meta["default"];
+ def = escape_string(def);
for(auto m:meta) {
if(strlen(m.title) >= 5 && !memcmp(m.title, "map ", 4)) {