+ string id (idcs);
+ string fn = Glib::build_filename (ARDOUR::user_cache_directory (), VST_BLACKLIST);
+ if (!Glib::file_test (fn, Glib::FILE_TEST_EXISTS)) {
+ PBD::warning << _("Expected VST Blacklist file does not exist.") << endmsg;
+ return;
+ }
+
+ std::string bl;
+ vstfx_read_blacklist (bl);
+
+ ::g_unlink (fn.c_str ());
+
+ assert (!Glib::file_test (fn, Glib::FILE_TEST_EXISTS));
+ assert (id.find ("\n") == string::npos);
+
+ id += "\n"; // add separator
+ const size_t rpl = bl.find (id);
+ if (rpl != string::npos) {
+ bl.replace (rpl, id.size (), "");
+ }
+ if (bl.empty ()) {
+ return;
+ }
+
+ FILE * blacklist_fd = NULL;
+ if (! (blacklist_fd = g_fopen (fn.c_str (), "w"))) {
+ PBD::error << _("Cannot open VST blacklist.") << endmsg;;
+ return;
+ }
+ fprintf (blacklist_fd, "%s", bl.c_str ());
+ ::fclose (blacklist_fd);