- /* try to sniff mime type from the content */
- guchar *buffer;
- gssize size_read;
- GFileInputStream *input_stream;
-
- input_stream = g_file_read (file, NULL, NULL);
- buffer = g_malloc (1024);
- size_read = g_input_stream_read (G_INPUT_STREAM (input_stream),
- buffer,
- 1024,
- NULL, NULL);
- g_input_stream_close (G_INPUT_STREAM (input_stream),
- NULL, NULL);
- g_object_unref (file);
- if (size_read == -1) {
- throw_failed_to_get_info_error (error);
- g_object_unref (file_info);
- return NULL;
- } else {
- content_type = g_content_type_guess (NULL, /* no filename */
- buffer, 1024,
- NULL);
- g_free (buffer);
- if (content_type == NULL) {
- throw_unknown_mime_type_error (error);
- g_object_unref (file_info);
- return NULL;
- } else {
- document = ev_backends_manager_get_document (content_type);
- if (document == NULL) {
- g_set_error (error,
- EV_DOCUMENT_ERROR,
- 0,
- _("Unhandled MIME type: ā%sā"), content_type);
- g_object_unref (file_info);
- g_free (content_type);
- return NULL;
- }
- mime_type = content_type;
- }
- }
- } else {
- g_object_unref (file);
+ gchar *mime_desc;
+
+ mime_desc = g_content_type_get_description (mime_type);
+ g_set_error (error,
+ EV_DOCUMENT_ERROR,
+ 0,
+ _("File type %s (%s) is not supported"),
+ mime_desc, mime_type);
+ g_free (mime_desc);
+ g_free (mime_type);
+
+ return NULL;