From e10078a5ae9b7d80cd56f547b4b8ce2f14abbc88 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Thu, 15 May 2014 14:25:30 +1000 Subject: Escape notecard lines. --- src/love/love.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/love') diff --git a/src/love/love.c b/src/love/love.c index c3f1e3e..5553670 100644 --- a/src/love/love.c +++ b/src/love/love.c @@ -435,7 +435,19 @@ static Eina_Bool _dataLuaSL(void *data, int type, Ecore_Con_Event_Server_Data *e { if (temp) { - sendForth(ourGlobals->serverLuaSL, me->SID, "events.dataserver(\"%s\", \"%s\")", key, temp); + char buf2[PATH_MAX]; + int i, j, len = strlen(temp); + + // Escape ' and \ characters. + for (i = 0, j = 0; i <= len; i++) + { + if ('\'' == temp[i]) + buf2[j++] = '\\'; + if ('\\' == temp[i]) + buf2[j++] = '\\'; + buf2[j++] = temp[i]; + } + sendForth(ourGlobals->serverLuaSL, me->SID, "events.dataserver(\"%s\", '%s')", key, buf2); } else sendForth(ourGlobals->serverLuaSL, me->SID, "events.dataserver(\"%s\", \"EndOfFuckingAround\")", key); -- cgit v1.1