#!Perl
#
# "delete geometry"
#
#Delete window geometry and printing preferences for
# given MacPerl files
#
# Useful for solving the annoying problems created when you move
#  MacPerl files between boxen with wildly different screen sizes.
#
# sburke@netadventure.net 1998-03-19

use Mac::Memory;
use Mac::Resources;
use File::Find;

exit unless @ARGV;
find(\&kill_window_prefs, @ARGV);
print "Done\n";
exit;

sub kill_window_prefs {
  my $SPEC = $File::Find::name;
  my(@utime);
  return unless -f $SPEC;

  @utime = (stat($SPEC))[8,9];

  my($creator, $type) = MacPerl::GetFileInfo($SPEC);
  return unless $creator eq 'MrPL' or $creator eq 'McPL';

  my $refnum = OpenResFile($SPEC);
  unless(defined($refnum)) {
    print "$SPEC has no resource fork!\n";
    return;
  }
  #print "Changing $SPEC\n";
  my $handle = Get1Resource('TFSP', 255);
  # 'TFSP' (255)	 The printing setup for the file.
  if( $handle ) {
    #print "Removing handle $handle\n";
    RemoveResource($handle)  || print "Error removing: $! $^E\n";
  }

  $handle = Get1Resource('TFSS', 255);
  # 'TFSS' (255)		The font, size and rectangle for the file.
  if( $handle ) {
    #print "Removing handle $handle\n";
    RemoveResource($handle)  || print "Error removing: $! $^E\n";
  }

  UpdateResFile($refnum) || print "Error writing: $! $^E\n";
  CloseResFile($refnum);

  utime(@utime , $SPEC); # preserve the datestamps

}

__END__
