From 8c15b41dd73e2f44e59b4918bdaaa522d22c5526 Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Thu, 28 Mar 2019 22:35:13 +0000 Subject: RISCOS: Move the path conversion functions into a separate file --- backends/platform/sdl/module.mk | 1 + backends/platform/sdl/riscos/riscos-utils.cpp | 70 +++++++++++++++++++++++++++ backends/platform/sdl/riscos/riscos-utils.h | 49 +++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 backends/platform/sdl/riscos/riscos-utils.cpp create mode 100644 backends/platform/sdl/riscos/riscos-utils.h (limited to 'backends/platform') 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 +#include + +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 -- cgit v1.2.3