History log of /haiku/src/kits/storage/MimeType.cpp
Revision Date Author Comments
# ebb0db62 04-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

kits: Only export private dummy copy constructors for R5 ABI.

Fixes #546 (after all these years!)


# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# cb5ed9c7 09-Jul-2014 Gerasim Troeglazov <3dEyes@gmail.com>

MimeType: fix SetFileExtensions


# a30a4a41 18-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to Storage Kit classes.

No functional changes intended.

* Some variable renaming for clarity and consistency.
* Pointer style fixes.
* Added private method documentation back to cpp files for some methods.


# b94857b3 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 12c10314 17-Mar-2012 John Scipione <jscipione@gmail.com>

Remove MimeType docs from MimeType.cpp and cleanup style issues in that file. Create a MimeType.dox file and add the docs there.


# 84bfb380 15-Mar-2012 John Scipione <jscipione@gmail.com>

Update the behavior of uninitialized and NULL BMimeType objects.

* Two uninitialized BMimeType objects are considered to be equal,
this is a purposeful break from BeOS R5.

* An uninitialized BMimeType object is considered to be equal to a
BMimeType object initialized to NULL. This is a purposeful break from
BeOS R5.

* Update the doxygen documentation comments to reflect this change which
will hopefully make there way into the Haiku Book at some point.

* In BMimeType::SetTo() replace an instance of strcpy() with strlcpy()
CID #something probably.

* Store the result of a few more strlen() function in size_t instead of
int to prevent overflow bugs.

* Make sure BMimeType::GetSupertype() returns either B_OK or B_BAD_VALUE.

* Undo my previous "optimization" in IsValid() to declare ch outside the
for loop.


# 4b4e2164 14-Mar-2012 John Scipione <jscipione@gmail.com>

Fix another overflow bug in BMimeType

* The static toLower() method had the same overflow bug that isValid()
had. However, since it is a private static method, rather than fix the
method I replaced with a call to strcasecmp() in the operator== overload.
When this method was written strcasecmp() must not have been available.

* Declare ch outside of the the loop in IsValid() so that it only gets
initialized once.


# 39516707 14-Mar-2012 John Scipione <jscipione@gmail.com>

* Fix a bug where a string longer than INT_MAX can cause IsValid() to falsely
report a valid mimetype because strlen() returns a result than when stored
in an int is treated as a negative number.

* Style fixes in the same method


# 8c34572b 15-Nov-2006 Axel Dörfler <axeld@pinc-software.de>

Somehow the vector icon version of GetIconForType() was missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19295 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fb6186f 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f998d297 31-May-2006 Axel Dörfler <axeld@pinc-software.de>

BMimeType::GetInstalledTypes() will no longer try to add a NULL string to a
message - and even return the error message it got from BMessage::AddString()
for trying so.
This fixes bug #585.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8aebe2c4 31-May-2006 Axel Dörfler <axeld@pinc-software.de>

Tracker compared B_APP_MIME_TYPE case sensitively - we now export the same case as
is used at other places, and all of a sudden, the "Open With..." menu in Tracker is
working now :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8da77437 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

No longer "abuses" the provided message to send the request to the registrar.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16989 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf5e1167 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved BMimeType::GetSupportingApps(): no longer uses the provided message to
send the request, and it now checks if the object is valid.
* Fixed building supporting apps table: now all types are converted to lower case,
so that it works reliable now. This fixes bug #278.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d51ecfd2 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Made helper functions static.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e389ac9d 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Removed superfluous Delete*() methods.
* Invocations like SetShortDescription("") will now remove the description as
well, not only SetShortDescription(NULL).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7500f294 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

CreateAppMetaMimeThread::DoMimeUpdate() now also updates the supported types
of an application as well as the their icons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289adc04 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed due to moving RegistrarDefs.h stuff into the BPrivate namespace and replacing kRosterPortName.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17e6de7a 03-Aug-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4227 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98833b15 11-Jun-2003 haydentech <haydentech@nowhere.fake>

Cleaned-up the std namespace support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3475 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a3f269 03-Jun-2003 haydentech <haydentech@nowhere.fake>

Namespace- and gcc3-related fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed834e3 08-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Cleaned up BRoster's friends mess. All access to private BRoster functionality is now done through the newly added BRoster::Private class, which is BRoster's only friend (poor BRoster ;-).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e106754a 27-Oct-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Changed certain B_BAD_VALUE errors to more applicable B_BAD_REPLY error code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1717 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bd963b6 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added file-extension based mime type guessing
+ Added sniffer rule based mime type guessing
+ Added get_device_icon()
+ Added complete (synchronous, asynchronous; recursive,
non-recursive; forcing, non-forcing; you name it we got it :-)
update_mime_info() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a17c3cf 23-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Dealt with the *_LENGTH+1 issue: Removed all "+1"s in buffer allocations and adjusted checks etc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1131 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baa326e0 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Implemented Get/SetSnifferRule()
Added SetSupportedTypes() documentation
Removed a few unnecessary BMessage copies in a couple of functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 976e1a97 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fullSync parameter to SetSupportedTypes()
+ Implemented GetSupportingApps()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@925 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 657fea1c 25-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed missing return value in SetType().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@882 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e20a514a 23-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

After implementing the BMimeType::GetInstalled[Super]Types()
functionality, it became apparent that some restructuring was
needed if I wanted to keep things clean and managble.
storage/MimeDatabase.{h,cpp} have been broken into:

storage/mime/database_support.{h,cpp}
+ MIME database constants
+ high-level database access functions like open_type(),
read_mime_attr(), etc.

storage/mime/database_access.{h,cpp}
+ atomic read functions
+ is_installed()
+ get_icon_data()

storage/mime/Database.{h,cpp}
+ Mime::Database class, which is responsible for all write,
non-atomic read, and mime monitor functionality.

storage/mime/InstalledTypes.{h,cpp}
+ Helper class for Mime::Database::GetInstalled[Super]Types()

storage/mime/Supertype.{h,cpp}
+ Helper class for Mime::InstalledTypes

I haven't merged my intial, somewhat cludgy GetInstalled[Super]Types
implementation into the new setup yet. That comes next, and it ought
to be a more graceful implementation now.

I also implemented BMimeType::Get/SetSupportingTypes(), though
they haven't been tested yet (sorry).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3155eae2 21-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code/updated tests for
- AttrInfo
- FileExtensions
+ Updated Delete() code to send monitor updates
+ Tenatively added "be:action" field to monitor messages
+ Added data type constants


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ed04c7c 20-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added code for:
+ {Get,Set}IconForType()
+ Delete*() functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dff6cb3f 19-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code for:
- {Get,Set}PreferredApp()
- {Get,Set}AppHint()
- {Get,Set}Icon() (though it's a hacked up temporary version)
+ Replaced B_SIMPLE_DATA with B_REG_RESULT


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f231d090 16-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fMimeDatabase member
Implemented:
+ {Get,Set}{Long,Short}Description()
+ {Start,Stop}Watching()
+ Install(), Delete(), IsInstalled()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09d84e61 12-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Changed StorageKit namespace to BPrivate::Storage
+ Changed Sniffer namespace to BPrivate::Storage::Sniffer


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51156f1f 29-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Way too many builds later, I finally realized I put these #includes in the wrong place.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 674e18fb 26-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Initial MIME sniffer rule parser checkin. The first draft of the
scanner portion of the parser is done, but completely untested
and unused. More to come...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@452 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4177635e 24-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added initialization and MIME string functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 762a48a0 23-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Finished BMimeType doxygen
+ Finally checked in my remaining BMimeType tests... :-)
NOTE -- The BMimeType::GetSupportingApps() test is
not yet finished. For some reason GetSupportingApps()
is returning a few strange signatures that don't appear
to be in the database. I'm still figuring out where they're
coming from.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@408 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# cb5ed9c7555ac159127a726f68023b8dd72e47de 09-Jul-2014 Gerasim Troeglazov <3dEyes@gmail.com>

MimeType: fix SetFileExtensions


# a30a4a41f948ebb03b95dab065a27a584ac0c97a 18-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to Storage Kit classes.

No functional changes intended.

* Some variable renaming for clarity and consistency.
* Pointer style fixes.
* Added private method documentation back to cpp files for some methods.


# b94857b322093c296230a18d47f6a98a2896b062 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 12c10314f945b805b99210abc9aebb07ecede4b0 17-Mar-2012 John Scipione <jscipione@gmail.com>

Remove MimeType docs from MimeType.cpp and cleanup style issues in that file. Create a MimeType.dox file and add the docs there.


# 84bfb380c33864a8f8b9918a78537989559b6837 15-Mar-2012 John Scipione <jscipione@gmail.com>

Update the behavior of uninitialized and NULL BMimeType objects.

* Two uninitialized BMimeType objects are considered to be equal,
this is a purposeful break from BeOS R5.

* An uninitialized BMimeType object is considered to be equal to a
BMimeType object initialized to NULL. This is a purposeful break from
BeOS R5.

* Update the doxygen documentation comments to reflect this change which
will hopefully make there way into the Haiku Book at some point.

* In BMimeType::SetTo() replace an instance of strcpy() with strlcpy()
CID #something probably.

* Store the result of a few more strlen() function in size_t instead of
int to prevent overflow bugs.

* Make sure BMimeType::GetSupertype() returns either B_OK or B_BAD_VALUE.

* Undo my previous "optimization" in IsValid() to declare ch outside the
for loop.


# 4b4e216449a5257c99fd6d4bc4df81ab5724b18e 14-Mar-2012 John Scipione <jscipione@gmail.com>

Fix another overflow bug in BMimeType

* The static toLower() method had the same overflow bug that isValid()
had. However, since it is a private static method, rather than fix the
method I replaced with a call to strcasecmp() in the operator== overload.
When this method was written strcasecmp() must not have been available.

* Declare ch outside of the the loop in IsValid() so that it only gets
initialized once.


# 395167071d38f02b7d476a7f60d441417ab502e4 14-Mar-2012 John Scipione <jscipione@gmail.com>

* Fix a bug where a string longer than INT_MAX can cause IsValid() to falsely
report a valid mimetype because strlen() returns a result than when stored
in an int is treated as a negative number.

* Style fixes in the same method


# 8c34572babbee53bbeab71d0291c0b967f91790d 15-Nov-2006 Axel Dörfler <axeld@pinc-software.de>

Somehow the vector icon version of GetIconForType() was missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19295 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fb6186f3cb93a14ea0f96a82bdfc3d18f3ad56e 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f998d2977d539afcf0b30bb8d30c5f4d94402b62 31-May-2006 Axel Dörfler <axeld@pinc-software.de>

BMimeType::GetInstalledTypes() will no longer try to add a NULL string to a
message - and even return the error message it got from BMessage::AddString()
for trying so.
This fixes bug #585.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8aebe2c4b810a7992075201bbc2a02f49132bb4b 31-May-2006 Axel Dörfler <axeld@pinc-software.de>

Tracker compared B_APP_MIME_TYPE case sensitively - we now export the same case as
is used at other places, and all of a sudden, the "Open With..." menu in Tracker is
working now :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8da774372c2e2db9e23b250c9c7de526b58137ef 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

No longer "abuses" the provided message to send the request to the registrar.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16989 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf5e11677b845b723aa92bd2029472e58978497f 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved BMimeType::GetSupportingApps(): no longer uses the provided message to
send the request, and it now checks if the object is valid.
* Fixed building supporting apps table: now all types are converted to lower case,
so that it works reliable now. This fixes bug #278.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d51ecfd248f93571b38eec596b0e7c576eb63772 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Made helper functions static.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e389ac9d783f5b2cf19bedde658b5fd2bd880350 11-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Removed superfluous Delete*() methods.
* Invocations like SetShortDescription("") will now remove the description as
well, not only SetShortDescription(NULL).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7500f29455264aee6cdff3334b9657d6a3928b61 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

CreateAppMetaMimeThread::DoMimeUpdate() now also updates the supported types
of an application as well as the their icons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 289adc045d3aa7860aae3b1959d28a4d4c440ae2 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed due to moving RegistrarDefs.h stuff into the BPrivate namespace and replacing kRosterPortName.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10813 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17e6de7a37c5c61f45eb724de108daa70905cb8f 03-Aug-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4227 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98833b15bf4967b0b12fda60065cda7ac83e091d 11-Jun-2003 haydentech <haydentech@nowhere.fake>

Cleaned-up the std namespace support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3475 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a3f269a4eae19d6fdbffdb581e888219988160 03-Jun-2003 haydentech <haydentech@nowhere.fake>

Namespace- and gcc3-related fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3405 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ed834e3f6f94d48d8671f8379040f4e8cc70238 08-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Cleaned up BRoster's friends mess. All access to private BRoster functionality is now done through the newly added BRoster::Private class, which is BRoster's only friend (poor BRoster ;-).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2664 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e106754a4ea952fddb311bfcea2999131d44b0ca 27-Oct-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Changed certain B_BAD_VALUE errors to more applicable B_BAD_REPLY error code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1717 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bd963b6c27017324c3589c8ea29d635e1552b7f 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added file-extension based mime type guessing
+ Added sniffer rule based mime type guessing
+ Added get_device_icon()
+ Added complete (synchronous, asynchronous; recursive,
non-recursive; forcing, non-forcing; you name it we got it :-)
update_mime_info() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a17c3cfac5f2463b41b3f233975a2904ef10135 23-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Dealt with the *_LENGTH+1 issue: Removed all "+1"s in buffer allocations and adjusted checks etc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1131 a95241bf-73f2-0310-859d-f6bbb57e9c96


# baa326e0ecbb94b6c340f853c9b5055aa9f47da2 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Implemented Get/SetSnifferRule()
Added SetSupportedTypes() documentation
Removed a few unnecessary BMessage copies in a couple of functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 976e1a9745eb1f1fd64da8c022a722d94a61dd12 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fullSync parameter to SetSupportedTypes()
+ Implemented GetSupportingApps()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@925 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 657fea1c083cb39f608be1f9b8ec815f272cc6ad 25-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed missing return value in SetType().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@882 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e20a514ae90bd65d06ff19517a1220b3f92760ee 23-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

After implementing the BMimeType::GetInstalled[Super]Types()
functionality, it became apparent that some restructuring was
needed if I wanted to keep things clean and managble.
storage/MimeDatabase.{h,cpp} have been broken into:

storage/mime/database_support.{h,cpp}
+ MIME database constants
+ high-level database access functions like open_type(),
read_mime_attr(), etc.

storage/mime/database_access.{h,cpp}
+ atomic read functions
+ is_installed()
+ get_icon_data()

storage/mime/Database.{h,cpp}
+ Mime::Database class, which is responsible for all write,
non-atomic read, and mime monitor functionality.

storage/mime/InstalledTypes.{h,cpp}
+ Helper class for Mime::Database::GetInstalled[Super]Types()

storage/mime/Supertype.{h,cpp}
+ Helper class for Mime::InstalledTypes

I haven't merged my intial, somewhat cludgy GetInstalled[Super]Types
implementation into the new setup yet. That comes next, and it ought
to be a more graceful implementation now.

I also implemented BMimeType::Get/SetSupportingTypes(), though
they haven't been tested yet (sorry).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3155eae222d119aa730971cebdfad8575838eb44 21-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code/updated tests for
- AttrInfo
- FileExtensions
+ Updated Delete() code to send monitor updates
+ Tenatively added "be:action" field to monitor messages
+ Added data type constants


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ed04c7ce321cd6d04cc7d154ec760e19240fb20 20-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added code for:
+ {Get,Set}IconForType()
+ Delete*() functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dff6cb3f888caa246304f932c4fd0c926bb18651 19-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code for:
- {Get,Set}PreferredApp()
- {Get,Set}AppHint()
- {Get,Set}Icon() (though it's a hacked up temporary version)
+ Replaced B_SIMPLE_DATA with B_REG_RESULT


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@820 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f231d0901c48048a431fbf7a43d0755fa91ebeb7 16-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fMimeDatabase member
Implemented:
+ {Get,Set}{Long,Short}Description()
+ {Start,Stop}Watching()
+ Install(), Delete(), IsInstalled()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@788 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09d84e61b6c2629d253dce1e7d7e944943d3e40e 12-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Changed StorageKit namespace to BPrivate::Storage
+ Changed Sniffer namespace to BPrivate::Storage::Sniffer


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51156f1f466b2246cc02dcec6d7be37dbb0bae53 29-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Way too many builds later, I finally realized I put these #includes in the wrong place.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 674e18fb1856e722485053f4b5354d68277ffb50 26-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Initial MIME sniffer rule parser checkin. The first draft of the
scanner portion of the parser is done, but completely untested
and unused. More to come...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@452 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4177635e24b3c9414ac5b964f922010b04b35e64 24-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added initialization and MIME string functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 762a48a0838f3f15a369a233c01298defeb1e503 23-Jul-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Finished BMimeType doxygen
+ Finally checked in my remaining BMimeType tests... :-)
NOTE -- The BMimeType::GetSupportingApps() test is
not yet finished. For some reason GetSupportingApps()
is returning a few strange signatures that don't appear
to be in the database. I'm still figuring out where they're
coming from.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@408 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96