psych 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/Gemfile +6 -0
 - data/LICENSE +21 -0
 - data/README.md +2 -5
 - data/Rakefile +8 -15
 - data/ext/psych/depend +2 -0
 - data/ext/psych/extconf.rb +6 -2
 - data/ext/psych/psych.c +6 -3
 - data/ext/psych/psych_parser.c +20 -33
 - data/ext/psych/psych_yaml_tree.c +0 -12
 - data/ext/psych/yaml/api.c +22 -22
 - data/ext/psych/yaml/config.h +76 -6
 - data/ext/psych/yaml/dumper.c +1 -1
 - data/ext/psych/yaml/emitter.c +44 -10
 - data/ext/psych/yaml/loader.c +206 -106
 - data/ext/psych/yaml/parser.c +6 -1
 - data/ext/psych/yaml/scanner.c +45 -25
 - data/ext/psych/yaml/yaml.h +43 -29
 - data/ext/psych/yaml/yaml_private.h +4 -4
 - data/lib/psych/class_loader.rb +6 -4
 - data/lib/psych/handler.rb +1 -1
 - data/lib/psych/nodes/node.rb +2 -2
 - data/lib/psych/nodes/scalar.rb +1 -1
 - data/lib/psych/scalar_scanner.rb +23 -36
 - data/lib/psych/versions.rb +3 -3
 - data/lib/psych/visitors/to_ruby.rb +50 -17
 - data/lib/psych/visitors/visitor.rb +17 -3
 - data/lib/psych/visitors/yaml_tree.rb +32 -44
 - data/lib/psych.rb +120 -103
 - data/psych.gemspec +8 -16
 - metadata +9 -54
 - data/.travis.yml +0 -22
 - data/CHANGELOG.rdoc +0 -583
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d17b99168b9a2274379d31e2e75b667e8cbe0d4b56cf9bc7dace2e8af07d8c3d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: cf0e77e91cd7f3b9dc4390f1fac70734daad2d747336cf5a4e5e9062035c1f84
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 92813d4ba7e393f2d1800ee7fe77b65cc9f56c6d0cc324440c367a71ef087d9d1a0ce2c3cbddaec238c05f50a205e62b8bd95a2bb88564ba03d729b473a31fcf
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: ee68420c75330f9a0671b1e595962fb971940e55b6693d17b41b7b06b8d75c6aa5541625371f3f81e8505c6b7f2d84426dd4fd610b5968e1b17581ca7f5d4bfb
         
     | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/LICENSE
    ADDED
    
    | 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            MIT License
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Copyright (c) 2009 Aaron Patterson, et al.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
      
 6 
     | 
    
         
            +
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
      
 7 
     | 
    
         
            +
            in the Software without restriction, including without limitation the rights
         
     | 
| 
      
 8 
     | 
    
         
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
      
 9 
     | 
    
         
            +
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
      
 10 
     | 
    
         
            +
            furnished to do so, subject to the following conditions:
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be included in all
         
     | 
| 
      
 13 
     | 
    
         
            +
            copies or substantial portions of the Software.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
      
 16 
     | 
    
         
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
      
 17 
     | 
    
         
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
      
 18 
     | 
    
         
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
      
 19 
     | 
    
         
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
      
 20 
     | 
    
         
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         
     | 
| 
      
 21 
     | 
    
         
            +
            SOFTWARE.
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,8 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Psych
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            [](https://travis-ci.org/ruby/psych)
         
     | 
| 
       4 
     | 
    
         
            -
            [](https://ci.appveyor.com/project/ruby/psych/branch/master)
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
3 
     | 
    
         
             
            *   https://github.com/ruby/psych
         
     | 
| 
       7 
4 
     | 
    
         | 
| 
       8 
5 
     | 
    
         
             
            ## Description
         
     | 
| 
         @@ -15,8 +12,8 @@ serialize and de-serialize most Ruby objects to and from the YAML format. 
     | 
|
| 
       15 
12 
     | 
    
         
             
            ## Examples
         
     | 
| 
       16 
13 
     | 
    
         | 
| 
       17 
14 
     | 
    
         
             
            ```ruby
         
     | 
| 
       18 
     | 
    
         
            -
            #  
     | 
| 
       19 
     | 
    
         
            -
            Psych. 
     | 
| 
      
 15 
     | 
    
         
            +
            # Safely load YAML in to a Ruby object
         
     | 
| 
      
 16 
     | 
    
         
            +
            Psych.safe_load('--- foo') # => 'foo'
         
     | 
| 
       20 
17 
     | 
    
         | 
| 
       21 
18 
     | 
    
         
             
            # Emit YAML from a Ruby object
         
     | 
| 
       22 
19 
     | 
    
         
             
            Psych.dump("foo")     # => "--- foo\n...\n"
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ Bundler::GemHelper.install_tasks 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            require "rake/testtask"
         
     | 
| 
       5 
5 
     | 
    
         
             
            Rake::TestTask.new(:test) do |t|
         
     | 
| 
       6 
     | 
    
         
            -
              t.libs << "test"
         
     | 
| 
       7 
     | 
    
         
            -
              t. 
     | 
| 
      
 6 
     | 
    
         
            +
              t.libs << "test/lib" << "test"
         
     | 
| 
      
 7 
     | 
    
         
            +
              t.ruby_opts << "-rhelper"
         
     | 
| 
       8 
8 
     | 
    
         
             
              t.test_files = FileList['test/**/test_*.rb']
         
     | 
| 
       9 
9 
     | 
    
         
             
              t.verbose = true
         
     | 
| 
       10 
10 
     | 
    
         
             
              t.warning = true
         
     | 
| 
         @@ -28,21 +28,14 @@ if RUBY_PLATFORM =~ /java/ 
     | 
|
| 
       28 
28 
     | 
    
         
             
              end
         
     | 
| 
       29 
29 
     | 
    
         
             
            else
         
     | 
| 
       30 
30 
     | 
    
         
             
              require 'rake/extensiontask'
         
     | 
| 
       31 
     | 
    
         
            -
               
     | 
| 
       32 
     | 
    
         
            -
              Rake::ExtensionTask.new("psych", spec) do |ext|
         
     | 
| 
       33 
     | 
    
         
            -
                ext.lib_dir = File.join(*['lib', ENV['FAT_DIR']].compact)
         
     | 
| 
       34 
     | 
    
         
            -
                ext.cross_compile = true
         
     | 
| 
       35 
     | 
    
         
            -
                ext.cross_platform = %w[x86-mingw32 x64-mingw32]
         
     | 
| 
       36 
     | 
    
         
            -
                ext.cross_compiling do |s|
         
     | 
| 
       37 
     | 
    
         
            -
                  s.files.concat ["lib/2.3/psych.so", "lib/2.4/psych.so", "lib/2.5/psych.so"]
         
     | 
| 
       38 
     | 
    
         
            -
                end
         
     | 
| 
       39 
     | 
    
         
            -
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
              Rake::ExtensionTask.new("psych")
         
     | 
| 
       40 
32 
     | 
    
         
             
            end
         
     | 
| 
       41 
33 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
               
     | 
| 
       45 
     | 
    
         
            -
               
     | 
| 
      
 34 
     | 
    
         
            +
            task :sync_tool do
         
     | 
| 
      
 35 
     | 
    
         
            +
              require 'fileutils'
         
     | 
| 
      
 36 
     | 
    
         
            +
              FileUtils.cp "../ruby/tool/lib/test/unit/core_assertions.rb", "./test/lib"
         
     | 
| 
      
 37 
     | 
    
         
            +
              FileUtils.cp "../ruby/tool/lib/envutil.rb", "./test/lib"
         
     | 
| 
      
 38 
     | 
    
         
            +
              FileUtils.cp "../ruby/tool/lib/find_executable.rb", "./test/lib"
         
     | 
| 
       46 
39 
     | 
    
         
             
            end
         
     | 
| 
       47 
40 
     | 
    
         | 
| 
       48 
41 
     | 
    
         
             
            task :default => [:compile, :test]
         
     | 
    
        data/ext/psych/depend
    CHANGED
    
    
    
        data/ext/psych/extconf.rb
    CHANGED
    
    | 
         @@ -13,8 +13,10 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li 
     | 
|
| 
       13 
13 
     | 
    
         
             
              $VPATH << "$(srcdir)/yaml"
         
     | 
| 
       14 
14 
     | 
    
         
             
              $INCFLAGS << " -I$(srcdir)/yaml"
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}
         
     | 
| 
      
 16 
     | 
    
         
            +
              $srcs = Dir.glob("#{$srcdir}/{,yaml/}*.c").map {|n| File.basename(n)}.sort
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
              header = 'yaml/yaml.h'
         
     | 
| 
      
 19 
     | 
    
         
            +
              header = "{$(VPATH)}#{header}" if $nmake
         
     | 
| 
       18 
20 
     | 
    
         
             
              if have_macro("_WIN32")
         
     | 
| 
       19 
21 
     | 
    
         
             
                $CPPFLAGS << " -DYAML_DECLARE_STATIC -DHAVE_CONFIG_H"
         
     | 
| 
       20 
22 
     | 
    
         
             
              end
         
     | 
| 
         @@ -34,6 +36,8 @@ if enable_config("bundled-libyaml", false) || !(find_header('yaml.h') && find_li 
     | 
|
| 
       34 
36 
     | 
    
         
             
              have_header 'config.h'
         
     | 
| 
       35 
37 
     | 
    
         
             
            end
         
     | 
| 
       36 
38 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
            create_makefile 'psych'
         
     | 
| 
      
 39 
     | 
    
         
            +
            create_makefile 'psych' do |mk|
         
     | 
| 
      
 40 
     | 
    
         
            +
              mk << "YAML_H = #{header}".strip << "\n"
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
       38 
42 
     | 
    
         | 
| 
       39 
43 
     | 
    
         
             
            # :startdoc:
         
     | 
    
        data/ext/psych/psych.c
    CHANGED
    
    | 
         @@ -11,9 +11,9 @@ static VALUE libyaml_version(VALUE module) 
     | 
|
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                yaml_get_version(&major, &minor, &patch);
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                list[0] = INT2NUM( 
     | 
| 
       15 
     | 
    
         
            -
                list[1] = INT2NUM( 
     | 
| 
       16 
     | 
    
         
            -
                list[2] = INT2NUM( 
     | 
| 
      
 14 
     | 
    
         
            +
                list[0] = INT2NUM(major);
         
     | 
| 
      
 15 
     | 
    
         
            +
                list[1] = INT2NUM(minor);
         
     | 
| 
      
 16 
     | 
    
         
            +
                list[2] = INT2NUM(patch);
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                return rb_ary_new4((long)3, list);
         
     | 
| 
       19 
19 
     | 
    
         
             
            }
         
     | 
| 
         @@ -22,6 +22,9 @@ VALUE mPsych; 
     | 
|
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
            void Init_psych(void)
         
     | 
| 
       24 
24 
     | 
    
         
             
            {
         
     | 
| 
      
 25 
     | 
    
         
            +
                #ifdef HAVE_RB_EXT_RACTOR_SAFE
         
     | 
| 
      
 26 
     | 
    
         
            +
            	RB_EXT_RACTOR_SAFE(true);
         
     | 
| 
      
 27 
     | 
    
         
            +
                #endif
         
     | 
| 
       25 
28 
     | 
    
         
             
                mPsych = rb_define_module("Psych");
         
     | 
| 
       26 
29 
     | 
    
         | 
| 
       27 
30 
     | 
    
         
             
                rb_define_singleton_method(mPsych, "libyaml_version", libyaml_version, 0);
         
     | 
    
        data/ext/psych/psych_parser.c
    CHANGED
    
    | 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #include <psych.h>
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            VALUE cPsychParser;
         
     | 
| 
       4 
     | 
    
         
            -
            VALUE ePsychSyntaxError;
         
     | 
| 
       5 
4 
     | 
    
         | 
| 
       6 
5 
     | 
    
         
             
            static ID id_read;
         
     | 
| 
       7 
6 
     | 
    
         
             
            static ID id_path;
         
     | 
| 
         @@ -28,7 +27,7 @@ static ID id_event_location; 
     | 
|
| 
       28 
27 
     | 
    
         
             
            static int io_reader(void * data, unsigned char *buf, size_t size, size_t *read)
         
     | 
| 
       29 
28 
     | 
    
         
             
            {
         
     | 
| 
       30 
29 
     | 
    
         
             
                VALUE io = (VALUE)data;
         
     | 
| 
       31 
     | 
    
         
            -
                VALUE string = rb_funcall(io, id_read, 1,  
     | 
| 
      
 30 
     | 
    
         
            +
                VALUE string = rb_funcall(io, id_read, 1, SIZET2NUM(size));
         
     | 
| 
       32 
31 
     | 
    
         | 
| 
       33 
32 
     | 
    
         
             
                *read = 0;
         
     | 
| 
       34 
33 
     | 
    
         | 
| 
         @@ -81,15 +80,18 @@ static VALUE allocate(VALUE klass) 
     | 
|
| 
       81 
80 
     | 
    
         
             
            static VALUE make_exception(yaml_parser_t * parser, VALUE path)
         
     | 
| 
       82 
81 
     | 
    
         
             
            {
         
     | 
| 
       83 
82 
     | 
    
         
             
                size_t line, column;
         
     | 
| 
      
 83 
     | 
    
         
            +
                VALUE ePsychSyntaxError;
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
                line = parser->context_mark.line + 1;
         
     | 
| 
       86 
86 
     | 
    
         
             
                column = parser->context_mark.column + 1;
         
     | 
| 
       87 
87 
     | 
    
         | 
| 
      
 88 
     | 
    
         
            +
                ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
       88 
90 
     | 
    
         
             
                return rb_funcall(ePsychSyntaxError, rb_intern("new"), 6,
         
     | 
| 
       89 
91 
     | 
    
         
             
            	    path,
         
     | 
| 
       90 
     | 
    
         
            -
            	     
     | 
| 
       91 
     | 
    
         
            -
            	     
     | 
| 
       92 
     | 
    
         
            -
            	     
     | 
| 
      
 92 
     | 
    
         
            +
            	    SIZET2NUM(line),
         
     | 
| 
      
 93 
     | 
    
         
            +
            	    SIZET2NUM(column),
         
     | 
| 
      
 94 
     | 
    
         
            +
            	    SIZET2NUM(parser->problem_offset),
         
     | 
| 
       93 
95 
     | 
    
         
             
            	    parser->problem ? rb_usascii_str_new2(parser->problem) : Qnil,
         
     | 
| 
       94 
96 
     | 
    
         
             
            	    parser->context ? rb_usascii_str_new2(parser->context) : Qnil);
         
     | 
| 
       95 
97 
     | 
    
         
             
            }
         
     | 
| 
         @@ -254,7 +256,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       254 
256 
     | 
    
         
             
                yaml_parser_t * parser;
         
     | 
| 
       255 
257 
     | 
    
         
             
                yaml_event_t event;
         
     | 
| 
       256 
258 
     | 
    
         
             
                int done = 0;
         
     | 
| 
       257 
     | 
    
         
            -
                int tainted = 0;
         
     | 
| 
       258 
259 
     | 
    
         
             
                int state = 0;
         
     | 
| 
       259 
260 
     | 
    
         
             
                int parser_encoding = YAML_ANY_ENCODING;
         
     | 
| 
       260 
261 
     | 
    
         
             
                int encoding = rb_utf8_encindex();
         
     | 
| 
         @@ -273,13 +274,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       273 
274 
     | 
    
         
             
                yaml_parser_delete(parser);
         
     | 
| 
       274 
275 
     | 
    
         
             
                yaml_parser_initialize(parser);
         
     | 
| 
       275 
276 
     | 
    
         | 
| 
       276 
     | 
    
         
            -
                if (OBJ_TAINTED(yaml)) tainted = 1;
         
     | 
| 
       277 
     | 
    
         
            -
             
     | 
| 
       278 
277 
     | 
    
         
             
                if (rb_respond_to(yaml, id_read)) {
         
     | 
| 
       279 
278 
     | 
    
         
             
            	yaml = transcode_io(yaml, &parser_encoding);
         
     | 
| 
       280 
279 
     | 
    
         
             
            	yaml_parser_set_encoding(parser, parser_encoding);
         
     | 
| 
       281 
280 
     | 
    
         
             
            	yaml_parser_set_input(parser, io_reader, (void *)yaml);
         
     | 
| 
       282 
     | 
    
         
            -
            	if (RTEST(rb_obj_is_kind_of(yaml, rb_cIO))) tainted = 1;
         
     | 
| 
       283 
281 
     | 
    
         
             
                } else {
         
     | 
| 
       284 
282 
     | 
    
         
             
            	StringValue(yaml);
         
     | 
| 
       285 
283 
     | 
    
         
             
            	yaml = transcode_string(yaml, &parser_encoding);
         
     | 
| 
         @@ -305,10 +303,10 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       305 
303 
     | 
    
         
             
            	    rb_exc_raise(exception);
         
     | 
| 
       306 
304 
     | 
    
         
             
            	}
         
     | 
| 
       307 
305 
     | 
    
         | 
| 
       308 
     | 
    
         
            -
            	start_line =  
     | 
| 
       309 
     | 
    
         
            -
            	start_column =  
     | 
| 
       310 
     | 
    
         
            -
            	end_line =  
     | 
| 
       311 
     | 
    
         
            -
            	end_column =  
     | 
| 
      
 306 
     | 
    
         
            +
            	start_line = SIZET2NUM(event.start_mark.line);
         
     | 
| 
      
 307 
     | 
    
         
            +
            	start_column = SIZET2NUM(event.start_mark.column);
         
     | 
| 
      
 308 
     | 
    
         
            +
            	end_line = SIZET2NUM(event.end_mark.line);
         
     | 
| 
      
 309 
     | 
    
         
            +
            	end_column = SIZET2NUM(event.end_mark.column);
         
     | 
| 
       312 
310 
     | 
    
         | 
| 
       313 
311 
     | 
    
         
             
            	event_args[0] = handler;
         
     | 
| 
       314 
312 
     | 
    
         
             
            	event_args[1] = start_line;
         
     | 
| 
         @@ -323,7 +321,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       323 
321 
     | 
    
         
             
            		  VALUE args[2];
         
     | 
| 
       324 
322 
     | 
    
         | 
| 
       325 
323 
     | 
    
         
             
            		  args[0] = handler;
         
     | 
| 
       326 
     | 
    
         
            -
            		  args[1] = INT2NUM( 
     | 
| 
      
 324 
     | 
    
         
            +
            		  args[1] = INT2NUM(event.data.stream_start.encoding);
         
     | 
| 
       327 
325 
     | 
    
         
             
            		  rb_protect(protected_start_stream, (VALUE)args, &state);
         
     | 
| 
       328 
326 
     | 
    
         
             
            	      }
         
     | 
| 
       329 
327 
     | 
    
         
             
            	      break;
         
     | 
| 
         @@ -336,8 +334,8 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       336 
334 
     | 
    
         
             
            		VALUE version = event.data.document_start.version_directive ?
         
     | 
| 
       337 
335 
     | 
    
         
             
            		    rb_ary_new3(
         
     | 
| 
       338 
336 
     | 
    
         
             
            			(long)2,
         
     | 
| 
       339 
     | 
    
         
            -
            			INT2NUM( 
     | 
| 
       340 
     | 
    
         
            -
            			INT2NUM( 
     | 
| 
      
 337 
     | 
    
         
            +
            			INT2NUM(event.data.document_start.version_directive->major),
         
     | 
| 
      
 338 
     | 
    
         
            +
            			INT2NUM(event.data.document_start.version_directive->minor)
         
     | 
| 
       341 
339 
     | 
    
         
             
            			) : rb_ary_new();
         
     | 
| 
       342 
340 
     | 
    
         | 
| 
       343 
341 
     | 
    
         
             
            		if(event.data.document_start.tag_directives.start) {
         
     | 
| 
         @@ -350,13 +348,11 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       350 
348 
     | 
    
         
             
            			VALUE prefix = Qnil;
         
     | 
| 
       351 
349 
     | 
    
         
             
            			if(start->handle) {
         
     | 
| 
       352 
350 
     | 
    
         
             
            			    handle = rb_str_new2((const char *)start->handle);
         
     | 
| 
       353 
     | 
    
         
            -
            			    if (tainted) OBJ_TAINT(handle);
         
     | 
| 
       354 
351 
     | 
    
         
             
            			    PSYCH_TRANSCODE(handle, encoding, internal_enc);
         
     | 
| 
       355 
352 
     | 
    
         
             
            			}
         
     | 
| 
       356 
353 
     | 
    
         | 
| 
       357 
354 
     | 
    
         
             
            			if(start->prefix) {
         
     | 
| 
       358 
355 
     | 
    
         
             
            			    prefix = rb_str_new2((const char *)start->prefix);
         
     | 
| 
       359 
     | 
    
         
            -
            			    if (tainted) OBJ_TAINT(prefix);
         
     | 
| 
       360 
356 
     | 
    
         
             
            			    PSYCH_TRANSCODE(prefix, encoding, internal_enc);
         
     | 
| 
       361 
357 
     | 
    
         
             
            			}
         
     | 
| 
       362 
358 
     | 
    
         | 
| 
         @@ -385,7 +381,6 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       385 
381 
     | 
    
         
             
            		VALUE alias = Qnil;
         
     | 
| 
       386 
382 
     | 
    
         
             
            		if(event.data.alias.anchor) {
         
     | 
| 
       387 
383 
     | 
    
         
             
            		    alias = rb_str_new2((const char *)event.data.alias.anchor);
         
     | 
| 
       388 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(alias);
         
     | 
| 
       389 
384 
     | 
    
         
             
            		    PSYCH_TRANSCODE(alias, encoding, internal_enc);
         
     | 
| 
       390 
385 
     | 
    
         
             
            		}
         
     | 
| 
       391 
386 
     | 
    
         | 
| 
         @@ -404,19 +399,16 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       404 
399 
     | 
    
         
             
            		    (const char *)event.data.scalar.value,
         
     | 
| 
       405 
400 
     | 
    
         
             
            		    (long)event.data.scalar.length
         
     | 
| 
       406 
401 
     | 
    
         
             
            		    );
         
     | 
| 
       407 
     | 
    
         
            -
            		if (tainted) OBJ_TAINT(val);
         
     | 
| 
       408 
402 
     | 
    
         | 
| 
       409 
403 
     | 
    
         
             
            		PSYCH_TRANSCODE(val, encoding, internal_enc);
         
     | 
| 
       410 
404 
     | 
    
         | 
| 
       411 
405 
     | 
    
         
             
            		if(event.data.scalar.anchor) {
         
     | 
| 
       412 
406 
     | 
    
         
             
            		    anchor = rb_str_new2((const char *)event.data.scalar.anchor);
         
     | 
| 
       413 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(anchor);
         
     | 
| 
       414 
407 
     | 
    
         
             
            		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);
         
     | 
| 
       415 
408 
     | 
    
         
             
            		}
         
     | 
| 
       416 
409 
     | 
    
         | 
| 
       417 
410 
     | 
    
         
             
            		if(event.data.scalar.tag) {
         
     | 
| 
       418 
411 
     | 
    
         
             
            		    tag = rb_str_new2((const char *)event.data.scalar.tag);
         
     | 
| 
       419 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(tag);
         
     | 
| 
       420 
412 
     | 
    
         
             
            		    PSYCH_TRANSCODE(tag, encoding, internal_enc);
         
     | 
| 
       421 
413 
     | 
    
         
             
            		}
         
     | 
| 
       422 
414 
     | 
    
         | 
| 
         @@ -426,7 +418,7 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       426 
418 
     | 
    
         
             
            		quoted_implicit =
         
     | 
| 
       427 
419 
     | 
    
         
             
            		    event.data.scalar.quoted_implicit == 0 ? Qfalse : Qtrue;
         
     | 
| 
       428 
420 
     | 
    
         | 
| 
       429 
     | 
    
         
            -
            		style = INT2NUM( 
     | 
| 
      
 421 
     | 
    
         
            +
            		style = INT2NUM(event.data.scalar.style);
         
     | 
| 
       430 
422 
     | 
    
         | 
| 
       431 
423 
     | 
    
         
             
            		args[0] = handler;
         
     | 
| 
       432 
424 
     | 
    
         
             
            		args[1] = val;
         
     | 
| 
         @@ -446,21 +438,19 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       446 
438 
     | 
    
         
             
            		VALUE implicit, style;
         
     | 
| 
       447 
439 
     | 
    
         
             
            		if(event.data.sequence_start.anchor) {
         
     | 
| 
       448 
440 
     | 
    
         
             
            		    anchor = rb_str_new2((const char *)event.data.sequence_start.anchor);
         
     | 
| 
       449 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(anchor);
         
     | 
| 
       450 
441 
     | 
    
         
             
            		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);
         
     | 
| 
       451 
442 
     | 
    
         
             
            		}
         
     | 
| 
       452 
443 
     | 
    
         | 
| 
       453 
444 
     | 
    
         
             
            		tag = Qnil;
         
     | 
| 
       454 
445 
     | 
    
         
             
            		if(event.data.sequence_start.tag) {
         
     | 
| 
       455 
446 
     | 
    
         
             
            		    tag = rb_str_new2((const char *)event.data.sequence_start.tag);
         
     | 
| 
       456 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(tag);
         
     | 
| 
       457 
447 
     | 
    
         
             
            		    PSYCH_TRANSCODE(tag, encoding, internal_enc);
         
     | 
| 
       458 
448 
     | 
    
         
             
            		}
         
     | 
| 
       459 
449 
     | 
    
         | 
| 
       460 
450 
     | 
    
         
             
            		implicit =
         
     | 
| 
       461 
451 
     | 
    
         
             
            		    event.data.sequence_start.implicit == 0 ? Qfalse : Qtrue;
         
     | 
| 
       462 
452 
     | 
    
         | 
| 
       463 
     | 
    
         
            -
            		style = INT2NUM( 
     | 
| 
      
 453 
     | 
    
         
            +
            		style = INT2NUM(event.data.sequence_start.style);
         
     | 
| 
       464 
454 
     | 
    
         | 
| 
       465 
455 
     | 
    
         
             
            		args[0] = handler;
         
     | 
| 
       466 
456 
     | 
    
         
             
            		args[1] = anchor;
         
     | 
| 
         @@ -482,20 +472,18 @@ static VALUE parse(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       482 
472 
     | 
    
         
             
            		VALUE implicit, style;
         
     | 
| 
       483 
473 
     | 
    
         
             
            		if(event.data.mapping_start.anchor) {
         
     | 
| 
       484 
474 
     | 
    
         
             
            		    anchor = rb_str_new2((const char *)event.data.mapping_start.anchor);
         
     | 
| 
       485 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(anchor);
         
     | 
| 
       486 
475 
     | 
    
         
             
            		    PSYCH_TRANSCODE(anchor, encoding, internal_enc);
         
     | 
| 
       487 
476 
     | 
    
         
             
            		}
         
     | 
| 
       488 
477 
     | 
    
         | 
| 
       489 
478 
     | 
    
         
             
            		if(event.data.mapping_start.tag) {
         
     | 
| 
       490 
479 
     | 
    
         
             
            		    tag = rb_str_new2((const char *)event.data.mapping_start.tag);
         
     | 
| 
       491 
     | 
    
         
            -
            		    if (tainted) OBJ_TAINT(tag);
         
     | 
| 
       492 
480 
     | 
    
         
             
            		    PSYCH_TRANSCODE(tag, encoding, internal_enc);
         
     | 
| 
       493 
481 
     | 
    
         
             
            		}
         
     | 
| 
       494 
482 
     | 
    
         | 
| 
       495 
483 
     | 
    
         
             
            		implicit =
         
     | 
| 
       496 
484 
     | 
    
         
             
            		    event.data.mapping_start.implicit == 0 ? Qfalse : Qtrue;
         
     | 
| 
       497 
485 
     | 
    
         | 
| 
       498 
     | 
    
         
            -
            		style = INT2NUM( 
     | 
| 
      
 486 
     | 
    
         
            +
            		style = INT2NUM(event.data.mapping_start.style);
         
     | 
| 
       499 
487 
     | 
    
         | 
| 
       500 
488 
     | 
    
         
             
            		args[0] = handler;
         
     | 
| 
       501 
489 
     | 
    
         
             
            		args[1] = anchor;
         
     | 
| 
         @@ -539,9 +527,9 @@ static VALUE mark(VALUE self) 
     | 
|
| 
       539 
527 
     | 
    
         | 
| 
       540 
528 
     | 
    
         
             
                TypedData_Get_Struct(self, yaml_parser_t, &psych_parser_type, parser);
         
     | 
| 
       541 
529 
     | 
    
         
             
                mark_klass = rb_const_get_at(cPsychParser, rb_intern("Mark"));
         
     | 
| 
       542 
     | 
    
         
            -
                args[0] =  
     | 
| 
       543 
     | 
    
         
            -
                args[1] =  
     | 
| 
       544 
     | 
    
         
            -
                args[2] =  
     | 
| 
      
 530 
     | 
    
         
            +
                args[0] = SIZET2NUM(parser->mark.index);
         
     | 
| 
      
 531 
     | 
    
         
            +
                args[1] = SIZET2NUM(parser->mark.line);
         
     | 
| 
      
 532 
     | 
    
         
            +
                args[2] = SIZET2NUM(parser->mark.column);
         
     | 
| 
       545 
533 
     | 
    
         | 
| 
       546 
534 
     | 
    
         
             
                return rb_class_new_instance(3, args, mark_klass);
         
     | 
| 
       547 
535 
     | 
    
         
             
            }
         
     | 
| 
         @@ -569,7 +557,6 @@ void Init_psych_parser(void) 
     | 
|
| 
       569 
557 
     | 
    
         
             
                rb_define_const(cPsychParser, "UTF16BE", INT2NUM(YAML_UTF16BE_ENCODING));
         
     | 
| 
       570 
558 
     | 
    
         | 
| 
       571 
559 
     | 
    
         
             
                rb_require("psych/syntax_error");
         
     | 
| 
       572 
     | 
    
         
            -
                ePsychSyntaxError = rb_const_get(mPsych, rb_intern("SyntaxError"));
         
     | 
| 
       573 
560 
     | 
    
         | 
| 
       574 
561 
     | 
    
         
             
                rb_define_method(cPsychParser, "parse", parse, -1);
         
     | 
| 
       575 
562 
     | 
    
         
             
                rb_define_method(cPsychParser, "mark", mark, 0);
         
     | 
    
        data/ext/psych/psych_yaml_tree.c
    CHANGED
    
    | 
         @@ -2,23 +2,11 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            VALUE cPsychVisitorsYamlTree;
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            /*
         
     | 
| 
       6 
     | 
    
         
            -
             * call-seq: private_iv_get(target, prop)
         
     | 
| 
       7 
     | 
    
         
            -
             *
         
     | 
| 
       8 
     | 
    
         
            -
             * Get the private instance variable +prop+ from +target+
         
     | 
| 
       9 
     | 
    
         
            -
             */
         
     | 
| 
       10 
     | 
    
         
            -
            static VALUE private_iv_get(VALUE self, VALUE target, VALUE prop)
         
     | 
| 
       11 
     | 
    
         
            -
            {
         
     | 
| 
       12 
     | 
    
         
            -
                return rb_attr_get(target, rb_intern(StringValueCStr(prop)));
         
     | 
| 
       13 
     | 
    
         
            -
            }
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
5 
     | 
    
         
             
            void Init_psych_yaml_tree(void)
         
     | 
| 
       16 
6 
     | 
    
         
             
            {
         
     | 
| 
       17 
7 
     | 
    
         
             
                VALUE psych     = rb_define_module("Psych");
         
     | 
| 
       18 
8 
     | 
    
         
             
                VALUE visitors  = rb_define_module_under(psych, "Visitors");
         
     | 
| 
       19 
9 
     | 
    
         
             
                VALUE visitor   = rb_define_class_under(visitors, "Visitor", rb_cObject);
         
     | 
| 
       20 
10 
     | 
    
         
             
                cPsychVisitorsYamlTree = rb_define_class_under(visitors, "YAMLTree", visitor);
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                rb_define_private_method(cPsychVisitorsYamlTree, "private_iv_get", private_iv_get, 2);
         
     | 
| 
       23 
11 
     | 
    
         
             
            }
         
     | 
| 
       24 
12 
     | 
    
         
             
            /* vim: set noet sws=4 sw=4: */
         
     | 
    
        data/ext/psych/yaml/api.c
    CHANGED
    
    | 
         @@ -118,7 +118,12 @@ yaml_string_join( 
     | 
|
| 
       118 
118 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       119 
119 
     | 
    
         
             
            yaml_stack_extend(void **start, void **top, void **end)
         
     | 
| 
       120 
120 
     | 
    
         
             
            {
         
     | 
| 
       121 
     | 
    
         
            -
                void *new_start 
     | 
| 
      
 121 
     | 
    
         
            +
                void *new_start;
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
                if ((char *)*end - (char *)*start >= INT_MAX / 2)
         
     | 
| 
      
 124 
     | 
    
         
            +
            	return 0;
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
         
     | 
| 
       122 
127 
     | 
    
         | 
| 
       123 
128 
     | 
    
         
             
                if (!new_start) return 0;
         
     | 
| 
       124 
129 
     | 
    
         | 
| 
         @@ -618,10 +623,10 @@ yaml_token_delete(yaml_token_t *token) 
     | 
|
| 
       618 
623 
     | 
    
         
             
             */
         
     | 
| 
       619 
624 
     | 
    
         | 
| 
       620 
625 
     | 
    
         
             
            static int
         
     | 
| 
       621 
     | 
    
         
            -
            yaml_check_utf8(yaml_char_t *start, size_t length)
         
     | 
| 
      
 626 
     | 
    
         
            +
            yaml_check_utf8(const yaml_char_t *start, size_t length)
         
     | 
| 
       622 
627 
     | 
    
         
             
            {
         
     | 
| 
       623 
     | 
    
         
            -
                yaml_char_t *end = start+length;
         
     | 
| 
       624 
     | 
    
         
            -
                yaml_char_t *pointer = start;
         
     | 
| 
      
 628 
     | 
    
         
            +
                const yaml_char_t *end = start+length;
         
     | 
| 
      
 629 
     | 
    
         
            +
                const yaml_char_t *pointer = start;
         
     | 
| 
       625 
630 
     | 
    
         | 
| 
       626 
631 
     | 
    
         
             
                while (pointer < end) {
         
     | 
| 
       627 
632 
     | 
    
         
             
                    unsigned char octet;
         
     | 
| 
         @@ -789,7 +794,7 @@ yaml_document_end_event_initialize(yaml_event_t *event, int implicit) 
     | 
|
| 
       789 
794 
     | 
    
         
             
             */
         
     | 
| 
       790 
795 
     | 
    
         | 
| 
       791 
796 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       792 
     | 
    
         
            -
            yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor)
         
     | 
| 
      
 797 
     | 
    
         
            +
            yaml_alias_event_initialize(yaml_event_t *event, const yaml_char_t *anchor)
         
     | 
| 
       793 
798 
     | 
    
         
             
            {
         
     | 
| 
       794 
799 
     | 
    
         
             
                yaml_mark_t mark = { 0, 0, 0 };
         
     | 
| 
       795 
800 
     | 
    
         
             
                yaml_char_t *anchor_copy = NULL;
         
     | 
| 
         @@ -814,8 +819,8 @@ yaml_alias_event_initialize(yaml_event_t *event, yaml_char_t *anchor) 
     | 
|
| 
       814 
819 
     | 
    
         | 
| 
       815 
820 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       816 
821 
     | 
    
         
             
            yaml_scalar_event_initialize(yaml_event_t *event,
         
     | 
| 
       817 
     | 
    
         
            -
                    yaml_char_t *anchor, yaml_char_t *tag,
         
     | 
| 
       818 
     | 
    
         
            -
                    yaml_char_t *value, int length,
         
     | 
| 
      
 822 
     | 
    
         
            +
                    const yaml_char_t *anchor, const yaml_char_t *tag,
         
     | 
| 
      
 823 
     | 
    
         
            +
                    const yaml_char_t *value, int length,
         
     | 
| 
       819 
824 
     | 
    
         
             
                    int plain_implicit, int quoted_implicit,
         
     | 
| 
       820 
825 
     | 
    
         
             
                    yaml_scalar_style_t style)
         
     | 
| 
       821 
826 
     | 
    
         
             
            {
         
     | 
| 
         @@ -840,7 +845,7 @@ yaml_scalar_event_initialize(yaml_event_t *event, 
     | 
|
| 
       840 
845 
     | 
    
         
             
                }
         
     | 
| 
       841 
846 
     | 
    
         | 
| 
       842 
847 
     | 
    
         
             
                if (length < 0) {
         
     | 
| 
       843 
     | 
    
         
            -
                    length = strlen((char *)value);
         
     | 
| 
      
 848 
     | 
    
         
            +
                    length = (int)strlen((char *)value);
         
     | 
| 
       844 
849 
     | 
    
         
             
                }
         
     | 
| 
       845 
850 
     | 
    
         | 
| 
       846 
851 
     | 
    
         
             
                if (!yaml_check_utf8(value, length)) goto error;
         
     | 
| 
         @@ -868,7 +873,7 @@ error: 
     | 
|
| 
       868 
873 
     | 
    
         | 
| 
       869 
874 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       870 
875 
     | 
    
         
             
            yaml_sequence_start_event_initialize(yaml_event_t *event,
         
     | 
| 
       871 
     | 
    
         
            -
                    yaml_char_t *anchor, yaml_char_t *tag, int implicit,
         
     | 
| 
      
 876 
     | 
    
         
            +
                    const yaml_char_t *anchor, const yaml_char_t *tag, int implicit,
         
     | 
| 
       872 
877 
     | 
    
         
             
                    yaml_sequence_style_t style)
         
     | 
| 
       873 
878 
     | 
    
         
             
            {
         
     | 
| 
       874 
879 
     | 
    
         
             
                yaml_mark_t mark = { 0, 0, 0 };
         
     | 
| 
         @@ -923,7 +928,7 @@ yaml_sequence_end_event_initialize(yaml_event_t *event) 
     | 
|
| 
       923 
928 
     | 
    
         | 
| 
       924 
929 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       925 
930 
     | 
    
         
             
            yaml_mapping_start_event_initialize(yaml_event_t *event,
         
     | 
| 
       926 
     | 
    
         
            -
                    yaml_char_t *anchor, yaml_char_t *tag, int implicit,
         
     | 
| 
      
 931 
     | 
    
         
            +
                    const yaml_char_t *anchor, const yaml_char_t *tag, int implicit,
         
     | 
| 
       927 
932 
     | 
    
         
             
                    yaml_mapping_style_t style)
         
     | 
| 
       928 
933 
     | 
    
         
             
            {
         
     | 
| 
       929 
934 
     | 
    
         
             
                yaml_mark_t mark = { 0, 0, 0 };
         
     | 
| 
         @@ -1117,13 +1122,8 @@ error: 
     | 
|
| 
       1117 
1122 
     | 
    
         
             
            YAML_DECLARE(void)
         
     | 
| 
       1118 
1123 
     | 
    
         
             
            yaml_document_delete(yaml_document_t *document)
         
     | 
| 
       1119 
1124 
     | 
    
         
             
            {
         
     | 
| 
       1120 
     | 
    
         
            -
                struct {
         
     | 
| 
       1121 
     | 
    
         
            -
                    yaml_error_type_t error;
         
     | 
| 
       1122 
     | 
    
         
            -
                } context;
         
     | 
| 
       1123 
1125 
     | 
    
         
             
                yaml_tag_directive_t *tag_directive;
         
     | 
| 
       1124 
1126 
     | 
    
         | 
| 
       1125 
     | 
    
         
            -
                context.error = YAML_NO_ERROR;  /* Eliminate a compliler warning. */
         
     | 
| 
       1126 
     | 
    
         
            -
             
     | 
| 
       1127 
1127 
     | 
    
         
             
                assert(document);   /* Non-NULL document object is expected. */
         
     | 
| 
       1128 
1128 
     | 
    
         | 
| 
       1129 
1129 
     | 
    
         
             
                while (!STACK_EMPTY(&context, document->nodes)) {
         
     | 
| 
         @@ -1193,7 +1193,7 @@ yaml_document_get_root_node(yaml_document_t *document) 
     | 
|
| 
       1193 
1193 
     | 
    
         | 
| 
       1194 
1194 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       1195 
1195 
     | 
    
         
             
            yaml_document_add_scalar(yaml_document_t *document,
         
     | 
| 
       1196 
     | 
    
         
            -
                    yaml_char_t *tag, yaml_char_t *value, int length,
         
     | 
| 
      
 1196 
     | 
    
         
            +
                    const yaml_char_t *tag, const yaml_char_t *value, int length,
         
     | 
| 
       1197 
1197 
     | 
    
         
             
                    yaml_scalar_style_t style)
         
     | 
| 
       1198 
1198 
     | 
    
         
             
            {
         
     | 
| 
       1199 
1199 
     | 
    
         
             
                struct {
         
     | 
| 
         @@ -1216,7 +1216,7 @@ yaml_document_add_scalar(yaml_document_t *document, 
     | 
|
| 
       1216 
1216 
     | 
    
         
             
                if (!tag_copy) goto error;
         
     | 
| 
       1217 
1217 
     | 
    
         | 
| 
       1218 
1218 
     | 
    
         
             
                if (length < 0) {
         
     | 
| 
       1219 
     | 
    
         
            -
                    length = strlen((char *)value);
         
     | 
| 
      
 1219 
     | 
    
         
            +
                    length = (int)strlen((char *)value);
         
     | 
| 
       1220 
1220 
     | 
    
         
             
                }
         
     | 
| 
       1221 
1221 
     | 
    
         | 
| 
       1222 
1222 
     | 
    
         
             
                if (!yaml_check_utf8(value, length)) goto error;
         
     | 
| 
         @@ -1228,7 +1228,7 @@ yaml_document_add_scalar(yaml_document_t *document, 
     | 
|
| 
       1228 
1228 
     | 
    
         
             
                SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark);
         
     | 
| 
       1229 
1229 
     | 
    
         
             
                if (!PUSH(&context, document->nodes, node)) goto error;
         
     | 
| 
       1230 
1230 
     | 
    
         | 
| 
       1231 
     | 
    
         
            -
                return document->nodes.top - document->nodes.start;
         
     | 
| 
      
 1231 
     | 
    
         
            +
                return (int)(document->nodes.top - document->nodes.start);
         
     | 
| 
       1232 
1232 
     | 
    
         | 
| 
       1233 
1233 
     | 
    
         
             
            error:
         
     | 
| 
       1234 
1234 
     | 
    
         
             
                yaml_free(tag_copy);
         
     | 
| 
         @@ -1243,7 +1243,7 @@ error: 
     | 
|
| 
       1243 
1243 
     | 
    
         | 
| 
       1244 
1244 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       1245 
1245 
     | 
    
         
             
            yaml_document_add_sequence(yaml_document_t *document,
         
     | 
| 
       1246 
     | 
    
         
            -
                    yaml_char_t *tag, yaml_sequence_style_t style)
         
     | 
| 
      
 1246 
     | 
    
         
            +
                    const yaml_char_t *tag, yaml_sequence_style_t style)
         
     | 
| 
       1247 
1247 
     | 
    
         
             
            {
         
     | 
| 
       1248 
1248 
     | 
    
         
             
                struct {
         
     | 
| 
       1249 
1249 
     | 
    
         
             
                    yaml_error_type_t error;
         
     | 
| 
         @@ -1273,7 +1273,7 @@ yaml_document_add_sequence(yaml_document_t *document, 
     | 
|
| 
       1273 
1273 
     | 
    
         
             
                        style, mark, mark);
         
     | 
| 
       1274 
1274 
     | 
    
         
             
                if (!PUSH(&context, document->nodes, node)) goto error;
         
     | 
| 
       1275 
1275 
     | 
    
         | 
| 
       1276 
     | 
    
         
            -
                return document->nodes.top - document->nodes.start;
         
     | 
| 
      
 1276 
     | 
    
         
            +
                return (int)(document->nodes.top - document->nodes.start);
         
     | 
| 
       1277 
1277 
     | 
    
         | 
| 
       1278 
1278 
     | 
    
         
             
            error:
         
     | 
| 
       1279 
1279 
     | 
    
         
             
                STACK_DEL(&context, items);
         
     | 
| 
         @@ -1288,7 +1288,7 @@ error: 
     | 
|
| 
       1288 
1288 
     | 
    
         | 
| 
       1289 
1289 
     | 
    
         
             
            YAML_DECLARE(int)
         
     | 
| 
       1290 
1290 
     | 
    
         
             
            yaml_document_add_mapping(yaml_document_t *document,
         
     | 
| 
       1291 
     | 
    
         
            -
                    yaml_char_t *tag, yaml_mapping_style_t style)
         
     | 
| 
      
 1291 
     | 
    
         
            +
                    const yaml_char_t *tag, yaml_mapping_style_t style)
         
     | 
| 
       1292 
1292 
     | 
    
         
             
            {
         
     | 
| 
       1293 
1293 
     | 
    
         
             
                struct {
         
     | 
| 
       1294 
1294 
     | 
    
         
             
                    yaml_error_type_t error;
         
     | 
| 
         @@ -1318,7 +1318,7 @@ yaml_document_add_mapping(yaml_document_t *document, 
     | 
|
| 
       1318 
1318 
     | 
    
         
             
                        style, mark, mark);
         
     | 
| 
       1319 
1319 
     | 
    
         
             
                if (!PUSH(&context, document->nodes, node)) goto error;
         
     | 
| 
       1320 
1320 
     | 
    
         | 
| 
       1321 
     | 
    
         
            -
                return document->nodes.top - document->nodes.start;
         
     | 
| 
      
 1321 
     | 
    
         
            +
                return (int)(document->nodes.top - document->nodes.start);
         
     | 
| 
       1322 
1322 
     | 
    
         | 
| 
       1323 
1323 
     | 
    
         
             
            error:
         
     | 
| 
       1324 
1324 
     | 
    
         
             
                STACK_DEL(&context, pairs);
         
     | 
    
        data/ext/psych/yaml/config.h
    CHANGED
    
    | 
         @@ -1,10 +1,80 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* include/config.h.  Generated from config.h.in by configure.  */
         
     | 
| 
      
 2 
     | 
    
         
            +
            /* include/config.h.in.  Generated from configure.ac by autoheader.  */
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            /* Define to 1 if you have the <dlfcn.h> header file. */
         
     | 
| 
      
 5 
     | 
    
         
            +
            #define HAVE_DLFCN_H 1
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            /* Define to 1 if you have the <inttypes.h> header file. */
         
     | 
| 
      
 8 
     | 
    
         
            +
            #define HAVE_INTTYPES_H 1
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            /* Define to 1 if you have the <memory.h> header file. */
         
     | 
| 
      
 11 
     | 
    
         
            +
            #define HAVE_MEMORY_H 1
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            /* Define to 1 if you have the <stdint.h> header file. */
         
     | 
| 
      
 14 
     | 
    
         
            +
            #define HAVE_STDINT_H 1
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            /* Define to 1 if you have the <stdlib.h> header file. */
         
     | 
| 
      
 17 
     | 
    
         
            +
            #define HAVE_STDLIB_H 1
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            /* Define to 1 if you have the <strings.h> header file. */
         
     | 
| 
      
 20 
     | 
    
         
            +
            #define HAVE_STRINGS_H 1
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            /* Define to 1 if you have the <string.h> header file. */
         
     | 
| 
      
 23 
     | 
    
         
            +
            #define HAVE_STRING_H 1
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            /* Define to 1 if you have the <sys/stat.h> header file. */
         
     | 
| 
      
 26 
     | 
    
         
            +
            #define HAVE_SYS_STAT_H 1
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            /* Define to 1 if you have the <sys/types.h> header file. */
         
     | 
| 
      
 29 
     | 
    
         
            +
            #define HAVE_SYS_TYPES_H 1
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            /* Define to 1 if you have the <unistd.h> header file. */
         
     | 
| 
      
 32 
     | 
    
         
            +
            #define HAVE_UNISTD_H 1
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            /* Define to the sub-directory where libtool stores uninstalled libraries. */
         
     | 
| 
      
 35 
     | 
    
         
            +
            #define LT_OBJDIR ".libs/"
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            /* Name of package */
         
     | 
| 
      
 38 
     | 
    
         
            +
            #define PACKAGE "yaml"
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            /* Define to the address where bug reports for this package should be sent. */
         
     | 
| 
      
 41 
     | 
    
         
            +
            #define PACKAGE_BUGREPORT "https://github.com/yaml/libyaml/issues/new"
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            /* Define to the full name of this package. */
         
     | 
| 
       1 
44 
     | 
    
         
             
            #define PACKAGE_NAME "yaml"
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            /* Define to the full name and version of this package. */
         
     | 
| 
      
 47 
     | 
    
         
            +
            #define PACKAGE_STRING "yaml 0.2.5"
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            /* Define to the one symbol short name of this package. */
         
     | 
| 
       2 
50 
     | 
    
         
             
            #define PACKAGE_TARNAME "yaml"
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            #define  
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            /* Define to the home page for this package. */
         
     | 
| 
      
 53 
     | 
    
         
            +
            #define PACKAGE_URL ""
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            /* Define to the version of this package. */
         
     | 
| 
      
 56 
     | 
    
         
            +
            #define PACKAGE_VERSION "0.2.5"
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
            /* Define to 1 if you have the ANSI C header files. */
         
     | 
| 
      
 59 
     | 
    
         
            +
            #define STDC_HEADERS 1
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            /* Version number of package */
         
     | 
| 
      
 62 
     | 
    
         
            +
            #define VERSION "0.2.5"
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            /* Define the major version number. */
         
     | 
| 
       7 
65 
     | 
    
         
             
            #define YAML_VERSION_MAJOR 0
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            /* Define the minor version number. */
         
     | 
| 
       8 
68 
     | 
    
         
             
            #define YAML_VERSION_MINOR 2
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            /* Define the patch version number. */
         
     | 
| 
      
 71 
     | 
    
         
            +
            #define YAML_VERSION_PATCH 5
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            /* Define the version string. */
         
     | 
| 
      
 74 
     | 
    
         
            +
            #define YAML_VERSION_STRING "0.2.5"
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            /* Define to empty if `const' does not conform to ANSI C. */
         
     | 
| 
      
 77 
     | 
    
         
            +
            /* #undef const */
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            /* Define to `unsigned int' if <sys/types.h> does not define. */
         
     | 
| 
      
 80 
     | 
    
         
            +
            /* #undef size_t */
         
     | 
    
        data/ext/psych/yaml/dumper.c
    CHANGED
    
    | 
         @@ -131,7 +131,7 @@ yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document) 
     | 
|
| 
       131 
131 
     | 
    
         | 
| 
       132 
132 
     | 
    
         
             
                assert(emitter->opened);    /* Emitter should be opened. */
         
     | 
| 
       133 
133 
     | 
    
         | 
| 
       134 
     | 
    
         
            -
                emitter->anchors = yaml_malloc(sizeof(*(emitter->anchors))
         
     | 
| 
      
 134 
     | 
    
         
            +
                emitter->anchors = (yaml_anchors_t*)yaml_malloc(sizeof(*(emitter->anchors))
         
     | 
| 
       135 
135 
     | 
    
         
             
                        * (document->nodes.top - document->nodes.start));
         
     | 
| 
       136 
136 
     | 
    
         
             
                if (!emitter->anchors) goto error;
         
     | 
| 
       137 
137 
     | 
    
         
             
                memset(emitter->anchors, 0, sizeof(*(emitter->anchors))
         
     |