|
a/src/internfile/mimehandler.cpp |
|
b/src/internfile/mimehandler.cpp |
|
... |
|
... |
48 |
* create appropriate handler object. */
|
48 |
* create appropriate handler object. */
|
49 |
static Dijon::Filter *mhFactory(const string &mime)
|
49 |
static Dijon::Filter *mhFactory(const string &mime)
|
50 |
{
|
50 |
{
|
51 |
string lmime(mime);
|
51 |
string lmime(mime);
|
52 |
stringtolower(lmime);
|
52 |
stringtolower(lmime);
|
53 |
if ("text/plain" == lmime)
|
53 |
if ("text/plain" == lmime) {
|
54 |
return new MimeHandlerText(lmime);
|
54 |
return new MimeHandlerText(lmime);
|
55 |
else if ("text/html" == lmime)
|
55 |
} else if ("text/html" == lmime) {
|
56 |
return new MimeHandlerHtml(lmime);
|
56 |
return new MimeHandlerHtml(lmime);
|
57 |
else if ("text/x-mail" == lmime)
|
57 |
} else if ("text/x-mail" == lmime) {
|
58 |
return new MimeHandlerMbox(lmime);
|
58 |
return new MimeHandlerMbox(lmime);
|
59 |
else if ("message/rfc822" == lmime)
|
59 |
} else if ("message/rfc822" == lmime) {
|
60 |
return new MimeHandlerMail(lmime);
|
60 |
return new MimeHandlerMail(lmime);
|
|
|
61 |
} else if (lmime.find("text/") == 0) {
|
|
|
62 |
// Try to handle unknown text/xx as text/plain. This
|
|
|
63 |
// only happen if the text/xx was defined as "internal" in
|
|
|
64 |
// mimeconf, not at random. For programs, for example this
|
|
|
65 |
// allows indexing and previewing as text/plain (no filter
|
|
|
66 |
// exec) but still opening with a specific editor.
|
|
|
67 |
return new MimeHandlerText(lmime);
|
61 |
else
|
68 |
} else {
|
62 |
return new MimeHandlerUnknown(lmime);
|
69 |
return new MimeHandlerUnknown(lmime);
|
|
|
70 |
}
|
63 |
}
|
71 |
}
|
64 |
|
72 |
|
65 |
/**
|
73 |
/**
|
66 |
* Create a filter that executes an external program or script
|
74 |
* Create a filter that executes an external program or script
|
67 |
* A filter def can look like:
|
75 |
* A filter def can look like:
|