use strict;
use warnings;

sub blockrename 
{
	my @tmp = ();
        our @d_arr = &ci_sort(&br_readdir($main::dir));
        my $dtext = join ("\n", @d_arr);

        my $top = $main::mw -> Toplevel();
        $top -> title
        (
        	"Block Rename"
        );

        our $txt = $top -> Scrolled
        (
        	'ROText',
                -scrollbars=>"osoe",
                -width=>60,
                -height=>20,
        	-font=>$main::dialog_font
        )
        -> grid
        (
        	-row => 2,
        	-column => 1,
        	-columnspan => 1
        );
        $txt->menu(undef);

        $txt -> insert
        (
        	'end',
        	"$dtext"
        );

        our $txt_r = $top -> Scrolled
        (
        	'Text',
                -scrollbars=>"osoe",
                -width=>60,
                -height=>20,
        	-font=>$main::dialog_font
        )
        -> grid
        (
        	-row => 2,
        	-column => 2,
        	-columnspan => 2
        );
        $txt_r->menu(undef);

        $txt_r -> insert
        (
        	'end',
        	"$dtext"
        );

	my $frm = $top -> Frame()
        -> grid
        (
        	-row => 4,
        	-column => 1,
        	-columnspan => 2,
        	-sticky=>"ne"
        );

        my $rename = $frm -> Button
        (
        	-text=>"Rename",
        	-activebackground => 'white',
        	-command => sub 
        	{
        		&br();
        	}
        )
        -> pack(-side => 'left');

        my $but_reset = $frm -> Button
        (
        	-text=>"Reset",
        	-activebackground => 'white',
        	-command => \&txt_reset
        )
        -> pack(-side => 'left');

        my $but_close = $frm -> Button
        (
        	-text=>"Close",
        	-activebackground => 'white',
        	-command => sub 
        	{
        		&ls_dir;
        		destroy $top;
        	}
        )
        -> pack(-side => 'left');

        $frm -> Button
        (
        	-text=>"Clear",
        	-activebackground => 'white',
        	-command => sub 
        	{
        		$main::txt_r->delete('0.0','end');
        	}
        )
        -> pack(-side => 'left');

	$top->resizable(0,0);
}

sub txt_reset
{
        @main::d_arr = &ci_sort(&br_readdir($main::dir));
        my $dtext = join ("\n", @main::d_arr);

	$main::txt->delete('0.0','end');
        $main::txt-> insert
        (
        	'end',
        	"$dtext"
        );

	$main::txt_r->delete('0.0','end');
        $main::txt_r-> insert
        (
        	'end',
        	"$dtext"
        );
}

sub br
{
	my @new_l = split(/\n/, $main::txt_r -> get('1.0', 'end'));
	my $c = 0;
	my $of = "";
	my $nf = "";
	my $max = $#main::d_arr;
	
	print "\@new_l: @new_l\n";
	
	while($c <= $max)
	{
		$of = $main::d_arr[$c];
		$nf = $new_l[$c];

		$nf =~ s/\n|\r//g;
		$of =~ s/\n|\r//g;
		
		if(!$nf) # watch out for blank lines
		{
			return;
		}
		
		if($nf =~ m/^ed2k:\/\/\|file\|(.*?)\|/i)
		{
			$nf = $1;
		}
		
		$c++;
		print "$of -> $nf\n";
		rename $of, $nf;
	}
	&txt_reset;
	return 0;
}

1;


syntax highlighted by Code2HTML, v. 0.9.1