TripleWhy
52bcefa1f1
Make null handling YAML 1.2 compliant.
2016-04-01 17:14:59 -05:00
Craig M. Brandenburg
f327b565ba
Fix line-wrapping in comment in dll.h
2016-03-16 10:41:12 -07:00
Jesse Beder
dfbb388409
Remove unnecessary forward declaration.
2016-01-30 17:36:47 -06:00
Matt Blair
24fa1b3380
Replace Boost usage with C++11 features
...
- Adds 'std=c++11' compiler flags
- Replaces boost::type_traits with std::type_traits
- Replaces boost::shared_ptr with std::shared_ptr
- Replaces std::auto_ptr with std::unique_ptr
- Replaces raw pointers with std::unique_ptr in ptr_vector, ptr_stack, and SettingChanges
- Replaces boost::noncopyable with deleted copy and assignment operators
- Replaces boost::next with std::next
- Replaces boost::enable_if with std::enable_if
- Replaces boost::is_convertible with std::is_convertible
- Replaces ptrdiff_t with std::ptrdiff_t
- Replaces boost::iterator_facade and boost::iterator_adaptor with std::iterator, borrowing the 'proxy reference' technique from boost
- Removes Boost dependency from CMakeLists
- Formats changed files using clang-format
2016-01-10 22:44:15 -05:00
Jesse Beder
97d56c3f36
Remove 'const' modifier on return of Node::as.
...
This enables the return value to be moved, rather than copied.
2015-11-22 11:27:55 -06:00
Michael Welsh Duggan
320b02b14a
Allow using a Node as the key in force_insert.
...
Node::force_insert() uses convert<> to convert its key to a node.
Add a specialization for convert<Node>.
2015-11-22 11:21:08 -06:00
Haydn Trigg
03d6e7d672
Removed boost requirement from memory.h (detail)
...
Removed the boost requirement from memory.h using the shared_memory type defined in ptr.h
2015-07-25 11:45:10 +09:30
Jonathan Hamilton
b426fafff6
Fix some Node::operator[] regressions from 0.5.1
...
"const Node Node::operator[](const Key& key) const" changed from
returning new empty node if the key was missing in 0.5.1 to returning
a shared 'zombie' node in 0.5.2 to resolve a memory leak.
(Specifically 1025f76df1 was where this
was introduced)
This caused some regressions where this 'zombie' object threw exceptions
in some functions where the 'empty' object would not.
This change fixes the Node::as(fallback) method (to return the
'fallback' instead of throwing an exception) and the
Node::begin()/Node::end() methods to return default-constructed
iterators (so begin() == end() in such cases) instead of another
exception.
2015-06-08 11:47:10 -07:00
Jesse Beder
5c390e8d6c
Merge pull request #303 from bdutro/patch-1-squashed
...
Fix compiler error by updating node_data::remove to use new equals() method.
2015-04-08 13:59:56 -05:00
bdutro
aa928b925b
Update node_data::remove to use new equals() method
...
- Update the call to equals() in node_data::remove() to match the new implementation
- Add unit test for node::remove() to catch this type of bug in the future
2015-04-08 13:41:59 -05:00
Oliver Hamlet
ec8aa4fa62
More useful error messages.
...
Applied the patch given in jbeder/yaml-cpp#200 with the correct code
style.
2015-04-02 20:50:11 +01:00
Jesse Beder
25c466a152
Run clang-format
2015-03-29 21:27:20 -05:00
Jesse Beder
7092a0b099
Fixed linker error on Visual Studio with a shared lib by moving the static methods node_data::equals to an instance method on node.
2015-03-29 21:11:53 -05:00
Jesse Beder
25b2ed0787
Fix operator bool() exception on zombie node
2015-03-29 14:31:22 -05:00
Jesse Beder
0970a108bd
Remove stray field
2015-01-24 17:58:58 -06:00
Jesse Beder
1025f76df1
Fix memory leak when accessing a const Node with a key that doesn't exist.
2015-01-24 17:22:45 -06:00
Jesse Beder
1006bee48a
Default-initialize all sub-iterators in node_iterator_base
2015-01-24 16:23:35 -06:00
Jesse Beder
7d932f0a10
Merge from core
2015-01-24 15:59:24 -06:00
Jesse Beder
087e0673f3
Renamed the None enumeration vaules to NoType to avoid a collision with X11's macro
2015-01-24 15:58:14 -06:00
Jesse Beder
fcbec237c9
Add conversion for signed char
2015-01-24 15:19:49 -06:00
Jesse Beder
c324bf8a7d
Merge core
2015-01-24 14:47:29 -06:00
Jesse Beder
2b2e607118
Fix gcc warning
2015-01-24 14:47:00 -06:00
Jesse Beder
391111c055
Merge core
2015-01-24 14:40:55 -06:00
Jesse Beder
0c8a539361
Fix warnings on visual studio, including changing unsigned to std::size_t
2015-01-24 14:38:22 -06:00
Jesse Beder
9eae039c91
Merge
2015-01-24 13:24:08 -06:00
Jesse Beder
0c280724e9
Add flow/block style setting on Nodes
2015-01-24 13:11:43 -06:00
Jesse Beder
9880b608b9
Merge from core
2015-01-24 12:26:16 -06:00
Jesse Beder
ad712c4f2d
Add EmitterStyle, which will allow sequence or map style (i.e., flow or block) to be preserved between parsing and emitting
2015-01-24 12:19:20 -06:00
Jesse Beder
c7752ca336
Fix build warning from gcc about std::copy
2015-01-24 11:14:53 -06:00
Jesse Beder
2c340f0546
Fixed memory corruption when using a node as a key
2014-08-16 10:52:51 -05:00
Jesse Beder
47af59f09c
Add dll tag to Binary
2014-03-25 22:03:27 -05:00
Jesse Beder
13130ec20d
clang-format
2014-03-25 00:11:17 -05:00
Jesse Beder
066359802b
Merge from core, and update several missing DLL exports. This does not resolve them all (in particular, node_data::equals seems to be still missing, even though it is inlined in a header, which seems strange).
2014-03-24 00:31:43 -05:00
Jesse Beder
fe8ca77a1b
Add missing DLL export, and set up gtest/gmock to properly import their symbols.
2014-03-23 23:56:17 -05:00
Jesse Beder
253c80d09e
Merge from core
2014-03-23 20:17:34 -05:00
Jesse Beder
06bf012d81
clang-format
2014-03-23 20:08:54 -05:00
Jesse Beder
4b40441cee
Run IWYU
2014-03-22 23:14:48 -05:00
Jesse Beder
8d7eb02c46
Merge IWYU from core
2014-03-22 23:08:09 -05:00
Jesse Beder
5fd25df859
Run IWYU
2014-03-22 22:46:04 -05:00
Jesse Beder
c7567b7b07
Add missing includes to node_data.h
2014-03-22 19:32:53 -05:00
Jesse Beder
d98ab9f342
Merge ostream_wrapper fix from core
2014-03-22 19:27:54 -05:00
Jesse Beder
0fbeac8f4f
Add more ostream_wrapper tests
2014-03-22 19:22:23 -05:00
Jesse Beder
d63ec48c8a
Run clang-format
2014-03-22 13:05:03 -05:00
Jesse Beder
3355bbb399
Merge clang-format from core
2014-03-22 13:03:18 -05:00
Jesse Beder
9b4db068bb
Run clang-format
2014-03-22 12:49:16 -05:00
Jesse Beder
5b88931143
Fixed bug while reading a single space char
2013-11-10 14:50:35 -06:00
Jesse Beder
895af26226
Fix floating point precision on input.
2013-04-13 13:10:36 -05:00
Jesse Beder
434c6a5697
Add better exception reporting when incorrectly dereferencing an iterator.
2013-04-12 23:41:02 -05:00
Jesse Beder
097ac171c6
Add std::pair conversion specialization.
2013-04-02 21:04:17 -05:00
Jesse Beder
0482463569
Rename clear() to reset(), and it now takes an optional node parameter.
2013-04-02 20:39:54 -05:00
Jesse Beder
5dbcf7eeb1
Fix conversion for C-strings (both literals and normal C-strings) so it compiles on Visual Studio.
2013-04-01 22:25:53 -05:00
Jesse Beder
f5418306d6
Explicity disallow get_idx for boolean type, to avoid ambiguity with a map.
2013-04-01 22:06:09 -05:00
Jesse Beder
04937649b7
Add missing line from previous fix.
2013-04-01 21:52:32 -05:00
Jesse Beder
71f35b1104
Fix warning in Visual Studio:
...
warning C4146: unary minus operator applied to unsigned type, result still unsigned
2013-04-01 21:43:09 -05:00
Jesse Beder
bcdda4027f
Added Node::clear() function
2012-11-08 18:47:22 -06:00
Jesse Beder
eb02dd8dc3
Fixed typo from null fix
2012-11-08 18:40:44 -06:00
Jesse Beder
5721ac6194
Pulled 'null' renaming fix
2012-11-08 18:39:06 -06:00
Jesse Beder
0c72825303
Renamed all variables named 'null' (for real now, and only that)
2012-11-08 18:38:20 -06:00
Jesse Beder
16f05e73b9
Reverted last change
2012-11-08 18:24:00 -06:00
Jesse Beder
06e09d1d64
Renamed all variables named 'null'
2012-11-08 18:21:00 -06:00
Jesse Beder
0c772c4c3f
Set LoadFile and LoadAllFromFile to throw an exception if we can't load the file
2012-11-08 18:14:26 -06:00
Jesse Beder
a03e861d8c
Switched map's convert<> specialization to use the new force_insert
2012-10-31 19:10:45 -05:00
Jesse Beder
09b4706faf
Added force_insert for mapping nodes that doesn't check to see if the key exists already (so it could duplicate keys)
2012-10-31 19:08:09 -05:00
Jesse Beder
a645866ffa
Simplified Node::operator[] interface by removing the C-string overloads, using a helper to_value
2012-10-31 18:55:07 -05:00
Jeff Wang
d770a7dc97
workaround for gcc 3
2012-07-17 11:55:45 -05:00
Jesse Beder
823311384f
Added free Clone() function for Nodes
2012-07-04 15:26:37 -05:00
Jesse Beder
c722684f0d
Removed unnecessary forward declarations
2012-06-08 10:26:49 -05:00
Jesse Beder
5c097d417a
Removed stray GetNextDocument declaration from the parser (it's from the old API, and not the new one)
2012-06-08 10:25:42 -05:00
Jesse Beder
ab36ca930f
Updated from core (emitter)
2012-05-25 19:39:15 -05:00
Jesse Beder
d5130a4109
Changed Emitter::size() to return std::size_t instead of unsigned
2012-05-25 19:38:58 -05:00
Jesse Beder
a78069a6e2
Merged ostreams for the emitter change from the core
2012-05-25 19:35:24 -05:00
Jesse Beder
bc3f72b565
Switched the stream << for c-strings to take a templated array param (since we never stream user-built c-strings, only string literals). For this, refactored the escape character display
2012-05-25 19:33:34 -05:00
Jesse Beder
772969270d
Refactored stream overloads
2012-05-25 18:24:07 -05:00
Jesse Beder
2ffdc5b4d1
Added constructor to the Emitter with a stream, so you can write directly to a stream instead of our temp
2012-05-25 18:22:33 -05:00
Jesse Beder
e6d4a915dc
Switched the ostream wrapper to wrap a std::vector<char> instead of our manually managed memory
2012-05-25 18:17:14 -05:00
Jesse Beder
7c85e9d5de
Updated ostream wrapper with a write() and update_pos
2012-05-25 17:39:14 -05:00
Jesse Beder
1602f78974
Renamed ostream -> ostream_wrapper
2012-05-25 17:28:35 -05:00
Jesse Beder
4116d89f2c
Merged emitter refactor from core
2012-05-23 15:30:03 -05:00
Jesse Beder
a6fe313d32
Removed key/value error checks (since we don't require asking them)
2012-05-22 16:57:30 -05:00
Jesse Beder
0e3e6791ff
Added flow map, simple key/value
2012-05-22 16:36:07 -05:00
Jesse Beder
41e4cd3308
Split block map simple/long key for both key/value
2012-05-22 14:20:50 -05:00
Jesse Beder
952fe51c73
Added writing float/double
2012-05-22 13:59:31 -05:00
Jesse Beder
c95bcae49f
Added writing integral types
2012-05-22 13:57:44 -05:00
Jesse Beder
a626424baa
Split the block map prepare into key/value
2012-05-22 12:56:40 -05:00
Jesse Beder
80823583a0
Tweaked spacing for comments
2012-05-22 12:54:54 -05:00
Jesse Beder
eef692d7b2
Fixed when we emit the doc start (only if there already is a document in the stream, and we're about to emit a new node)
2012-05-22 12:37:00 -05:00
Jesse Beder
0814813302
Added comments, not entirely correct
2012-05-22 12:29:36 -05:00
Jesse Beder
35d827f187
Structured emitter node handling better
2012-05-21 21:57:25 -05:00
Jesse Beder
65d80ebc11
Started prepare node
2012-05-21 17:06:12 -05:00
Jesse Beder
923ccc8fed
Implemented begin/end doc
2012-05-21 16:54:45 -05:00
Jesse Beder
5a2183f55b
Removed old emitter state machine
2012-05-21 16:31:07 -05:00
Jesse Beder
e09fbacd35
Updated from core
2012-05-19 15:40:30 -05:00
Jesse Beder
06cb65c6b3
Removed stl node, which was from the old-api but never deleted
2012-05-19 15:37:39 -05:00
Jesse Beder
c22512649e
Copied all files from new-api branch of old repo
2012-05-19 15:34:02 -05:00
Jesse Beder
c8a539f4f4
Removed old api exceptions
2012-05-19 01:32:10 -05:00
Jesse Beder
683c60f490
Removed traces of old-api Node
2012-05-19 01:19:03 -05:00
Jesse Beder
a183293ff0
Removed old-api tests, added (empty) core spec tests
2012-05-19 01:16:54 -05:00
Jesse Beder
0d32d19ed8
First pass at spearating out a 'core' library from the old api (default) branch
2012-05-19 01:04:43 -05:00
Jesse Beder
d6a0fc6f01
Fixed warning about binary's shadowing members functions
2012-01-25 17:40:16 -06:00
Jesse Beder
01eb370300
Added operator >> overload for Binary
2012-01-21 02:01:37 -06:00
Jesse Beder
d760d037ca
Renamed the base64 methods, and switched the EncodeBase64 one to return a string (to make it easy to use elsewhere)
2012-01-21 01:33:49 -06:00
Jesse Beder
6105d4cfeb
Refactored the base64 binary to its own space with a unified class that (will) be used for parsing (in addition to emitting)
2012-01-21 01:18:37 -06:00
Jesse Beder
e145488547
Added back yaml.h (since it used to be generated)
2012-01-21 00:08:35 -06:00
Jesse Beder
b688c93050
Put all the old-api stuff back in the main folder, for simplicity
2012-01-20 23:55:39 -06:00
Jesse Beder
1723523c43
Removed the new API from the default branch
2012-01-20 23:50:39 -06:00
Jesse Beder
fb0802097c
Fixed double -> int conversion (now throws) for old API
2012-01-12 23:52:51 -06:00
Jesse Beder
643ea61a98
Updated new API conversion to handle nan/inf and to throw when the conversion didn't use the entire string (e.g., parsing 1.2 as an integer)
2012-01-12 23:49:05 -06:00
Jesse Beder
d1e4c2640c
Added default parameters for the as<> function (new API)
2012-01-12 01:03:31 -06:00
Jesse Beder
ddc578dbd7
Added LoadFile and LoadAllFromFile (new API)
2012-01-11 21:31:01 -06:00
Jesse Beder
7ace0e93d2
Fixed signed/unsigned mismatch with the new precision code
2012-01-11 16:50:06 -06:00
Jesse Beder
5024caa69c
Added float/double precision setters
2012-01-11 14:34:04 -06:00
Jesse Beder
21ed2b5817
Added explicit conversion from an iterator value to a Node. This conversion was always allowed (since the iterator value is derived from Node, but since Node has a templated constructor, that would take precedence over the derived-to-base conversion. This didn't seem to be a problem in gcc or clang, but MSVC seems to have trouble. (new API)
2012-01-11 13:58:18 -06:00
Jesse Beder
5b32d89222
Fixed compiler error in iterator_base friend forward declaration in node on clang (and I hope MSVC), plus warnings on clang
2012-01-07 01:42:21 -06:00
Jesse Beder
812a2dc684
Fixed assignment with an empty node (new API) - a segfault that only showed up in debuggable
2011-12-20 22:19:54 -06:00
Jesse Beder
add460947b
Added overload for emitting unsigned char
2011-11-14 17:00:28 -06:00
Jesse Beder
3099d51ba4
Added single character emitting
2011-11-14 16:23:14 -06:00
Jesse Beder
5abfbf5aac
Added (unspecified-type) bool conversions for Node (new API)
2011-11-13 16:05:42 -06:00
Jesse Beder
d78d16532a
Set the default operator >> to not compile unless there is a scalar conversion, so it doesn't interfere with user-defined types
2011-11-01 17:19:03 -05:00
Jesse Beder
c953ce0b07
Fixed broken includes when using the old api
2011-10-18 15:13:10 -05:00
Jesse Beder
70e1eb3f9c
Fixed the #ifdefs for the api stuff
2011-10-18 14:47:35 -05:00
Jesse Beder
77cc54585f
Couldn't get the copy command to work for yaml.h, so switched to configure_file
2011-10-18 14:43:48 -05:00
Jesse Beder
e69f51ee16
Split the yaml.h file into new/old API, which we'll then copy to yaml.h at build time (so the right one gets installed)
2011-10-18 00:16:51 -05:00
Jesse Beder
f64f619c29
Added bool conversions
2011-09-14 01:48:36 -05:00
Jesse Beder
e5d0366797
Added Dump()
2011-09-13 14:49:00 -05:00
Jesse Beder
e3d5ec189d
Switched YAML::Parse to YAML::Load, and added LoadAll
2011-09-13 14:24:47 -05:00
Jesse Beder
3a88c4b4a1
Added IsNull, IsScalar, IsSequence, IsMap functions, so you don't have to query Type()
2011-09-13 14:10:27 -05:00
Jesse Beder
0987b234c3
Added tags to Node
2011-09-13 14:00:47 -05:00
Jesse Beder
2dfccbb945
Added a convert<> specialization for YAML::_Null (so you can say node[YAML::Null])
2011-09-13 02:03:56 -05:00
Jesse Beder
a8f82af604
Switched Node::operator=(const Node&) to *not* force itself to create its node first (since we're just assigning them)
2011-09-12 22:05:43 -05:00
Jesse Beder
0c321a6dc6
Switched the node_ref to *always* create its data (since now the Node itself doesn't always create itself)
2011-09-12 22:03:11 -05:00
Jesse Beder
08b3ddfd3e
Set the pimpl node in Node to be optional, so we don't create unnecessary guys every time you call Node tmp = foo[value];
2011-09-12 21:59:47 -05:00
Jesse Beder
5397a93702
Implemented std::map decode (and fixed bug in the Node iterator - the reference_type should be just a plain value, since it's created on-the-fly)
2011-09-12 00:29:39 -05:00
Jesse Beder
b9583dde76
Added reading/writing std::list
2011-09-11 23:18:19 -05:00
Jesse Beder
f22f38f7f2
Added reading/writing std::vector
2011-09-11 23:14:52 -05:00
Jesse Beder
9e62bf8349
Removed the (unimplemented) operator <, and added operator == (in place of is()) for nodes
2011-09-11 22:56:04 -05:00
Jesse Beder
f9d826c22a
Added mutable operator[] for integral types (you can only grow the sequence if you specify the *next* element)
2011-09-11 22:51:49 -05:00
Jesse Beder
4770ec798c
Implemented operator[] specialization, but only const (should the sequence be mutable?)
2011-09-11 21:51:04 -05:00
Jesse Beder
4568dd0b19
Started specialization for operator[] for integers
2011-09-11 21:32:47 -05:00
Jesse Beder
a308b73e8a
Set the map iterator to filter over undefined items
2011-09-11 19:44:27 -05:00
Jesse Beder
a03af5dd73
Implemented the map size computation
2011-09-11 17:16:26 -05:00
Jesse Beder
b50264e74d
Switched the implementation of maps from list<pair> to map (but just pointer comparison)
2011-09-11 16:56:38 -05:00
Jesse Beder
ecdd9cc66d
Added computing and caching the sequence size
2011-09-11 16:21:36 -05:00
Jesse Beder
2d81e46655
Added dependency management (to cause nodes to become defined if their children do)
2011-09-11 15:59:53 -05:00
Jesse Beder
2d06df474b
Fixed up the old API stuff, and removed the util/value (since it's no longer needed)
2011-09-10 23:11:28 -05:00
Jesse Beder
80cf3c98db
Fixed minor things that used the old API, compiles/links/runs\!
2011-09-10 22:59:27 -05:00
Jesse Beder
0d1b5224c8
Major switch from Value -> Node. The library compiles with the new API, but tests are still oldies, and don't compile
2011-09-10 17:57:23 -05:00
Jesse Beder
ac81d7c883
Start of moving Value -> Node and Node -> old API Node (with a #define toggle)
2011-09-10 17:18:15 -05:00
Jesse Beder
78b7a1b8a9
Added helper emitter functions, but we have a problem: YAML::Value is already a manipulator
2011-09-10 16:50:44 -05:00
Jesse Beder
5012063143
Fixed node iterator
2011-09-10 14:36:10 -05:00
Jesse Beder
c3b0ba9d61
New iterators work\!
2011-09-10 14:16:50 -05:00