From 321aa4ae10213691e4f29f00917134ce581d41fa Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 29 Aug 2013 08:24:43 -0700 Subject: [PATCH] Christoph Mallon: Simplify avoidance of duplicate / in SDL_GetPrefPath() --- src/filesystem/unix/SDL_sysfilesystem.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/filesystem/unix/SDL_sysfilesystem.c b/src/filesystem/unix/SDL_sysfilesystem.c index b3e5f5f26..557b3f77f 100644 --- a/src/filesystem/unix/SDL_sysfilesystem.c +++ b/src/filesystem/unix/SDL_sysfilesystem.c @@ -156,7 +156,7 @@ SDL_GetPrefPath(const char *org, const char *app) * http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html */ const char *envr = SDL_getenv("XDG_DATA_HOME"); - const char *append = "/"; + const char *append; char *retval = NULL; char *ptr = NULL; size_t len = 0; @@ -169,18 +169,16 @@ SDL_GetPrefPath(const char *org, const char *app) SDL_SetError("neither XDG_DATA_HOME nor HOME environment is set"); return NULL; } - if (envr[SDL_strlen(envr) - 1] == '/') { - append = ".local/share/"; - } else { - append = "/.local/share/"; - } + append = "/.local/share/"; } else { - if (envr[SDL_strlen(envr) - 1] == '/') { - append = ""; - } + append = "/"; } /* if */ - len = SDL_strlen(envr) + SDL_strlen(append) + SDL_strlen(app) + 2; + len = SDL_strlen(envr); + if (envr[len - 1] == '/') + append += 1; + + len += SDL_strlen(append) + SDL_strlen(app) + 2; retval = (char *) SDL_malloc(len); if (!retval) { SDL_OutOfMemory();