X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=dupemerge;a=blobdiff_plain;f=dm6;h=4cd11b02f43767f63a913cbaa7715c6fd553eecc;hp=34bb654f41f9bf77c33e933557414e51e99c2a68;hb=06e26c8aae795bc65c74cad0a028d6707452be9c;hpb=941242a8d5dfcd2fbbbd306d00ef38115f841600 diff --git a/dm6 b/dm6 index 34bb654..4cd11b0 100755 --- a/dm6 +++ b/dm6 @@ -9,7 +9,7 @@ use File::Temp; use File::stat; use MIME::Base64; -# Copyright (C) 2010 Zygo Blaxell +# Copyright (C) 2010 Zygo Blaxell # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -41,7 +41,7 @@ sub usage { Usage: $0 link-dir Hashes a NUL-separated list of files on stdin into link-dir. -Version: 20100513.0 +Version: 0.20100514 USAGE } @@ -104,22 +104,18 @@ sub prepare_parents { return "$parent/$suffix"; } -sub name_quad { +sub name_ino { my ($int64) = @_; - my $packed = pack('Q', $int64); + my $packed = pack('Q>', $int64); $packed =~ s/^\0+//os; my $base64_packed = encode_base64($packed, ''); + $base64_packed =~ y:/:_:; # Don't strip off the trailing padding since it makes the string # so short we end up just putting it back on again. # $base64_packed =~ s/=+$//os; return $base64_packed; } -sub name_ino { - my ($ino) = @_; - return name_quad($ino) . 'I'; -} - # ext3 cannot handle more than 32000 links to a file. Leave some headroom. # Arguably this should be configurable, but the losses are miniscule and # the coding for option support is not. @@ -175,7 +171,7 @@ while () { $digest =~ y:/:_:; # Check link to digest - my $digest_link = prepare_parents($link_dir, "${digest}D"); + my $digest_link = prepare_parents($link_dir, $digest); print STDERR 'D'; my $digest_st = lstat($digest_link); if ($digest_st) {