Add the following packages libalgorithm-diff-perl libspiffy-perl libtext-diff-perl...
[pkg-perl] / deb-src / libfilter-perl / libfilter-perl-1.34 / examples / closure / UUdecode.pm
diff --git a/deb-src/libfilter-perl/libfilter-perl-1.34/examples/closure/UUdecode.pm b/deb-src/libfilter-perl/libfilter-perl-1.34/examples/closure/UUdecode.pm
new file mode 100644 (file)
index 0000000..b74017b
--- /dev/null
@@ -0,0 +1,52 @@
+
+package Filter::UUdecode ;
+
+use Filter::Util::Call ;
+
+use strict ;
+use warnings ;
+
+my $VERSION = '1.00' ;
+
+sub import
+{
+    my($self) = @_ ;
+    my ($count) = 0 ;
+
+    filter_add( 
+        sub 
+        {
+            my ($status) ;
+        
+            while (1) {
+        
+               return $status 
+                   if ($status = filter_read() ) <= 0;
+        
+               chomp ;
+               ++ $count ;
+        
+               # Skip the begin line (if it is there)
+               ($_ = ''), next if $count == 1 and /^begin/ ;
+        
+               # is this the last line?
+               if ($_ eq " " or length $_ <= 1) {
+                   $_ = '' ;
+                   # If there is an end line, skip it too
+                    return $status
+                       if ($status = filter_read() ) <= 0 ;
+                    $_ = "\n" if /^end/ ;
+                   filter_del() ;
+                   return 1 ;
+               }
+        
+               # uudecode the line
+               $_ = unpack("u", $_) ;
+        
+               # return the uudecoded data
+               return $status ;
+            }
+        })
+        
+}
+1 ;