From: Wilfried Goesgens Date: Sun, 5 Dec 2010 14:43:46 +0000 (+0100) Subject: Add test for looking up the icon for a specific mimetype. X-Git-Tag: v8.01~540 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=bad1b8d0f0776cee2c40b3e5e7255cc563154f9b;p=citadel.git Add test for looking up the icon for a specific mimetype. --- diff --git a/libcitadel/tests/mime_xdg_lookup_type.c b/libcitadel/tests/mime_xdg_lookup_type.c index 589f3fd95..f85f47654 100644 --- a/libcitadel/tests/mime_xdg_lookup_type.c +++ b/libcitadel/tests/mime_xdg_lookup_type.c @@ -20,6 +20,7 @@ int main(int argc, char* argv[]) char a; int fd; char *filename = NULL; + char *IconDir = NULL; struct stat statbuf; const char *Err; @@ -27,11 +28,14 @@ int main(int argc, char* argv[]) long MimeLen; char *MimeStr; int by_extension = 0; + const char *GuessedMimeType; + const char *GuessedMimeIcon; + char MimeTypeStr[SIZ]; setvbuf(stdout, NULL, _IONBF, 0); - while ((a = getopt(argc, argv, "xf:")) != EOF) + while ((a = getopt(argc, argv, "xf:i:")) != EOF) { switch (a) { case 'x': @@ -40,40 +44,71 @@ int main(int argc, char* argv[]) case 'f': filename = optarg; break; + case 'i': + IconDir = optarg; + break; } } StartLibCitadel(8); + if (IconDir != NULL) + LoadIconDir(IconDir); + if (filename == NULL) { + ShutDownLibCitadel(); printf("Filename requried! -f\n"); return 1; } if (by_extension) { - printf("Mimetype: %s\n", GuessMimeByFilename(filename, strlen(filename))); + GuessedMimeType = GuessMimeByFilename(filename, strlen(filename)); + printf("Mimetype: %s\n", GuessedMimeType); + if (IconDir != NULL) { + strcpy(MimeTypeStr, GuessedMimeType); + GuessedMimeIcon = GetIconFilename(MimeTypeStr, strlen(MimeTypeStr)); + if (GuessedMimeIcon != NULL) + printf("Associated Icon [%s]\n", GuessedMimeIcon); + else + printf("no icon associated.\n"); + } + ShutDownLibCitadel(); return 0; } fd = open(filename, 0); if (fd < 0) { printf("Error opening file [%s] %d [%s]\n", filename, errno, strerror(errno)); + ShutDownLibCitadel(); return 1; } if (fstat(fd, &statbuf) == -1) { printf("Error stating file [%s] %d [%s]\n", filename, errno, strerror(errno)); + ShutDownLibCitadel(); return 1; } MimeBuf = NewStrBufPlain(NULL, statbuf.st_size + 1); if (StrBufReadBLOB(MimeBuf, &fd, 1, statbuf.st_size, &Err) < 0) { printf("Error reading file [%s] %d [%s] [%s]\n", filename, errno, strerror(errno), Err); FreeStrBuf(&MimeBuf); + ShutDownLibCitadel(); return 1; } MimeLen = StrLength(MimeBuf); MimeStr = SmashStrBuf(&MimeBuf); + GuessedMimeType = GuessMimeType(MimeStr, MimeLen); + + printf("Mimetype: %s\n", GuessedMimeType); + if (IconDir != NULL) { + strcpy(MimeTypeStr, GuessedMimeType); + GuessedMimeIcon = GetIconFilename(MimeTypeStr, strlen(MimeTypeStr)); + if (GuessedMimeIcon != NULL) + printf("Associated Icon [%s]\n", GuessedMimeIcon); + else + printf("no icon associated.\n"); + } - printf("Mimetype: %s\n", GuessMimeType(MimeStr, MimeLen)); free(MimeStr); + ShutDownLibCitadel(); return 0; }