}
part_end = content_end;
- /******
- * I thought there was an off-by-one error here, but there isn't.
- * This probably means that there's an off-by-one error somewhere
- * else ... or maybe only in certain messages?
- --part_end;
- --length;
- ******/
-
- /* Truncate if the header told us to */
- if ( (content_length > 0) && (length > content_length) ) {
- length = content_length;
- }
+
+ /* The following code will truncate the MIME part to the size
+ * specified by the Content-length: header. We have commented it
+ * out because these headers have a tendency to be wrong.
+ *
+ * if ( (content_length > 0) && (length > content_length) ) {
+ * length = content_length;
+ * }
+ */
/* Sometimes the "name" field is tacked on to Content-type,
* and sometimes it's tacked on to Content-disposition. Use
};
-const char *GuessMimeType(char *data, size_t dlen)
+const char *GuessMimeType(const char *data, size_t dlen)
{
int MimeIndex = 0;
free(Icon->FileName);
}
+/*
static const char *PrintFlat(void *IconNamePtr)
{
IconName *Icon = (IconName*) IconNamePtr;
IconName *Icon = (IconName*) IconNamePtr;
return Icon->FileName;
}
+*/
+
#define GENSTR "x-generic"
#define IGNORE_PREFIX_1 "gnome-mime"
int LoadIconDir(const char *DirName)
IconName *Icon;
filedir = opendir (DirName);
- IconHash = NewHash();
+ IconHash = NewHash(1, NULL);
if (filedir == NULL) {
return 0;
}
const char *GetIconFilename(char *MimeType, size_t len)
{
+ void *vIcon;
IconName *Icon;
if(IconHash == NULL)
return NULL;
- GetHash(IconHash, MimeType, len, (void**)&Icon);
+ GetHash(IconHash, MimeType, len, &vIcon), Icon = (IconName*) vIcon;
/* didn't find the exact mimetype? try major only. */
if (Icon == NULL) {
char * pMinor;
pMinor = strchr(MimeType, '/');
if (pMinor != NULL) {
*pMinor = '\0';
- GetHash(IconHash, MimeType, pMinor - MimeType, (void**)&Icon);
+ GetHash(IconHash, MimeType, pMinor - MimeType, &vIcon),
+ Icon = (IconName*) vIcon;
}
}
if (Icon == NULL) {