diff options
-rw-r--r-- | common/str.cpp | 10 | ||||
-rw-r--r-- | common/str.h | 1 | ||||
-rw-r--r-- | graphics/fonts/bdf.cpp | 13 |
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) { |