+/* Remove a local temp file created by evince */
+void
+ev_tmp_filename_unlink (const gchar *filename)
+{
+ const gchar *tempdir;
+
+ if (!filename)
+ return;
+
+ tempdir = g_get_tmp_dir ();
+ if (g_ascii_strncasecmp (filename, tempdir, strlen (tempdir)) == 0) {
+ g_unlink (filename);
+ }
+}
+
+void
+ev_tmp_file_unlink (GFile *file)
+{
+ gboolean res;
+
+ if (!file)
+ return;
+
+ res = g_file_delete (file, NULL, NULL);
+ if (!res) {
+ char *uri;
+
+ uri = g_file_get_uri (file);
+ g_warning ("Unable to delete temp file %s\n", uri);
+ g_free (uri);
+ }
+}
+
+void
+ev_tmp_uri_unlink (const gchar *uri)
+{
+ GFile *file;
+
+ if (!uri)
+ return;
+
+ file = g_file_new_for_uri (uri);
+ if (!g_file_is_native (file)) {
+ g_warning ("Attempting to delete non native uri: %s\n", uri);
+ g_object_unref (file);
+ return;
+ }
+
+ ev_tmp_file_unlink (file);
+ g_object_unref (file);
+}
+