From d6cda0ed27dd388c8538a2138a867ba245043d66 Mon Sep 17 00:00:00 2001 From: Michael Ilsaas Date: Tue, 19 Jan 2016 21:37:49 +0100 Subject: [PATCH] Include leading zeroes in URL increment/decrement --- qutebrowser/utils/urlutils.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/qutebrowser/utils/urlutils.py b/qutebrowser/utils/urlutils.py index b20e833c8..f2b3f4557 100644 --- a/qutebrowser/utils/urlutils.py +++ b/qutebrowser/utils/urlutils.py @@ -509,11 +509,11 @@ def incdec_number(url, incdec, segments=None): continue # Get the last number in a string - match = re.match(r'(.*\D|^)(\d+)(.*)', getter()) + match = re.match(r'(.*\D|^)(0*)(\d+)(.*)', getter()) if not match: continue - pre, number, post = match.groups() + pre, zeroes, number, post = match.groups() # This should always succeed because we match \d+ val = int(number) if incdec == 'decrement': @@ -524,8 +524,15 @@ def incdec_number(url, incdec, segments=None): val += 1 else: raise ValueError("Invalid value {} for indec!".format(incdec)) - new_value = ''.join([pre, str(val), post]) + if zeroes: + if len(number) < len(str(val)): + zeroes = zeroes[1:] + if len(number) > len(str(val)): + zeroes = ''.join([zeroes,'0']) + + new_value = ''.join([pre, zeroes, str(val), post]) setter(new_value) + return url raise IncDecError("No number found in URL!", url)