Просмотр исходного кода

Merge remote-tracking branch 'mvo/bugfix/apt-search-case' into debian/sid

Michael Vogt лет назад: 12
Родитель
Сommit
a8f4389424
2 измененных файлов с 12 добавлено и 3 удалено
  1. 6 2
      apt-private/private-search.cc
  2. 6 1
      test/integration/test-apt-cli-search

+ 6 - 2
apt-private/private-search.cc

@@ -68,8 +68,12 @@ bool FullTextSearch(CommandLine &CmdL)					/*{{{*/
          const char *pattern = patterns[i];
          all_found &=  (
             strstr(V.ParentPkg().Name(), pattern) != NULL ||
-            parser.ShortDesc().find(pattern) != std::string::npos ||
-            parser.LongDesc().find(pattern) != std::string::npos);
+            strcasestr(parser.ShortDesc().c_str(), pattern) != NULL ||
+            strcasestr(parser.LongDesc().c_str(), pattern) != NULL);
+         // search patterns are AND by default so we can skip looking further
+         // on the first mismatch
+         if(all_found == false)
+            break;
       }
       if (all_found)
       {

+ 6 - 1
test/integration/test-apt-cli-search

@@ -13,7 +13,7 @@ if [ ! -x ${BUILDDIRECTORY}/apt ]; then
     exit 0
 fi
 
-DESCR='Some description that has a unusual word xxyyzz and aabbcc'
+DESCR='Some description that has a unusual word xxyyzz and aabbcc and a UPPERCASE'
 DESCR2='Some other description with the unusual aabbcc only'
 insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR"
 insertpackage 'testing' 'bar' 'i386' '2.0' '' '' "$DESCR2"
@@ -39,6 +39,11 @@ testequal "foo/unstable 1.0 all
   $DESCR
 " apt search -qq aabbcc xxyyzz
 
+# search is not case-sensitive by default
+testequal "foo/unstable 1.0 all
+  $DESCR
+" apt search -qq uppercase
+
 # output is sorted and search word finds both package
 testequal "bar/testing 2.0 i386
   $DESCR2