CFX_WideString CPDF_FileSpec::DecodeFileName(const CFX_WideStringC& filepath) { if (filepath.GetLength() <= 1) return CFX_WideString(); #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ if (filepath.Left(sizeof("/Mac") - 1) == CFX_WideStringC(L"/Mac")) return ChangeSlashToPlatform(filepath.c_str() + 1); return ChangeSlashToPlatform(filepath.c_str()); #elif _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ if (filepath.GetAt(0) != '/') return ChangeSlashToPlatform(filepath.c_str()); if (filepath.GetAt(1) == '/') return ChangeSlashToPlatform(filepath.c_str() + 1); if (filepath.GetAt(2) == '/') { CFX_WideString result; result += filepath.GetAt(1); result += ':'; result += ChangeSlashToPlatform(filepath.c_str() + 2); return result; } CFX_WideString result; result += '\\'; result += ChangeSlashToPlatform(filepath.c_str()); return result; #else return CFX_WideString(filepath); #endif }
static CFX_WideString FILESPEC_DecodeFileName(const CFX_WideStringC& filepath) { if (filepath.GetLength() <= 1) { return CFX_WideString(); } #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ if (filepath.Left(sizeof("/Mac") - 1) == CFX_WideStringC(L"/Mac")) { return ChangeSlashToPlatform(filepath.GetPtr() + 1); } return ChangeSlashToPlatform(filepath.GetPtr()); #elif _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ if (filepath.GetAt(0) != '/') { return ChangeSlashToPlatform(filepath.GetPtr()); } if (filepath.GetAt(1) == '/') { return ChangeSlashToPlatform(filepath.GetPtr() + 1); } if (filepath.GetAt(2) == '/') { CFX_WideString result; result += filepath.GetAt(1); result += ':'; result += ChangeSlashToPlatform(filepath.GetPtr() + 2); return result; } CFX_WideString result; result += '\\'; result += ChangeSlashToPlatform(filepath.GetPtr()); return result; #else return filepath; #endif }
WideString CPDF_FileSpec::DecodeFileName(const WideString& filepath) { if (filepath.GetLength() <= 1) return WideString(); #if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ if (filepath.Left(sizeof("/Mac") - 1) == WideStringView(L"/Mac")) return ChangeSlashToPlatform(filepath.c_str() + 1); return ChangeSlashToPlatform(filepath.c_str()); #elif _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_ if (filepath[0] != L'/') return ChangeSlashToPlatform(filepath.c_str()); if (filepath[1] == L'/') return ChangeSlashToPlatform(filepath.c_str() + 1); if (filepath[2] == L'/') { WideString result; result += filepath[1]; result += L':'; result += ChangeSlashToPlatform(filepath.c_str() + 2); return result; } WideString result; result += L'\\'; result += ChangeSlashToPlatform(filepath.c_str()); return result; #else return WideString(filepath); #endif }