From 1fc9086050abe372a5db4c1a076e7f61a99b3642 Mon Sep 17 00:00:00 2001 From: Sambhav Kothari Date: Fri, 30 Dec 2016 03:57:57 +0530 Subject: [PATCH] PICARD-834: Properly handle ValueErrors in case of invalid length attribute --- picard/script.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/picard/script.py b/picard/script.py index 0d341dcb1..630e0da19 100644 --- a/picard/script.py +++ b/picard/script.py @@ -332,12 +332,18 @@ def func_noop(parser, *args): def func_left(parser, text, length): """Returns first ``num`` characters from ``text``.""" - return text[:int(length)] + try: + return text[:int(length)] + except ValueError: + return "" def func_right(parser, text, length): """Returns last ``num`` characters from ``text``.""" - return text[-int(length):] + try: + return text[-int(length):] + except ValueError: + return "" def func_lower(parser, text): @@ -351,7 +357,10 @@ def func_upper(parser, text): def func_pad(parser, text, length, char): - return char * (int(length) - len(text)) + text + try: + return char * (int(length) - len(text)) + text + except ValueError: + return "" def func_strip(parser, text): @@ -389,7 +398,10 @@ def func_rsearch(parser, text, pattern): def func_num(parser, text, length): - format = "%%0%dd" % int(length) + try: + format = "%%0%dd" % int(length) + except ValueError: + return "" try: value = int(text) except ValueError: