On Tue, Oct 21, 2003 at 09:57:25AM -0400, Jody Goldberg wrote:
On Tue, Oct 21, 2003 at 03:51:14PM +0200, Uwe Steinmann wrote:Ok, I guess I set up everything to start. I already created a new plugin directory 'paradox' and copied the files from xbase into it. Makefile.am, and plugin.xml.in is modified.sounds good.It looks like in the first step I must implement a function paradox_file_open (GnmFileOpener const *fo, IOContext *io_context, WorkbookView *wb_view, GsfInput *input)yup. open and probe are the only entry points.
Implemented both. When is probe being called? Whenever a file is opened or only if one selects auto detection in the file open dialog?
xbase uses gsf to read the file. My library requires an open file pointer. First problem: how do get a file pointer from the GsfInput struct?You can't. You'll need to modify your library to either 1) Use gsf 2) Support some sort of i/o abstraction layer that you can use to wrap gsf.
Ok. I added support for gsf to my library. Actually it's now prepared to
use any kind of io access.
After doing all the preparation work, I started to implement the plugin
and got it already working. It's been easier than I thought.
I doesn't support all the different field types yet, but can handle the
most common ones. Anyway there are still some open questions.
1. My library can use external memory management functions instead of
usual system functions. Does gnumeric provide memory management which
I should use.
2. The library can also call an external error handler. Same question as
in 1.
3. Paradox files usually have some codepage xxx encoding. The library
can do the conversions on the fly when accessing character fields.
Should this be preffered opposed to gnumerics own recoding functions?
4. I currently use value_new_string_nocopy(str), with str being a
string allocated within the library. Should I rather use
value_new_string(str) and free the memory allocated in the library
afterwards?
5. A paradox database is usually splitted into several files, e.g. a
primary index is put into an extra file. In general it is not
required to read those files, but it can accelerate access.
Is there any way to access those files in a clean way from within
the plugin?
Thanks for your help.
Uwe
--
MMK GmbH, Universitaetsstr. 11, 58097 Hagen
Uwe Steinmann mmk-hagen de
Tel: +2331 840446 Fax: +2331 843920
Attachment:
signature.asc
Description: Digital signature