StdProp overhaul, take 2



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.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]