X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkfilesel.c;h=a92001f998d8b8d36b42346b11e9d44c4200cedc;hb=829c6708f29d27e6e63dab8f93e41ba4b15e925e;hp=e74f7391c94b2809f0755ec8da6a5c3cc63c7372;hpb=e4fc95abb141350e1283f620d5d5fc86ffdf627b;p=~andy%2Fgtk diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index e74f7391c..a92001f99 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -3048,6 +3048,8 @@ open_new_dir (gchar *dir_name, while ((dirent = g_dir_read_name (directory)) != NULL) entry_count++; + entry_count += 2; /* For ".",".." */ + sent->entries = g_new (CompletionDirEntry, entry_count); sent->entry_count = entry_count; @@ -3057,14 +3059,15 @@ open_new_dir (gchar *dir_name, { GError *error = NULL; - dirent = g_dir_read_name (directory); - - if (!dirent) + if (i == 0) + dirent = "."; + else if (i == 1) + dirent = ".."; + else { - g_warning ("Failure reading folder '%s'", sys_dir_name); - g_dir_close (directory); - g_free (sys_dir_name); - return NULL; + dirent = g_dir_read_name (directory); + if (!dirent) /* Directory changed */ + break; } sent->entries[n_entries].entry_name = g_filename_to_utf8 (dirent, -1, NULL, NULL, &error);