evince r3445 - in trunk: . libdocument



Author: chpe
Date: Sun Feb 15 13:52:14 2009
New Revision: 3445
URL: http://svn.gnome.org/viewvc/evince?rev=3445&view=rev

Log:
	* libdocument/ev-document-factory.c: (get_document_from_uri): Document
	that this returns either NULL and fills in error, or non-NULL. Use a
	local GError so we can reliably check it.

Modified:
   trunk/ChangeLog
   trunk/libdocument/ev-document-factory.c

Modified: trunk/libdocument/ev-document-factory.c
==============================================================================
--- trunk/libdocument/ev-document-factory.c	(original)
+++ trunk/libdocument/ev-document-factory.c	Sun Feb 15 13:52:14 2009
@@ -104,6 +104,21 @@
 	return EV_COMPRESSION_NONE;
 }
 
+
+/*
+ * get_document_from_uri:
+ * @uri: the document URI
+ * @fast: whether to use fast MIME type detection
+ * @compression: return location to store the document's compression type
+ * @error: a #GError location to store an error, or %NULL
+ *
+ * Creates a #EvDocument instance for the document at @uri, using either
+ * fast or slow MIME type detection. If a document could be created,
+ * @compression is filled in with the document's compression type.
+ * On error, %NULL is returned and @error filled in.
+ * 
+ * Returns: a new #EvDocument instance, or %NULL on error
+ */
 static EvDocument *
 get_document_from_uri (const char        *uri,
 		       gboolean           fast,
@@ -112,19 +127,22 @@
 {
 	EvDocument *document = NULL;
 	gchar      *mime_type = NULL;
+	GError     *err = NULL;
 
 	*compression = EV_COMPRESSION_NONE;
 
-	mime_type = ev_file_get_mime_type (uri, fast, error);
+	mime_type = ev_file_get_mime_type (uri, fast, &err);
 
 	if (mime_type == NULL) {
 		g_free (mime_type);
 
-		if (*error == NULL) {
+		if (err == NULL) {
 			g_set_error_literal (error,
                                              EV_DOCUMENT_ERROR,
                                              EV_DOCUMENT_ERROR_INVALID,
                                              _("Unknown MIME Type"));
+		} else {
+			g_propagate_error (error, err);
 		}
 		
 		return NULL;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]