From 781b55f777bc016c71e6e1fc79929867c4ac8faa Mon Sep 17 00:00:00 2001 From: relan Date: Thu, 13 Jun 2019 19:51:29 +0300 Subject: [PATCH] checkupdates: match whole words Match only whole words when looking for versionCode, versionName, etc. in manifests. A real build.gradle example: flutterVersionCode = '1' flutterVersionName = '1.0' ... defaultConfig { versionCode 53 versionName "2.0.3" } Before this change checkupdates was erroneously getting version code and version name from the first two lines and failing to find a new release. --- fdroidserver/common.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 535a3f2a..61751d0c 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1348,11 +1348,11 @@ def remove_debuggable_flags(root_dir): os.path.join(root, 'AndroidManifest.xml')) -vcsearch_g = re.compile(r'''.*[Vv]ersionCode\s*=?\s*["']*([0-9]+)["']*''').search -vnsearch_g = re.compile(r'''.*[Vv]ersionName\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1.*''').search -vnssearch_g = re.compile(r'''.*[Vv]ersionNameSuffix\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1.*''').search -psearch_g = re.compile(r'''.*(packageName|applicationId)\s*=*\s*["']([^"']+)["'].*''').search -fsearch_g = re.compile(r'''.*(applicationIdSuffix)\s*=*\s*["']([^"']+)["'].*''').search +vcsearch_g = re.compile(r'''\b[Vv]ersionCode\s*=?\s*["']*([0-9]+)["']*''').search +vnsearch_g = re.compile(r'''\b[Vv]ersionName\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1''').search +vnssearch_g = re.compile(r'''\b[Vv]ersionNameSuffix\s*=?\s*(["'])((?:(?=(\\?))\3.)*?)\1''').search +psearch_g = re.compile(r'''\b(packageName|applicationId)\s*=*\s*["']([^"']+)["']''').search +fsearch_g = re.compile(r'''\b(applicationIdSuffix)\s*=*\s*["']([^"']+)["']''').search def app_matches_packagename(app, package):