X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-file-helpers.c;h=edd4e4fd0adc2414e6918cab61dc7bceb4ce75e8;hb=2297bff1e7d745f0f837d44feeda03244368d7f1;hp=01bf089ef4910447df92859c7d00499de7d0a0ea;hpb=11dcf8651d69fa30561d027020a46ced6f851575;p=evince.git diff --git a/libdocument/ev-file-helpers.c b/libdocument/ev-file-helpers.c index 01bf089e..edd4e4fd 100644 --- a/libdocument/ev-file-helpers.c +++ b/libdocument/ev-file-helpers.c @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include @@ -319,13 +319,13 @@ ev_mkdtemp (const char *template, void ev_tmp_filename_unlink (const gchar *filename) { - const gchar *tempdir; - if (!filename) return; - tempdir = g_get_tmp_dir (); - if (g_str_has_prefix (filename, tempdir) == 0) { + if (!tmp_dir) + return; + + if (g_str_has_prefix (filename, tmp_dir)) { g_unlink (filename); } } @@ -369,6 +369,25 @@ ev_tmp_uri_unlink (const gchar *uri) g_object_unref (file); } +gboolean +ev_file_is_temp (GFile *file) +{ + gchar *path; + gboolean retval; + + if (!g_file_is_native (file)) + return FALSE; + + path = g_file_get_path (file); + if (!path) + return FALSE; + + retval = g_str_has_prefix (path, g_get_tmp_dir ()); + g_free (path); + + return retval; +} + /** * ev_xfer_uri_simple: * @from: the source URI @@ -397,9 +416,7 @@ ev_xfer_uri_simple (const char *from, target_file = g_file_new_for_uri (to); result = g_file_copy (source_file, target_file, -#if GLIB_CHECK_VERSION(2,19,0) G_FILE_COPY_TARGET_DEFAULT_PERMS | -#endif G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, error); @@ -438,6 +455,7 @@ get_mime_type_from_uri (const gchar *uri, GError **error) static gchar * get_mime_type_from_data (const gchar *uri, GError **error) { +#ifndef G_OS_WIN32 GFile *file; GFileInputStream *input_stream; gssize size_read; @@ -477,6 +495,13 @@ get_mime_type_from_data (const gchar *uri, GError **error) mime_type = g_content_type_get_mime_type (content_type); g_free (content_type); return mime_type; +#else + /* + * On Windows, the implementation of g_content_type_guess() is too limited at the moment, so we do not + * use it and fall back to get_mime_type_from_uri() + */ + return get_mime_type_from_uri (uri, error); +#endif /* G_OS_WIN32 */ } /**