diff --git a/include/yaml-cpp/emittermanip.h b/include/yaml-cpp/emittermanip.h index e80a573..5774df0 100644 --- a/include/yaml-cpp/emittermanip.h +++ b/include/yaml-cpp/emittermanip.h @@ -143,15 +143,15 @@ namespace YAML int doublePrecision; }; - inline _Precision FloatPrecision(unsigned n) { + inline _Precision FloatPrecision(int n) { return _Precision(n, -1); } - inline _Precision DoublePrecision(unsigned n) { + inline _Precision DoublePrecision(int n) { return _Precision(-1, n); } - inline _Precision Precision(unsigned n) { + inline _Precision Precision(int n) { return _Precision(n, n); } } diff --git a/src/emitterstate.cpp b/src/emitterstate.cpp index 7aea1b8..562e82c 100644 --- a/src/emitterstate.cpp +++ b/src/emitterstate.cpp @@ -265,17 +265,17 @@ namespace YAML } } - bool EmitterState::SetFloatPrecision(unsigned value, FMT_SCOPE scope) + bool EmitterState::SetFloatPrecision(int value, FMT_SCOPE scope) { - if(value > std::numeric_limits::digits10) + if(value < 0 || value > std::numeric_limits::digits10) return false; _Set(m_floatPrecision, value, scope); return true; } - bool EmitterState::SetDoublePrecision(unsigned value, FMT_SCOPE scope) + bool EmitterState::SetDoublePrecision(int value, FMT_SCOPE scope) { - if(value > std::numeric_limits::digits10) + if(value < 0 || value > std::numeric_limits::digits10) return false; _Set(m_doublePrecision, value, scope); return true; diff --git a/src/emitterstate.h b/src/emitterstate.h index 661e083..5698e32 100644 --- a/src/emitterstate.h +++ b/src/emitterstate.h @@ -146,9 +146,9 @@ namespace YAML bool SetMapKeyFormat(EMITTER_MANIP value, FMT_SCOPE scope); EMITTER_MANIP GetMapKeyFormat() const { return m_mapKeyFmt.get(); } - bool SetFloatPrecision(unsigned value, FMT_SCOPE scope); + bool SetFloatPrecision(int value, FMT_SCOPE scope); unsigned GetFloatPrecision() const { return m_floatPrecision.get(); } - bool SetDoublePrecision(unsigned value, FMT_SCOPE scope); + bool SetDoublePrecision(int value, FMT_SCOPE scope); unsigned GetDoublePrecision() const { return m_doublePrecision.get(); } private: @@ -174,8 +174,8 @@ namespace YAML Setting m_seqFmt; Setting m_mapFmt; Setting m_mapKeyFmt; - Setting m_floatPrecision; - Setting m_doublePrecision; + Setting m_floatPrecision; + Setting m_doublePrecision; SettingChanges m_modifiedSettings; SettingChanges m_globalModifiedSettings;