At 09:44 28.09.03 -0700, Jeff Trefftzs wrote:
>Hi all,
>
>As we are about to move to the next stage of gimpery, I have begun
>looking closely at my large collection of plug-ins, many of which I
>remember compiling with GIMP_ENABLE_COMPAT_CRUFT, and wondering how to
>make them usable again under the new regime.  Can anybody point me to a
>porting guide that identifies the changes needed to go from the old
>(well, present) api to that used in gimp-1.3.20 and up?
>
>I have already written a quckie decrufter perl script to obviate the
>need to use GIMP_ENABLE_COMPAT_CRUFT, and I have found a few changes
>between present stable usage and the 1.3.20 version, but I'm still
>wondering what else I'm missing.  
>
Attached you'll find my small porting helper (a little bit like a
working documentation; sorry if it's in the wrong scripting language :-)

Beside that there were some smaller changes required as

GimpRGB instead of guchar r,g,b;

deleting :
  color_cube = gimp_color_cube ();
  gtk_preview_set_color_cube (color_cube[0], color_cube[1],
                              color_cube[2], color_cube[3]);

Have Fun,
        Hans
ApiPrefixChanges = (
        # old prefix, new prefix, identifiers rest
        ("G", "Gimp",
        (
                "Drawable",
                "Param", 
                "ParamDef",
                "PixelRgn",
                "PlugInInfo",
                "Tile",
        )),
        ("PARAM_", "GIMP_PDB_",
        (
                "CHANNEL",
                "COLOR",
                "DISPLAY",
                "DRAWABLE",
                "FLOAT",
                "LAYER",
                "IMAGE", 
                "INT32",
                "INT16",
                "INT8",
                "PARASITE",
                "SELECTION",
                "STRING",
                "STRINGARRAY",
                "STATUS",
        )),
        ("PROC_", "GIMP_",
        (
                "EXTENSION",
                #not "PLUG_IN",
                "TEMPORARY"
        )),
        ("RUN_", "GIMP_RUN_",
        (
                "INTERACTIVE",
                "NONINTERACTIVE",
                "WITH_LAST_VALS"        
        )),
        ("STATUS_", "GIMP_PDB_",
        (
                "CALLING_ERROR",
                "EXECUTION_ERROR",
                "SUCCESS"
        )),
        ("", "GIMP_",
        (
                # GimpImageType
                "RGB_IMAGE",
                "RGBA_IMAGE",
                "GRAY_IMAGE",
                "GRAYA_IMAGE",
                "INDEXED_IMAGE",
                "INDEXEDA_IMAGE",
                # GimpLayerModeEffects
                "NORMAL_MODE", 
                "DISSOLVE_MODE",
                "BEHIND_MODE"
                # ...
        ))
)

OtherChanges = (
        ("GDrawableType", "GimpImageType"),
        ("GRunModeType", "GimpRunMode"),
        ("GStatusType", "GimpPDBStatusType"),
        ("PROC_PLUG_IN", "GIMP_PLUGIN"),
        ("gimp_drawable_color", "gimp_drawable_is_rgb"),
        ("gimp_drawable_gray", "gimp_drawable_is_gray"),
        ("gimp_drawable_indexed", "gimp_drawable_is_indexed"),
)

import os, re, sys

# create a dictionary with all the changes to apply
changes = []
sBefore = r"(^|[ \t(=])"
sAfter = r"([ \t,;:()=])"
for t1 in ApiPrefixChanges :
        s1PreOld = t1[0]
        s1PreNew = t1[1]
        for t2 in t1[2] :
                r1 = re.compile(sBefore + s1PreOld + t2 + sAfter, re.DOTALL | 
re.MULTILINE)
                r2 = r"\1" + s1PreNew + t2 + r"\2"
                changes.append((r1, r2))
for t1 in OtherChanges :
        r1 = re.compile(sBefore + t1[0] + sAfter, re.DOTALL | re.MULTILINE)
        r2 = r"\1" + t1[1] + r"\2"
        changes.append((r1, r2))

sFile = sys.argv[1]
sFileBac = sFile + ".pre13"
os.rename(sFile, sFileBac)
f = open(sFileBac)
sAll = f.read()
f.close()

for t in changes :
        print t[1][2:-2]
        sAll = t[0].sub(t[1], sAll)

f = open(sFile, "w")
f.write(sAll)
        
-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to 
get along without it.                -- Dilbert
_______________________________________________
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer

Reply via email to