From 5057a6ff864c5b332f24e036c829cbbea940b918 Mon Sep 17 00:00:00 2001 From: Sean Finney Date: Mon, 26 Oct 2009 23:35:01 +0100 Subject: shuffle the logic in PackageCmd to allow exact matches for < 3 letters --- patchtracker/ReqHandler.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'patchtracker/ReqHandler.py') diff --git a/patchtracker/ReqHandler.py b/patchtracker/ReqHandler.py index c928bb6..af54116 100755 --- a/patchtracker/ReqHandler.py +++ b/patchtracker/ReqHandler.py @@ -91,14 +91,17 @@ class PackageCmd(Cmd): else: version = None self.toc = db.findCollection(package=self.name, version=version) - if self.toc.size() == 0: - if len(self.name) >= 3: + + # if there's no match, try with a wildcard match + if not self.toc.size(): + # ... but don't allow pathologically short names + if len(self.name) < 3: + raise ReqHandlerException("search terms must be 3 or more letters...") + else: self.toc = db.findCollection(package="%"+self.name+"%", version=version) plist = self.toc.getletter(self.name) - if len(self.name) < 3: - raise ReqHandlerException("search terms must be 3 or more letters...") - elif not plist or len(plist) == 0: + if not plist or len(plist) == 0: raise ReqHandlerException("can't find any package named or containing '%s'"%self.name, code="404 ENOPKG kthxbye") def output(self): -- cgit v1.2.3