mimeset: Use TextSnifferAddon when using a custom MIME DB

That addresses the problem that packaged text files aren't correctly
identified (ticket #9972). All concerned packages have to be rebuilt,
of course.
This commit is contained in:
Ingo Weinhold 2013-11-22 12:20:39 +01:00
parent 6140f897d4
commit 2b76973fa2
6 changed files with 22 additions and 2 deletions

View File

@ -599,6 +599,7 @@ if $(HOST_PLATFORM) = freebsd {
HOST_BE_API_HEADERS =
[ FDirName $(HAIKU_TOP) headers build ]
[ FDirName $(HAIKU_TOP) headers build os ]
[ FDirName $(HAIKU_TOP) headers build os add-ons registrar ]
[ FDirName $(HAIKU_TOP) headers build os app ]
[ FDirName $(HAIKU_TOP) headers build os drivers ]
[ FDirName $(HAIKU_TOP) headers build os kernel ]

View File

@ -0,0 +1 @@
#include <../os/add-ons/registrar/MimeSnifferAddon.h>

View File

@ -0,0 +1 @@
#include <../../../private/storage/mime/MimeSnifferAddonManager.h>

View File

@ -0,0 +1 @@
#include <../../../private/storage/mime/TextSnifferAddon.h>

View File

@ -17,6 +17,8 @@
#include <mime/Database.h>
#include <mime/DatabaseLocation.h>
#include <mime/MimeInfoUpdater.h>
#include <mime/MimeSnifferAddonManager.h>
#include <mime/TextSnifferAddon.h>
using namespace BPrivate::Storage::Mime;
@ -204,13 +206,24 @@ main(int argc, const char** argv)
for (int32 i = 0; i < count; i++)
databaseLocation.AddDirectory(databaseDirectories.StringAt(i));
sDatabase = new(std::nothrow) Database(&databaseLocation, NULL, NULL);
status_t error = MimeSnifferAddonManager::CreateDefault();
if (error != B_OK) {
fprintf(stderr, "%s: Failed to create MIME sniffer add-on "
"manager: %s\n", sProgramName, strerror(error));
exit(1);
}
MimeSnifferAddonManager* manager = MimeSnifferAddonManager::Default();
manager->AddMimeSnifferAddon(
new(std::nothrow) TextSnifferAddon(&databaseLocation));
sDatabase = new(std::nothrow) Database(&databaseLocation, manager,
NULL);
if (sDatabase == NULL) {
fprintf(stderr, "%s: Out of memory!\n", sProgramName);
exit(1);
}
status_t error = sDatabase->InitCheck();
error = sDatabase->InitCheck();
if (error != B_OK) {
fprintf(stderr, "%s: Failed to init MIME DB: %s\n", sProgramName,
strerror(error));

View File

@ -45,9 +45,12 @@ BuildPlatformMergeObjectPIC <libbe_build>storage_kit.o :
MimeEntryProcessor.cpp
MimeInfoUpdater.cpp
MimeSniffer.cpp
MimeSnifferAddon.cpp
MimeSnifferAddonManager.cpp
SnifferRules.cpp
Supertype.cpp
SupportingApps.cpp
TextSnifferAddon.cpp
# sniffer
CharStream.cpp