File 01c712e85195_Explicit_signed_char_declarations.patch of Package OpenSceneGraph

From 01c712e85195803993acb1d7712796cf494943c6 Mon Sep 17 00:00:00 2001
From: Alberto Luaces <aluaces@udc.es>
Date: Sat, 24 Sep 2016 12:33:37 +0200
Subject: [PATCH] Explicit signed char declarations for portability.

Some platforms (ARM, PowerPC, s390x) have "unsigned char" as the default
char type, and thus the build fails for certain parts of the code where
negative values are assigned to those kind of variables.
---
 src/osgDB/ConvertBase64.cpp     | 2 +-
 src/osgPlugins/osgjs/Base64     | 2 +-
 src/osgPlugins/osgjs/Base64.cpp | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/osgDB/ConvertBase64.cpp b/src/osgDB/ConvertBase64.cpp
index 8a2f59e5a0..7cffbefbde 100644
--- a/src/osgDB/ConvertBase64.cpp
+++ b/src/osgDB/ConvertBase64.cpp
@@ -28,7 +28,7 @@ namespace osgDB
 
     int base64_decode_value(char value_in)
     {
-        static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51};
+        static const signed char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51};
         static const char decoding_size = sizeof(decoding);
         value_in -= 43;
         if (value_in < 0 || value_in >= decoding_size) return -1;
diff --git a/src/osgPlugins/osgjs/Base64 b/src/osgPlugins/osgjs/Base64
index 6d1becc1c9..acac893fca 100644
--- a/src/osgPlugins/osgjs/Base64
+++ b/src/osgPlugins/osgjs/Base64
@@ -61,7 +61,7 @@ namespace base64
   extern const char* to_table;
   extern const char* to_table_end;
 
-  extern const char* from_table;
+  extern const signed char* from_table;
 
 
   template <class InputIterator, class OutputIterator>
diff --git a/src/osgPlugins/osgjs/Base64.cpp b/src/osgPlugins/osgjs/Base64.cpp
index 227b6b1a38..73e2e1f5ee 100644
--- a/src/osgPlugins/osgjs/Base64.cpp
+++ b/src/osgPlugins/osgjs/Base64.cpp
@@ -18,7 +18,7 @@ namespace base64
   const char* to_table_end =
     _to_table + sizeof(_to_table);
 
-  const char _from_table[128] =
+  const signed char _from_table[128] =
   {
     -1, -1, -1, -1, -1, -1, -1, -1, // 0
     -1, -1, -1, -1, -1, -1, -1, -1, // 8
@@ -37,6 +37,6 @@ namespace base64
     41, 42, 43, 44, 45, 46, 47, 48, // 112
     49, 50, 51, -1, -1, -1, -1, -1  // 120
   };
-  const char* from_table = _from_table;
+  const signed char* from_table = _from_table;
 }
 
openSUSE Build Service is sponsored by