rem: pkg_matcher *m=parse_pattern(s);
add: pkg_matcher *m=parse_pattern(name);
context: bool do_cmdline_show(string s, int verbose){  bool is_pattern=(s.find('~')!=s.npos);  pkgCache::PkgIterator pkg;  if(!is_pattern)    {      pkg=(*apt_cache_file)->FindPkg(s);      if(pkg.end())	{	  _error->Error(_("Unable to locate package %s"), s.c_str());	  return false;	}    }  if(!is_pattern && !pkg.end())    {      if(!pkg.VersionList().end())	for(pkgCache::VerIterator V=pkg.VersionList(); !V.end(); ++V)	  {	    show_version(V, verbose);	    if(verbose==0)	      break;	  }      else	show_package(pkg, verbose);    }  else if(is_pattern)    {      pkg_matcher *m=parse_pattern(s);      if(!m)	{	  _error->Error(_("Unable to parse pattern %s"), s.c_str());	  return false;	}      for(pkgCache::PkgIterator P=(*apt_cache_file)->PkgBegin();	  !P.end(); ++P)	{	  for(pkgCache::VerIterator V=P.VersionList(); !V.end(); ++V)	    if(m->matches(P, V))	      {		show_version(V, verbose);		if(verbose==0)		  break;	      }	}      delete m;    }  else    ; // TODO: print an error message -- Christian will kill me if I      // make the pofile bigger right now.  return true;}