/** * fm_init * @config: (allow-none): configuration file data * * Initializes libfm data. This API should be always called before any * other Libfm function is called. It is idempotent. * * Returns: %FALSE in case of duplicate call. * * Since: 0.1.0 */ gboolean fm_init(FmConfig* config) { #if GLIB_CHECK_VERSION(2, 30, 0) if (g_atomic_int_add(&init_done, 1) != 0) #else if (g_atomic_int_exchange_and_add(&init_done, 1) != 0) #endif return FALSE; /* duplicate call */ #ifdef ENABLE_NLS bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); #endif #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init(); #endif #if !GLIB_CHECK_VERSION(2, 32, 0) g_thread_init(NULL); #endif g_thread_pool_set_max_idle_time(10000); /* is 10 sec enough? */ if(config) fm_config = (FmConfig*)g_object_ref(config); else { /* create default config object */ fm_config = fm_config_new(); fm_config_load_from_file(fm_config, NULL); } #ifdef USE_UDISKS /* extension point should be added before any other GIO monitor call otherwise it will be ignored by GIO because GIO initializes it once */ _fm_udisks_init(); #endif _fm_file_init(); _fm_path_init(); _fm_icon_init(); _fm_monitor_init(); _fm_mime_type_init(); _fm_file_info_init(); /* should be called only after _fm_mime_type_init() */ _fm_folder_init(); _fm_archiver_init(); _fm_thumbnailer_init(); // must be called after mime-types are initialized _fm_thumbnail_loader_init(); _fm_terminal_init(); /* should be called after config initialization */ _fm_templates_init(); _fm_folder_config_init(); #ifdef HAVE_ACTIONS /* generated by vala */ _fm_file_actions_init(); #endif fm_qdata_id = g_quark_from_static_string("fm_qdata_id"); return TRUE; }
gboolean fm_init(FmConfig* config) { char* path; #ifdef ENABLE_NLS bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); #endif g_thread_init(NULL); g_thread_pool_set_max_idle_time(10000); /* is 10 sec enough? */ if(config) fm_config = (FmConfig*)g_object_ref(config); else { /* create default config object */ fm_config = fm_config_new(); fm_config_load_from_file(fm_config, NULL); } _fm_path_init(); _fm_icon_init(); _fm_monitor_init(); _fm_file_info_init(); _fm_archiver_init(); /* generated by vala */ _fm_file_actions_init(); #ifdef USE_UDISKS _fm_udisks_init(); #endif /* override gnome-terminal */ path = g_strconcat(PACKAGE_LIB_DIR ":", g_getenv("PATH"), NULL); g_setenv("PATH", path, TRUE); g_free(path); fm_qdata_id = g_quark_from_static_string("fm_qdata_id"); return TRUE; }