From 57d165fb0521ef2def5b97b984f79a62e6b60889 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sun, 14 Feb 2021 17:18:07 +0900 Subject: [PATCH] Avoid strndup() It doesn't compile in Windows. --- src/hll/Gpx2Plus.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/hll/Gpx2Plus.c b/src/hll/Gpx2Plus.c index 6ee9c7e..034bb78 100644 --- a/src/hll/Gpx2Plus.c +++ b/src/hll/Gpx2Plus.c @@ -484,10 +484,15 @@ static void Gpx2Plus_MsgDraw(int surface, int x, int y) int len = 0, a1, a2, a3; if (*s != '<') { char *lb = strchr(s, '<'); - len = lb ? lb - s : strlen(s); - char *ss = strndup(s, len); - pos.x += gfx_render_text(dst, pos, ss, &tm, 0 /* char_space */); - free(ss); + if (lb) { + len = lb - s; + *lb = '\0'; + } else { + len = strlen(s); + } + pos.x += gfx_render_text(dst, pos, s, &tm, 0 /* char_space */); + if (lb) + *lb = '<'; } else if (sscanf(s, "%n", &a1, &len) == 1) { tm.face = a1; } else if (sscanf(s, "%n", &a1, &len) == 1) {