| #!/usr/bin/perl | |
| # This script takes as STDIN an output from the regFixer.pl | |
| # and reformat the file as if it would have been exported from the registry | |
| # in the "REGEDIT4" format. | |
| # | |
| # Copyright 1999 Sylvain St-Germain | |
| # Copyright 2002 Andriy Palamarchuk | |
| # | |
| # This library is free software; you can redistribute it and/or | |
| # modify it under the terms of the GNU Lesser General Public | |
| # License as published by the Free Software Foundation; either | |
| # version 2.1 of the License, or (at your option) any later version. | |
| # | |
| # This library is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| # Lesser General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU Lesser General Public | |
| # License along with this library; if not, write to the Free Software | |
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| # | |
| use strict; | |
| use diagnostics; | |
| # I do not validate the integrity of the file, I am assuming that | |
| # the input file comes from the output of regFixer.pl, therefore things | |
| # should be ok, if they are not, submit a bug | |
| my $curr_key = ""; | |
| my $key; | |
| my $value; | |
| my $rest; | |
| my $s; | |
| print "REGEDIT4\n"; | |
| LINE: while($s = <>) { | |
| chomp($s); # get rid of new line | |
| next LINE if($s =~ /^$/); # this is an empty line | |
| if ($s =~ /\]$/) # only key name on the line | |
| { | |
| ($key) = ($s =~ /^\[(.*)\]$/); | |
| unless ($key) | |
| { | |
| die "Unrecognized string $s"; | |
| } | |
| if ($key ne $curr_key) | |
| { | |
| $curr_key = $key; | |
| print "\n[$key]\n"; | |
| } | |
| } | |
| else | |
| { | |
| ($key, $value) = ($s =~ /^\[(.*?)\](.+)$/); | |
| if (!defined($key)) | |
| { | |
| die "Unrecognized string $s"; | |
| } | |
| if ($key ne $curr_key) #curr_key might got chopped from regSet.sh | |
| { | |
| print "\n[$key]\n"; | |
| } | |
| print "$value\n" | |
| } | |
| } |