GtkWidget * nemo_interesting_folder_bar_new_for_location (NemoView *view, GFile *location) { InterestingFolderType type = TYPE_NONE_FOLDER; gchar *path = NULL; GFile *tmp_loc = NULL; path = g_build_filename (g_get_user_data_dir (), "nemo", "actions", NULL); tmp_loc = g_file_new_for_path (path); if (g_file_equal (location, tmp_loc)) { type = TYPE_ACTIONS_FOLDER; goto out; } g_free (path); g_object_unref (tmp_loc); path = g_build_filename (g_get_user_data_dir (), "nemo", "scripts", NULL); tmp_loc = g_file_new_for_path (path); if (g_file_equal (location, tmp_loc)) type = TYPE_SCRIPTS_FOLDER; out: g_free (path); g_object_unref (tmp_loc); return type == TYPE_NONE_FOLDER ? NULL : nemo_interesting_folder_bar_new (view, type); }
void gsb_dirs_init ( void ) { #ifdef G_OS_WIN32 { gchar *dir; dir = g_win32_get_package_installation_directory_of_module ( NULL ); categories_dir = g_build_filename ( dir, "share/grisbi/categories", NULL ); locale_dir = g_strconcat ( dir, "/share/locale", NULL ); pixmaps_dir = g_strconcat ( dir, "/share/pixmaps/grisbi", NULL ); plugins_dir = g_strconcat ( dir, "/lib/grisbi", NULL ); ui_dir = g_strconcat ( dir, "/share/grisbi/ui", NULL ); g_free ( dir ); user_config_dir = g_build_filename ( g_get_user_config_dir (), "grisbi", NULL); user_data_dir = g_build_filename ( g_get_user_data_dir (), "grisbi", NULL); user_default_dir = g_strdup ( win32_get_my_documents_folder_path () ); } #else #ifdef GTKOSXAPPLICATION if ( quartz_application_get_bundle_id ( ) ) { gchar *res_path; res_path = quartz_application_get_resource_path (); categories_dir = g_build_filename ( res_path, "share/grisbi/categories", NULL ); locale_dir = g_strconcat (res_path, "/share/locale", NULL ); pixmaps_dir = g_strconcat (res_path, "/share/pixmaps/grisbi", NULL ); plugins_dir = g_strconcat (res_path, "/lib/grisbi", NULL ); ui_dir = g_strconcat (res_path, "/share/grisbi/ui", NULL ); g_free ( res_path ); user_config_dir = g_build_filename ( g_get_home_dir (), "Library/Application Support/Grisbi/config", NULL ); user_data_dir = g_build_filename ( g_get_home_dir (), "Library/Application Support/Grisbi/data", NULL ); user_default_dir = g_strdup ( g_get_home_dir() ); } #else { categories_dir = g_build_filename ( DATA_PATH, "categories", NULL ); locale_dir = g_strdup ( LOCALEDIR ); pixmaps_dir = g_strdup ( PIXMAPS_DIR ); plugins_dir = g_strdup ( PLUGINS_DIR ); ui_dir = g_strdup ( UI_DIR ); user_config_dir = g_build_filename ( g_get_user_config_dir (), "grisbi", NULL); user_data_dir = g_build_filename ( g_get_user_data_dir (), "grisbi", NULL); user_default_dir = g_strdup ( g_get_home_dir() ); } #endif /* GTKOSXAPPLICATION */ #endif accelerator_filename = g_build_filename ( user_config_dir, "grisbi-accels", NULL ); }
static void liferea_plugins_engine_init (LifereaPluginsEngine * engine) { gchar *typelib_dir; GError *error = NULL; engine->priv = G_TYPE_INSTANCE_GET_PRIVATE (engine, LIFEREA_TYPE_PLUGINS_ENGINE, LifereaPluginsEnginePrivate); peas_engine_enable_loader (PEAS_ENGINE (engine), "python"); engine->priv->plugin_settings = g_settings_new ("net.sf.liferea.plugins"); /* Require Lifereas's typelib. */ typelib_dir = g_build_filename (PACKAGE_LIB_DIR, "girepository-1.0", NULL); if (!g_irepository_require_private (g_irepository_get_default (), typelib_dir, "Liferea", "3.0", 0, &error)) { g_warning ("Could not load Liferea repository: %s", error->message); g_error_free (error); error = NULL; } g_free (typelib_dir); /* This should be moved to libpeas */ if (!g_irepository_require (g_irepository_get_default (), "Peas", "1.0", 0, &error)) { g_warning ("Could not load Peas repository: %s", error->message); g_error_free (error); error = NULL; } if (!g_irepository_require (g_irepository_get_default (), "PeasGtk", "1.0", 0, &error)) { g_warning ("Could not load PeasGtk repository: %s", error->message); g_error_free (error); error = NULL; } peas_engine_add_search_path (PEAS_ENGINE (engine), g_build_filename (g_get_user_data_dir (), "liferea", "plugins", NULL), g_build_filename (g_get_user_data_dir (), "liferea", "plugins", NULL)); peas_engine_add_search_path (PEAS_ENGINE (engine), g_build_filename (PACKAGE_LIB_DIR, "plugins", NULL), g_build_filename (PACKAGE_DATA_DIR, "plugins", NULL)); g_settings_bind (engine->priv->plugin_settings, "active-plugins", engine, "loaded-plugins", G_SETTINGS_BIND_DEFAULT); }
int makeWindow(RuskWindow *rusk) { GtkWidget *box; if((rusk->window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL))) == NULL) { return -1; } gtk_container_set_border_width(GTK_CONTAINER(rusk->window), BORDER_WIDTH); gtk_widget_override_background_color(GTK_WIDGET(rusk->window), GTK_STATE_FLAG_NORMAL, BORDER_COLOR_NORMAL); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(rusk->window), box); rusk->addressbar = GTK_ENTRY(gtk_entry_new()); gtk_entry_set_placeholder_text(rusk->addressbar, "URI"); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(rusk->addressbar), FALSE, FALSE, 0); rusk->globalSearch = GTK_ENTRY(gtk_search_entry_new()); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(rusk->globalSearch), FALSE, FALSE, 0); rusk->insiteSearch = GTK_ENTRY(gtk_search_entry_new()); gtk_entry_set_placeholder_text(rusk->insiteSearch, "site search"); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(rusk->insiteSearch), FALSE, FALSE, 0); rusk->progressbar = GTK_PROGRESS_BAR(gtk_progress_bar_new()); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(rusk->progressbar), FALSE, FALSE, 0); rusk->webview = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_context_new_with_website_data_manager(webkit_website_data_manager_new( "base-cache-directory", g_strdup_printf("%s/rusk", g_get_user_cache_dir()), "disk-cache-directory", g_strdup_printf("%s/rusk", g_get_user_cache_dir()), "base-data-directory", g_strdup_printf("%s/rusk/data", g_get_user_data_dir()), "indexeddb-directory", g_strdup_printf("%s/rusk/indexed", g_get_user_data_dir()), "local-storage-directory", g_strdup_printf("%s/rusk/local-storage", g_get_user_data_dir()), "offline-application-cache-directory", g_strdup_printf("%s/rusk/offline-apps", g_get_user_data_dir()), "websql-directory", g_strdup_printf("%s/rusk/websql", g_get_user_data_dir()), NULL )))); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(rusk->webview), TRUE, TRUE, 0); g_signal_connect(G_OBJECT(rusk->window), "destroy", G_CALLBACK(closeRusk), rusk); gtk_widget_show_all(GTK_WIDGET(rusk->window)); gtk_widget_set_visible(GTK_WIDGET(rusk->addressbar), FALSE); gtk_widget_set_visible(GTK_WIDGET(rusk->globalSearch), FALSE); gtk_widget_set_visible(GTK_WIDGET(rusk->progressbar), FALSE); gtk_widget_set_visible(GTK_WIDGET(rusk->insiteSearch), FALSE); g_signal_connect(G_OBJECT(rusk->window), "key-press-event", G_CALLBACK(onKeyPress), rusk); g_signal_connect(G_OBJECT(rusk->insiteSearch), "search-changed", G_CALLBACK(onInSiteSearchInput), rusk); g_signal_connect(G_OBJECT(rusk->addressbar), "key-release-event", G_CALLBACK(onAddressbarInput), rusk); g_signal_connect(G_OBJECT(rusk->globalSearch), "activate", G_CALLBACK(onGlobalSearchActivate), rusk); return 0; }
static void magnatune_check_update(void) { gchar *db_path = NULL; gchar *new_db_path = NULL; gchar *new_crc_path = NULL; static gboolean already_checked = FALSE; struct stat file_st; GTimeVal tv; GrlNetWc *wc = NULL; GRL_DEBUG("magnatune_check_update"); if (already_checked == TRUE) return; already_checked = TRUE; g_get_current_time(&tv); new_db_path = g_build_filename(g_get_user_data_dir(), "grilo-plugins", GRL_SQL_NEW_DB, NULL); if (g_file_test(new_db_path, G_FILE_TEST_EXISTS) == FALSE) { db_path = g_build_filename(g_get_user_data_dir(), "grilo-plugins", GRL_SQL_DB, NULL); g_stat(db_path, &file_st); if (tv.tv_sec - file_st.st_mtime > DB_UPDATE_TIME_INTERVAL) { new_crc_path = g_build_filename(g_get_user_data_dir(), "grilo-plugins", GRL_SQL_NEW_CRC, NULL); g_stat(new_crc_path, &file_st); if ((g_file_test(new_crc_path, G_FILE_TEST_EXISTS) == FALSE) || (tv.tv_sec - file_st.st_mtime > CRC_UPDATE_TIME_INTERVAL)) { wc = grl_net_wc_new(); grl_net_wc_request_async(wc, URL_GET_CRC, NULL, magnatune_check_update_done, NULL); } g_free(new_crc_path); } g_free(db_path); } g_free(new_db_path); }
static gboolean save_state (time_t mtime, gchar **converted) { gchar *filename; GKeyFile *keyfile; gchar *str; GError *error; gboolean result; /* Make sure the state directory exists */ if (g_mkdir_with_parents (g_get_user_data_dir (), 0755)) { g_printerr ("Failed to create directory %s: %s\n", g_get_user_data_dir (), g_strerror (errno)); return FALSE; } filename = g_build_filename (g_get_user_data_dir (), "mateconf-gsettings-data-convert", NULL); keyfile = g_key_file_new (); str = g_strdup_printf ("%ld", mtime); g_key_file_set_string (keyfile, "State", "timestamp", str); g_free (str); g_key_file_set_string_list (keyfile, "State", "converted", (const gchar * const *)converted, g_strv_length (converted)); str = g_key_file_to_data (keyfile, NULL, NULL); g_key_file_free (keyfile); error = NULL; if (!g_file_set_contents (filename, str, -1, &error)) { g_printerr ("%s\n", error->message); g_error_free (error); result = FALSE; } else result = TRUE; g_free (filename); g_free (str); return result; }
gboolean on_mime_change_timer( gpointer user_data ) { //printf("MIME-UPDATE on_timer\n" ); char* cmd = g_strdup_printf( "update-mime-database %s/mime", g_get_user_data_dir() ); g_spawn_command_line_async( cmd, NULL ); g_free( cmd ); cmd = g_strdup_printf( "update-desktop-database %s/applications", g_get_user_data_dir() ); g_spawn_command_line_async( cmd, NULL ); g_free( cmd ); g_source_remove( mime_change_timer ); mime_change_timer = 0; return FALSE; }
/* Read DATADIR/clipit/excludes into the treeview */ static void read_excludes() { /* Open the file for reading */ gchar* path = g_build_filename(g_get_user_data_dir(), EXCLUDES_FILE, NULL); FILE* excludes_file = fopen(path, "rb"); g_free(path); /* Check that it opened and begin read */ if (excludes_file) { /* Keep a row reference */ GtkTreeIter row_iter; /* Read the size of the first item */ gint size; size_t fread_return; fread_return = fread(&size, 4, 1, excludes_file); /* Continue reading until size is 0 */ while (size != 0) { /* Read Regex */ gchar* regex = (gchar*)g_malloc(size + 1); fread_return = fread(regex, size, 1, excludes_file); regex[size] = '\0'; fread_return = fread(&size, 4, 1, excludes_file); /* Append the read action */ gtk_list_store_append(exclude_list, &row_iter); gtk_list_store_set(exclude_list, &row_iter, 0, regex, -1); g_free(regex); } UNUSED(fread_return); fclose(excludes_file); } }
/* Ask the user if he wants to delete the history file and act accordingly */ static void check_saved_hist_file() { /* If the history file doesn't exist, there's nothing to do here */ gchar *history_path = g_build_filename(g_get_user_data_dir(), HISTORY_FILE, NULL); /* Check if config file exists */ if (g_file_test(history_path, G_FILE_TEST_EXISTS)) { GtkWidget* confirm_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_OTHER, GTK_BUTTONS_YES_NO, CHECK_HIST_MESSAGE); gtk_window_set_title((GtkWindow*)confirm_dialog, _("Remove history file")); if (gtk_dialog_run((GtkDialog*)confirm_dialog) == GTK_RESPONSE_YES) { /* Open the file for writing */ FILE *history_file = fopen(history_path, "wb"); g_free(history_path); /* Check that it opened and begin write */ if (history_file) { /* Write 0 to indicate end of file */ gint end = 0; fwrite(&end, 4, 1, history_file); fclose(history_file); } } gtk_widget_destroy(confirm_dialog); } }
char* girara_get_xdg_path(girara_xdg_path_t path) { static const char* VARS[] = { [XDG_CONFIG_DIRS] = "XDG_CONFIG_DIRS", [XDG_DATA_DIRS] = "XDG_DATA_DIRS" }; static const char* DEFAULTS[] = { [XDG_CONFIG_DIRS] = "/etc/xdg", [XDG_DATA_DIRS] = "/usr/local/share/:/usr/share" }; switch (path) { case XDG_DATA: return g_strdup(g_get_user_data_dir()); case XDG_CONFIG: return g_strdup(g_get_user_config_dir()); case XDG_CONFIG_DIRS: case XDG_DATA_DIRS: { const char* tmp = g_getenv(VARS[path]); if (tmp == NULL || !g_strcmp0(tmp, "")) { return g_strdup(DEFAULTS[path]); } return g_strdup(tmp); } case XDG_CACHE: return g_strdup(g_get_user_cache_dir()); } return NULL; }
static gchar * find_file_common(const char *name) { gchar *filename; #if GLIB_CHECK_VERSION(2,6,0) const gchar *userdir; const gchar * const *sysdirs; userdir = g_get_user_data_dir(); filename = g_build_filename(userdir, name, NULL); if (g_file_test(filename, G_FILE_TEST_EXISTS)) return filename; g_free(filename); sysdirs = g_get_system_data_dirs(); for (; *sysdirs; sysdirs++) { filename = g_build_filename(*sysdirs, name, NULL); if (g_file_test(filename, G_FILE_TEST_EXISTS)) return filename; g_free(filename); } #endif filename = g_build_filename(DATADIR, name, NULL); if (g_file_test(filename, G_FILE_TEST_EXISTS)) return filename; g_free(filename); return NULL; }
static void remove_actions( const char* type, GArray* actions ) { //sfm 0.7.7+ added char** removed = NULL; gsize n_removed = 0, r; int i; //g_print( "remove_actions( %s )\n", type ); char* path = g_build_filename( g_get_user_data_dir(), "applications/mimeapps.list", NULL ); GKeyFile* file = g_key_file_new(); if ( g_key_file_load_from_file( file, path, 0, NULL ) ) { removed = g_key_file_get_string_list( file, "Removed Associations", type, &n_removed, NULL ); if ( removed ) { for ( r = 0; r < n_removed; ++r ) { g_strstrip( removed[r] ); //g_print( " %s\n", removed[r] ); i = strv_index( (char**)actions->data, removed[r] ); if ( i != -1 ) { //g_print( " ACTION-REMOVED\n" ); g_array_remove_index( actions, i ); } } } g_strfreev( removed ); } g_key_file_free( file ); g_free( path ); }
/** * gst_encoding_list_available_categories: * * Lists all #GstEncodingTarget categories present on disk. * * Returns: (transfer full) (element-type gchar*): A list * of #GstEncodingTarget categories. */ GList * gst_encoding_list_available_categories (void) { GList *res = NULL; GList *tmp1, *tmp2; gchar *topdir; /* First try user-local categories */ topdir = g_build_filename (g_get_user_data_dir (), "gstreamer-" GST_API_VERSION, GST_ENCODING_TARGET_DIRECTORY, NULL); res = get_categories (topdir); g_free (topdir); /* Extend with system-wide categories */ topdir = g_build_filename (GST_DATADIR, "gstreamer-" GST_API_VERSION, GST_ENCODING_TARGET_DIRECTORY, NULL); tmp1 = get_categories (topdir); g_free (topdir); for (tmp2 = tmp1; tmp2; tmp2 = tmp2->next) { gchar *name = (gchar *) tmp2->data; if (!g_list_find_custom (res, name, (GCompareFunc) g_strcmp0)) res = g_list_append (res, (gpointer) name); else g_free (name); } g_list_free (tmp1); return res; }
static void initialise_schema_sources (void) { static gsize initialised; /* need a separate variable because 'schema_sources' may legitimately * be null if we have zero valid schema sources */ if G_UNLIKELY (g_once_init_enter (&initialised)) { const gchar * const *dirs; const gchar *path; gint i; /* iterate in reverse: count up, then count down */ dirs = g_get_system_data_dirs (); for (i = 0; dirs[i]; i++); while (i--) try_prepend_data_dir (dirs[i]); try_prepend_data_dir (g_get_user_data_dir ()); if ((path = g_getenv ("GSETTINGS_SCHEMA_DIR")) != NULL) try_prepend_dir (path); g_once_init_leave (&initialised, TRUE); } }
/* Work around crashes in the file open dialog in some Gtk+ versions if no * .recently-used.xbel is present. */ static void ensure_gtk_recently_used(void) { static gboolean ensured = FALSE; gchar *filename = NULL; if (ensured) return; /* Gtk+ 2.12 implies GBookmarkFile is also available. */ #if (GTK_CHECK_VERSION(2,12,0)) filename = g_build_filename(g_get_user_data_dir(), ".recently-used.xbel", NULL); if (!g_file_test(filename, G_FILE_TEST_EXISTS)) { GBookmarkFile *bookmarkfile = g_bookmark_file_new(); GError *error = NULL; if (!g_bookmark_file_to_file(bookmarkfile, filename, &error)) { g_warning("Failed to create %s: %s", filename, error->message); g_clear_error(&error); } g_bookmark_file_free(bookmarkfile); } #endif g_free(filename); ensured = TRUE; }
static void get_apps ( DRunModePrivateData *pd ) { TICK_N ( "Get Desktop apps (start)" ); get_apps_history ( pd ); gchar *dir; // First read the user directory. dir = g_build_filename ( g_get_user_data_dir (), "applications", NULL ); walk_dir ( pd, dir, dir ); g_free ( dir ); TICK_N ( "Get Desktop apps (user dir)" ); // Then read thee system data dirs. const gchar * const * sys = g_get_system_data_dirs (); for ( const gchar * const *iter = sys; *iter != NULL; ++iter ) { gboolean unique = TRUE; // Stupid duplicate detection, better then walking dir. for ( const gchar *const *iterd = sys; iterd != iter; ++iterd ) { if ( g_strcmp0 ( *iter, *iterd ) == 0 ) { unique = FALSE; } } // Check, we seem to be getting empty string... if ( unique && ( **iter ) != '\0' ) { dir = g_build_filename ( *iter, "applications", NULL ); walk_dir ( pd, dir, dir ); g_free ( dir ); } } TICK_N ( "Get Desktop apps (system dirs)" ); }
static void grl_bookmarks_source_init (GrlBookmarksSource *source) { GError *error = NULL; gchar *path; gchar *db_path; GList *object_types; source->priv = GRL_BOOKMARKS_GET_PRIVATE (source); path = g_build_filename (g_get_user_data_dir (), "grilo-plugins", NULL); if (!g_file_test (path, G_FILE_TEST_IS_DIR)) { g_mkdir_with_parents (path, 0775); } GRL_DEBUG ("Opening database connection..."); db_path = g_build_filename (path, GRL_SQL_DB, NULL); g_free (path); source->priv->adapter = gom_adapter_new (); if (!gom_adapter_open_sync (source->priv->adapter, db_path, &error)) { GRL_WARNING ("Could not open database '%s': %s", db_path, error->message); g_error_free (error); g_free (db_path); return; } g_free (db_path); source->priv->repository = gom_repository_new (source->priv->adapter); object_types = g_list_prepend(NULL, GINT_TO_POINTER(BOOKMARKS_TYPE_RESOURCE)); gom_repository_automatic_migrate_async (source->priv->repository, 2, object_types, migrate_cb, source); }
/** * gs_plugin_app_remove: */ gboolean gs_plugin_app_remove (GsPlugin *plugin, GsApp *app, GCancellable *cancellable, GError **error) { const gchar *epi_desktop; g_autofree gchar *basename = NULL; g_autofree gchar *app_desktop = NULL; g_autoptr(GFile) file_epi = NULL; g_autoptr(GFile) file_app = NULL; /* only process this app if was created by this plugin */ if (g_strcmp0 (gs_app_get_management_plugin (app), "Epiphany") != 0) return TRUE; epi_desktop = gs_app_get_source_id_default (app); if (epi_desktop == NULL) return TRUE; /* remove the epi 'config' file */ gs_app_set_state (app, AS_APP_STATE_REMOVING); file_epi = g_file_new_for_path (epi_desktop); if (!g_file_delete (file_epi, NULL, error)) return FALSE; /* remove the shared desktop file */ basename = g_file_get_basename (file_epi); app_desktop = g_build_filename (g_get_user_data_dir (), "applications", gs_app_get_id (app), NULL); file_app = g_file_new_for_path (app_desktop); if (!g_file_delete (file_app, NULL, error)) return FALSE; gs_app_set_state (app, AS_APP_STATE_AVAILABLE); return TRUE; }
static void bus_registry_load (BusRegistry *registry) { g_assert (BUS_IS_REGISTRY (registry)); gchar *dirname; IBusObservedPath *path; dirname = g_build_filename (PKGDATADIR, "component", NULL); path = ibus_observed_path_new (dirname, TRUE); registry->observed_paths = g_list_append (registry->observed_paths, path); bus_registry_load_in_dir (registry, dirname); g_free (dirname); dirname = g_build_filename (g_get_user_data_dir (), "ibus", "component", NULL); path = ibus_observed_path_new (dirname, TRUE); registry->observed_paths = g_list_append (registry->observed_paths, path); if (g_file_test(dirname, G_FILE_TEST_EXISTS)) { bus_registry_load_in_dir (registry, dirname); } g_free (dirname); }
static void tree_magic_init (void) { static gboolean initialized = FALSE; const gchar *dir; const gchar * const * dirs; int i; if (!initialized) { initialized = TRUE; xdg_mime_register_reload_callback (xdg_mime_reload, NULL, NULL); need_reload = TRUE; } if (need_reload) { need_reload = FALSE; tree_magic_shutdown (); dir = g_get_user_data_dir (); read_tree_magic_from_directory (dir); dirs = g_get_system_data_dirs (); for (i = 0; dirs[i]; i++) read_tree_magic_from_directory (dirs[i]); } }
static gboolean is_custom_desktop_file( const char* desktop_id ) { char* path = g_build_filename( g_get_user_data_dir(), "applications", desktop_id, NULL ); gboolean ret = g_file_test( path, G_FILE_TEST_EXISTS ); g_free( path ); return ret; }
/** * g_content_types_get_registered: * * Gets a list of strings containing all the registered content types * known to the system. The list and its data should be freed using * <programlisting> * g_list_free_full (list, g_free); * </programlisting> * * Returns: (element-type utf8) (transfer full): #GList of the registered content types */ GList * g_content_types_get_registered (void) { const char * const* dirs; GHashTable *mimetypes; GHashTableIter iter; gpointer key; int i; GList *l; mimetypes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); enumerate_mimetypes_dir (g_get_user_data_dir (), mimetypes); dirs = g_get_system_data_dirs (); for (i = 0; dirs[i] != NULL; i++) enumerate_mimetypes_dir (dirs[i], mimetypes); l = NULL; g_hash_table_iter_init (&iter, mimetypes); while (g_hash_table_iter_next (&iter, &key, NULL)) { l = g_list_prepend (l, key); g_hash_table_iter_steal (&iter); } g_hash_table_destroy (mimetypes); return l; }
static gchar* get_default_path (void) { gchar *old_directory; gchar *new_directory; gchar *alias_directory = NULL; #if WITH_DEBUG const gchar *path = g_getenv ("GNOME_KEYRING_TEST_PATH"); if (path && path[0]) { alias_directory = g_strdup (path); g_debug ("Alias directory was overridden by tests: %s", path); } #endif if (alias_directory == NULL) { new_directory = g_build_filename (g_get_user_data_dir (), "keyrings", NULL); old_directory = g_build_filename (g_get_home_dir (), ".gnome2", "keyrings", NULL); if (!g_file_test (new_directory, G_FILE_TEST_IS_DIR) && g_file_test (old_directory, G_FILE_TEST_IS_DIR)) { alias_directory = old_directory; old_directory = NULL; } else { alias_directory = new_directory; new_directory = NULL; } g_free (old_directory); g_free (new_directory); g_debug ("keyring alias directory: %s", alias_directory); } return g_build_filename (alias_directory, "default", NULL); }
static void load_library_directories (LdLibrary *library) { GFile *file_program, *file_user; const gchar *program_dir; gchar *user_dir; program_dir = PROJECT_SHARE_DIR "library"; user_dir = g_build_filename (g_get_user_data_dir (), PROJECT_NAME, "library", NULL); file_program = g_file_new_for_path (program_dir); file_user = g_file_new_for_path (user_dir); ld_library_load (library, program_dir); /* Don't try to load the same directory twice. */ if (!g_file_equal (file_program, file_user)) ld_library_load (library, user_dir); g_object_unref (file_user); g_object_unref (file_program); g_free (user_dir); }
/** * gst_encoding_list_all_targets: * @categoryname: (allow-none): The category, for ex: #GST_ENCODING_CATEGORY_DEVICE. * Can be %NULL. * * List all available #GstEncodingTarget for the specified category, or all categories * if @categoryname is %NULL. * * Returns: (transfer full) (element-type GstEncodingTarget): The list of #GstEncodingTarget */ GList * gst_encoding_list_all_targets (const gchar * categoryname) { GList *res = NULL; gchar *topdir; gchar **encoding_target_dirs; const gchar *envvar = g_getenv ("GST_ENCODING_TARGET_PATH"); if (envvar) { gint i; encoding_target_dirs = g_strsplit (envvar, G_SEARCHPATH_SEPARATOR_S, -1); for (i = 0; encoding_target_dirs[i]; i++) res = merge_targets (res, get_all_targets (encoding_target_dirs[i], categoryname)); g_strfreev (encoding_target_dirs); } /* Get user-locals */ topdir = g_build_filename (g_get_user_data_dir (), "gstreamer-" GST_API_VERSION, GST_ENCODING_TARGET_DIRECTORY, NULL); res = merge_targets (res, get_all_targets (topdir, categoryname)); g_free (topdir); /* Get system-wide */ topdir = g_build_filename (GST_DATADIR, "gstreamer-" GST_API_VERSION, GST_ENCODING_TARGET_DIRECTORY, NULL); res = merge_targets (res, get_all_targets (topdir, categoryname)); g_free (topdir); return res; }
void settings_init() { const gchar *userConfigDir = g_get_user_config_dir(); const gchar *userDataDir = g_get_user_data_dir(); // Setup default values settings.configFileName = g_build_filename(userConfigDir, CONF_DIR, "config", NULL); settings.biosFileName = NULL; settings.saveDir = g_build_filename(userDataDir, CONF_DIR, NULL); settings.batteryDir = g_build_filename(userDataDir, CONF_DIR, NULL); settings.fullscreen = FALSE; settings.zoomFactor = 3; settings.pauseWhenInactive = FALSE; settings.showSpeed = FALSE; settings.disableStatus = FALSE; settings.soundSampleRate = 44100; settings.soundVolume = 1.0f; settings.logChannels = 0; for (guint i = 0; i < G_N_ELEMENTS(buttons); i++) { settings.joypad[buttons[i].button] = 0; } }
static char * load_comment_for_mime (const char *mimetype) { const char * const* dirs; char *basename; char *comment; int i; basename = g_strdup_printf ("%s.xml", mimetype); comment = load_comment_for_mime_helper (g_get_user_data_dir (), basename); if (comment) { g_free (basename); return comment; } dirs = g_get_system_data_dirs (); for (i = 0; dirs[i] != NULL; i++) { comment = load_comment_for_mime_helper (dirs[i], basename); if (comment) { g_free (basename); return comment; } } g_free (basename); return g_strdup_printf (_("%s type"), mimetype); }
gboolean gst_encoding_target_save (GstEncodingTarget * target, GError ** error) { gchar *filename; gchar *lfilename; gchar *dirname; g_return_val_if_fail (GST_IS_ENCODING_TARGET (target), FALSE); g_return_val_if_fail (target->category != NULL, FALSE); lfilename = g_strdup_printf ("%s" GST_ENCODING_TARGET_SUFFIX, target->name); dirname = g_build_filename (g_get_user_data_dir (), "gstreamer-" GST_API_VERSION, GST_ENCODING_TARGET_DIRECTORY, target->category, NULL); errno = 0; if (g_mkdir_with_parents (dirname, 0755)) { GST_ERROR_OBJECT (target, "Could not create directory to save %s into: %s", target->name, g_strerror (errno)); return FALSE; } filename = g_build_filename (dirname, lfilename, NULL); g_free (dirname); g_free (lfilename); gst_encoding_target_save_to_file (target, filename, error); g_free (filename); return TRUE; }
GamesScoresBackend * games_scores_backend_new (GamesScoreStyle style, char *base_name, char *name) { GamesScoresBackend *backend; char *pkguserdatadir; backend = GAMES_SCORES_BACKEND (g_object_new (GAMES_TYPE_SCORES_BACKEND, NULL)); backend->priv->timestamp = 0; backend->priv->style = style; backend->priv->scores_list = NULL; pkguserdatadir = g_build_filename (g_get_user_data_dir (), base_name, NULL); backend->priv->filename = g_build_filename (pkguserdatadir, name, NULL); if (access (pkguserdatadir, O_RDWR) == -1) { /* Don't return NULL because games-scores.c does not * expect it, and can't do anything about it anyway. */ mkdir (pkguserdatadir, 0775); } backend->priv->fd = -1; return backend; }
static gchar* get_path (void) { return g_build_filename (g_get_user_data_dir (), "imgur", NULL); }