X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=backend%2Fdvi%2Fdvi-document.c;h=a6c33408c14d4c741b94e98440b6172e313eb7fb;hb=8a6f3e4fd0e85ea95564610a27514aa9d6c737b3;hp=876d577092b026153984732fb65f25a0e6094108;hpb=b8aebf2e1ba5b4f9ff1e1256b28acb3e23947c51;p=evince.git diff --git a/backend/dvi/dvi-document.c b/backend/dvi/dvi-document.c index 876d5770..a6c33408 100644 --- a/backend/dvi/dvi-document.c +++ b/backend/dvi/dvi-document.c @@ -19,17 +19,19 @@ #include "config.h" -#include #include "dvi-document.h" #include "ev-document-thumbnails.h" #include "ev-document-misc.h" #include "ev-file-exporter.h" +#include "ev-file-helpers.h" #include "mdvi.h" #include "fonts.h" +#include "color.h" #include "cairo-device.h" -#include +#include +#include GMutex *dvi_context_mutex = NULL; @@ -73,8 +75,8 @@ static void dvi_document_do_color_special (DviContext EV_BACKEND_REGISTER_WITH_CODE (DviDocument, dvi_document, { - G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, dvi_document_document_thumbnails_iface_init); - G_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, dvi_document_file_exporter_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, dvi_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, dvi_document_file_exporter_iface_init); }); static gboolean @@ -86,27 +88,22 @@ dvi_document_load (EvDocument *document, DviDocument *dvi_document = DVI_DOCUMENT(document); filename = g_filename_from_uri (uri, NULL, error); - - if (!filename) { - g_set_error (error, - EV_DOCUMENT_ERROR, - EV_DOCUMENT_ERROR_INVALID, - _("File not available")); + if (!filename) return FALSE; - } g_mutex_lock (dvi_context_mutex); if (dvi_document->context) mdvi_destroy_context (dvi_document->context); - + dvi_document->context = mdvi_init_context(dvi_document->params, dvi_document->spec, filename); g_mutex_unlock (dvi_context_mutex); + g_free (filename); if (!dvi_document->context) { - g_set_error (error, - EV_DOCUMENT_ERROR, - EV_DOCUMENT_ERROR_INVALID, - _("DVI document has incorrect format")); + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("DVI document has incorrect format")); return FALSE; } @@ -431,7 +428,7 @@ dvi_document_file_exporter_iface_init (EvFileExporterIface *iface) #define RGB2ULONG(r,g,b) ((0xFF<<24)|(r<<16)|(g<<8)|(b)) static gboolean -hsb2rgb (float h, float s, float v, char *red, char *green, char *blue) +hsb2rgb (float h, float s, float v, guchar *red, guchar *green, guchar *blue) { float i, f, p, q, t, r, g, b; @@ -475,9 +472,9 @@ hsb2rgb (float h, float s, float v, char *red, char *green, char *blue) b = q; } - (*red) = (char)floor(r * 255); - (*green) = (char)floor(g * 255); - (*blue) = (char)floor(b * 255); + *red = (guchar)floor(r * 255.0); + *green = (guchar)floor(g * 255.0); + *blue = (guchar)floor(b * 255.0); return TRUE; }