diff options
author | Andrea Weikert <elubie@gmx.net> | 2011-04-05 00:32:39 +0400 |
---|---|---|
committer | Andrea Weikert <elubie@gmx.net> | 2011-04-05 00:32:39 +0400 |
commit | 257c408f46582e2f46056d4dfcbd59a0353296e3 (patch) | |
tree | 2bb337a50b36d4c1a270a21b1c9a254ee62cd86e /source | |
parent | 83931775a1aaf742f46aeb8424a943bfc09f277f (diff) |
== filebrowser ==
Small fix for recent folders in filebrowser, didn't save correctly when too many folders in the list (more than the currently allowed 10), now skips the oldest entries.
Reported on IRC.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/space_file/fsmenu.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index 217482326db..ffe1677a6a9 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -232,7 +232,7 @@ void fsmenu_remove_entry(struct FSMenu* fsmenu, FSMenuCategory category, int idx void fsmenu_write_file(struct FSMenu* fsmenu, const char *filename) { FSMenuEntry *fsme= NULL; - int count=FSMENU_RECENT_MAX; + int nskip= 0; FILE *fp = fopen(filename, "w"); if (!fp) return; @@ -244,7 +244,11 @@ void fsmenu_write_file(struct FSMenu* fsmenu, const char *filename) } } fprintf(fp, "[Recent]\n"); - for (fsme= fsmenu_get_category(fsmenu, FS_CATEGORY_RECENT); fsme && count; fsme= fsme->next, --count) { + nskip = fsmenu_get_nentries(fsmenu, FS_CATEGORY_RECENT) - FSMENU_RECENT_MAX; + // skip first entries if list too long + for (fsme= fsmenu_get_category(fsmenu, FS_CATEGORY_RECENT); fsme && (nskip>0); fsme= fsme->next, --nskip) + ; + for (; fsme; fsme= fsme->next) { if (fsme->path && fsme->save) { fprintf(fp, "%s\n", fsme->path); } |