diff options
author | Brian Swetland <swetland@google.com> | 2009-06-04 14:04:53 -0700 |
---|---|---|
committer | Brian Swetland <swetland@google.com> | 2009-06-04 14:05:36 -0700 |
commit | 24bd82a92fe13040e9d7e2ca1942043ed5931754 (patch) | |
tree | ba61e821cc460d3fcbd86f1c540d0d625395f2e0 /tools/localize | |
parent | 7835b0b742a36641a4005663134dc0b5d0678eab (diff) | |
download | frameworks_base-24bd82a92fe13040e9d7e2ca1942043ed5931754.zip frameworks_base-24bd82a92fe13040e9d7e2ca1942043ed5931754.tar.gz frameworks_base-24bd82a92fe13040e9d7e2ca1942043ed5931754.tar.bz2 |
localize: remove dependency on mkdirs/etc in libhost
This will let us break the libhost dependency on libutils.
Signed-off-by: Brian Swetland <swetland@google.com>
Diffstat (limited to 'tools/localize')
-rw-r--r-- | tools/localize/Android.mk | 1 | ||||
-rw-r--r-- | tools/localize/file_utils.cpp | 36 |
2 files changed, 35 insertions, 2 deletions
diff --git a/tools/localize/Android.mk b/tools/localize/Android.mk index 186177f..ab79f8d 100644 --- a/tools/localize/Android.mk +++ b/tools/localize/Android.mk @@ -53,4 +53,3 @@ ifeq (a,a) endif include $(BUILD_HOST_EXECUTABLE) - diff --git a/tools/localize/file_utils.cpp b/tools/localize/file_utils.cpp index bb82a9c..8792b9e 100644 --- a/tools/localize/file_utils.cpp +++ b/tools/localize/file_utils.cpp @@ -3,12 +3,46 @@ #include <unistd.h> #include "file_utils.h" #include "Perforce.h" +#include <utils/String8.h> #include <sys/fcntl.h> #include <sys/stat.h> #include <errno.h> -#include <host/Directories.h> #include "log.h" +using namespace android; +using namespace std; + +static string +parent_dir(const string& path) +{ + return string(String8(path.c_str()).getPathDir().string()); +} + +static int +mkdirs(const char* last) +{ + String8 dest; + const char* s = last-1; + int err; + do { + s++; + if (s > last && (*s == '.' || *s == 0)) { + String8 part(last, s-last); + dest.appendPath(part); +#ifdef HAVE_MS_C_RUNTIME + err = _mkdir(dest.string()); +#else + err = mkdir(dest.string(), S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP); +#endif + if (err != 0) { + return err; + } + last = s+1; + } + } while (*s); + return 0; +} + string translated_file_name(const string& file, const string& locale) { |