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
+
+- 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 header file. */
#define HAVE_DLFCN_H 1
@@ -31,44 +31,50 @@
/* Define to 1 if you have the 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 does not define. */
+/* Define to `unsigned int' if 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
+#include "config.h"
#endif
#include
@@ -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 * LYAML::Syck
-=item * YAML::Tiny
+=item * LYAML::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