Accepting request 773615 from devel:libraries:c_c++

OBS-URL: https://build.opensuse.org/request/show/773615
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jsoncpp?expand=0&rev=24
This commit is contained in:
Dominique Leuenberger 2020-02-15 21:24:40 +00:00 committed by Git OBS Bridge
commit f57ec2af05
3 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,45 @@
From f11611c8785082ead760494cba06196f14a06dcb Mon Sep 17 00:00:00 2001
From: Andrew Childs <lorne@cons.org.nz>
Date: Sat, 28 Dec 2019 16:04:24 +0900
Subject: [PATCH] json_writer: fix inverted sense in isAnyCharRequiredQuoting
(#1120)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This bug is only affects platforms where `char` is unsigned.
When char is a signed type, values >= 0x80 are also considered < 0,
and hence require escaping due to the < ' ' condition.
When char is an unsigned type, values >= 0x80 match none of the
conditions and are considered safe to emit without escaping.
This shows up as a test failure:
* Detail of EscapeSequenceTest/writeEscapeSequence test failure:
/build/source/src/test_lib_json/main.cpp(3370): expected == result
Expected: '["\"","\\","\b","\f","\n","\r","\t","\u0278","\ud852\udf62"]
'
Actual : '["\"","\\","\b","\f","\n","\r","\t","ɸ","𤭢"]
'
---
src/lib_json/json_writer.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp
index 8e06cca2..56195dc1 100644
--- a/src/lib_json/json_writer.cpp
+++ b/src/lib_json/json_writer.cpp
@@ -178,8 +178,9 @@ static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
char const* const end = s + n;
for (char const* cur = s; cur < end; ++cur) {
- if (*cur == '\\' || *cur == '\"' || *cur < ' ' ||
- static_cast<unsigned char>(*cur) < 0x80)
+ if (*cur == '\\' || *cur == '\"' ||
+ static_cast<unsigned char>(*cur) < ' ' ||
+ static_cast<unsigned char>(*cur) >= 0x80)
return true;
}
return false;

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Wed Feb 12 07:46:21 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Fix build on non-x86 architectures - boo#1163385
* jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch
- From 1.9.1 to 1.9.2, features.h has been renamed json_features.h
so, add a symlink for compatibility - boo#1163385
-------------------------------------------------------------------
Mon Feb 3 15:35:00 UTC 2020 - Martin Pluskal <mpluskal@suse.com>

View File

@ -25,6 +25,8 @@ License: MIT
Group: Development/Libraries/C and C++
URL: https://github.com/open-source-parsers/jsoncpp
Source0: https://github.com/open-source-parsers/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM - https://github.com/open-source-parsers/jsoncpp/commit/f11611c8785082ead760494cba06196f14a06dcb
Patch1: jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch
BuildRequires: gcc-c++
BuildRequires: meson >= 0.50.0
BuildRequires: pkgconfig
@ -68,6 +70,7 @@ format to store user input files.
%prep
%setup -q
%patch1 -p1
%build
%meson \
@ -75,6 +78,11 @@ format to store user input files.
%install
%meson_install
pushd %{buildroot}%{_includedir}/json/
# From 1.9.1 to 1.9.2, features.h has been renamed json_features.h
# so, create a symlink for compatibility
ln -s json_features.h features.h
popd
%check
%meson_test