diff options
author | Cameron Cawley | 2019-03-28 22:35:13 +0000 |
---|---|---|
committer | Cameron Cawley | 2019-04-15 16:24:51 +0100 |
commit | 8c15b41dd73e2f44e59b4918bdaaa522d22c5526 (patch) | |
tree | d40c84cd5fc057e7607c8298be6e893b36e55340 /backends/platform/sdl | |
parent | bcef809e612177c2bcb7ca3f8682ea96d38c4cdc (diff) | |
download | scummvm-rg350-8c15b41dd73e2f44e59b4918bdaaa522d22c5526.tar.gz scummvm-rg350-8c15b41dd73e2f44e59b4918bdaaa522d22c5526.tar.bz2 scummvm-rg350-8c15b41dd73e2f44e59b4918bdaaa522d22c5526.zip |
RISCOS: Move the path conversion functions into a separate file
Diffstat (limited to 'backends/platform/sdl')
-rw-r--r-- | backends/platform/sdl/module.mk | 1 | ||||
-rw-r--r-- | backends/platform/sdl/riscos/riscos-utils.cpp | 70 | ||||
-rw-r--r-- | backends/platform/sdl/riscos/riscos-utils.h | 49 |
3 files changed, 120 insertions, 0 deletions
diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk index c5036be727..e9533ab711 100644 --- a/backends/platform/sdl/module.mk +++ b/backends/platform/sdl/module.mk @@ -35,6 +35,7 @@ endif ifdef RISCOS MODULE_OBJS += \ riscos/riscos-main.o \ + riscos/riscos-utils.o \ riscos/riscos.o endif diff --git a/backends/platform/sdl/riscos/riscos-utils.cpp b/backends/platform/sdl/riscos/riscos-utils.cpp new file mode 100644 index 0000000000..b26081d329 --- /dev/null +++ b/backends/platform/sdl/riscos/riscos-utils.cpp @@ -0,0 +1,70 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "common/scummsys.h" +#include "backends/platform/sdl/riscos/riscos-utils.h" + +#include <unixlib/local.h> +#include <limits.h> + +namespace RISCOS_Utils { + +Common::String toRISCOS(Common::String path) { + char start[PATH_MAX]; + char *end = __riscosify_std(path.c_str(), 0, start, PATH_MAX, 0); + return Common::String(start, end); +} + +Common::String toUnix(Common::String path) { + Common::String out = Common::String(path); + uint32 start = 0; + if (out.contains("$")) { + char *x = strstr(out.c_str(), "$"); + start = x ? x - out.c_str() : -1; + } else if (out.contains(":")) { + char *x = strstr(out.c_str(), ":"); + start = x ? x - out.c_str() : -1; + } + + for (uint32 ptr = start; ptr < out.size(); ptr += 1) { + switch (out.c_str()[ptr]) { + case '.': + out.setChar('/', ptr); + break; + case '/': + out.setChar('.', ptr); + break; + case '\xA0': + out.setChar(' ', ptr); + break; + default: + break; + } + } + + if (out.contains("$") || out.contains(":")) + out = "/" + out; + + return out; +} + +} diff --git a/backends/platform/sdl/riscos/riscos-utils.h b/backends/platform/sdl/riscos/riscos-utils.h new file mode 100644 index 0000000000..5d8c1fd6ef --- /dev/null +++ b/backends/platform/sdl/riscos/riscos-utils.h @@ -0,0 +1,49 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef PLATFORM_SDL_RISCOS_UTILS_H +#define PLATFORM_SDL_RISCOS_UTILS_H + +#include "common/str.h" + +// Helper functions +namespace RISCOS_Utils { + +/** + * Converts a Unix style path to a RISC OS style path. + * + * @param str Unix style path to convert. + * @return RISC OS style path. + */ +Common::String toRISCOS(Common::String path); + +/** + * Converts a RISC OS style path to a Unix style path. + * + * @param str RISC OS style path to convert. + * @return Unix style path. + */ +Common::String toUnix(Common::String path); + +} + +#endif |