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