about summary refs log tree commit diff
path: root/src/libutil/util.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2007-11-29T16·18+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2007-11-29T16·18+0000
commit633518628f48fb9c06bfd570eeca6f62696aba05 (patch)
tree33313707305a011265e30d4670264a9b7979d298 /src/libutil/util.cc
parent12d0a1eb753567bb2083aadb4ee3d325d3f29c70 (diff)
* nix-env -e: support uninstalling by path, so that one can say
    $ nix-env -e $(which firefox)

  or

    $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132

* nix-env -i: if an argument contains a slash anywhere, treat it as a
  path and follow it through symlinks into the Nix store.  This allows
  things like

    $ nix-build -A firefox
    $ nix-env -i ./result

* nix-env -q/-i/-e: don't complain when the `*' selector doesn't match
  anything.  In particular, `nix-env -q \*' doesn't fail anymore on an
  empty profile.

Diffstat (limited to 'src/libutil/util.cc')
-rw-r--r--src/libutil/util.cc3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index ed095717e2..37e158e4af 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -105,8 +105,7 @@ Path canonPath(const Path & path, bool resolveSymlinks)
             /* If s points to a symlink, resolve it and restart (since
                the symlink target might contain new symlinks). */
             if (resolveSymlinks && isLink(s)) {
-                followCount++;
-                if (followCount >= maxFollow)
+                if (++followCount >= maxFollow)
                     throw Error(format("infinite symlink recursion in path `%1%'") % path);
                 temp = absPath(readLink(s), dirOf(s))
                     + string(i, end);