16 #include "../lib/libcitadel.h"
18 int main(int argc, char* argv[])
22 char *filename = NULL;
31 const char *GuessedMimeType;
32 const char *GuessedMimeIcon;
33 char MimeTypeStr[SIZ];
35 setvbuf(stdout, NULL, _IONBF, 0);
38 while ((a = getopt(argc, argv, "xf:i:")) != EOF)
57 if (filename == NULL) {
59 printf("Filename requried! -f\n");
64 GuessedMimeType = GuessMimeByFilename(filename, strlen(filename));
65 printf("Mimetype: %s\n", GuessedMimeType);
66 if (IconDir != NULL) {
67 strcpy(MimeTypeStr, GuessedMimeType);
68 GuessedMimeIcon = GetIconFilename(MimeTypeStr, strlen(MimeTypeStr));
69 if (GuessedMimeIcon != NULL)
70 printf("Associated Icon [%s]\n", GuessedMimeIcon);
72 printf("no icon associated.\n");
78 fd = open(filename, 0);
80 printf("Error opening file [%s] %d [%s]\n", filename, errno, strerror(errno));
84 if (fstat(fd, &statbuf) == -1) {
85 printf("Error stating file [%s] %d [%s]\n", filename, errno, strerror(errno));
89 MimeBuf = NewStrBufPlain(NULL, statbuf.st_size + 1);
90 if (StrBufReadBLOB(MimeBuf, &fd, 1, statbuf.st_size, &Err) < 0) {
91 printf("Error reading file [%s] %d [%s] [%s]\n", filename, errno, strerror(errno), Err);
96 MimeLen = StrLength(MimeBuf);
97 MimeStr = SmashStrBuf(&MimeBuf);
98 GuessedMimeType = GuessMimeType(MimeStr, MimeLen);
100 printf("Mimetype: %s\n", GuessedMimeType);
101 if (IconDir != NULL) {
102 strcpy(MimeTypeStr, GuessedMimeType);
103 GuessedMimeIcon = GetIconFilename(MimeTypeStr, strlen(MimeTypeStr));
104 if (GuessedMimeIcon != NULL)
105 printf("Associated Icon [%s]\n", GuessedMimeIcon);
107 printf("no icon associated.\n");
112 ShutDownLibCitadel();