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 get_apps ( DRunModePrivateData *pd ) { get_apps_history ( pd ); gchar *dir; const gchar * const * sys = g_get_system_data_dirs (); for (; *sys != NULL; ++sys ) { dir = g_build_filename ( *sys, "applications", NULL ); walk_dir ( pd, dir ); g_free ( dir ); } dir = g_build_filename ( g_get_user_data_dir (), "applications", NULL ); walk_dir ( pd, dir ); g_free ( dir ); }
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 (; *sys != NULL; ++sys ) { dir = g_build_filename ( *sys, "applications", NULL ); walk_dir ( pd, dir, dir ); g_free ( dir ); } TICK_N ( "Get Desktop apps (system dirs)" ); }