#!/usr/bin/perl -w
# $Id: regls,v 1.1 2004/05/30 21:10:40 cssharp Exp $

# "Copyright (c) 2000-2003 The Regents of the University of California.  
# All rights reserved.
# 
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose, without fee, and without written agreement
# is hereby granted, provided that the above copyright notice, the following
# two paragraphs and the author appear in all copies of this software.
# 
# IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
# OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY
# OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# 
# THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
# ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
# PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."

# @author Cory Sharp <cssharp@eecs.berkeley.edu>

use strict;
use Win32::TieRegistry;

my $hklm = $Registry->Open( "LMachine",
  { Access => Win32::TieRegistry::KEY_READ(), Delimiter => "/" } )
  or die "Can't open HKEY_LOCAL_MACHINE key: $^E\n";

#my $enum = $hklm->{"SYSTEM/ControlSet001/Enum/"};

my $base = @ARGV ? $hklm->{$ARGV[0]} : $hklm;

for my $key ( sort keys %{$base} ) {
  if( $key =~ m{^/} ) {
    print "$key\t$base->{$key}\n";
  } else {
    print "$key\n";
  }
}

