summaryrefslogtreecommitdiff
path: root/amiga/dt_picture.c
diff options
context:
space:
mode:
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;
}