aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/str.cpp10
-rw-r--r--common/str.h1
-rw-r--r--graphics/fonts/bdf.cpp13
3 files changed, 13 insertions, 11 deletions
diff --git a/common/str.cpp b/common/str.cpp
index 468d1a6f53..f60d7d5e93 100644
--- a/common/str.cpp
+++ b/common/str.cpp
@@ -1058,3 +1058,13 @@ int scumm_strnicmp(const char *s1, const char *s2, uint n) {
} while (l1 == l2 && l1 != 0);
return l1 - l2;
}
+
+// Portable implementation of strdup.
+char *scumm_strdup(const char *in) {
+ const size_t len = strlen(in) + 1;
+ char *out = new char[len];
+ if (out) {
+ strcpy(out, in);
+ }
+ return out;
+}
diff --git a/common/str.h b/common/str.h
index 7a1706b7e1..5ed14b6942 100644
--- a/common/str.h
+++ b/common/str.h
@@ -482,5 +482,6 @@ size_t strnlen(const char *src, size_t maxSize);
extern int scumm_stricmp(const char *s1, const char *s2);
extern int scumm_strnicmp(const char *s1, const char *s2, uint n);
+extern char *scumm_strdup(const char *in);
#endif
diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp
index 96255dc4d4..8424e00303 100644
--- a/graphics/fonts/bdf.cpp
+++ b/graphics/fonts/bdf.cpp
@@ -700,15 +700,6 @@ BdfFont *BdfFont::loadFromCache(Common::SeekableReadStream &stream) {
return new BdfFont(data, DisposeAfterUse::YES);
}
-static char *new_strdup(const char *in) {
- const size_t len = strlen(in) + 1;
- char *out = new char[len];
- if (out) {
- strcpy(out, in);
- }
- return out;
-}
-
BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) {
if (!src) {
warning("Empty font reference in scale font");
@@ -734,8 +725,8 @@ BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) {
data.firstCharacter = src->_data.firstCharacter;
data.defaultCharacter = src->_data.defaultCharacter;
data.numCharacters = src->_data.numCharacters;
- data.familyName = new_strdup(src->_data.familyName);
- data.slant = new_strdup(src->_data.slant);
+ data.familyName = scumm_strdup(src->_data.familyName);
+ data.slant = scumm_strdup(src->_data.slant);
BdfBoundingBox *boxes = new BdfBoundingBox[data.numCharacters];
for (int i = 0; i < data.numCharacters; ++i) {