virt-win-reg: Don't hard-code the relationship between hive name and path.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 17 May 2011 08:00:30 +0000 (09:00 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 17 May 2011 16:05:11 +0000 (17:05 +0100)
commit3b4bb214c36d2659dff58e1a79bad8a9c48fa51d
tree674a1ab2ae1b49be045c06e60ebd634d6499958c
parent9116f0eb01e23c9ec52144de6068c6918ce6c346
virt-win-reg: Don't hard-code the relationship between hive name and path.

The crucial change is the tuple that is returned by map_path_to_hive:

-    my ($hivename, [...]) = map_path_to_hive ($_);
+    my ($hiveshortname, $hivefile, [...]) = map_path_to_hive ($_);

Previously the $hivename was both the name of the hive (eg. "sam"),
the name of the local copy in /tmp, and the name of the hive in
%systemroot%\system32\config.

In the new code, the $hiveshortname (eg. "sam") is still used for the
local copy in /tmp, but we return $hivefile which is the full Windows
path (eg. "/windows/system32/config/sam").

The purpose of this change is to allow us in future to return hives
from other Windows directories, specifically HKEY_USERS hives from
Windows home directories.

Although this is just code motion, it requires some quite extensive
changes to virt-win-reg.
tools/virt-win-reg