The plugin SDK doesn't identify compressed data
Operating system version
Mac OS X
Description of the issue
When you insert data into a container field you have the option to compress the file. The plugin SDK has options to access container field data, and read or write from the files.
However, there is no obvious way within the current API to identify if a file is compressed, nor is there a way to get at the uncompressed stream.
By default you are given only the compressed stream when the user chose compression.
This also has a side effect that on Mac OS the OS appears to decompress the file automatically, but this doesn't happen on windows, so there ends up being a platform incompatibility as well.
Steps to reproduce the problem
Import a file into a container field, and choose compression. On windows, use a field export function to write the file to disk.
For example, this version of the BaseElements plugin has an export field contents to export files in container fields.
So using the BE_ExportFieldContents function in combination with a BE_SaveFileDialog function to choose a location :
BE_ExportFieldContents ( field ; BE_SaveFileDialog ( "" ) )
You end up with a compressed version of the file, that can be uncompressed with any program that understands gzip compression.
You would expect to either get the uncompressed file from the API, or for there to be a way to identify the compress so that the plugin can act accordingly.
All compressed containers are only accessible as compressed.