Beispiel #1
0
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;
}
Beispiel #2
0
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 );
}
Beispiel #3
0
static void ensureDotFontForgeIsSetup() {
    char *basedir = GFileGetHomeDir();
    if ( !basedir ) {
	return;
    }
    ffensuredir( basedir, ".FontForge",        S_IRWXU );
    ffensuredir( basedir, ".FontForge/python", S_IRWXU );
}
Beispiel #4
0
unichar_t *u_GFileGetHomeDir(void) {
    unichar_t* dir = NULL;
    char* tmp = GFileGetHomeDir();
    if( tmp ) {
	dir = uc_copy(tmp);
	free(tmp);
    }
return dir;
}