summaryrefslogtreecommitdiff
path: root/src/vdr-plugin/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vdr-plugin/common.c')
-rw-r--r--src/vdr-plugin/common.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/vdr-plugin/common.c b/src/vdr-plugin/common.c
index 0731da9..12a5204 100644
--- a/src/vdr-plugin/common.c
+++ b/src/vdr-plugin/common.c
@@ -180,3 +180,26 @@ char *safeFilename(char *filename) {
return filename;
}
+
+cString shellEscape(const char *s) {
+ char *buffer = (char *)malloc((4*strlen(s)+3)*sizeof(char));
+ const char *src = s;
+ char *dst = buffer;
+
+ *dst++ = '\'';
+ while (*src) {
+ if (*src == '\'') {
+ *dst++ = '\'';
+ *dst++ = '\\';
+ *dst++ = '\'';
+ *dst++ = '\'';
+ src++;
+ } else {
+ *dst++ = *src++;
+ }
+ }
+ *dst++ = '\'';
+ *dst = '\0';
+
+ return cString(buffer, true);
+}