Hi all,
I think I've reached a stage where my new property code "sort of" works
(well, it looks like it really works, at least I've been able to fix the two
or three crashes that happened. And Electric Fence does not see anything
wrong, which I consider already a nice feat, given the amount of pressure I
put on libmalloc...). I'm going to commit it tomorrow, perhaps before Nemo
runs, together with the "libxml2-in-libxml1" patch.
I wouldn't mind (no, I actually would appreciate a lot) if someone cared
enough to have a look at it... It sits there:
http://traminer.dyndns.org/dia/dia-newprops2.patch.gz
(the previous version didn't include the new files. D'oh !)
Oh, I've seen a lot of bizarre "foo.c is in the way" messages from CVS this
morning. Lars, is it you ?
The provisional changelog entry follows.
-- Cyrille
* lib/properties.[ch]: split in a lot of pieces:
* lib/prop_*.[ch] (NEW): all property types are now first-class
objects, inheriting from the original abstract Property type.
* lib/propdesc.c (NEW): property description handling routines
* lib/propoffsets.c (NEW): property offset handling routines
* lib/proplist.c (NEW): property list handling routines
* lib/propobject.c (NEW): property list <-> object routines
* lib/propregistry.c (NEW): holds the PropertyType-->PropertyOps
relations.
* lib/propinternals.h: prototypes for stuff not usually needed by
the outside of StdProps.
* lib/Makefile.am: a lot of new files have been added...
THE ABOVE CHANGES ARE MAJOR CHANGES AND AFFECT THE WHOLE TREE, IN
BOTH INTERFACES AND RUN-TIME STABILITY.
* objects/Makefile.am: disabled the construction of EML. I'm not
touching these until a certain issue is solved (or this module
removed).
* app/app_procs.c/app_init(): removed a disabled call to a
non-existent routine. Added a call to stdprops_init().
* app/group.c:
* objects/**/*.c: adapted all stdprop-using objects to the
interface changes.
* app/commands.c:
The macros PROP_VALUE_* have disappeared. Adapter to using the new
interface.
* app/disp_callbacks.c: killed a warning.
* lib/dia_xml.[ch]: sprinkled "const" modifiers.
* lib/object.h: removed the incestuous relationship with
properties.h' contents. Now a Property list is a GPtrArray -->
object interface change !
* lib/plug-ins.h: bumped up DIA_PLUGIN_API_VERSION
* configure.in: added the UNICODE-related progress defines.
* plug-ins/dxf/dxf-import.c:
* plug-ins/xfig/xfig-import.c:
* plug-ins/Makefile.am: PROP_VALUE_* macros have been removed. A
*partial* convertion to the new API has been made, but this is
still unfinished. In the mean-time, the DXF, XFig, and Python
plug-ins have been disabled (it's really only temporary).
* lib/font.c: conditionally disabled Lars' debugging messages.
* configure.in:
* lib/geometry.h: On Solaris and perhaps other systems, finite()
is defined in ieeefp.h rather than in math.h. Patch from Andrew
Halper <ashalper@acm.org> with further modifications, isinf() is
provided by -lsunmath (sunmath.h).
* lib/font.c: bracketed the definition of DiaFontFamily with
#ifdef HAVE_FREETYPE.
* plug-ins/python/**/*: I gave up converting these; I can't
compile --with-python (problems with object.h defined both by us
and by Python). I'll gladly help whomever cares to fix it !
(or, fix it myself if someone tells me how to compile it).
--
Grumpf.