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:
@@ -599,6 +599,7 @@ if $(HOST_PLATFORM) = freebsd {
|
|||||||
HOST_BE_API_HEADERS =
|
HOST_BE_API_HEADERS =
|
||||||
[ FDirName $(HAIKU_TOP) headers build ]
|
[ FDirName $(HAIKU_TOP) headers build ]
|
||||||
[ FDirName $(HAIKU_TOP) headers build os ]
|
[ 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 app ]
|
||||||
[ FDirName $(HAIKU_TOP) headers build os drivers ]
|
[ FDirName $(HAIKU_TOP) headers build os drivers ]
|
||||||
[ FDirName $(HAIKU_TOP) headers build os kernel ]
|
[ FDirName $(HAIKU_TOP) headers build os kernel ]
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
#include <../os/add-ons/registrar/MimeSnifferAddon.h>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
#include <../../../private/storage/mime/MimeSnifferAddonManager.h>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
#include <../../../private/storage/mime/TextSnifferAddon.h>
|
||||||
+15
-2
@@ -17,6 +17,8 @@
|
|||||||
#include <mime/Database.h>
|
#include <mime/Database.h>
|
||||||
#include <mime/DatabaseLocation.h>
|
#include <mime/DatabaseLocation.h>
|
||||||
#include <mime/MimeInfoUpdater.h>
|
#include <mime/MimeInfoUpdater.h>
|
||||||
|
#include <mime/MimeSnifferAddonManager.h>
|
||||||
|
#include <mime/TextSnifferAddon.h>
|
||||||
|
|
||||||
|
|
||||||
using namespace BPrivate::Storage::Mime;
|
using namespace BPrivate::Storage::Mime;
|
||||||
@@ -204,13 +206,24 @@ main(int argc, const char** argv)
|
|||||||
for (int32 i = 0; i < count; i++)
|
for (int32 i = 0; i < count; i++)
|
||||||
databaseLocation.AddDirectory(databaseDirectories.StringAt(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) {
|
if (sDatabase == NULL) {
|
||||||
fprintf(stderr, "%s: Out of memory!\n", sProgramName);
|
fprintf(stderr, "%s: Out of memory!\n", sProgramName);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t error = sDatabase->InitCheck();
|
error = sDatabase->InitCheck();
|
||||||
if (error != B_OK) {
|
if (error != B_OK) {
|
||||||
fprintf(stderr, "%s: Failed to init MIME DB: %s\n", sProgramName,
|
fprintf(stderr, "%s: Failed to init MIME DB: %s\n", sProgramName,
|
||||||
strerror(error));
|
strerror(error));
|
||||||
|
|||||||
@@ -45,9 +45,12 @@ BuildPlatformMergeObjectPIC <libbe_build>storage_kit.o :
|
|||||||
MimeEntryProcessor.cpp
|
MimeEntryProcessor.cpp
|
||||||
MimeInfoUpdater.cpp
|
MimeInfoUpdater.cpp
|
||||||
MimeSniffer.cpp
|
MimeSniffer.cpp
|
||||||
|
MimeSnifferAddon.cpp
|
||||||
|
MimeSnifferAddonManager.cpp
|
||||||
SnifferRules.cpp
|
SnifferRules.cpp
|
||||||
Supertype.cpp
|
Supertype.cpp
|
||||||
SupportingApps.cpp
|
SupportingApps.cpp
|
||||||
|
TextSnifferAddon.cpp
|
||||||
|
|
||||||
# sniffer
|
# sniffer
|
||||||
CharStream.cpp
|
CharStream.cpp
|
||||||
|
|||||||
Reference in New Issue
Block a user