]> err.no Git - moreutils/commitdiff
* vidir: Don't abort if it sees an empty or all-whitespace line.
authorjoeyh <joeyh>
Thu, 13 Jul 2006 21:10:34 +0000 (21:10 +0000)
committerjoeyh <joeyh>
Thu, 13 Jul 2006 21:10:34 +0000 (21:10 +0000)
* vidir: If just a filename is removed and the number is left,
  treat this the same as removing the whole line, and delete the file,
  instead of trying to rename the file to "".
* vidir: Remove the periods after the item numbers.
* vidir: Man page improvements. Closes: #378122

debian/changelog
vidir

index 8b4eb28698a312a0e9c9852639bd93586b724181..679d7cda2a45907d2f7a92d70f9f4934e8724d09 100644 (file)
@@ -1,8 +1,14 @@
 moreutils (0.15) UNRELEASED; urgency=low
 
   * Remove notes about potential tools from README, moved to wiki.
-
- -- Joey Hess <joeyh@debian.org>  Thu, 13 Jul 2006 12:21:38 -0400
+  * vidir: Don't abort if it sees an empty or all-whitespace line.
+  * vidir: If just a filename is removed and the number is left,
+    treat this the same as removing the whole line, and delete the file,
+    instead of trying to rename the file to "".
+  * vidir: Remove the periods after the item numbers.
+  * vidir: Man page improvements. Closes: #378122
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 13 Jul 2006 16:58:20 -0400
 
 moreutils (0.14) unstable; urgency=low
 
diff --git a/vidir b/vidir
index 3e2f83a9f46d99a4d6c2745bb0ef6079f634195c..f8227b114dc0073d36c4027468140dc8f7018369 100755 (executable)
--- a/vidir
+++ b/vidir
@@ -11,9 +11,13 @@ B<vidir> [--verbose] [directory|file|-] ...
 =head1 DESCRIPTION
 
 vidir allows editing of the contents of a directory in a text editor. If no
-directory is specified, the current directory is edited. Each item in the
-directory is listed. Delete items to remove them from the directory, or
-edit their names to rename them.
+directory is specified, the current directory is edited. 
+
+When editing a directory, each item in the directory will appear on its own
+numbered line. These numbers are how vidir keeps track of what items are
+changed. Delete lines to remove files from the directory, or
+edit filenames to rename files. You can also switch pairs of numbers to
+swap filenames.
 
 Note that if "-" is specified as the directory to edit, it reads a list of
 filenames from stdin and displays those for editing. Alternatively, a list
@@ -94,7 +98,7 @@ my $c=0;
 foreach (@dir) {
        next if /(.*\/)?\.$/ || /(.*\/)?\.\.$/;
        $item{++$c}=$_;
-       print OUT "$c.\t$_\n";
+       print OUT "$c\t$_\n";
 }
 @dir=();
 close OUT;
@@ -114,7 +118,7 @@ if ($ret != 0) {
 open (IN, $tmp->filename) || die "$0: cannot read ".$tmp->filename.": $!\n";
 while (<IN>) {
        chomp;
-       if (/^(\d+)\.\t(.*)/) {
+       if (/^(\d+)\t{0,1}(.*)/) {
                my $num=$1;
                my $name=$2;
                if (! exists $item{$num}) {
@@ -122,6 +126,7 @@ while (<IN>) {
                        $error=1;
                }
                elsif ($name ne $item{$num}) {
+                       next unless length $name;
                        my $src=$item{$num};
                        
                        # deal with swaps
@@ -156,6 +161,9 @@ while (<IN>) {
                }
                delete $item{$num};
        }
+       elsif (/^\s*$/) {
+               # skip empty line
+       }
        else {
                die "$0: unable to parse line \"$_\", aborting\n";
        }