/* * Copyright (C) 2005 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "Utils.h" #include // Separator used by resource paths. This is not platform dependent contrary // to OS_PATH_SEPARATOR. #define RES_PATH_SEPARATOR '/' using android::String8; void convertToResPath([[maybe_unused]] String8& s) { #if OS_PATH_SEPARATOR != RES_PATH_SEPARATOR size_t len = s.length(); if (len > 0) { char* buf = s.lockBuffer(len); for (char* end = buf + len; buf < end; ++buf) { if (*buf == OS_PATH_SEPARATOR) *buf = RES_PATH_SEPARATOR; } s.unlockBuffer(len); } #endif } String8 walkPath(const String8& path, String8* outRemains) { const char* cp; const char* const str = path.c_str(); const char* buf = str; cp = strchr(buf, OS_PATH_SEPARATOR); if (cp == buf) { // don't include a leading '/'. buf = buf + 1; cp = strchr(buf, OS_PATH_SEPARATOR); } if (cp == nullptr) { String8 res = buf != str ? String8(buf) : path; if (outRemains) *outRemains = String8(); return res; } String8 res(buf, cp - buf); if (outRemains) *outRemains = String8(cp + 1); return res; }