libyaml 0.1.1.1 → 0.1.2
raw patch · 10 files changed
+59/−37 lines, 10 filesdep ~resourcet
Dependency ranges changed: resourcet
Files
- ChangeLog.md +4/−0
- README.md +1/−1
- libyaml.cabal +2/−2
- libyaml_src/LICENSE +1/−1
- libyaml_src/dumper.c +1/−1
- libyaml_src/emitter.c +11/−11
- libyaml_src/parser.c +2/−0
- libyaml_src/scanner.c +18/−7
- libyaml_src/yaml.h +14/−9
- libyaml_src/yaml_private.h +5/−5
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for libyaml +## 0.1.2++* Upgrade `libyaml` to 0.2.2+ ## 0.1.1.1 * Work around GHC 8.6.5 issue on Windows preventing truncated files. [#178](https://github.com/snoyberg/yaml/issues/178)
README.md view
@@ -1,3 +1,3 @@ # libyaml -This package provides a haskell wrapper over the [libyaml C library version 0.2.1 by Kirill Simonov](https://github.com/yaml/libyaml). It contains the C source so you don't need to worry about any non-Haskell dependencies.+This package provides a haskell wrapper over the [libyaml C library version 0.2.2 by Kirill Simonov](https://github.com/yaml/libyaml). It contains the C source so you don't need to worry about any non-Haskell dependencies.
libyaml.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: d35e8c4d317f96574fdc8b6a72f99c2244dacbb949ce1609e8dd56ddbe89a108+-- hash: 93d917f62be86415287d10db638b1d5422a21b7a4c5b229fbe16b62c47717555 name: libyaml-version: 0.1.1.1+version: 0.1.2 synopsis: Low-level, streaming YAML interface. description: README and API documentation are available at <https://www.stackage.org/package/libyaml> category: Text
libyaml_src/LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2017-2018 Ingy döt Net+Copyright (c) 2017-2019 Ingy döt Net Copyright (c) 2006-2016 Kirill Simonov Permission is hereby granted, free of charge, to any person obtaining a copy of
libyaml_src/dumper.c view
@@ -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))
libyaml_src/emitter.c view
@@ -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)) {
libyaml_src/parser.c view
@@ -1316,6 +1316,8 @@ STACK_DEL(parser, tag_directives); } + if (!version_directive_ref)+ yaml_free(version_directive); return 1; error:
libyaml_src/scanner.c view
@@ -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, '}'))))
libyaml_src/yaml.h view
@@ -232,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,@@ -1517,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. *@@ -1742,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;
libyaml_src/yaml_private.h view
@@ -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@@ -684,7 +684,7 @@ #define YAML_MALLOC(size) (yaml_char_t *)yaml_malloc(size) /* For Haskell yaml package, since we do not use the configure script */-#define YAML_VERSION_STRING "0.2.1"+#define YAML_VERSION_STRING "0.2.2" #define YAML_VERSION_MAJOR 0 #define YAML_VERSION_MINOR 2-#define YAML_VERSION_PATCH 1+#define YAML_VERSION_PATCH 2