From f107a8c90168124462ddd00db015810081d4be2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Mon, 12 Aug 2019 20:32:54 +0100 Subject: [PATCH 1/2] construct final url from parsed output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ifd733625a439685ad307603eb2b00bf463eb9ca9 Reviewed-on: https://gerrit.libreoffice.org/77373 Tested-by: Jenkins Reviewed-by: Stephan Bergmann (cherry picked from commit 87959e5deea6d33cd35dbb3b8423056f9566710e) Reviewed-on: https://gerrit.libreoffice.org/77377 (cherry picked from commit c03acb9b8a97254cfcf7c45ef920b93b7f1dd344) an absolute uri is invalid input Change-Id: I392be4282be8ed67e3451b28d2c9f22acd4c87fc Reviewed-on: https://gerrit.libreoffice.org/77564 Reviewed-by: Stephan Bergmann Tested-by: Stephan Bergmann (cherry picked from commit 3c076e54f736980e208f5c27ecf179aa90aea103) Reviewed-on: https://gerrit.libreoffice.org/77572 Tested-by: Jenkins (cherry picked from commit 5445f7ffd09e891b220dabb19cd013bcf591fc08) Improve check for absolute URI Change-Id: I4dee44832107f72f8f3fb68554428dc1e646c346 Reviewed-on: https://gerrit.libreoffice.org/77706 Tested-by: Jenkins Reviewed-by: Stephan Bergmann (cherry picked from commit c79efeb66f7951305d0334bc288aee1c571a8728) Reviewed-on: https://gerrit.libreoffice.org/77724 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit 52f7aa318722bd17c77ee5c4fa8307936e7b53af) --- scripting/source/pyprov/pythonscript.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/scripting/source/pyprov/pythonscript.py b/scripting/source/pyprov/pythonscript.py index 64e1337d642e..acb6184bf437 100644 --- a/scripting/source/pyprov/pythonscript.py +++ b/scripting/source/pyprov/pythonscript.py @@ -224,13 +224,24 @@ class MyUriHelper: sStorageUri = sStorageUri.replace( "|", "/" ) # path to the .py file, relative to the base - sFileUri = sStorageUri[0:sStorageUri.find("$")] + funcNameStart = sStorageUri.find("$") + if funcNameStart != -1: + sFileUri = sStorageUri[0:funcNameStart] + sFuncName = sStorageUri[funcNameStart+1:] + else: + sFileUri = sStorageUri + xFileUri = self.m_uriRefFac.parse(sFileUri) if not xFileUri: message = "pythonscript: invalid relative uri '" + sFileUri+ "'" log.debug( message ) raise RuntimeException( message ) + if not xFileUri.hasRelativePath(): + message = "pythonscript: an absolute uri is invalid '" + sFileUri+ "'" + log.debug( message ) + raise RuntimeException( message ) + # absolute path to the .py file xAbsScriptUri = self.m_uriRefFac.makeAbsolute(xBaseUri, xFileUri, True, RETAIN) sAbsScriptUri = xAbsScriptUri.getUriReference() @@ -241,7 +252,9 @@ class MyUriHelper: log.debug( message ) raise RuntimeException( message ) - ret = sBaseUri + sStorageUri + ret = sAbsScriptUri + if funcNameStart != -1: + ret = ret + "$" + sFuncName log.debug( "converting scriptURI="+scriptURI + " to storageURI=" + ret ) return ret except UnoException as e: -- 2.21.0