From dcbb2df776387da8ada95ce4d26ca68b68237972 Mon Sep 17 00:00:00 2001 From: aleos Date: Tue, 8 Aug 2017 20:50:09 -0400 Subject: [PATCH] Corrected YAML file parsing * Fixes #2323. * YAML file parsing will now properly catch and display warnings when unable to read a file. Thanks to @CairoLee! --- 3rdparty/yaml-cpp/src/parse.cpp | 2 +- src/common/yamlwrapper.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/3rdparty/yaml-cpp/src/parse.cpp b/3rdparty/yaml-cpp/src/parse.cpp index 0b2ae4a4f6..a215e23f99 100644 --- a/3rdparty/yaml-cpp/src/parse.cpp +++ b/3rdparty/yaml-cpp/src/parse.cpp @@ -31,7 +31,7 @@ Node Load(std::istream& input) { Node LoadFile(const std::string& filename) { std::ifstream fin(filename.c_str()); - if (!fin) { + if (fin.bad()) { throw BadFile(); } return Load(fin); diff --git a/src/common/yamlwrapper.cpp b/src/common/yamlwrapper.cpp index a63532f4cb..f14bf513e2 100644 --- a/src/common/yamlwrapper.cpp +++ b/src/common/yamlwrapper.cpp @@ -47,6 +47,8 @@ yamlwrapper* yaml_load_file(const char* file_name) { node = YAML::LoadFile(file_name); if (!node.IsDefined()) return NULL; + if (node.IsNull()) + return NULL; } catch (YAML::ParserException &e) { ShowError("YAML Exception Caught: %s\n", e.what()); return NULL;