| #!/usr/bin/perl | |
| # This script takes as STDIN an output from the Registry | |
| # (export from regedit.exe) and prefixes every subkey-value | |
| # pair by their hkey,key data member | |
| # | |
| # Copyright 1999 Sylvain St-Germain | |
| # | |
| ${prefix} = ""; | |
| ${line} = ""; | |
| LINE: while(<>) { | |
| chomp; # Get rid of 0x0a | |
| next LINE if(/^$/); # This is an empty line | |
| if( /^\[/ ) { | |
| ${prefix} = ${_}; # assign the prefix for the forthcomming section | |
| next LINE; | |
| } | |
| s/\\\\/\\/g; # Still some more substitutions... To fix paths... | |
| s/^ //; # Get rid of the stupid two spaces at the begining | |
| # they are there in the case of a multi-line thing | |
| if (/\\$/) { # The line ends with '\', it means it is a multi | |
| s/\\$//; # line thing, remove it. | |
| ${line} = "${line}${_}";# Add the current line to the line to output | |
| next LINE; # process the next line | |
| } | |
| ${line} = "${line}${_}"; # Set line to the multi line thing+the current line | |
| print "${prefix}${line}\n"; | |
| ${line} = ""; # start over... | |
| } | |