From ec4371acb7bf586b4ed274b47813e5785da6b424 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 4 Apr 2014 12:16:22 +0200 Subject: Fix crash in "apt list" when a sources.list file is unreable Closes: 743413 --- apt-private/private-list.cc | 5 ++--- apt-private/private-list.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'apt-private') diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index 7664ca134..b053cbcbe 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -99,14 +99,13 @@ static void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records,/*{{{*/ /*}}}*/ // list - list package based on criteria /*{{{*/ // --------------------------------------------------------------------- -bool List(CommandLine &Cmd) +bool DoList(CommandLine &Cmd) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); - pkgRecords records(CacheFile); - if (unlikely(Cache == NULL)) return false; + pkgRecords records(CacheFile); const char **patterns; const char *all_pattern[] = { "*", NULL}; diff --git a/apt-private/private-list.h b/apt-private/private-list.h index 461f527cb..aa2677764 100644 --- a/apt-private/private-list.h +++ b/apt-private/private-list.h @@ -5,7 +5,7 @@ class CommandLine; -APT_PUBLIC bool List(CommandLine &Cmd); +APT_PUBLIC bool DoList(CommandLine &Cmd); #endif -- cgit v1.2.3 From 01837669afa740b594d2075661dc9faa3ab6fe43 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 7 Apr 2014 16:40:12 +0200 Subject: make apt search case-insensitive by default --- apt-private/private-search.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'apt-private') diff --git a/apt-private/private-search.cc b/apt-private/private-search.cc index 8106333b6..ecd5d7fad 100644 --- a/apt-private/private-search.cc +++ b/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) { -- cgit v1.2.3