This is an automated email from the git hooks/post-receive script.

arand-guest pushed a commit to branch master
in repository lierolibre.

commit 97628f0664f7df52622f837bff31d72289968e08
Author: Martin Erik Werner <[email protected]>
Date:   Tue Aug 18 22:07:35 2015 +0200

    Update libconfig++ patch with cleaner version
---
 debian/changelog                                   |  7 +-
 ...c-string.patch => adapt-to-new-libconfig.patch} | 89 +++++++++-------------
 debian/patches/series                              |  2 +-
 3 files changed, 39 insertions(+), 59 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 8000fc3..928ca20 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,10 +4,11 @@ lierolibre (0.5-2) UNRELEASED; urgency=low
   * Handle hurd/kfreebsd as linux. Fixes build there
 
   [ Martin Erik Werner ]
-  * Add upstream patch to fix string conversion with new libstdc++6 cxx11 and
-    libconfig++9v5
-    - debian/patches/fix-conversion-of-basic-string-to-c-string.patch
+  * Add patch to adapt to libconfig++9v5 (Closes: #795437)
+    - debian/patches/adapt-to-new-libconfig.patch
+    - Thanks to Simon McVittie for large parts of this patch
   * Add upstream patches for building on other archs than x86 and x86_64
+    (Closes: #790363)
     - debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch
     - debian/patches/0002-At-least-try-building-for-other-archs-than-x86.patch
     - debian/patches/0003-Remove-unknown-arch-warning.patch
diff --git a/debian/patches/fix-conversion-of-basic-string-to-c-string.patch 
b/debian/patches/adapt-to-new-libconfig.patch
similarity index 71%
rename from debian/patches/fix-conversion-of-basic-string-to-c-string.patch
rename to debian/patches/adapt-to-new-libconfig.patch
index 21cc5b8..83913b4 100644
--- a/debian/patches/fix-conversion-of-basic-string-to-c-string.patch
+++ b/debian/patches/adapt-to-new-libconfig.patch
@@ -1,22 +1,20 @@
-From b9cc6f96a13e24bc219b9f493792f6de44fd206b Mon Sep 17 00:00:00 2001
+From b27e3604aa6bfbfcc50db1000b394d06c87ae2f2 Mon Sep 17 00:00:00 2001
 From: Martin Erik Werner <[email protected]>
 Date: Mon, 17 Aug 2015 15:54:53 +0200
-Subject: [PATCH] Fix conversion of basic string to c string
+Subject: [PATCH] Adapt to new libconfig++
 
-An ABI bump in libstdc++6 presumably made it so that
-operator[](const char*) does not accept std::__cxx11::basic_string<char>
-as an argument, so solve this by explicitly converting the result via
-c_str() everywhere.
+The new libconfig++ have removed operator[](const std::string &), so use
+const char* instead via c_str().
 
-This also required some odd messing with templates in order to
-specialise them for the conversion.
+Thanks to Simon McVittie for preparing a patch, which intially went
+unnoticed, but eventually helped in creating the final result here.
 ---
  src/common.cpp       | 12 ++++++------
  src/configCompat.cpp |  6 +++---
- src/configHelper.cpp | 36 ++++++++++++++++++++++++++++--------
- src/configHelper.hpp |  2 ++
+ src/configHelper.cpp | 14 +++++---------
  src/constants.cpp    |  6 +++---
- 5 files changed, 42 insertions(+), 20 deletions(-)
+ src/gfx/palette.cpp  |  6 +++---
+ 5 files changed, 20 insertions(+), 24 deletions(-)
 
 diff --git a/src/common.cpp b/src/common.cpp
 index 2d6ada5..4942b05 100644
@@ -95,10 +93,10 @@ index 1aeb262..a72c40f 100644
  }
  
 diff --git a/src/configHelper.cpp b/src/configHelper.cpp
-index fcd1f3f..fd74f0c 100644
+index fcd1f3f..a63bddc 100644
 --- a/src/configHelper.cpp
 +++ b/src/configHelper.cpp
-@@ -54,15 +54,35 @@ template Uint8 ConfigHelper::getValue<Uint8, const 
Setting, int>(const Setting &
+@@ -54,15 +54,11 @@ template Uint8 ConfigHelper::getValue<Uint8, const 
Setting, int>(const Setting &
  
  template Uint8 ConfigHelper::getValue<Uint8, const Setting, char 
const*>(const Setting &node, char const* index);
  
@@ -110,34 +108,11 @@ index fcd1f3f..fd74f0c 100644
  template Uint8 ConfigHelper::getValue<Uint8, Setting, char const*>(Setting 
&node, char const* index);
  
 -template Uint8 ConfigHelper::getValue<Uint8, Setting, string>(Setting &node, 
string index);
-+// This needs to be specific since string must be manually cast to const char*
-+template<>
-+Uint8 ConfigHelper::getValue(const Setting &node, string index)
-+{
-+      int value = node[index.c_str()];
-+      if(value <= numeric_limits<Uint8>::max() && value >= 
numeric_limits<Uint8>::min())
-+      {
-+              return static_cast<Uint8>(value);
-+      } else {
-+              throw overflow_error("Config value is too big");
-+      }
-+}
- 
-+template<>
-+Uint8 ConfigHelper::getValue(Setting &node, string index)
-+{
-+      int value = node[index.c_str()];
-+      if(value <= numeric_limits<Uint8>::max() && value >= 
numeric_limits<Uint8>::min())
-+      {
-+              return static_cast<Uint8>(value);
-+      } else {
-+              throw overflow_error("Config value is too big");
-+      }
-+}
+-
  
  // Since we still need specialisation per value type (Setting::Type),
  // no need to templateify these
-@@ -72,7 +92,7 @@ void ConfigHelper::put(Setting &node, string variable, 
string value)
+@@ -72,7 +68,7 @@ void ConfigHelper::put(Setting &node, string variable, 
string value)
        {
                node.add(variable, Setting::TypeString) = value;
        } else {
@@ -146,7 +121,7 @@ index fcd1f3f..fd74f0c 100644
                var = value;
        }
  }
-@@ -83,7 +103,7 @@ void ConfigHelper::put(Setting &node, string variable, int 
value)
+@@ -83,7 +79,7 @@ void ConfigHelper::put(Setting &node, string variable, int 
value)
        {
                node.add(variable, Setting::TypeInt) = value;
        } else {
@@ -155,7 +130,7 @@ index fcd1f3f..fd74f0c 100644
                var = value;
        }
  }
-@@ -94,7 +114,7 @@ void ConfigHelper::put(Setting &node, string variable, 
Uint8 value)
+@@ -94,7 +90,7 @@ void ConfigHelper::put(Setting &node, string variable, Uint8 
value)
        {
                node.add(variable, Setting::TypeInt) = value;
        } else {
@@ -164,7 +139,7 @@ index fcd1f3f..fd74f0c 100644
                var = value;
        }
  }
-@@ -105,7 +125,7 @@ void ConfigHelper::put(Setting &node, string variable, 
bool value)
+@@ -105,7 +101,7 @@ void ConfigHelper::put(Setting &node, string variable, 
bool value)
        {
                node.add(variable, Setting::TypeBoolean) = value;
        } else {
@@ -173,7 +148,7 @@ index fcd1f3f..fd74f0c 100644
                var = value;
        }
  }
-@@ -135,6 +155,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string 
groupName)
+@@ -135,6 +131,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string 
groupName)
        {
                node.add(groupName, Setting::TypeGroup);
        }
@@ -181,19 +156,6 @@ index fcd1f3f..fd74f0c 100644
 +      return node[groupName.c_str()];
  }
  
-diff --git a/src/configHelper.hpp b/src/configHelper.hpp
-index 6c4ba33..b7bd343 100644
---- a/src/configHelper.hpp
-+++ b/src/configHelper.hpp
-@@ -37,6 +37,8 @@ class ConfigHelper
- public:
-       void putVersion(libconfig::Setting &node, int version);
- 
-+      unsigned char getValue(const libconfig::Setting &node, std::string 
index);
-+      unsigned char getValue(libconfig::Setting &node, std::string index);
-       template<typename Dest, typename Node, typename Idx>
-       Dest getValue(Node &node, Idx index);
- 
 diff --git a/src/constants.cpp b/src/constants.cpp
 index 7fced6a..cf7bbfc 100644
 --- a/src/constants.cpp
@@ -221,6 +183,23 @@ index 7fced6a..cf7bbfc 100644
        }
  }
  
+diff --git a/src/gfx/palette.cpp b/src/gfx/palette.cpp
+index 3fd08c4..3d3bf22 100644
+--- a/src/gfx/palette.cpp
++++ b/src/gfx/palette.cpp
+@@ -124,9 +124,9 @@ void Palette::readFromCFG(std::string cfgFilePath)
+ 
+       for(int i = 0; i < 256; ++i)
+       {
+-              entries[i].r = cfgHelp.getValue<Uint8>(spentries, "entries" + 
to_string(i) + "r");
+-              entries[i].g = cfgHelp.getValue<Uint8>(spentries, "entries" + 
to_string(i) + "g");
+-              entries[i].b = cfgHelp.getValue<Uint8>(spentries, "entries" + 
to_string(i) + "b");
++              entries[i].r = cfgHelp.getValue<Uint8>(spentries, ("entries" + 
to_string(i) + "r").c_str());
++              entries[i].g = cfgHelp.getValue<Uint8>(spentries, ("entries" + 
to_string(i) + "g").c_str());
++              entries[i].b = cfgHelp.getValue<Uint8>(spentries, ("entries" + 
to_string(i) + "b").c_str());
+       }
+ }
+ 
 -- 
 2.4.6
 
diff --git a/debian/patches/series b/debian/patches/series
index 66ec740..1d0869c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,5 @@
 kfreebsd.patch
-fix-conversion-of-basic-string-to-c-string.patch
+adapt-to-new-libconfig.patch
 0001-Use-unaligned-access-define-over-checking-arch.patch
 0002-At-least-try-building-for-other-archs-than-x86.patch
 0003-Remove-unknown-arch-warning.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/lierolibre.git

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to