I just saw this log message:
>1999-10-10 Fredrik Hallenberg <[EMAIL PROTECTED]>
>
> * configure.in:
> * app_procs.c:
> * objects/flowchart/box.c
> * objects/flowchart/ellipse.c
> * objects/flowchart/flowchart.c
> Use gmodule for dynamic linking. As gmodule is using
> RTLD_GLOBAL i had to change flowchart box and ellipse
> so the typenames doesn't conflict with the standard
> box and ellipse.
I had not realised that gmodule hard codes the RTLD_GLOBAL flag. This
could cause some problems in the future if we have heaps of object
libraries. There are a few other ways around this:
1) create a file objects/object_symbols.sym that contains the lines:
get_version
register_objects
register_sheets
Then edit the makefile and add "-export-symbols
$(srcdir)/../object_symbols.sym" to the end of the libtool link flags.
This will limit the number of symbols exported by the library to a
minimum, thus getting around the problem. Unfortunately it says that
this option has no effect on some systems.
2) Try to get gmodule modified to let you turn off the RTLD_GLOBAL flag.
3) Start using a naming scheme for global variables in the object
libraries where the name of the library is prepended to the variable
name.
3) Switch back to using dlopen.
It would be nice to use gmodule (if anyone wanted to port dia to a
unix that uses DLD, windows or OS/2, it would greatly simplify things).
I have also done a bit more work on the custom shape code. I have got to
a stage where I think the file format will handle most shapes people want
to draw. It gives the person creating the shape control over line styles,
so you can override the user's setting for parts of the shape. One area
that is still not perfect is selection. Right now it is just using a
bounding box for selection purposes.
The distance algorithms for bezier paths and polygons look like they would
be most difficult. If anyone else wants to take a crack at this, feel
free.
James.
--
Email: [EMAIL PROTECTED]
WWW: http://www.daa.com.au/~james/