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