gboolean gpe_application_init (int *argc, char **argv[]) { char *fn; struct stat buf; gchar *user_gtkrc_file; const gchar *default_gtkrc_file = PREFIX "/share/gpe/gtkrc"; const gchar *home_dir = g_get_home_dir (); gint i; if (argc && argv) { saved_argc = *argc; saved_argv = g_malloc (*argc * sizeof (gchar *)); for (i = 0; i < saved_argc; i++) saved_argv[i] = g_strdup ((*argv)[i]); } gtk_rc_add_default_file (default_gtkrc_file); user_gtkrc_file = g_strdup_printf ("%s/.gpe/gtkrc", home_dir); gtk_rc_add_default_file (user_gtkrc_file); g_free (user_gtkrc_file); gtk_init (argc, argv); gtk_set_locale (); init_spacing(); if (home_dir[0] && strcmp (home_dir, "/")) { /* Maybe this belongs somewhere else */ fn = g_strdup_printf ("%s/.gpe", home_dir); if (stat (fn, &buf) != 0) { if (mkdir (fn, 0700) != 0) { gpe_perror_box ("Cannot create ~/.gpe"); g_free (fn); return FALSE; } } else { if (!S_ISDIR (buf.st_mode)) { gpe_error_box ("ERROR: ~/.gpe is not a directory!"); g_free (fn); return FALSE; } } g_free (fn); } return TRUE; }
bool next_subpath() { if (path_.next_subpath()) { spacing_ = init_spacing(); position_tolerance_ = init_position_tolerance(); return true; } return false; }