use Win::Hivex;
use Win::Hivex::Regedit qw(reg_import reg_export);
-
+
$h = Win::Hivex->open ('SOFTWARE', write => 1);
-
+
open FILE, "updates.reg";
reg_import (\*FILE, $h);
$h->commit (undef);
-
+
reg_export ($h, "\\Microsoft\\Windows NT\\CurrentVersion", \*OUTFILE,
prefix => "HKEY_LOCAL_MACHINE\\SOFTWARE");
# Ignore comments.
next if /^\s*;/;
- # Expect to see [...] or -[...]
+ # Expect to see [...] or [-...]
# to merge or delete a node respectively.
- if (/^\[(.*)\]\s*$/) {
+ if (/^\[-(.*)\]\s*$/) {
+ _delete_node ($hmap, \%params, $1);
+ $state = "outer";
+ } elsif (/^\[(.*)\]\s*$/) {
$state = "inner";
$newnode = $1;
@newvalues = ();
@delvalues = ();
- } elsif (/^-\[(.*)\]\s*$/) {
- _delete_node ($hmap, \%params, $1);
- $state = "outer";
} else {
croak (_unexpected ($_, $lineno));
}