diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-05-10 19:32:21 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-05-10 19:32:21 +0000 |
commit | 38bcb14d7765a1231527f65f9a1c3d9e8045697e (patch) | |
tree | 683922a5bc44430a5b47ed30ce18fa96c9ae54d1 /amiga/dt_anim.c | |
parent | 4f8995ae8d82d462af895468757e7de614c70127 (diff) | |
download | netsurf-38bcb14d7765a1231527f65f9a1c3d9e8045697e.tar.gz netsurf-38bcb14d7765a1231527f65f9a1c3d9e8045697e.tar.bz2 |
Migrate to new MIMEtyper
svn path=/trunk/netsurf/; revision=12375
Diffstat (limited to 'amiga/dt_anim.c')
-rw-r--r-- | amiga/dt_anim.c | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/amiga/dt_anim.c b/amiga/dt_anim.c index 55ec60578..cad77ce46 100644 --- a/amiga/dt_anim.c +++ b/amiga/dt_anim.c @@ -92,17 +92,18 @@ nserror amiga_dt_anim_init(void) lwc_error lerror; nserror error; BPTR fh = 0; + struct Node *node = NULL; while((dt = ObtainDataType(DTST_RAM, NULL, DTA_DataType, prevdt, - DTA_GroupID, GID_ANIMATION, + DTA_GroupID, GID_PICTURE, // we only support images for now TAG_DONE)) != NULL) { ReleaseDataType(prevdt); prevdt = dt; ami_datatype_to_mimetype(dt, dt_mime); - LOG(("Guessed MIME from DT: %s", dt_mime)); + LOG(("Guessed MIME from anim DT: %s", dt_mime)); lerror = lwc_intern_string(dt_mime, strlen(dt_mime), &type); if (lerror != lwc_error_ok) @@ -116,32 +117,24 @@ nserror amiga_dt_anim_init(void) if (error != NSERROR_OK) return error; - } + do { + node = ami_mime_from_datatype(dt, &type, node); - ReleaseDataType(prevdt); + if(node) + { + error = content_factory_register_handler(type, + &amiga_dt_anim_content_handler); - if(fh = FOpen("PROGDIR:Resources/MIME/dt.animation", MODE_OLDFILE, 0)) - { - while(FGets(fh, (UBYTE *)&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 */ + if (error != NSERROR_OK) + return error; + } - lerror = lwc_intern_string(dt_mime, strlen(dt_mime), &type); - if (lerror != lwc_error_ok) - return NSERROR_NOMEM; + }while (node != NULL); - error = content_factory_register_handler(type, - &amiga_dt_anim_content_handler); + } - lwc_string_unref(type); + ReleaseDataType(prevdt); - if (error != NSERROR_OK) - return error; - } - FClose(fh); - } return NSERROR_OK; } |