# HG changeset patch # User Paul Boddie # Date 1528802571 -7200 # Node ID 8300a45fc074e811da92f58d92f67050932cb7c9 # Parent b60c5dcb85a3580e219f3010f54e067b0547b36a Attempt to avoid problems with page titles containing question marks by doing a broader search and then filtering with a properly-escaped regular expression. diff -r b60c5dcb85a3 -r 8300a45fc074 SubpageComments.py --- a/SubpageComments.py Wed Nov 06 15:13:28 2013 +0100 +++ b/SubpageComments.py Tue Jun 12 13:22:51 2018 +0200 @@ -2,11 +2,12 @@ """ MoinMoin - SubpageComments common functionality - @copyright: 2013 by Paul Boddie + @copyright: 2013, 2018 by Paul Boddie @license: GNU GPL (v2 or later), see COPYING.txt for details. """ from MoinSupport import getPagesForSearch +import re def get_comment_numbers(pagename, request): @@ -17,7 +18,16 @@ pagenames = [] - for page in getPagesForSearch("title:regex:^%s/" % pagename, request): + pattern = "^%s" % re.escape("%s/" % pagename) + regex = re.compile(pattern) + + for page in getPagesForSearch("title:%s" % pagename, request): + + # Avoid "title:regex:^%s/" problems by filtering a broader result set. + + if not regex.search(page.page_name): + continue + basename, number = page.page_name.rsplit("/", 1) if basename == pagename and number.isdigit(): pagenames.append(int(number))