From dd6b9e3adeb9e219a458c0492dd2162fcfa09402 Mon Sep 17 00:00:00 2001
From: kohleman <kohleman>
Date: Tue, 26 Aug 2014 14:45:05 +0000
Subject: [PATCH] -properly escape special characters like '\n' in a
 script/plugin

SVN: 32365
---
 openbis/dist/server/export-master-data.py | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/openbis/dist/server/export-master-data.py b/openbis/dist/server/export-master-data.py
index bd324bfeaba..df0d3a9da55 100644
--- a/openbis/dist/server/export-master-data.py
+++ b/openbis/dist/server/export-master-data.py
@@ -62,13 +62,20 @@ def strLiteral(var):
         return 'None'
 
 def scriptify(scriptBody):
+
+  def escape_string(s):
+      return '\\' + s
+      
   returnstring = ""
-  comment = "'''"
-  escapedComment = '\\' + comment
+  
+  special_characters_dict = {'comment':"'''",   'newline':"\\n", 'carriage_return':"\\r",
+                             'tab':"\\t", 'bell':"\\a", 'backspace':"\\b", 'formfeed':"\\f",
+                             'vertical_tab':"\\v",  }
+
   lineIterator = iter(scriptBody.splitlines())
   for line in lineIterator:
-    if comment in line:
-      line = line.replace (comment, escapedComment)
+    for special_character in special_characters_dict.values():
+      line=line.replace(special_character, escape_string(special_character))
     returnstring += line + "\n"
   return ("'''" + returnstring + "'''")
 
-- 
GitLab