diff options
Diffstat (limited to 'android_profile.c')
-rw-r--r-- | android_profile.c | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/android_profile.c b/android_profile.c deleted file mode 100644 index f8b430d..0000000 --- a/android_profile.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (C) 2007-2008 The Android Open Source Project -** -** This software is licensed under the terms of the GNU General Public -** License version 2, as published by the Free Software Foundation, and -** may be copied, distributed, and modified under those terms. -** -** 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. -*/ -#include "android_profile.h" -#include <string.h> -#include <unistd.h> - -/* this environment variable can be set to change the root profiles directory */ -#define ENV_PROFILE_DIR "ANDROID_PROFILE_DIR" - -/* otherwise, we're going to use <config>/EMULATOR_PROFILE_DIR */ -#ifdef _WIN32 -# define EMULATOR_PROFILE_DIR "EmulatorProfiles" -#else -# define EMULATOR_PROFILE_DIR "profiles" -#endif - -static char* profile_dir; - -static char* -profile_dir_find( void ) -{ - const char* env = getenv( ENV_PROFILE_DIR ); - if (env != NULL) { - int len = strlen(env); - - if ( access( env, R_OK ) < 0 ) { - dprint( "%s variable does not point to a valid directory. ignored\n", ENV_PROFILE_DIR ); - } - else { - dprint( "using '%s' as profile root directory", env ); - if (len > 0 && env[len-1] == PATH_SEP[0]) { - len -= 1; - } - profile_dir = malloc( len+1 ); - memcpy(profile_dir, env, len); - profile_dir[len] = 0; - return profile_dir; - } - } - - { - char temp[512]; - char* p = temp; - char* end = p + sizeof(temp); - p = bufprint_config_file( p, end, EMULATOR_PROFILE_DIR ); - if (p >= end) { - fprintf( stderr, "emulator configuration directory path too long. aborting" ); - exit(1); - } - if (p > temp && p[-1] == PATH_SEP[0]) - p[-1] = 0; - - dprint( "using '%s' as profile root directory", temp ); - profile_dir = strdup( temp ); - return profile_dir; - } -} - -int -android_profile_check_name( const char* profile_name ) -{ - static const char* goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789."; - int len = strlen(profile_name); - int slen = strspn(profile_name, goodchars); - - return (len == slen); -} - -char* -android_profile_bufprint_path( char* p, char* end, const char* profile_name ) -{ - return android_profile_bufprint_file_path( p, end, profile_name, NULL ); -} - -char* -android_profile_strdup_path( const char* profile_name ) -{ - return android_profile_strdup_file_path( profile_name, NULL ); -} - -char* -android_profile_bufprint_file_path( char* p, char* end, const char* profile_name, const char* file_name ) -{ - if (profile_dir == NULL) - profile_dir = profile_dir_find(); - - p = bufprint( p, end, "%s", profile_dir ); - if (file_name != NULL) { - p = bufprint( p, end, PATH_SEP "%s", file_name ); - } - return p; -} - -char* -android_profile_strdup_file_path( const char* profile_name, const char* file_name ) -{ - int len1, len; - char* result; - - if (profile_dir == NULL) - profile_dir = profile_dir_find(); - - len1 = strlen(profile_dir); - len = len1; - if (file_name) { - len += 1 + strlen(file_name); - } - - result = malloc( len+1 ); - memcpy( result, profile_dir, len1 ); - if (file_name) { - result[len1] = PATH_SEP[0]; - strcpy( result+len1+1, file_name ); - } - result[len] = 0; - return result; -} - |