From 1fca31d9f622bfff7cd5dd868b0174ee278e2ca7 Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Mon, 26 Nov 2018 14:16:48 +0300 Subject: [PATCH] PY-32806 Parse script arguments on Java side to make it consistent with Run and Debug --- python/helpers/pydev/_pydev_bundle/pydev_umd.py | 3 +-- .../python/run/PythonScriptCommandLineState.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/python/helpers/pydev/_pydev_bundle/pydev_umd.py b/python/helpers/pydev/_pydev_bundle/pydev_umd.py index b434fc6cd26c..afa2231e7c90 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_umd.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_umd.py @@ -31,7 +31,6 @@ OTHER DEALINGS IN THE SOFTWARE. """ import os -import shlex import sys from _pydev_bundle import pydev_imports @@ -182,7 +181,7 @@ def runfile(filename, args=None, wdir=None, is_module=False, global_vars=None): sys.argv = [filename] if args is not None: - for arg in shlex.split(args): + for arg in args: sys.argv.append(arg) if wdir is not None: diff --git a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java index 8381b4022494..c1119bd3d7ea 100644 --- a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java @@ -279,9 +279,16 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { sb.append("runfile('").append(escape(scriptPath)).append("'"); - String scriptParameters = myConfig.getScriptParameters(); - if (!scriptParameters.isEmpty()) { - sb.append(", args='").append(escape(scriptParameters)).append("'"); + final String[] scriptParameters = ParametersList.parse(myConfig.getScriptParameters()); + if (scriptParameters.length != 0) { + sb.append(", args=["); + for (int i = 0; i < scriptParameters.length; i++) { + if (i != 0) { + sb.append(", "); + } + sb.append("'").append(escape(scriptParameters[i])).append("'"); + } + sb.append("]"); } if (!workingDir.isEmpty()) {