From bc8e7c17cc0d0460d9330f43be01968b04495be9 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Sat, 15 Mar 2025 00:24:34 +0000 Subject: [PATCH] More string migrations FossilOrigin-Name: 5659be76dbc70d7549e3a6b4ff2a1f6b01a56f58bd77097fdda53ead13ea435d --- src/console.mm | 7 ++++--- src/world.mm | 3 ++- src/worldio.mm | 28 +++++++++++++++------------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/console.mm b/src/console.mm index 58ec78b..8c233b7 100644 --- a/src/console.mm +++ b/src/console.mm @@ -39,8 +39,8 @@ conline(OFString *sf, bool highlight) // add a line to the console buffer // for how long to keep line on screen cl.outtime = lastmillis; conlines.insert(0, cl); - if (highlight) // show line in a different colour, for chat etc. - { + if (highlight) { + // show line in a different colour, for chat etc. cl.cref[0] = '\f'; cl.cref[1] = 0; strcat_s(cl.cref, sf.UTF8String); @@ -152,7 +152,8 @@ void mapmsg(OFString *s) { @autoreleasepool { - strn0cpy(hdr.maptitle, s.UTF8String, 128); + memset(hdr.maptitle, '\0', sizeof(hdr.maptitle)); + strncpy(hdr.maptitle, s.UTF8String, 127); } } COMMAND(mapmsg, ARG_1STR) diff --git a/src/world.mm b/src/world.mm index e6e23ba..f0483b0 100644 --- a/src/world.mm +++ b/src/world.mm @@ -486,7 +486,8 @@ empty_world(int factor, bool force) ents[i].y += ssize / 4; } } else { - strn0cpy(hdr.maptitle, "Untitled Map by Unknown", 128); + char buffer[128] = "Untitled Map by Unknown"; + memcpy(hdr.maptitle, buffer, 128); hdr.waterlevel = -100000; loopi(15) hdr.reserved[i] = 0; loopk(3) loopi(256) hdr.texlists[k][i] = i; diff --git a/src/worldio.mm b/src/worldio.mm index 78cf767..04a9348 100644 --- a/src/worldio.mm +++ b/src/worldio.mm @@ -12,29 +12,31 @@ backup(OFString *name, OFString *backupname) static OFString *cgzname, *bakname, *pcfname, *mcfname; static void -setnames(OFString *name_) +setnames(OFString *name) { @autoreleasepool { - const char *name = name_.UTF8String; - string pakname, mapname; - const char *slash = strpbrk(name, "/\\"); - if (slash) { - strn0cpy(pakname, name, slash - name + 1); - strcpy_s(mapname, slash + 1); + OFCharacterSet *cs = + [OFCharacterSet characterSetWithCharactersInString:@"/\\"]; + OFRange range = [name rangeOfCharacterFromSet:cs]; + OFString *pakname, *mapname; + + if (range.location != OFNotFound) { + pakname = [name substringToIndex:range.location]; + mapname = [name substringFromIndex:range.location + 1]; } else { - strcpy_s(pakname, "base"); - strcpy_s(mapname, name); + pakname = @"base"; + mapname = name; } cgzname = [[OFString alloc] - initWithFormat:@"packages/%s/%s.cgz", pakname, mapname]; + initWithFormat:@"packages/%@/%@.cgz", pakname, mapname]; bakname = - [[OFString alloc] initWithFormat:@"packages/%s/%s_%d.BAK", + [[OFString alloc] initWithFormat:@"packages/%@/%@_%d.BAK", pakname, mapname, lastmillis]; pcfname = [[OFString alloc] - initWithFormat:@"packages/%s/package.cfg", pakname]; + initWithFormat:@"packages/%@/package.cfg", pakname]; mcfname = [[OFString alloc] - initWithFormat:@"packages/%s/%s.cfg", pakname, mapname]; + initWithFormat:@"packages/%@/%@.cfg", pakname, mapname]; } }