- gchar *argv[] = {"convert", "-resize", size, orig, thumb, NULL};
- /* god damn glib */
- g_spawn_sync(NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
- NULL, NULL, NULL, NULL, NULL, NULL);
+ GStatBuf oinfo, tinfo;
+ int oval = g_stat(orig, &oinfo);
+ int tval = g_stat(thumb, &tinfo);
+ if (tval || (!oval && oinfo.st_mtime > tinfo.st_mtime)) {
+ /* god damn glib */
+ gchar *argv[] = {"convert", "-resize", size, orig, thumb, NULL};
+ g_spawn_sync(NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
+ NULL, NULL, NULL, NULL, NULL, NULL);
+ }