From 88c07341a6bf99f923cb3d6487b72afc025b7746 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 3 Sep 2013 15:56:33 +0200 Subject: [PATCH] nix-env: Use wildcard match by default That is, you don't need to pass '*' anymore, so nix-env -qa is equivalent to nix-env -qa '*' --- src/libexpr/names.cc | 9 ++++----- src/nix-env/nix-env.cc | 12 ++++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/libexpr/names.cc b/src/libexpr/names.cc index 29c7ddb4d..781c2b646 100644 --- a/src/libexpr/names.cc +++ b/src/libexpr/names.cc @@ -55,7 +55,7 @@ static string nextComponent(string::const_iterator & p, else while (p != end && (!isdigit(*p) && *p != '.' && *p != '-')) s += *p++; - + return s; } @@ -80,7 +80,7 @@ int compareVersions(const string & v1, const string & v2) { string::const_iterator p1 = v1.begin(); string::const_iterator p2 = v2.begin(); - + while (p1 != v1.end() || p2 != v2.end()) { string c1 = nextComponent(p1, v1.end()); string c2 = nextComponent(p2, v2.end()); @@ -95,11 +95,10 @@ int compareVersions(const string & v1, const string & v2) DrvNames drvNamesFromArgs(const Strings & opArgs) { DrvNames result; - for (Strings::const_iterator i = opArgs.begin(); - i != opArgs.end(); ++i) + foreach (Strings::const_iterator, i, opArgs) result.push_back(DrvName(*i)); return result; } - + } diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc index 9f51e919b..2a66743ee 100644 --- a/src/nix-env/nix-env.cc +++ b/src/nix-env/nix-env.cc @@ -243,13 +243,13 @@ static DrvInfos filterBySelector(EvalState & state, const DrvInfos & allElems, const Strings & args, bool newestOnly) { DrvNames selectors = drvNamesFromArgs(args); + if (selectors.empty()) + selectors.push_back(DrvName("*")); DrvInfos elems; set done; - for (DrvNames::iterator i = selectors.begin(); - i != selectors.end(); ++i) - { + foreach (DrvNames::iterator, i, selectors) { typedef list > Matches; Matches matches; unsigned int n = 0; @@ -321,8 +321,7 @@ static DrvInfos filterBySelector(EvalState & state, const DrvInfos & allElems, } /* Check that all selectors have been used. */ - for (DrvNames::iterator i = selectors.begin(); - i != selectors.end(); ++i) + foreach (DrvNames::iterator, i, selectors) if (i->hits == 0 && i->fullName != "*") throw Error(format("selector `%1%' matches no derivations") % i->fullName); @@ -913,9 +912,6 @@ static void opQuery(Globals & globals, else remaining.push_back(arg); } - if (remaining.size() == 0) - printMsg(lvlInfo, "warning: you probably meant to specify the argument '*' to show all packages"); - /* Obtain derivation information from the specified source. */ DrvInfos availElems, installedElems;