static void check_overwrite (void * data) { ImportExportJob * job = data; job->filename = gtk_file_chooser_get_uri ((GtkFileChooser *) job->selector); if (! job->filename) return; if (job->save && vfs_file_test (job->filename, G_FILE_TEST_EXISTS)) confirm_overwrite (job); else finish_job (data); }
static bool_t wv_attach (const char * filename, VFSFile * wv_input, VFSFile * * wvc_input, WavpackContext * * ctx, char * error, int flags) { if (flags & OPEN_WVC) { SPRINTF (corrFilename, "%sc", filename); if (vfs_file_test (corrFilename, VFS_IS_REGULAR)) * wvc_input = vfs_fopen (corrFilename, "r"); else * wvc_input = NULL; } * ctx = WavpackOpenFileInputEx (& wv_readers, wv_input, * wvc_input, error, flags, 0); return (* ctx != NULL); }
static VFSFile * safe_create (const gchar * filename) { if (! vfs_file_test (filename, G_FILE_TEST_EXISTS)) return vfs_fopen (filename, "w"); const gchar * extension = strrchr (filename, '.'); gint length = strlen (filename); gchar scratch[length + 3]; gint count; for (count = 1; count < 100; count ++) { if (extension == NULL) sprintf (scratch, "%s-%d", filename, count); else sprintf (scratch, "%.*s-%d%s", (gint) (extension - filename), filename, count, extension); if (! vfs_file_test (scratch, G_FILE_TEST_EXISTS)) return vfs_fopen (scratch, "w"); } return NULL; }
EXPORT void audgui_export_playlist (void) { int list = aud_playlist_get_active (); int id = aud_playlist_get_unique_id (list); char * def = aud_playlist_get_filename (list); char * filename = select_file (TRUE, def); str_unref (def); if (! filename || (vfs_file_test (filename, G_FILE_TEST_EXISTS) && ! confirm_overwrite (filename))) return; if ((list = aud_playlist_by_unique_id (id)) < 0) return; aud_playlist_save (list, filename); g_free (filename); }
void playlist_remove_failed (int playlist) { int entries = playlist_entry_count (playlist); int count; playlist_select_all (playlist, FALSE); for (count = 0; count < entries; count ++) { char * filename = playlist_entry_get_filename (playlist, count); /* vfs_file_test() only works for file:// URIs currently */ if (! strncmp (filename, "file://", 7) && ! vfs_file_test (filename, G_FILE_TEST_EXISTS)) playlist_entry_set_selected (playlist, count, TRUE); str_unref (filename); } playlist_delete_selected (playlist); }