void ADM_initBaseDir(int argc, char *argv[]) { char *home = NULL; // Get the base directory const char* homeEnv = getenv("HOME"); if (!homeEnv) { printf("Oops: can't determine $HOME."); return; } // Try to open the .avidemux directory strcpy(ADM_basedir, homeEnv); AddSeparator(ADM_basedir); const char *ADM_DIR_NAME = ".avidemux6"; strcat(ADM_basedir, ADM_DIR_NAME); strcat(ADM_basedir, ADM_SEPARATOR); if (ADM_mkdir(ADM_basedir)) { printf("Using %s as base directory for prefs, jobs, etc.\n", ADM_basedir); } else { ADM_error("Oops: cannot create the .avidemux directoryi (%s)\n", ADM_basedir); } }
const char *ADM_getCustomDir(void) { if (ADM_customdir) return ADM_customdir; ADM_customdir = ADM_getHomeRelativePath("custom"); if (!ADM_mkdir(ADM_customdir)) { printf("can't create custom directory (%s).\n", ADM_customdir); return NULL; } return ADM_customdir; }
/* Get the root directory for .avidemux stuff ******************************************************/ char *ADM_getBaseDir(void) { char *home; if (baseDirDone) return ADM_basedir; // Get the base directory #ifdef __WIN32 wchar_t wcHome[MAX_PATH]; if (SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, 0, wcHome) == S_OK) { int len = wideCharStringToUtf8(wcHome, -1, NULL); home = new char[len]; wideCharStringToUtf8(wcHome, -1, home); } else { printf("Oops: can't determine the Application Data folder."); home = ADM_strdup("c:\\"); } #else const char* homeEnv = getenv("HOME"); if (homeEnv) { home = new char[strlen(homeEnv) + 1]; strcpy(home, homeEnv); } else { printf("Oops: can't determine $HOME."); return NULL; } #endif // Try to open the .avidemux directory char *dirname = new char[strlen(home) + strlen(ADM_DIR_NAME) + 2]; strcpy(dirname, home); strcat(dirname, ADM_DIR_NAME); if (!ADM_mkdir(dirname)) { printf("Oops: cannot create the .avidemux directory", NULL); delete [] dirname; return NULL; } delete [] dirname; // Now built the filename strncpy(ADM_basedir,home, 1023); strncat(ADM_basedir, ADM_DIR_NAME, 1023 - strlen(ADM_basedir)); baseDirDone = 1; printf("Using %s as base directory for prefs/jobs/...\n", ADM_basedir); return ADM_basedir; }