about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/nix-store/main.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nix-store/main.cc b/src/nix-store/main.cc
index a8720ce6fbd7..6de26dabc976 100644
--- a/src/nix-store/main.cc
+++ b/src/nix-store/main.cc
@@ -132,9 +132,13 @@ static void opPrintFixedPath(Strings opFlags, Strings opArgs)
     string hash = *i++;
     string name = *i++;
 
+    HashType ht(parseHashType(hashAlgo));
+    Hash h = hash.size() == Hash(ht).hashSize * 2
+        ? parseHash(ht, hash)
+        : parseHash32(ht, hash);
+    
     cout << format("%1%\n") %
-        makeFixedOutputPath(recursive, hashAlgo,
-            parseHash(parseHashType(hashAlgo), hash), name);
+        makeFixedOutputPath(recursive, hashAlgo, h, name);
 }