<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,6 +9,7 @@ class MxmlcExhaust
   attr_accessor :print_output
   attr_reader :error_count
   attr_reader :line_count
+  attr_reader :input
   
   # Constants to track switches in matches (to prettify output).
   CONFIGURATION_MATCH    = &quot;configuration_match&quot;
@@ -24,7 +25,8 @@ class MxmlcExhaust
     @line_count = 0
     @error_count = 0
     @last_match = &quot;&quot;
-    @print_output = false
+    @print_output = false 
+    @input = []
 
     @error_and_warn_regex = /(\/.*?)(\(([0-9]+)\)|):.*(Error|Warning):\s*(.*)$/
     @config_file_regex    = /(^Loading configuration file )(.*)$/
@@ -37,6 +39,7 @@ class MxmlcExhaust
   # links back to source and configuration files where appropriate.
   #
   def line(str)
+    @input &lt;&lt; str
     output = parse_line(str)
     print output if print_output
     output
@@ -83,7 +86,7 @@ class MxmlcExhaust
         @last_match = ERROR_WARN_MATCH
         return out
       end
-
+      
       match = @config_file_regex.match(str)
       unless match === nil
           out &lt;&lt; &quot;&lt;br/&gt;&quot; if @last_match != CONFIGURATION_MATCH
@@ -115,6 +118,13 @@ class MxmlcExhaust
           cmd = &quot;open #{e_sh($1)}&quot;
           out &lt;&lt; '&lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;function openSwf(){TextMate.system(\''+cmd+'\', null);}&lt;/script&gt;'
           out &lt;&lt; &quot;&lt;br/&gt;&lt;a href='javascript:openSwf()' title='Click to run (if there is space in the file path this may not work).'&gt;#{$1}&lt;/a&gt;#{$2}&lt;br/&gt;&quot;
+      elsif str =~ /Error:/
+        out &lt;&lt; &quot;&lt;pre&gt;#{str}&lt;/pre&gt;&quot;
+        @error_count += 1
+      elsif str =~ /^\s*$/
+        out &lt;&lt; &quot;&lt;!-- empty --&gt;&quot;
+      elsif str =~ /^(Copyright|Version|Adobe)/
+         out &lt;&lt; &quot;#{str}&lt;br/&gt;&quot;
       end
 
     rescue TypeError
@@ -152,6 +162,26 @@ if __FILE__ == $0
         {
           :in =&gt; &quot;deploy/CompileTest.swf (417 bytes)&quot;,
           :out =&gt; &quot;&lt;script type=\&quot;text/javascript\&quot; charset=\&quot;utf-8\&quot;&gt;function openSwf(){TextMate.system('open deploy/CompileTest.swf', null);}&lt;/script&gt;&lt;br/&gt;&lt;a href='javascript:openSwf()' title='Click to run (if there is space in the file path this may not work).'&gt;deploy/CompileTest.swf&lt;/a&gt; (417 bytes)&lt;br/&gt;&quot;
+        },
+        {
+          :in =&gt; &quot;Error: could not find source for class BlahBlah:mxml&quot;,
+          :out =&gt; &quot;&lt;pre&gt;Error: could not find source for class BlahBlah:mxml&lt;/pre&gt;&quot;
+        },
+        {
+          :in =&gt; &quot; &quot;,
+          :out =&gt; &quot;&lt;!-- empty --&gt;&quot;
+        },
+        {
+          :in =&gt; &quot;Adobe Compc (Flex Component Compiler)&quot;,
+          :out =&gt; &quot;Adobe Compc (Flex Component Compiler)&lt;br/&gt;&quot;
+        },
+        {
+          :in =&gt; &quot;Version 3.4.0 build 9271&quot;,
+          :out =&gt; &quot;Version 3.4.0 build 9271&lt;br/&gt;&quot;
+        },
+        {
+          :in =&gt; &quot;Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.&quot;,
+          :out =&gt; &quot;Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.&lt;br/&gt;&quot;
         }
       ]
     end
@@ -159,13 +189,15 @@ if __FILE__ == $0
     def test_exhaust
       
       exhaust = MxmlcExhaust.new
-
+      
       in_out.each { |e|
-        assert_equal(e[:out], exhaust.line(e[:in])) 
+        assert_equal(e[:out], exhaust.line(e[:in]))
       }
       
-      assert_equal(1, exhaust.error_count)
-      assert_equal(in_out.length, exhaust.line_count)
+      assert_equal(2, exhaust.error_count)
+      assert_equal(in_out.length, exhaust.line_count) 
+      
+      assert_equal(in_out.map { |e| e[:in] }.to_s, exhaust.input.to_s)
       
     end
     </diff>
      <filename>Support/lib/fm/mxmlc_exhaust.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fe95e7328269bac0bcfd196234fb3979eb392ad2</id>
    </parent>
  </parents>
  <author>
    <name>Simon Gregory</name>
    <email>simon@helvector.org</email>
  </author>
  <url>http://github.com/simongregory/actionscript3-tmbundle/commit/8f11dc990b40dc2cf00bb03fa6945093cae1ff0a</url>
  <id>8f11dc990b40dc2cf00bb03fa6945093cae1ff0a</id>
  <committed-date>2009-11-07T09:43:13-08:00</committed-date>
  <authored-date>2009-11-07T09:43:13-08:00</authored-date>
  <message>&#8226; Mxml exhaust now caches all input so that it can be retrieved later. Added extra tests and improved parsing.</message>
  <tree>762b1efc16f2a4b206f86e5267c84ce9a0e4a227</tree>
  <committer>
    <name>Simon Gregory</name>
    <email>simon@helvector.org</email>
  </committer>
</commit>
