summaryrefslogtreecommitdiff
path: root/amiga/dt_picture.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-05-07 11:09:23 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-05-07 11:09:23 +0000
commit27d4350054a6fd6607069526711903fbfcd106b1 (patch)
treebb8d354ef30a622bba291c74bffe7926080873fd /amiga/dt_picture.c
parent0cc1dade3c6b7c560f0472f0feeaef5065417416 (diff)
downloadnetsurf-27d4350054a6fd6607069526711903fbfcd106b1.tar.gz
netsurf-27d4350054a6fd6607069526711903fbfcd106b1.tar.bz2
Register additional MIME types for DataTypes
Default file contains all image MIME Types NetSurf is capable of handling natively (plus JPEG2000) to ensure disabling features in NetSurf won't lose support. svn path=/trunk/netsurf/; revision=12287
Diffstat (limited to 'amiga/dt_picture.c')
-rw-r--r--amiga/dt_picture.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/amiga/dt_picture.c b/amiga/dt_picture.c
index 315b3f2e1..1906af9d1 100644
--- a/amiga/dt_picture.c
+++ b/amiga/dt_picture.c
@@ -33,6 +33,7 @@
#include "utils/talloc.h"
#include <proto/datatypes.h>
+#include <proto/DOS.h>
#include <proto/intuition.h>
#include <datatypes/pictureclass.h>
#include <intuition/classusr.h>
@@ -90,6 +91,7 @@ nserror amiga_dt_picture_init(void)
lwc_string *type;
lwc_error lerror;
nserror error;
+ BPTR fh = 0;
while((dt = ObtainDataType(DTST_RAM, NULL,
DTA_DataType, prevdt,
@@ -118,6 +120,28 @@ nserror amiga_dt_picture_init(void)
ReleaseDataType(prevdt);
+ if(fh = FOpen("PROGDIR:Resources/MIME/dt.picture", MODE_OLDFILE, 0))
+ {
+ while(FGets(fh, &dt_mime, 50) != 0)
+ {
+ dt_mime[strlen(dt_mime) - 1] = '\0';
+ if((dt_mime[0] == '\0') || (dt_mime[0] == '#'))
+ continue; /* Skip blank lines and comments */
+
+ lerror = lwc_intern_string(dt_mime, strlen(dt_mime), &type);
+ if (lerror != lwc_error_ok)
+ return NSERROR_NOMEM;
+
+ error = content_factory_register_handler(type,
+ &amiga_dt_picture_content_handler);
+
+ lwc_string_unref(type);
+
+ if (error != NSERROR_OK)
+ return error;
+ }
+ FClose(fh);
+ }
return NSERROR_OK;
}