char *GFileGetHomeDocumentsDir(void) { static char* ret = 0; if( ret ) return ret; #if defined(__MINGW32__) CHAR my_documents[MAX_PATH+2]; HRESULT result = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents ); if (result != S_OK) { fprintf(stderr,"Error: Can't get My Documents path!'\n"); return ret; } int pos = strlen(my_documents); my_documents[ pos++ ] = '\\'; my_documents[ pos++ ] = '\0'; ret = copy( my_documents ); _backslash_to_slash(ret); return ret; #endif // On GNU/Linux and OSX it was decided that this should be just the // home directory itself. ret = GFileGetHomeDir(); return ret; }
char *getPfaEditDir(char *buffer) { static char *editdir = NULL; char *dir; char olddir[1024]; if ( editdir!=NULL ) return( editdir ); dir = GFileGetHomeDir(); if ( dir==NULL ) return( NULL ); #ifdef __VMS sprintf(buffer,"%s/_FontForge", dir); #else sprintf(buffer,"%s/.FontForge", dir); #endif /* We used to use .PfaEdit. So if we don't find a .FontForge look for that*/ /* if there is a .PfaEdit, then rename it to .FontForge */ if ( access(buffer,F_OK)==-1 ) { #ifdef __VMS snprintf(olddir,sizeof(olddir),"%s/_PfaEdit", dir); #else snprintf(olddir,sizeof(olddir),"%s/.PfaEdit", dir); #endif if ( access(olddir,F_OK)==0 ) rename(olddir,buffer); } free(dir); /* If we still can't find it, create it */ if ( access(buffer,F_OK)==-1 ) if ( GFileMkDir(buffer)==-1 ) return( NULL ); editdir = copy(buffer); return( editdir ); }
static void ensureDotFontForgeIsSetup() { char *basedir = GFileGetHomeDir(); if ( !basedir ) { return; } ffensuredir( basedir, ".FontForge", S_IRWXU ); ffensuredir( basedir, ".FontForge/python", S_IRWXU ); }
unichar_t *u_GFileGetHomeDir(void) { unichar_t* dir = NULL; char* tmp = GFileGetHomeDir(); if( tmp ) { dir = uc_copy(tmp); free(tmp); } return dir; }