| 1033 | */ |
| 1034 | |
| 1035 | std::string CPLProjectRelativeFilenameSafe(const char *pszProjectDir, |
| 1036 | const char *pszSecondaryFilename) |
| 1037 | |
| 1038 | { |
| 1039 | if (pszProjectDir == nullptr || pszProjectDir[0] == 0 || |
| 1040 | !CPLIsFilenameRelative(pszSecondaryFilename)) |
| 1041 | { |
| 1042 | return pszSecondaryFilename; |
| 1043 | } |
| 1044 | |
| 1045 | std::string osRes(pszProjectDir); |
| 1046 | if (osRes.back() != '/' && osRes.back() != '\\') |
| 1047 | { |
| 1048 | osRes += VSIGetDirectorySeparator(pszProjectDir); |
| 1049 | } |
| 1050 | |
| 1051 | osRes += pszSecondaryFilename; |
| 1052 | return osRes; |
| 1053 | } |
| 1054 | |
| 1055 | /************************************************************************/ |
| 1056 | /* CPLProjectRelativeFilename() */ |
no test coverage detected