Hello community,

here is the log from the commit of package perl-YAML-LibYAML for 
openSUSE:Factory checked in at 2019-06-20 18:53:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-YAML-LibYAML (Old)
 and      /work/SRC/openSUSE:Factory/.perl-YAML-LibYAML.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-YAML-LibYAML"

Thu Jun 20 18:53:44 2019 rev:17 rq:710400 version:0.79

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-YAML-LibYAML/perl-YAML-LibYAML.changes      
2018-10-01 08:14:26.126082743 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-YAML-LibYAML.new.4811/perl-YAML-LibYAML.changes
    2019-06-20 18:53:45.540710898 +0200
@@ -1,0 +2,21 @@
+Mon Jun 17 14:29:58 UTC 2019 - Pedro Monreal Gonzalez 
<[email protected]>
+
+- update to 0.79
+  0.79 Tue 11 Jun 2019 09:35:22 PM CEST
+     - Support aliasing scalars resolved as null or booleans (tinita)
+     - Add YAML::XS::LibYAML::libyaml_version() (tinita)
+     - Support standard !!int/!!float tags instead of dying (tinita)
+  0.78 Sat 18 May 2019 06:35:21 PM CEST
+     - Fix double free/core dump when Dump()ing binary data, see issue#91 
(tinita)
+     - Update config.h from libyaml (tinita)
+  0.77 Mon 15 Apr 2019 10:55:13 PM CEST
+     - Update libyaml to version 0.2.2. Most important change for users is 
that plain
+       urls in flow style can be parsed now. Example: `[ http://yaml.org]`. 
(tinita)
+  0.76 Sun Dec 30 20:10:16 CET 2018
+     - Add $Indent - number of spaces when dumping. PR#89 @zdm++
+     - Fix typo in docs. PR#87 @mr-mixas++
+     - Fix links in docs. @manwar++
+  0.75 Sat Nov  3 14:17:28 CET 2018
+     - Implement $LoadCode (tinita)
+
+-------------------------------------------------------------------

Old:
----
  YAML-LibYAML-0.74.tar.gz

New:
----
  YAML-LibYAML-0.79.tar.gz

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

Other differences:
------------------
++++++ perl-YAML-LibYAML.spec ++++++
--- /var/tmp/diff_new_pack.dKrf5h/_old  2019-06-20 18:53:46.784712602 +0200
+++ /var/tmp/diff_new_pack.dKrf5h/_new  2019-06-20 18:53:46.812712641 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-YAML-LibYAML
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,19 +12,19 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define cpan_name YAML-LibYAML
 Name:           perl-YAML-LibYAML
-Version:        0.74
+Version:        0.79
 Release:        0
 Summary:        Perl YAML Serialization using XS and libyaml
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Group:          Development/Libraries/Perl
 Url:            https://metacpan.org/release/%{cpan_name}
-Source:         
https://cpan.metacpan.org/authors/id/I/IN/INGY/%{cpan_name}-%{version}.tar.gz
+Source0:        
https://cpan.metacpan.org/authors/id/T/TI/TINITA/%{cpan_name}-%{version}.tar.gz
 Patch0:         %{name}-no-plan.patch
 BuildRequires:  perl
 BuildRequires:  perl-macros

++++++ YAML-LibYAML-0.74.tar.gz -> YAML-LibYAML-0.79.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/CONTRIBUTING 
new/YAML-LibYAML-0.79/CONTRIBUTING
--- old/YAML-LibYAML-0.74/CONTRIBUTING  2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/CONTRIBUTING  2019-06-11 21:35:34.000000000 +0200
@@ -57,4 +57,4 @@
 
 
 
-# This file generated by Zilla-Dist-0.0.201
+# This file generated by Zilla-Dist-0.0.203
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/Changes 
new/YAML-LibYAML-0.79/Changes
--- old/YAML-LibYAML-0.74/Changes       2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/Changes       2019-06-11 21:35:34.000000000 +0200
@@ -1,3 +1,26 @@
+0.79 Tue 11 Jun 2019 09:35:22 PM CEST
+ - Support aliasing scalars resolved as null or booleans (tinita)
+ - Add YAML::XS::LibYAML::libyaml_version() (tinita)
+ - Support standard !!int/!!float tags instead of dying (tinita)
+
+0.78 Sat 18 May 2019 06:35:21 PM CEST
+ - Fix double free/core dump when Dump()ing binary data, see issue#91
+   (tinita)
+ - Update config.h from libyaml (tinita)
+
+0.77 Mon 15 Apr 2019 10:55:13 PM CEST
+ - Update libyaml to version 0.2.2. Most important change for users is that
+   plain urls in flow style can be parsed now. Example: `[ http://yaml.org
+   ]`. (tinita)
+
+0.76 Sun Dec 30 20:10:16 CET 2018
+ - Add $Indent - number of spaces when dumping. PR#89 @zdm++
+ - Fix typo in docs. PR#87 @mr-mixas++
+ - Fix links in docs. @manwar++
+
+0.75 Sat Nov  3 14:17:28 CET 2018
+ - Implement $LoadCode (tinita)
+
 0.74 Fri Aug 31 18:06:17 PDT 2018
  - Fix tests on older perls
  - Support back to perl.5.8.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LICENSE 
new/YAML-LibYAML-0.79/LICENSE
--- old/YAML-LibYAML-0.74/LICENSE       2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/LICENSE       2019-06-11 21:35:34.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2018 by Ingy döt Net.
+This software is copyright (c) 2019 by Ingy döt Net.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2018 by Ingy döt Net.
+This software is Copyright (c) 2019 by Ingy döt Net.
 
 This is free software, licensed under:
 
@@ -272,7 +272,7 @@
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2018 by Ingy döt Net.
+This software is Copyright (c) 2019 by Ingy döt Net.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/LibYAML.xs 
new/YAML-LibYAML-0.79/LibYAML/LibYAML.xs
--- old/YAML-LibYAML-0.74/LibYAML/LibYAML.xs    2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/LibYAML.xs    2019-06-11 21:35:34.000000000 
+0200
@@ -24,3 +24,12 @@
         Dump(dummy);
         return;
 
+SV *
+libyaml_version()
+    CODE:
+    {
+        const char *v = yaml_get_version_string();
+        RETVAL = newSVpv(v, strlen(v));
+
+    }
+    OUTPUT: RETVAL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/Makefile.PL 
new/YAML-LibYAML-0.79/LibYAML/Makefile.PL
--- old/YAML-LibYAML-0.74/LibYAML/Makefile.PL   2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/Makefile.PL   2019-06-11 21:35:34.000000000 
+0200
@@ -2,10 +2,11 @@
 use strict;
 use Config;
 
-if (-d '../.git') {
-    system("./update.sh") == 0
-        or die "update.sh failed";
-}
+# update.sh shouldn't be used, needs fix
+#if (-d '../.git') {
+#    system("./update.sh") == 0
+#        or die "update.sh failed";
+#}
 
 my $obj_files = join ' ', map {
     my $c = $_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/api.c 
new/YAML-LibYAML-0.79/LibYAML/api.c
--- old/YAML-LibYAML-0.74/LibYAML/api.c 2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/LibYAML/api.c 2019-06-11 21:35:34.000000000 +0200
@@ -118,7 +118,12 @@
 YAML_DECLARE(int)
 yaml_stack_extend(void **start, void **top, void **end)
 {
-    void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
+    void *new_start;
+
+    if ((char *)*end - (char *)*start >= INT_MAX / 2)
+       return 0;
+
+    new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2);
 
     if (!new_start) return 0;
 
@@ -1117,13 +1122,8 @@
 YAML_DECLARE(void)
 yaml_document_delete(yaml_document_t *document)
 {
-    struct {
-        yaml_error_type_t error;
-    } context;
     yaml_tag_directive_t *tag_directive;
 
-    context.error = YAML_NO_ERROR;  /* Eliminate a compliler warning. */
-
     assert(document);   /* Non-NULL document object is expected. */
 
     while (!STACK_EMPTY(&context, document->nodes)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/config.h 
new/YAML-LibYAML-0.79/LibYAML/config.h
--- old/YAML-LibYAML-0.74/LibYAML/config.h      2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/config.h      2019-06-11 21:35:34.000000000 
+0200
@@ -1,5 +1,5 @@
-/* config.h.  Generated by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
+/* include/config.h.  Generated from config.h.in by configure.  */
+/* include/config.h.in.  Generated from configure.ac by autoheader.  */
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
@@ -31,44 +31,50 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H 1
 
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
 /* Name of package */
 #define PACKAGE "yaml"
 
 /* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://pyyaml.org/newticket?component=libyaml";
+#define PACKAGE_BUGREPORT "https://github.com/yaml/libyaml/issues/new";
 
 /* Define to the full name of this package. */
 #define PACKAGE_NAME "yaml"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "yaml 0.0.1"
+#define PACKAGE_STRING "yaml 0.2.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "yaml"
 
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.0.1"
+#define PACKAGE_VERSION "0.2.2"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
 /* Version number of package */
-#define YAML_VERSION "0.0.1"
+#define YAML_VERSION "0.2.2"
 
 /* Define the major version number. */
 #define YAML_VERSION_MAJOR 0
 
 /* Define the minor version number. */
-#define YAML_VERSION_MINOR 0
+#define YAML_VERSION_MINOR 2
 
 /* Define the patch version number. */
-#define YAML_VERSION_PATCH 1
+#define YAML_VERSION_PATCH 2
 
 /* Define the version string. */
-#define YAML_VERSION_STRING "0.0.1"
+#define YAML_VERSION_STRING "0.2.2"
 
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
 
-/* Define to `unsigned' if <sys/types.h> does not define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
 /* #undef size_t */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/dumper.c 
new/YAML-LibYAML-0.79/LibYAML/dumper.c
--- old/YAML-LibYAML-0.74/LibYAML/dumper.c      2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/dumper.c      2019-06-11 21:35:34.000000000 
+0200
@@ -131,7 +131,7 @@
 
     assert(emitter->opened);    /* Emitter should be opened. */
 
-    emitter->anchors = yaml_malloc(sizeof(*(emitter->anchors))
+    emitter->anchors = (yaml_anchors_t*)yaml_malloc(sizeof(*(emitter->anchors))
             * (document->nodes.top - document->nodes.start));
     if (!emitter->anchors) goto error;
     memset(emitter->anchors, 0, sizeof(*(emitter->anchors))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/emitter.c 
new/YAML-LibYAML-0.79/LibYAML/emitter.c
--- old/YAML-LibYAML-0.74/LibYAML/emitter.c     2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/emitter.c     2019-06-11 21:35:34.000000000 
+0200
@@ -16,7 +16,7 @@
 #define PUT(emitter,value)                                                     
 \
     (FLUSH(emitter)                                                            
 \
      && (*(emitter->buffer.pointer++) = (yaml_char_t)(value),                  
 \
-         emitter->column ++,                                                   
 \
+         emitter->column++,                                                    
\
          1))
 
 /*
@@ -221,7 +221,7 @@
 
 static int
 yaml_emitter_write_indicator(yaml_emitter_t *emitter,
-        char *indicator, int need_whitespace,
+        const char *indicator, int need_whitespace,
         int is_whitespace, int is_indention);
 
 static int
@@ -649,13 +649,6 @@
 
     else if (event->type == YAML_STREAM_END_EVENT)
     {
-        if (emitter->open_ended)
-        {
-            if (!yaml_emitter_write_indicator(emitter, "...", 1, 0, 0))
-                return 0;
-            if (!yaml_emitter_write_indent(emitter))
-                return 0;
-        }
 
         if (!yaml_emitter_flush(emitter))
             return 0;
@@ -1784,7 +1777,7 @@
 
 static int
 yaml_emitter_write_indicator(yaml_emitter_t *emitter,
-        char *indicator, int need_whitespace,
+        const char *indicator, int need_whitespace,
         int is_whitespace, int is_indention)
 {
     size_t indicator_length;
@@ -1946,6 +1939,10 @@
 
     emitter->whitespace = 0;
     emitter->indention = 0;
+    if (emitter->root_context)
+    {
+        emitter->open_ended = 1;
+    }
 
     return 1;
 }
@@ -2004,6 +2001,9 @@
         }
     }
 
+    if (breaks)
+        if (!yaml_emitter_write_indent(emitter)) return 0;
+
     if (!yaml_emitter_write_indicator(emitter, "'", 0, 0, 0))
         return 0;
 
@@ -2174,7 +2174,7 @@
         yaml_string_t string)
 {
     char indent_hint[2];
-    char *chomp_hint = NULL;
+    const char *chomp_hint = NULL;
 
     if (IS_SPACE(string) || IS_BREAK(string))
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/parser.c 
new/YAML-LibYAML-0.79/LibYAML/parser.c
--- old/YAML-LibYAML-0.74/LibYAML/parser.c      2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/parser.c      2019-06-11 21:35:34.000000000 
+0200
@@ -1316,6 +1316,8 @@
         STACK_DEL(parser, tag_directives);
     }
 
+    if (!version_directive_ref)
+        yaml_free(version_directive);
     return 1;
 
 error:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/perl_libyaml.c 
new/YAML-LibYAML-0.79/LibYAML/perl_libyaml.c
--- old/YAML-LibYAML-0.74/LibYAML/perl_libyaml.c        2018-09-01 
03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/LibYAML/perl_libyaml.c        2019-06-11 
21:35:34.000000000 +0200
@@ -146,6 +146,14 @@
         }
     }
 
+    loader.load_code = (
+        ((gv = gv_fetchpv("YAML::XS::UseCode", TRUE, SVt_PV)) &&
+        SvTRUE(GvSV(gv)))
+    ||
+        ((gv = gv_fetchpv("YAML::XS::LoadCode", TRUE, SVt_PV)) &&
+        SvTRUE(GvSV(gv)))
+    );
+
     loader.load_blessed = 1;
     gv = gv_fetchpv("YAML::XS::LoadBlessed", FALSE, SVt_PV);
     if (SvOK(GvSV(gv))) {
@@ -426,18 +434,40 @@
         if (strEQ(tag, YAML_STR_TAG)) {
             style = YAML_SINGLE_QUOTED_SCALAR_STYLE;
         }
+        else if (strEQ(tag, YAML_INT_TAG) || strEQ(tag, YAML_FLOAT_TAG)) {
+            /* TODO check int/float */
+            scalar = newSVpvn(string, length);
+            if ( looks_like_number(scalar) ) {
+                /* numify */
+                SvIV_please(scalar);
+            }
+            else {
+                croak("%s",
+                    loader_error_msg(loader, form("Invalid content found for 
!!int tag: '%s'", tag))
+                );
+            }
+            if (anchor)
+                hv_store(loader->anchors, anchor, strlen(anchor), 
SvREFCNT_inc(scalar), 0);
+            return scalar;
+        }
         else if (
             strEQ(tag, YAML_NULL_TAG)
             &&
             (strEQ(string, "~") || strEQ(string, "null") || strEQ(string, ""))
         ) {
-            return newSV(0);
+            scalar = newSV(0);
+            if (anchor)
+                hv_store(loader->anchors, anchor, strlen(anchor), 
SvREFCNT_inc(scalar), 0);
+            return scalar;
         }
         else {
             char *class;
             char *prefix = TAG_PERL_PREFIX "regexp";
             if (strnEQ(tag, prefix, strlen(prefix)))
                 return load_regexp(loader);
+            prefix = TAG_PERL_PREFIX "code";
+            if (strnEQ(tag, prefix, strlen(prefix)))
+                return load_code(loader);
             prefix = TAG_PERL_PREFIX "scalar:";
             if (*tag == '!')
                 prefix = "!";
@@ -457,45 +487,47 @@
     }
 
     else if (style == YAML_PLAIN_SCALAR_STYLE) {
-        if (strEQ(string, "~"))
-            return newSV(0);
-        else if (strEQ(string, ""))
-            return newSV(0);
-        else if (strEQ(string, "null"))
-            return newSV(0);
+        if (strEQ(string, "~") || strEQ(string, "null") || strEQ(string, "")) {
+            scalar = newSV(0);
+            if (anchor)
+                hv_store(loader->anchors, anchor, strlen(anchor), 
SvREFCNT_inc(scalar), 0);
+            return scalar;
+        }
         else if (strEQ(string, "true")) {
             if (loader->load_bool_jsonpp) {
                 char *name = "JSON::PP::Boolean";
-                SV *rv = newSV(1);
-                SV* sv = sv_setref_iv(rv, name, 1);
-                return rv;
+                scalar = newSV(1);
+                scalar = sv_setref_iv(scalar, name, 1);
             }
             else if (loader->load_bool_boolean) {
                 char *name = "boolean";
-                SV *rv = newSV(1);
-                SV* sv = sv_setref_iv(rv, name, 1);
-                return rv;
+                scalar = newSV(1);
+                scalar = sv_setref_iv(scalar, name, 1);
             }
             else {
-                return &PL_sv_yes;
+                scalar = &PL_sv_yes;
             }
+            if (anchor)
+                hv_store(loader->anchors, anchor, strlen(anchor), 
SvREFCNT_inc(scalar), 0);
+            return scalar;
         }
         else if (strEQ(string, "false")) {
             if (loader->load_bool_jsonpp) {
                 char *name = "JSON::PP::Boolean";
-                SV *rv = newSV(1);
-                SV* sv = sv_setref_iv(rv, name, 0);
-                return rv;
+                scalar = newSV(1);
+                scalar = sv_setref_iv(scalar, name, 0);
             }
             else if (loader->load_bool_boolean) {
                 char *name = "boolean";
-                SV *rv = newSV(1);
-                SV* sv = sv_setref_iv(rv, name, 0);
-                return rv;
+                scalar = newSV(1);
+                scalar = sv_setref_iv(scalar, name, 0);
             }
             else {
-                return &PL_sv_no;
+                scalar = &PL_sv_no;
             }
+            if (anchor)
+                hv_store(loader->anchors, anchor, strlen(anchor), 
SvREFCNT_inc(scalar), 0);
+            return scalar;
         }
     }
 
@@ -554,6 +586,54 @@
     return regexp;
 }
 
+/* Load a scalar marked as code as a Perl code reference.
+ * This operation is less common and is tricky, so doing it in Perl code for
+ * now.
+ */
+SV*
+load_code(perl_yaml_loader_t * loader)
+{
+    dSP;
+    char *string = (char *)loader->event.data.scalar.value;
+    STRLEN length = (STRLEN)loader->event.data.scalar.length;
+    char *anchor = (char *)loader->event.data.scalar.anchor;
+    char *tag = (char *)loader->event.data.scalar.tag;
+    char *prefix = TAG_PERL_PREFIX "code:";
+
+    if (! loader->load_code) {
+        string = "{}";
+        length = 2;
+    }
+    SV *code = newSVpvn(string, length);
+    SvUTF8_on(code);
+
+
+    ENTER;
+    SAVETMPS;
+    PUSHMARK(sp);
+    XPUSHs(code);
+    PUTBACK;
+    call_pv("YAML::XS::__code_loader", G_SCALAR);
+    SPAGAIN;
+    code = newSVsv(POPs);
+
+    PUTBACK;
+    FREETMPS;
+    LEAVE;
+
+    if (strlen(tag) > strlen(prefix) && strnEQ(tag, prefix, strlen(prefix))) {
+        if (loader->load_blessed) {
+            char *class = tag + strlen(prefix);
+            sv_bless(code, gv_stashpv(class, TRUE));
+        }
+    }
+
+    if (anchor)
+        hv_store(loader->anchors, anchor, strlen(anchor), SvREFCNT_inc(code), 
0);
+    return code;
+}
+
+
 /*
  * Load a reference to a previously loaded node.
  */
@@ -661,6 +741,11 @@
 
     /* Set up the emitter object and begin emitting */
     yaml_emitter_initialize(&dumper.emitter);
+
+    /* set indent */
+    SV* indent = get_sv("YAML::XS::Indent", GV_ADD);
+    if (SvIOK(indent)) yaml_emitter_set_indent(&dumper.emitter, SvIV(indent));
+
     yaml_emitter_set_unicode(&dumper.emitter, 1);
     yaml_emitter_set_width(&dumper.emitter, 2);
     yaml_emitter_set_output(
@@ -1034,10 +1119,10 @@
         string = SvPV_nomg(node_clone, string_len);
         if (
             (string_len == 0) ||
-            strEQ(string, "~") ||
-            strEQ(string, "true") ||
-            strEQ(string, "false") ||
-            strEQ(string, "null") ||
+            (string_len == 1 && strEQ(string, "~")) ||
+            (string_len == 4 && strEQ(string, "true")) ||
+            (string_len == 5 && strEQ(string, "false")) ||
+            (string_len == 4 && strEQ(string, "null")) ||
             (SvTYPE(node_clone) >= SVt_PVGV) ||
             ( dumper->quote_number_strings && !SvNIOK(node_clone) && 
looks_like_number(node_clone) )
         ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/perl_libyaml.h 
new/YAML-LibYAML-0.79/LibYAML/perl_libyaml.h
--- old/YAML-LibYAML-0.74/LibYAML/perl_libyaml.h        2018-09-01 
03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/LibYAML/perl_libyaml.h        2019-06-11 
21:35:34.000000000 +0200
@@ -86,6 +86,9 @@
 load_scalar_ref(perl_yaml_loader_t *);
 
 SV *
+load_code(perl_yaml_loader_t *);
+
+SV *
 load_regexp(perl_yaml_loader_t *);
 
 SV *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/scanner.c 
new/YAML-LibYAML-0.79/LibYAML/scanner.c
--- old/YAML-LibYAML-0.74/LibYAML/scanner.c     2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/scanner.c     2019-06-11 21:35:34.000000000 
+0200
@@ -38,8 +38,8 @@
  *      BLOCK-END                       # Indentation decrease.
  *      FLOW-SEQUENCE-START             # '['
  *      FLOW-SEQUENCE-END               # ']'
- *      BLOCK-SEQUENCE-START            # '{'
- *      BLOCK-SEQUENCE-END              # '}'
+ *      FLOW-MAPPING-START              # '{'
+ *      FLOW-MAPPING-END                # '}'
  *      BLOCK-ENTRY                     # '-'
  *      FLOW-ENTRY                      # ','
  *      KEY                             # '?' or nothing (simple keys).
@@ -1636,7 +1636,7 @@
 
     if (!parser->flow_level)
     {
-        /* Check if we are allowed to start a new key (not nessesary simple). 
*/
+        /* Check if we are allowed to start a new key (not necessary simple). 
*/
 
         if (!parser->simple_key_allowed) {
             return yaml_parser_set_scanner_error(parser, NULL, parser->mark,
@@ -2860,7 +2860,7 @@
 
     if (!CACHE(parser, 1)) goto error;
 
-    while ((int)parser->mark.column == indent && !IS_Z(parser->buffer))
+    while ((int)parser->mark.column == indent && !(IS_Z(parser->buffer)))
     {
         /*
          * We are at the beginning of a non-empty line.
@@ -3430,11 +3430,22 @@
 
         while (!IS_BLANKZ(parser->buffer))
         {
-            /* Check for 'x:x' in the flow context. TODO: Fix the test 
"spec-08-13". */
+            /* Check for "x:" + one of ',?[]{}' in the flow context. TODO: Fix 
the test "spec-08-13".
+             * This is not completely according to the spec
+             * See http://yaml.org/spec/1.1/#id907281 9.1.3. Plain
+             */
 
             if (parser->flow_level
                     && CHECK(parser->buffer, ':')
-                    && !IS_BLANKZ_AT(parser->buffer, 1)) {
+                    && (
+                        CHECK_AT(parser->buffer, ',', 1)
+                        || CHECK_AT(parser->buffer, '?', 1)
+                        || CHECK_AT(parser->buffer, '[', 1)
+                        || CHECK_AT(parser->buffer, ']', 1)
+                        || CHECK_AT(parser->buffer, '{', 1)
+                        || CHECK_AT(parser->buffer, '}', 1)
+                    )
+                    ) {
                 yaml_parser_set_scanner_error(parser, "while scanning a plain 
scalar",
                         start_mark, "found unexpected ':'");
                 goto error;
@@ -3444,7 +3455,7 @@
 
             if ((CHECK(parser->buffer, ':') && IS_BLANKZ_AT(parser->buffer, 1))
                     || (parser->flow_level &&
-                        (CHECK(parser->buffer, ',') || CHECK(parser->buffer, 
':')
+                        (CHECK(parser->buffer, ',')
                          || CHECK(parser->buffer, '?') || 
CHECK(parser->buffer, '[')
                          || CHECK(parser->buffer, ']') || 
CHECK(parser->buffer, '{')
                          || CHECK(parser->buffer, '}'))))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/yaml.h 
new/YAML-LibYAML-0.79/LibYAML/yaml.h
--- old/YAML-LibYAML-0.74/LibYAML/yaml.h        2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/LibYAML/yaml.h        2019-06-11 21:35:34.000000000 
+0200
@@ -26,7 +26,9 @@
 
 /** The public API declaration. */
 
-#ifdef _WIN32
+#if defined(__MINGW32__)
+#   define  YAML_DECLARE(type)  type
+#elif defined(WIN32)
 #   if defined(YAML_DECLARE_STATIC)
 #       define  YAML_DECLARE(type)  type
 #   elif defined(YAML_DECLARE_EXPORT)
@@ -230,7 +232,7 @@
 
     /** A BLOCK-SEQUENCE-START token. */
     YAML_BLOCK_SEQUENCE_START_TOKEN,
-    /** A BLOCK-SEQUENCE-END token. */
+    /** A BLOCK-MAPPING-START token. */
     YAML_BLOCK_MAPPING_START_TOKEN,
     /** A BLOCK-END token. */
     YAML_BLOCK_END_TOKEN,
@@ -663,7 +665,7 @@
 
 /** The tag @c !!null with the only possible value: @c null. */
 #define YAML_NULL_TAG       "tag:yaml.org,2002:null"
-/** The tag @c !!bool with the values: @c true and @c falce. */
+/** The tag @c !!bool with the values: @c true and @c false. */
 #define YAML_BOOL_TAG       "tag:yaml.org,2002:bool"
 /** The tag @c !!str for string values. */
 #define YAML_STR_TAG        "tag:yaml.org,2002:str"
@@ -1515,6 +1517,18 @@
     YAML_EMIT_END_STATE
 } yaml_emitter_state_t;
 
+
+/* This is needed for C++ */
+
+typedef struct yaml_anchors_s {
+    /** The number of references. */
+    int references;
+    /** The anchor id. */
+    int anchor;
+    /** If the node has been emitted? */
+    int serialized;
+} yaml_anchors_t;
+
 /**
  * The emitter structure.
  *
@@ -1740,14 +1754,7 @@
     int closed;
 
     /** The information associated with the document nodes. */
-    struct {
-        /** The number of references. */
-        int references;
-        /** The anchor id. */
-        int anchor;
-        /** If the node has been emitted? */
-        int serialized;
-    } *anchors;
+    yaml_anchors_t *anchors;
 
     /** The last assigned anchor id. */
     int last_anchor_id;
@@ -1938,8 +1945,8 @@
  *
  * The documen object may be generated using the yaml_parser_load() function
  * or the yaml_document_initialize() function.  The emitter takes the
- * responsibility for the document object and destoys its content after
- * it is emitted. The document object is destroyedeven if the function fails.
+ * responsibility for the document object and destroys its content after
+ * it is emitted. The document object is destroyed even if the function fails.
  *
  * @param[in,out]   emitter     An emitter object.
  * @param[in,out]   document    A document object.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/LibYAML/yaml_private.h 
new/YAML-LibYAML-0.79/LibYAML/yaml_private.h
--- old/YAML-LibYAML-0.74/LibYAML/yaml_private.h        2018-09-01 
03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/LibYAML/yaml_private.h        2019-06-11 
21:35:34.000000000 +0200
@@ -1,5 +1,5 @@
 #if HAVE_CONFIG_H
-#include <config.h>
+#include "config.h"
 #endif
 
 #include <yaml.h>
@@ -171,14 +171,14 @@
  * Check the octet at the specified position.
  */
 
-#define CHECK_AT(string,octet,offset)                                          
 \
+#define CHECK_AT(string,octet,offset)                   \
     ((string).pointer[offset] == (yaml_char_t)(octet))
 
 /*
  * Check the current octet in the buffer.
  */
 
-#define CHECK(string,octet) CHECK_AT((string),(octet),0)
+#define CHECK(string,octet) (CHECK_AT((string),(octet),0))
 
 /*
  * Check if the character at the specified position is an alphabetical
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/MANIFEST 
new/YAML-LibYAML-0.79/MANIFEST
--- old/YAML-LibYAML-0.74/MANIFEST      2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/MANIFEST      2019-06-11 21:35:34.000000000 +0200
@@ -41,6 +41,7 @@
 t/api.t
 t/ascii.t
 t/author-pod-syntax.t
+t/binary.t
 t/blessed.t
 t/boolean-boolean.t
 t/boolean-invalid.t
@@ -58,8 +59,10 @@
 t/error.t
 t/file.t
 t/glob.t
+t/indent.t
 t/io-handle.t
 t/leak.t
+t/libyaml-version.t
 t/load-blessed.t
 t/load.t
 t/load_standard_tags.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/META.json 
new/YAML-LibYAML-0.79/META.json
--- old/YAML-LibYAML-0.74/META.json     2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/META.json     2019-06-11 21:35:34.000000000 +0200
@@ -55,8 +55,8 @@
          "web" : "https://github.com/ingydotnet/yaml-libyaml-pm";
       }
    },
-   "version" : "0.74",
-   "x_generated_by_perl" : "v5.28.0",
-   "x_serialization_backend" : "Cpanel::JSON::XS version 4.06"
+   "version" : "0.79",
+   "x_generated_by_perl" : "v5.24.1",
+   "x_serialization_backend" : "Cpanel::JSON::XS version 4.02"
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/META.yml 
new/YAML-LibYAML-0.79/META.yml
--- old/YAML-LibYAML-0.74/META.yml      2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/META.yml      2019-06-11 21:35:34.000000000 +0200
@@ -25,6 +25,6 @@
   bugtracker: https://github.com/ingydotnet/yaml-libyaml-pm/issues
   homepage: https://github.com/ingydotnet/yaml-libyaml-pm
   repository: https://github.com/ingydotnet/yaml-libyaml-pm.git
-version: '0.74'
-x_generated_by_perl: v5.28.0
+version: '0.79'
+x_generated_by_perl: v5.24.1
 x_serialization_backend: 'YAML::Tiny version 1.73'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/Makefile.PL 
new/YAML-LibYAML-0.79/Makefile.PL
--- old/YAML-LibYAML-0.74/Makefile.PL   2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/Makefile.PL   2019-06-11 21:35:34.000000000 +0200
@@ -20,7 +20,7 @@
   "TEST_REQUIRES" => {
     "Test::More" => "0.88"
   },
-  "VERSION" => "0.74",
+  "VERSION" => "0.79",
   "test" => {
     "TESTS" => "t/*.t"
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/README new/YAML-LibYAML-0.79/README
--- old/YAML-LibYAML-0.74/README        2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/README        2019-06-11 21:35:34.000000000 +0200
@@ -11,7 +11,7 @@
 
 DESCRIPTION
 
-    Kirill Siminov's libyaml is arguably the best YAML implementation. The
+    Kirill Simonov's libyaml is arguably the best YAML implementation. The
     C library is written precisely to the YAML 1.1 specification. It was
     originally bound to Python and was later bound to Ruby.
 
@@ -49,6 +49,9 @@
 
       If enabled supports deparsing and evaling of code blocks.
 
+      Note that support for loading code was added in version 0.75,
+      although $LoadCode was documented already in earlier versions.
+
     $YAML::XS::QuoteNumericStrings
 
       When true (the default) strings that look like numbers but have not
@@ -93,6 +96,12 @@
       If you simply need to load "perl booleans" that are true or false in
       boolean context, you will be fine with the default setting.
 
+    $YAML::XS::Indent (since v0.76)
+
+      Default is 2.
+
+      Sets the number of spaces for indentation for Dump.
+
 USING YAML::XS WITH UNICODE
 
     Handling unicode properly in Perl can be a pain. YAML::XS only deals
@@ -105,6 +114,13 @@
     you are having problems, use Devel::Peek on all the possible data
     points.
 
+LIBYAML
+
+    You can find out (since v.079) which libyaml version this module was
+    built with:
+
+          my $libyaml_version = YAML::XS::LibYAML::libyaml_version();
+
 SEE ALSO
 
       * YAML.pm
@@ -119,7 +135,7 @@
 
 COPYRIGHT AND LICENSE
 
-    Copyright 2007-2018. Ingy döt Net.
+    Copyright 2007-2019. Ingy döt Net.
 
     This program is free software; you can redistribute it and/or modify it
     under the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/lib/YAML/LibYAML.pm 
new/YAML-LibYAML-0.79/lib/YAML/LibYAML.pm
--- old/YAML-LibYAML-0.74/lib/YAML/LibYAML.pm   2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/lib/YAML/LibYAML.pm   2019-06-11 21:35:34.000000000 
+0200
@@ -1,6 +1,6 @@
 use strict; use warnings;
 package YAML::LibYAML;
-our $VERSION = '0.74';
+our $VERSION = '0.79';
 
 sub import {
     die "YAML::LibYAML has been renamed to YAML::XS. Please use YAML::XS 
instead.";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/lib/YAML/LibYAML.pod 
new/YAML-LibYAML-0.79/lib/YAML/LibYAML.pod
--- old/YAML-LibYAML-0.74/lib/YAML/LibYAML.pod  2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/lib/YAML/LibYAML.pod  2019-06-11 21:35:34.000000000 
+0200
@@ -22,7 +22,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007-2018. Ingy döt Net.
+Copyright 2007-2019. Ingy döt Net.
 
 This program is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/lib/YAML/XS.pm 
new/YAML-LibYAML-0.79/lib/YAML/XS.pm
--- old/YAML-LibYAML-0.74/lib/YAML/XS.pm        2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/lib/YAML/XS.pm        2019-06-11 21:35:34.000000000 
+0200
@@ -1,7 +1,7 @@
 use strict; use warnings;
 
 package YAML::XS;
-our $VERSION = '0.74';
+our $VERSION = '0.79';
 
 use base 'Exporter';
 
@@ -10,7 +10,7 @@
 %YAML::XS::EXPORT_TAGS = (
     all => [qw(Dump Load LoadFile DumpFile)],
 );
-our ($UseCode, $DumpCode, $LoadCode, $Boolean, $LoadBlessed);
+our ($UseCode, $DumpCode, $LoadCode, $Boolean, $LoadBlessed, $Indent);
 # $YAML::XS::UseCode = 0;
 # $YAML::XS::DumpCode = 0;
 # $YAML::XS::LoadCode = 0;
@@ -127,4 +127,14 @@
     return qr/$_[0]/;
 }
 
+sub __code_loader {
+    my ($string) = @_;
+    my $sub = eval "sub $string";
+    if ($@) {
+        warn "YAML::XS failed to load sub: $@";
+        return sub {};
+    }
+    return $sub;
+}
+
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/lib/YAML/XS.pod 
new/YAML-LibYAML-0.79/lib/YAML/XS.pod
--- old/YAML-LibYAML-0.74/lib/YAML/XS.pod       2018-09-01 03:06:27.000000000 
+0200
+++ new/YAML-LibYAML-0.79/lib/YAML/XS.pod       2019-06-11 21:35:34.000000000 
+0200
@@ -22,7 +22,7 @@
 
 =head1 DESCRIPTION
 
-Kirill Siminov's C<libyaml> is arguably the best YAML implementation. The C
+Kirill Simonov's C<libyaml> is arguably the best YAML implementation. The C
 library is written precisely to the YAML 1.1 specification. It was originally
 bound to Python and was later bound to Ruby.
 
@@ -64,6 +64,9 @@
 
 If enabled supports deparsing and evaling of code blocks.
 
+Note that support for loading code was added in version 0.75, although
+C<$LoadCode> was documented already in earlier versions.
+
 =item C<$YAML::XS::QuoteNumericStrings>
 
 When true (the default) strings that look like numbers but have not been
@@ -105,6 +108,12 @@
 If you simply need to load "perl booleans" that are true or false in boolean
 context, you will be fine with the default setting.
 
+=item C<$YAML::XS::Indent> (since v0.76)
+
+Default is 2.
+
+Sets the number of spaces for indentation for C<Dump>.
+
 =back
 
 =head1 USING YAML::XS WITH UNICODE
@@ -118,15 +127,22 @@
 There are many, many places where things can go wrong with unicode. If you are
 having problems, use Devel::Peek on all the possible data points.
 
+=head1 LIBYAML
+
+You can find out (since v.079) which libyaml version this module was
+built with:
+
+      my $libyaml_version = YAML::XS::LibYAML::libyaml_version();
+
 =head1 SEE ALSO
 
 =over
 
-=item * YAML.pm
+=item * L<YAML>.pm
 
-=item * YAML::Syck
+=item * L<YAML::Syck>
 
-=item * YAML::Tiny
+=item * L<YAML::Tiny>
 
 =back
 
@@ -136,7 +152,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007-2018. Ingy döt Net.
+Copyright 2007-2019. Ingy döt Net.
 
 This program is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/alias.t 
new/YAML-LibYAML-0.79/t/alias.t
--- old/YAML-LibYAML-0.74/t/alias.t     2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/t/alias.t     2019-06-11 21:35:34.000000000 +0200
@@ -1,6 +1,6 @@
 use FindBin '$Bin';
 use lib $Bin;
-use TestYAMLTests tests => 10;
+use TestYAMLTests tests => 15;
 
 my ($a, $b) = Load(<<'...');
 ---
@@ -83,3 +83,33 @@
 $hash = Load($yaml);
 is $hash->{bar}, $hash->{foo}, 'Regexp anchor/aliases Load';
 like "falala", $hash->{bar}, 'Aliased regexp works';
+
+$yaml = <<'...';
+---
+- &empty
+- *empty
+- &nulltag !!null
+- *nulltag
+- &null null
+- *null
+- &tilde ~
+- *tilde
+...
+
+$array = Load($yaml);
+is scalar @$array, 8, 'Load "null" aliases works';
+is scalar(grep defined, @$array), 0, 'Load "null" aliases returns undef';
+
+$yaml = <<'...';
+---
+- &true true
+- *true
+- &false false
+- *false
+...
+
+$array = Load($yaml);
+is scalar @$array, 4, 'Load boolean aliases works';
+is $array->[1], 1, 'Load boolean true alias';
+is $array->[3], '', 'Load boolean false alias';
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/binary.t 
new/YAML-LibYAML-0.79/t/binary.t
--- old/YAML-LibYAML-0.74/t/binary.t    1970-01-01 01:00:00.000000000 +0100
+++ new/YAML-LibYAML-0.79/t/binary.t    2019-06-11 21:35:34.000000000 +0200
@@ -0,0 +1,23 @@
+use warnings;
+use strict;
+use FindBin '$Bin';
+use lib $Bin;
+use TestYAMLTests tests => 1;
+
+my @data = (
+    "~\0\200",
+    "null\0\200",
+    "true\0\200",
+    "false\0\200",
+);
+my $yaml = <<'...';
+---
+- "~\0\x80"
+- "null\0\x80"
+- "true\0\x80"
+- "false\0\x80"
+...
+
+is Dump(\@data), $yaml, 'Dumping zero bytes works';
+
+# see https://github.com/ingydotnet/yaml-libyaml-pm/issues/91
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/code.t 
new/YAML-LibYAML-0.79/t/code.t
--- old/YAML-LibYAML-0.74/t/code.t      2018-09-01 03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/t/code.t      2019-06-11 21:35:34.000000000 +0200
@@ -1,9 +1,9 @@
 use FindBin '$Bin';
 use lib $Bin;
-use TestYAMLTests tests => 3;
+use TestYAMLTests tests => 5;
 
 
#-------------------------------------------------------------------------------
-my $sub = sub { print "Hi.\n" };
+my $sub = sub { return "Hi.\n" };
 
 my $yaml = <<'...';
 --- !!perl/code '{ "DUMMY" }'
@@ -13,7 +13,7 @@
     "Dumping a code ref works produces DUMMY";
 
 
#-------------------------------------------------------------------------------
-$sub = sub { print "Bye.\n" };
+$sub = sub { return "Bye.\n" };
 bless $sub, "Barry::White";
 
 $yaml = <<'...';
@@ -21,7 +21,7 @@
   {
       use warnings;
       use strict;
-      print "Bye.\n";
+      return "Bye.\n";
   }
 ...
 
@@ -36,7 +36,7 @@
     "Dumping a blessed code ref works (with B::Deparse)";
 
 
#-------------------------------------------------------------------------------
-$sub = sub { print "Bye.\n" };
+$sub = sub { return "Bye.\n" };
 bless $sub, "Barry::White";
 
 $yaml = <<'...';
@@ -47,3 +47,23 @@
 is Dump($sub), $yaml,
     "Dumping a blessed code ref works (with DUMMY again)";
 
+$yaml = <<'...';
+--- !!perl/code:Barry::White |-
+  {
+      use warnings;
+      use strict;
+      return "Bye.\n";
+  }
+...
+
+$YAML::XS::LoadCode = 0;
+
+$sub = Load($yaml);
+my $return = $sub->();
+is($return, undef, "Loaded dummy coderef");
+
+$YAML::XS::LoadCode = 1;
+
+$sub = Load($yaml);
+$return = $sub->();
+cmp_ok($return, 'eq', "Bye.\n", "Loaded coderef");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/indent.t 
new/YAML-LibYAML-0.79/t/indent.t
--- old/YAML-LibYAML-0.74/t/indent.t    1970-01-01 01:00:00.000000000 +0100
+++ new/YAML-LibYAML-0.79/t/indent.t    2019-06-11 21:35:34.000000000 +0200
@@ -0,0 +1,21 @@
+use FindBin '$Bin';
+use lib $Bin;
+use TestYAMLTests tests => 2;
+
+$YAML::XS::Indent = 4;
+is Dump([{a => 1, b => 2, c => 3}]), <<'...',
+---
+-   a: 1
+    b: 2
+    c: 3
+...
+'Dumped with indent 4';
+
+$YAML::XS::Indent = 8;
+is Dump([{a => 1, b => 2, c => 3}]), <<'...',
+---
+-       a: 1
+        b: 2
+        c: 3
+...
+'Dumped with indent 8';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/libyaml-version.t 
new/YAML-LibYAML-0.79/t/libyaml-version.t
--- old/YAML-LibYAML-0.74/t/libyaml-version.t   1970-01-01 01:00:00.000000000 
+0100
+++ new/YAML-LibYAML-0.79/t/libyaml-version.t   2019-06-11 21:35:34.000000000 
+0200
@@ -0,0 +1,9 @@
+use Test::More;
+
+use YAML::XS ();
+
+my $libyaml_version = YAML::XS::LibYAML::libyaml_version();
+diag "libyaml version = $libyaml_version";
+cmp_ok($libyaml_version, '=~', qr{^\d+\.\d+(?:\.\d+)$}, "libyaml_version 
($libyaml_version)");
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-LibYAML-0.74/t/load_standard_tags.t 
new/YAML-LibYAML-0.79/t/load_standard_tags.t
--- old/YAML-LibYAML-0.74/t/load_standard_tags.t        2018-09-01 
03:06:27.000000000 +0200
+++ new/YAML-LibYAML-0.79/t/load_standard_tags.t        2019-06-11 
21:35:34.000000000 +0200
@@ -2,7 +2,7 @@
 use warnings;
 use FindBin '$Bin';
 use lib $Bin;
-use TestYAMLTests tests => 25;
+use TestYAMLTests tests => 27;
 use B ();
 
 my $yaml = <<"EOM";
@@ -15,6 +15,8 @@
 - !!null ~
 - !!null null
 - !!null
+- !!int 23
+- !!float 23.3
 EOM
 
 my @expected = ('', '~', 'null', "23", 'true', 'false');
@@ -31,12 +33,14 @@
     cmp_ok($data->[$i], 'eq', $expected[$i], "data[$i] equals 
'$expected[$i]'");
 }
 
-my @flags = map { B::svref_2object(\$_)->FLAGS } @$data[0 .. 5];
-for my $i (0 .. $#flags) {
+my @flags = map { B::svref_2object(\$_)->FLAGS } @$data;
+for my $i (0 .. 5) {
     my $flags = $flags[$i];
     ok($flags & B::SVp_POK, "data[$i] has string flag");
     ok(not($flags & B::SVp_IOK), "data[$i] does not have int flag");
 }
+ok($flags[9] & B::SVp_IOK, "data[9] has int flag");
+ok($flags[10] & B::SVp_NOK, "data[10] has num flag");
 
 my $yaml2 = <<"EOM";
 - !!map


Reply via email to