This repository has been archived on 2024-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
ncsa-mosaic/libwww2/HTIcon.c

71 lines
1.6 KiB
C

/*
** Author: Charles Henrich (henrich@crh.cl.msu.edu) October 2, 1993
**
** This routine takes two parameters, Format (as returned by HTFileFormat)
** and a default icon type. The type is the first half of the MIME type field
** (i.e. image from image/jpeg). If the icon type cannot be determined from
** the format or from the default, then the unknown icon is returned.
**
** Note: This routine gurantee's to return something!
**
*/
#include "../config.h"
#include "HTFile.h"
#include "HTAtom.h"
struct typemap
{
char *format;
char *image;
};
struct typemap type_map[] =
{
{"image", "internal-gopher-image"},
{"text", "internal-gopher-text"},
{"audio", "internal-gopher-sound"},
{"application", "internal-gopher-binary"},
{"message", "internal-gopher-text"},
{"video", "internal-gopher-movie"},
{"directory", "internal-gopher-menu"},
{"unknown", "internal-gopher-unknown"},
{"EOFEOF", "EOFEOF"}
};
char *HTgeticonname(HTFormat format, char *defaultformat)
{
int count;
char *ptr;
char subtype[128];
if(format != NULL)
{
strcpy(subtype, format->name);
ptr=strchr(subtype,'/');
if(ptr != NULL)
*ptr = '\0';
}
else
{
subtype[0] = '\0';
}
ptr = NULL;
for(count = 0;strcmp(type_map[count].image,"EOFEOF") != 0; count++)
{
if(strcmp(type_map[count].format, subtype) == 0)
return type_map[count].image;
if(strcmp(type_map[count].format, defaultformat) == 0)
ptr = type_map[count].image;
}
if(ptr != NULL)
return ptr;
return "internal-gopher-unknown";
}