static void get_apps_history ( DRunModePrivateData *pd ) { unsigned int length = 0; gchar *path = g_build_filename ( cache_dir, DRUN_CACHE_FILE, NULL ); gchar **retv = history_get_list ( path, &length ); g_free ( path ); for ( unsigned int index = 0; index < length; index++ ) { gchar *name = g_path_get_basename ( retv[index] ); read_desktop_file ( pd, retv[index], name ); g_free ( name ); } g_free ( retv ); pd->history_length = pd->cmd_list_length; }
static void get_apps_history ( DRunModePrivateData *pd ) { unsigned int length = 0; gchar *path = g_build_filename ( cache_dir, DRUN_CACHE_FILE, NULL ); gchar **retv = history_get_list ( path, &length ); for ( unsigned int index = 0; index < length; index++ ) { char **st = g_strsplit ( retv[index], ":::", 2 ); if ( st && st[0] && st[1] ) { if ( !read_desktop_file ( pd, st[0], st[1] ) ) { history_remove ( path, retv[index] ); } } g_strfreev ( st ); } g_strfreev ( retv ); g_free ( path ); pd->history_length = pd->cmd_list_length; }
static void history_test ( void ) { unlink ( file ); // Empty list. unsigned int length = 0; char **retv = history_get_list ( file, &length ); TASSERT ( retv == NULL ); TASSERT ( length == 0 ); // 1 item history_set ( file, "aap" ); retv = history_get_list ( file, &length ); TASSERT ( retv != NULL ); TASSERT ( length == 1 ); TASSERT ( strcmp ( retv[0], "aap" ) == 0 ); g_strfreev ( retv ); // Remove entry history_remove ( file, "aap" ); length = 0; retv = history_get_list ( file, &length ); TASSERT ( retv == NULL ); TASSERT ( length == 0 ); // 2 items history_set ( file, "aap" ); history_set ( file, "aap" ); retv = history_get_list ( file, &length ); TASSERT ( retv != NULL ); TASSERT ( length == 1 ); TASSERT ( strcmp ( retv[0], "aap" ) == 0 ); g_strfreev ( retv ); for ( unsigned int in = length + 1; in < 26; in++ ) { char *p = g_strdup_printf ( "aap%i", in ); printf ( "%s- %d\n", p, in ); history_set ( file, p ); retv = history_get_list ( file, &length ); TASSERT ( retv != NULL ); TASSERT ( length == ( in ) ); g_strfreev ( retv ); g_free ( p ); } // Max 25 entries. history_set ( file, "blaat" ); retv = history_get_list ( file, &length ); TASSERT ( retv != NULL ); TASSERT ( length == 25 ); g_strfreev ( retv ); }