diff -ur tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/init.rb tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/init.rb
--- tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/init.rb	2004-12-03 23:09:07.000000000 +0100
+++ tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/init.rb	2004-12-18 14:58:32.000000000 +0100
@@ -2,7 +2,7 @@
 
 exit	if ARGV.include?("--tar2rubyscript-exit")
 
-scriptfile	= "tarrubyscript.rb"
+scriptfile	= newlocation("tarrubyscript.rb")
 tarfile		= oldlocation(ARGV.shift)
 rbfile		= oldlocation(ARGV.shift)
 licensefile	= oldlocation(ARGV.shift)
diff -ur tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/tarrubyscript.rb tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/tarrubyscript.rb
--- tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/tarrubyscript.rb	2004-12-03 22:53:43.000000000 +0100
+++ tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/tarrubyscript.rb	2004-12-18 12:29:29.000000000 +0100
@@ -21,6 +21,7 @@
 
 # Tar2RubyScript constants
 
+ShowContent	= ARGV.include?("--tar2rubyscript-list")
 JustExtract	= ARGV.include?("--tar2rubyscript-justextract")
 ToTar		= ARGV.include?("--tar2rubyscript-totar")
 
@@ -91,6 +92,12 @@
     end
   end
 
+  def list
+    each do |entry|
+      entry.list
+    end
+  end
+
   def each
     @fp.rewind
 
@@ -153,6 +160,18 @@
       #File.utime(Time.now, @header.mtime, @header.name)
     end
   end
+
+  def list
+    if not @header.name.empty?
+      if @header.dir?
+        puts "d %s" % [@header.name]
+      elsif @header.file?
+        puts "f %s (%s)" % [@header.name, @data.length]
+      else
+        puts "Couldn´t handle entry #{@header.name}"
+      end
+    end
+  end
 end
 
 class Header
@@ -201,6 +220,32 @@
   end
 end
 
+class Content
+  def initialize
+    @archive	= File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
+    temp	= ENV["TEMP"]
+    temp	= "/tmp"	if temp.nil?
+    @tempfile	= "#{temp}/tar2rubyscript.f.#{Process.pid}"
+  end
+
+  def list
+    begin
+      File.open(@tempfile, "wb")	{|f| f.write @archive}
+      File.open(@tempfile, "rb")	{|f| Reader.new(f).list}
+    ensure
+      File.delete(@tempfile)
+    end
+
+    self
+  end
+
+  def cleanup
+    @archive	= nil
+
+    self
+  end
+end
+
 class TempSpace
   def initialize
     @archive	= File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
@@ -377,29 +422,29 @@
   end
 end
 
-if JustExtract
+if ShowContent
+  Content.new.list.cleanup
+elsif JustExtract
   Extract.new.extract.cleanup
+elsif ToTar
+  MakeTar.new.extract.cleanup
 else
-  if ToTar
-    MakeTar.new.extract.cleanup
-  else
-    TempSpace.new.extract.cleanup
+  TempSpace.new.extract.cleanup
 
-    $: << newlocation
+  $:.unshift(newlocation)
 
-    newlocation do
-      if __FILE__ == $0
-        $0.replace("./init.rb")
+  newlocation do
+    if __FILE__ == $0
+      $0.replace("./init.rb")
 
-        if File.file?("./init.rb")
-          load "./init.rb"
-        else
-          $stderr.puts "%s doesn´t contain an init.rb ." % __FILE__
-        end
+      if File.file?("./init.rb")
+        load "./init.rb"
       else
-        if File.file?("./init.rb")
-          load "./init.rb"
-        end
+        $stderr.puts "%s doesn´t contain an init.rb ." % __FILE__
+      end
+    else
+      if File.file?("./init.rb")
+        load "./init.rb"
       end
     end
   end