[Scummvm-git-logs] scummvm master -> 76c6bcef2be788d01478d520bebc0c501d31e6d2

sev- sev at scummvm.org
Tue Jun 29 20:12:36 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
76c6bcef2b Revert "COMMON: Add an optional parameter to tag2str() for printing non-printables"


Commit: 76c6bcef2be788d01478d520bebc0c501d31e6d2
    https://github.com/scummvm/scummvm/commit/76c6bcef2be788d01478d520bebc0c501d31e6d2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-06-29T22:12:25+02:00

Commit Message:
Revert "COMMON: Add an optional parameter to tag2str() for printing non-printables"

This reverts commit c11fedb47e82da56b193a24222816addae13df1c.

It is a C++11 feature...

Changed paths:
    common/str.cpp
    common/str.h


diff --git a/common/str.cpp b/common/str.cpp
index 06876598de..fbd9a03744 100644
--- a/common/str.cpp
+++ b/common/str.cpp
@@ -689,24 +689,19 @@ void replace(Common::String &source, const Common::String &what, const Common::S
 	}
 }
 
-String tag2string(uint32 tag, bool nonPrintable) {
-	Common::String res;
-
-	for (int i = 3; i >= 0; i--) {
-		byte b = (tag >> (8 * i)) & 0xff;
-
-		if (!Common::isPrint(b)) {
-			if (nonPrintable) {
-				res += Common::String::format("\\%03o", b);
-			} else {
-				res += '.';
-			}
-		} else {
-			res += b;
-		}
+String tag2string(uint32 tag) {
+	char str[5];
+	str[0] = (char)(tag >> 24);
+	str[1] = (char)(tag >> 16);
+	str[2] = (char)(tag >> 8);
+	str[3] = (char)tag;
+	str[4] = '\0';
+	// Replace non-printable chars by dot
+	for (int i = 0; i < 4; ++i) {
+		if (!Common::isPrint(str[i]))
+			str[i] = '.';
 	}
-
-	return res;
+	return String(str);
 }
 
 #endif
diff --git a/common/str.h b/common/str.h
index b354919f86..8ad41d92e1 100644
--- a/common/str.h
+++ b/common/str.h
@@ -349,11 +349,8 @@ void replace(Common::String &source, const Common::String &what, const Common::S
  * Take a 32 bit value and turn it into a four character string, where each of
  * the four bytes is turned into one character. Most significant byte is printed
  * first.
- *
- * @param tag tag value to convert
- * @param nonPrintable indicate if non-printable characters need to be printed as octals
  */
-String tag2string(uint32 tag, bool nonPrintable = false);
+String tag2string(uint32 tag);
 
 /**
  * Copy up to size - 1 characters from src to dst and also zero terminate the
@@ -408,7 +405,7 @@ size_t strnlen(const char *src, size_t maxSize);
  * Note: It is *NOT* safe to do anything with the return value other than directly
  * copying or printing it.
  */
-#define tag2str(...)	Common::tag2string(__VA_ARGS__).c_str()
+#define tag2str(x)	Common::tag2string(x).c_str()
 
 /**
  * Converts string with all non-printable characters properly escaped




More information about the Scummvm-git-logs mailing list