Return all packages when an empty search term is used with keyword
search.

Reported-by: G. Schlisio <[email protected]>
Signed-off-by: Lukas Fleischer <[email protected]>
---
 web/lib/pkgfuncs.inc.php | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index ee63e42..1178550 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -602,7 +602,7 @@ function pkg_search_page($SID="") {
                else {
                        /* Search by name and description (default). */
                        $count = 0;
-                       $q_where .= "AND (";
+                       $q_keywords = "";
                        $op = "";
 
                        foreach (str_getcsv($_GET['K'], ' ') as $term) {
@@ -623,8 +623,8 @@ function pkg_search_page($SID="") {
                                }
 
                                $term = "%" . addcslashes($term, '%_') . "%";
-                               $q_where .= $op . " (Packages.Name LIKE " . 
$dbh->quote($term) . " OR ";
-                               $q_where .= "Description LIKE " . 
$dbh->quote($term) . ") ";
+                               $q_keywords .= $op . " (Packages.Name LIKE " . 
$dbh->quote($term) . " OR ";
+                               $q_keywords .= "Description LIKE " . 
$dbh->quote($term) . ") ";
 
                                $count++;
                                if ($count >= 20) {
@@ -633,7 +633,9 @@ function pkg_search_page($SID="") {
                                $op = "AND ";
                        }
 
-                       $q_where .= ") ";
+                       if (!empty($q_keywords)) {
+                               $q_where .= "AND (" . $q_keywords . ") ";
+                       }
                }
        }
 
-- 
2.4.2

Reply via email to