This should be g_build_filename (uon->managed, path, NULL); instead. Although, we'll need to get the full path in some other way, since this won't work once user defined folders are working in syncdaemon. The path and uon->managed might not match up, and we don't want to have to iterate through a potentially large list, checking that the file exists for each one (ignore the fact that the same filename might exist in multiple folders as well).
+ new_path = g_strdup_printf ("%s/%s", uon->managed, path);
This should be g_build_filename (uon->managed, path, NULL); instead. Although, we'll need to get the full path in some other way, since this won't work once user defined folders are working in syncdaemon. The path and uon->managed might not match up, and we don't want to have to iterate through a potentially large list, checking that the file exists for each one (ignore the fact that the same filename might exist in multiple folders as well).