Hello community,

here is the log from the commit of package rubygem-yajl-ruby for 
openSUSE:Factory checked in at 2018-09-20 11:41:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-yajl-ruby (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-yajl-ruby.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-yajl-ruby"

Thu Sep 20 11:41:40 2018 rev:15 rq:635254 version:1.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-yajl-ruby/rubygem-yajl-ruby.changes      
2018-07-18 22:52:32.887237819 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-yajl-ruby.new/rubygem-yajl-ruby.changes 
2018-09-20 11:41:44.536846573 +0200
@@ -1,0 +2,6 @@
+Wed Sep  5 10:48:37 UTC 2018 - [email protected]
+
+- updated to version 1.4.1
+ see installed CHANGELOG.md
+
+-------------------------------------------------------------------

Old:
----
  yajl-ruby-1.4.0.gem

New:
----
  yajl-ruby-1.4.1.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-yajl-ruby.spec ++++++
--- /var/tmp/diff_new_pack.DTkiES/_old  2018-09-20 11:41:45.328846109 +0200
+++ /var/tmp/diff_new_pack.DTkiES/_new  2018-09-20 11:41:45.332846106 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-yajl-ruby
-Version:        1.4.0
+Version:        1.4.1
 Release:        0
 %define mod_name yajl-ruby
 %define mod_full_name %{mod_name}-%{version}

++++++ yajl-ruby-1.4.0.gem -> yajl-ruby-1.4.1.gem ++++++
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/yajl/yajl_encode.c new/ext/yajl/yajl_encode.c
--- old/ext/yajl/yajl_encode.c  2018-04-27 20:16:03.000000000 +0200
+++ new/ext/yajl/yajl_encode.c  2018-07-27 18:41:51.000000000 +0200
@@ -59,12 +59,18 @@
                     unsigned int htmlSafe)
 {
     unsigned int beg = 0;
-    unsigned int end = 0;    
+    unsigned int end = 0;
+    unsigned int increment = 0;
     char hexBuf[7];
+    char entityBuffer[7];
     hexBuf[0] = '\\'; hexBuf[1] = 'u'; hexBuf[2] = '0'; hexBuf[3] = '0';
     hexBuf[6] = 0;
 
+    entityBuffer[0] = '\\'; entityBuffer[1] = 'u'; entityBuffer[2] = '2'; 
entityBuffer[3] = '0';
+    entityBuffer[6] = 0;
+
     while (end < len) {
+        increment = 1;
         const char * escaped = NULL;
         switch (str[end]) {
             case '\r': escaped = "\\r"; break;
@@ -76,10 +82,39 @@
             case '\b': escaped = "\\b"; break;
             case '\t': escaped = "\\t"; break;
             case '/':
-              if (htmlSafe) {
+              if (htmlSafe == 1 || htmlSafe == 2) {
                 escaped = "\\/";
               }
               break;
+            /* Escaping 0xe280a8 0xe280a9 */
+            case 0xe2:
+              if (htmlSafe == 2) {
+                  if (len - end >= 2 && str[end + 1] == 0x80) {
+                      if (str[end + 2] == 0xa8) {
+                          increment = 3;
+                          entityBuffer[4] = '2';
+                          entityBuffer[5] = '8';
+                          escaped = entityBuffer;
+                          break;
+                      }
+
+                      if (str[end + 2] == 0xa9) {
+                          increment = 3;
+                          entityBuffer[4] = '2';
+                          entityBuffer[5] = '9';
+                          escaped = entityBuffer;
+                          break;
+                      }
+                  }
+              }
+            case '<':
+            case '>':
+            case '&':
+              if (htmlSafe == 2) {
+                  CharToHex(str[end], hexBuf + 4);
+                  escaped = hexBuf;
+              }
+              break;
             default:
                 if ((unsigned char) str[end] < 32) {
                     CharToHex(str[end], hexBuf + 4);
@@ -90,7 +125,8 @@
         if (escaped != NULL) {
             print(ctx, (const char *) (str + beg), end - beg);
             print(ctx, escaped, (unsigned int)strlen(escaped));
-            beg = ++end;
+            end += increment;
+            beg = end;
         } else {
             ++end;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/yajl/yajl_ext.c new/ext/yajl/yajl_ext.c
--- old/ext/yajl/yajl_ext.c     2018-04-27 20:16:03.000000000 +0200
+++ new/ext/yajl/yajl_ext.c     2018-07-27 18:41:51.000000000 +0200
@@ -1030,9 +1030,14 @@
                 actualIndent = indentString;
             }
         }
+
         if (rb_hash_aref(opts, sym_html_safe) == Qtrue) {
           htmlSafe = 1;
         }
+
+        if (rb_hash_aref(opts, sym_entities) == Qtrue) {
+          htmlSafe = 2;
+        }
     }
     if (!indentString) {
       indentString = defaultIndentString;
@@ -1356,6 +1361,7 @@
     sym_pretty = ID2SYM(rb_intern("pretty"));
     sym_indent = ID2SYM(rb_intern("indent"));
     sym_html_safe = ID2SYM(rb_intern("html_safe"));
+    sym_entities = ID2SYM(rb_intern("entities"));
     sym_terminator = ID2SYM(rb_intern("terminator"));
     sym_symbolize_keys = ID2SYM(rb_intern("symbolize_keys"));
     sym_symbolize_names = ID2SYM(rb_intern("symbolize_names"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/yajl/yajl_ext.h new/ext/yajl/yajl_ext.h
--- old/ext/yajl/yajl_ext.h     2018-04-27 20:16:03.000000000 +0200
+++ new/ext/yajl/yajl_ext.h     2018-07-27 18:41:51.000000000 +0200
@@ -56,7 +56,7 @@
 static VALUE cStandardError, cParseError, cEncodeError, mYajl, cParser, 
cProjector, cEncoder;
 static ID intern_io_read, intern_call, intern_keys, intern_to_s,
             intern_to_json, intern_has_key, intern_to_sym, intern_as_json;
-static ID sym_allow_comments, sym_check_utf8, sym_pretty, sym_indent, 
sym_terminator, sym_symbolize_keys, sym_symbolize_names, sym_html_safe;
+static ID sym_allow_comments, sym_check_utf8, sym_pretty, sym_indent, 
sym_terminator, sym_symbolize_keys, sym_symbolize_names, sym_html_safe, 
sym_entities;
 
 #define GetParser(obj, sval) Data_Get_Struct(obj, yajl_parser_wrapper, sval);
 #define GetEncoder(obj, sval) Data_Get_Struct(obj, yajl_encoder_wrapper, sval);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/yajl/version.rb new/lib/yajl/version.rb
--- old/lib/yajl/version.rb     2018-04-27 20:16:03.000000000 +0200
+++ new/lib/yajl/version.rb     2018-07-27 18:41:51.000000000 +0200
@@ -1,3 +1,3 @@
 module Yajl
-  VERSION = '1.4.0'
+  VERSION = '1.4.1'
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2018-04-27 20:16:03.000000000 +0200
+++ new/metadata        2018-07-27 18:41:51.000000000 +0200
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: yajl-ruby
 version: !ruby/object:Gem::Version
-  version: 1.4.0
+  version: 1.4.1
 platform: ruby
 authors:
 - Brian Lopez
@@ -9,7 +9,7 @@
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2018-04-27 00:00:00.000000000 Z
+date: 2018-07-27 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rake-compiler
@@ -17,42 +17,42 @@
     requirements:
     - - ">="
       - !ruby/object:Gem::Version
-        version: 0.7.5
+        version: '0'
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - ">="
       - !ruby/object:Gem::Version
-        version: 0.7.5
+        version: '0'
 - !ruby/object:Gem::Dependency
   name: rspec
   requirement: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: '3.0'
+        version: '0'
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: '3.0'
+        version: '0'
 - !ruby/object:Gem::Dependency
   name: activesupport
   requirement: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: 3.1.2
+        version: '0'
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: 3.1.2
+        version: '0'
 - !ruby/object:Gem::Dependency
   name: json
   requirement: !ruby/object:Gem::Requirement
@@ -71,16 +71,16 @@
   name: benchmark-memory
   requirement: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: '0.1'
+        version: '0'
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
-    - - "~>"
+    - - ">="
       - !ruby/object:Gem::Version
-        version: '0.1'
+        version: '0'
 description: 
 email: [email protected]
 executables: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/encoding/encoding_spec.rb 
new/spec/encoding/encoding_spec.rb
--- old/spec/encoding/encoding_spec.rb  2018-04-27 20:16:03.000000000 +0200
+++ new/spec/encoding/encoding_spec.rb  2018-07-27 18:41:51.000000000 +0200
@@ -275,11 +275,27 @@
     expect(safe_encoder.encode("</script>")).to eql("\"<\\/script>\"")
   end
 
+  it "should not encode characters with entities by default" do
+    expect(Yajl.dump("\u2028\u2029><&")).to eql("\"\u2028\u2029><&\"")
+  end
+
+  it "should encode characters with entities when enabled" do
+    expect(Yajl.dump("\u2028\u2029><&", entities: true)).to 
eql("\"\\u2028\\u2029\\u003E\\u003C\\u0026\"")
+  end
+
   it "should default to *not* escaping / characters" do
     unsafe_encoder = Yajl::Encoder.new
     expect(unsafe_encoder.encode("</script>")).not_to eql("\"<\\/script>\"")
   end
 
+  it "should encode slashes when enabled" do
+    unsafe_encoder = Yajl::Encoder.new(:entities => false)
+    safe_encoder   = Yajl::Encoder.new(:entities => true)
+
+    expect(unsafe_encoder.encode("</script>")).not_to eql("\"<\\/script>\"")
+    expect(safe_encoder.encode("</script>")).to 
eql("\"\\u003C\\/script\\u003E\"")
+  end
+
   it "return value of #to_json must be a string" do
     expect {
       Yajl::Encoder.encode(TheMindKiller.new)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yajl-ruby.gemspec new/yajl-ruby.gemspec
--- old/yajl-ruby.gemspec       2018-04-27 20:16:03.000000000 +0200
+++ new/yajl-ruby.gemspec       2018-07-27 18:41:52.000000000 +0200
@@ -17,11 +17,10 @@
   s.required_ruby_version = ">= 1.8.6"
 
   # tests
-  s.add_development_dependency 'rake-compiler', '>= 0.7.5'
-  s.add_development_dependency 'rspec', '~> 3.0'
+  s.add_development_dependency 'rake-compiler'
+  s.add_development_dependency 'rspec'
   # benchmarks
-  s.add_development_dependency 'activesupport', '~> 3.1.2'
+  s.add_development_dependency 'activesupport'
   s.add_development_dependency 'json'
-  s.add_development_dependency "benchmark-memory", "~> 0.1"
+  s.add_development_dependency "benchmark-memory"
 end
-


Reply via email to