diff -Naur xplanet-1.3.1.orig/src/readConfig.cpp xplanet-1.3.1/src/readConfig.cpp --- xplanet-1.3.1.orig/src/readConfig.cpp 2013-02-16 20:37:47.000000000 +0100 +++ xplanet-1.3.1/src/readConfig.cpp 2021-12-21 10:06:22.434195435 +0100 @@ -46,10 +46,10 @@ { case ARC_COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->ArcColor(color); } else @@ -176,10 +176,10 @@ break; case COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->Color(color); } else @@ -241,10 +241,10 @@ break; case GRID_COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->GridColor(color); } else @@ -293,10 +293,10 @@ break; case MARKER_COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->MarkerColor(color); } else @@ -400,10 +400,10 @@ break; case ORBIT_COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->OrbitColor(color); } else @@ -470,10 +470,10 @@ break; case TEXT_COLOR: { - int r, g, b; - if (sscanf(returnString, "%d,%d,%d", &r, &g, &b) == 3) + unsigned char r, g, b; + if (sscanf(returnString, "%hhu,%hhu,%hhu", &r, &g, &b) == 3) { - unsigned char color[3] = { r & 0xff, g & 0xff, b & 0xff }; + unsigned char color[3] = { r, g, b }; currentProperties->TextColor(color); } else