<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,7 @@
 *SVN*
 
+* Add config.active_support.escape_html_entities_in_json to allow disabling of html entity escaping.  [rick]
+
 * Improve documentation. [Xavier Noria]
 
 * Modified ActiveSupport::Callbacks::Callback#call to accept multiple arguments.</diff>
      <filename>activesupport/CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,25 @@
-require 'active_support/json/encoding'
-require 'active_support/json/decoding'
+
 
 module ActiveSupport
+  # If true, use ISO 8601 format for dates and times.  Otherwise, fall back to the ActiveSupport legacy format.
   mattr_accessor :use_standard_json_time_format
 
+  class &lt;&lt; self
+    def escape_html_entities_in_json
+      @escape_html_entities_in_json
+    end
+
+    def escape_html_entities_in_json=(value)
+      ActiveSupport::JSON::Encoding.escape_regex = \
+        if value
+          /[\010\f\n\r\t&quot;\\&gt;&lt;&amp;]/
+        else
+          /[\010\f\n\r\t&quot;\\]/
+        end
+      @escape_html_entities_in_json = value
+    end
+  end
+
   module JSON
     RESERVED_WORDS = %w(
       abstract      delete        goto          private       transient
@@ -31,3 +47,6 @@ module ActiveSupport
     end
   end
 end
+
+require 'active_support/json/encoding'
+require 'active_support/json/decoding'</diff>
      <filename>activesupport/lib/active_support/json.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,8 @@
 module ActiveSupport
   module JSON
     module Encoding
+      mattr_accessor :escape_regex
+
       ESCAPED_CHARS = {
         &quot;\010&quot; =&gt;  '\b',
         &quot;\f&quot;   =&gt;  '\f',
@@ -17,9 +19,11 @@ module ActiveSupport
   end
 end
 
+ActiveSupport.escape_html_entities_in_json = true
+
 class String
   def to_json(options = nil) #:nodoc:
-    json = '&quot;' + gsub(/[\010\f\n\r\t&quot;\\&gt;&lt;&amp;]/) { |s|
+    json = '&quot;' + gsub(ActiveSupport::JSON::Encoding.escape_regex) { |s|
       ActiveSupport::JSON::Encoding::ESCAPED_CHARS[s]
     }
     json.force_encoding('ascii-8bit') if respond_to?(:force_encoding)</diff>
      <filename>activesupport/lib/active_support/json/encoders/string.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
 require 'active_support/json/variable'
-
 require 'active_support/json/encoders/object' # Require explicitly for rdoc.
 Dir[&quot;#{File.dirname(__FILE__)}/encoders/**/*.rb&quot;].each do |file|
   basename = File.basename(file, '.rb')</diff>
      <filename>activesupport/lib/active_support/json/encoding.rb</filename>
    </modified>
    <modified>
      <diff>@@ -38,15 +38,18 @@ class TestJSONEncoding &lt; Test::Unit::TestCase
   StandardDateTests     = [[ Date.new(2005,2,1), %(&quot;2005-02-01&quot;) ]]
   StandardTimeTests     = [[ Time.utc(2005,2,1,15,15,10), %(&quot;2005-02-01T15:15:10Z&quot;) ]]
   StandardDateTimeTests = [[ DateTime.civil(2005,2,1,15,15,10), %(&quot;2005-02-01T15:15:10+00:00&quot;) ]]
+  StandardStringTests   = [[ 'this is the &lt;string&gt;', %(&quot;this is the &lt;string&gt;&quot;)]]
 
   constants.grep(/Tests$/).each do |class_tests|
     define_method(&quot;test_#{class_tests[0..-6].underscore}&quot;) do
       begin
+        ActiveSupport.escape_html_entities_in_json  = class_tests !~ /^Standard/
         ActiveSupport.use_standard_json_time_format = class_tests =~ /^Standard/
         self.class.const_get(class_tests).each do |pair|
           assert_equal pair.last, pair.first.to_json
         end
       ensure
+        ActiveSupport.escape_html_entities_in_json  = false
         ActiveSupport.use_standard_json_time_format = false
       end
     end</diff>
      <filename>activesupport/test/json/encoding_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4b68982f649c5b230b3e99954a71404c7cec03c7</id>
    </parent>
  </parents>
  <author>
    <name>Rick Olson</name>
    <email>technoweenie@gmail.com</email>
  </author>
  <url>http://github.com/anildigital/rails/commit/605196c4483bbba932804e78cd6d4166f4e29bbb</url>
  <id>605196c4483bbba932804e78cd6d4166f4e29bbb</id>
  <committed-date>2008-04-07T20:45:26-07:00</committed-date>
  <authored-date>2008-04-07T20:45:26-07:00</authored-date>
  <message>Add config.active_support.escape_html_entities_in_json to allow disabling of html entity escaping.  [rick]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9238 5ecf4fe2-1ee6-0310-87b1-e25e094e27de</message>
  <tree>4f682a944ab11aabaf8b9208ff571ebe4aecbd19</tree>
  <committer>
    <name>Rick Olson</name>
    <email>technoweenie@gmail.com</email>
  </committer>
</commit>
