Index: egg-recent-model.c =================================================================== RCS file: /cvs/gnome/libegg/libegg/recent-files/egg-recent-model.c,v retrieving revision 1.38 diff -u -p -r1.38 egg-recent-model.c --- egg-recent-model.c 5 Jul 2005 12:02:17 -0000 1.38 +++ egg-recent-model.c 18 Jul 2005 10:19:31 -0000 @@ -916,13 +916,14 @@ egg_recent_model_write (EggRecentModel * } static FILE * -egg_recent_model_open_file (EggRecentModel *model) +egg_recent_model_open_file (EggRecentModel *model, + gboolean for_writing) { FILE *file; mode_t prev_umask; file = fopen (model->priv->path, "r+"); - if (file == NULL) { + if (file == NULL && for_writing) { /* be paranoid */ prev_umask = umask (077); @@ -1343,7 +1344,7 @@ egg_recent_model_add_full (EggRecentMode g_free (uri); } - file = egg_recent_model_open_file (model); + file = egg_recent_model_open_file (model, TRUE); g_return_val_if_fail (file != NULL, FALSE); time (&t); @@ -1446,7 +1447,7 @@ egg_recent_model_delete (EggRecentModel g_return_val_if_fail (EGG_IS_RECENT_MODEL (model), FALSE); g_return_val_if_fail (uri != NULL, FALSE); - file = egg_recent_model_open_file (model); + file = egg_recent_model_open_file (model, TRUE); g_return_val_if_fail (file != NULL, FALSE); if (egg_recent_model_lock_file (file)) { @@ -1507,8 +1508,9 @@ egg_recent_model_get_list (EggRecentMode FILE *file; GList *list=NULL; - file = egg_recent_model_open_file (model); - g_return_val_if_fail (file != NULL, NULL); + file = egg_recent_model_open_file (model, FALSE); + if (file == NULL) + return NULL; if (egg_recent_model_lock_file (file)) { list = egg_recent_model_read (model, file); @@ -1584,7 +1586,7 @@ egg_recent_model_clear (EggRecentModel * FILE *file; int fd; - file = egg_recent_model_open_file (model); + file = egg_recent_model_open_file (model, TRUE); g_return_if_fail (file != NULL); fd = fileno (file); @@ -1831,8 +1833,9 @@ egg_recent_model_remove_expired (EggRece g_return_if_fail (model != NULL); - file = egg_recent_model_open_file (model); - g_return_if_fail (file != NULL); + file = egg_recent_model_open_file (model, FALSE); + if (file == NULL) + return; if (egg_recent_model_lock_file (file)) { list = egg_recent_model_read (model, file);