--- install/smalltalk-2.1.7/gtk/structs.awk Tue Jul 22 10:44:16 2003 +++ work/smalltalk-2.1.7/gtk/structs.awk Tue Feb 24 23:55:17 2004 @@ -147,7 +147,8 @@ if (parent in known_parent) emit_struct(known_parent[parent], parent) else - emit_struct("CObject", parent) + exit "Parse order is wrong" + #emit_struct("CObject", parent) } if (name ~ /^\*/) @@ -172,7 +173,7 @@ { emit_struct(parent, name) - while ($1 != "};") + while ($1 != "};") # FIXME - doesn't handle embedded awkwardnesses read_next_line() } --- install/smalltalk-2.1.7/gtk/funcs.awk Sat Sep 20 08:14:41 2003 +++ work/smalltalk-2.1.7/gtk/funcs.awk Sat Feb 21 01:11:00 2004 @@ -51,6 +51,7 @@ type["GDestroyNotify"] = "__skip_this__" type["GFunc"] = "__skip_this__" type["GWeakNotify"] = "__skip_this__" + type["PangoCoverage"] = "__skip_this__" #FIXME type["gint8"] = "#int" type["guint8"] = "#int" @@ -111,37 +112,32 @@ $0 = substr ($0, RLENGTH + 1) } -$2 ~ /^\**(g[a-z]*|pango)_/ && $1 ~ /[a-zA-Z]/ && $1 !~ /^#/ { - if (match ($2, /^\*+/)) - { - $1 = $1 substr ($2, 1, RLENGTH) - $2 = substr ($2, RLENGTH + 1) - } - - $0 = $0 +match($0, /^[ \t]*([a-zA-Z][a-zA-Z0-9]*[ \t\*]+)((g[a-z]*|pango)_[a-zA-Z0-9_]*)[ \t]*(\(.*)/, first_line) && $0 !~ /\/\*/ { + + first_line[1] = gensub(/[ \t]+/, "", "G", first_line[1]) - cFuncName = $2 + cFuncName = first_line[2] - if (match($2, method_regexp)) - className = class[substr($2, 1, RLENGTH)] - else if (match ($2, /^(g_)?[a-z]*_/)) - className = smalltalkize(toupper(substr($2, 1, RLENGTH - 1))) + if (match(first_line[2], method_regexp)) + className = class[substr(first_line[2], 1, RLENGTH)] + else if (match (first_line[2], /^(g_)?[a-z]*_/)) + className = smalltalkize(toupper(substr(first_line[2], 1, RLENGTH - 1))) if (tolower(className) in correct_case) className = correct_case[tolower(className)] - $2 = substr($2, RLENGTH + 1) - creation = $2 ~ /^(newv?|alloc)($|_)/ + first_line[2] = substr(first_line[2], RLENGTH + 1) + creation = first_line[2] ~ /^(newv?|alloc)($|_)/ # Lose some symmetry for the sake of intuitiveness - self = $2 ~ /(^|_)((un)?ref$|(dis)?connect)/ - if (match($2, /^(draw|paint)_/)) + self = first_line[2] ~ /(^|_)((un)?ref$|(dis)?connect)/ + if (match(first_line[2], /^(draw|paint)_/)) className = "GtkStyle" - smalltalkFuncName = smalltalkize($2) + smalltalkFuncName = smalltalkize(first_line[2]) # create one long string and tokenize it - decl = $0 + decl = first_line[1] " " first_line[2] " " first_line[4] while( match( decl, ";" ) == 0 ) { getline @@ -240,7 +236,7 @@ if (creation) retType = returned(className "*") else - retType = returned(arr[1]) + retType = returned(first_line[1]) if (void) argdecl = "" @@ -255,6 +251,7 @@ # print the declaration + print "'" cFuncName "' printNl!\n" print className (self ? "" : " class") print "\tdefineCFunc: '" cFuncName "'" print "\twithSelectorArgs: '" decl "'" --- install/smalltalk-2.1.7/gtk/Makefile Wed Jan 7 12:23:40 2004 +++ work/smalltalk-2.1.7/gtk/Makefile Thu Feb 26 19:24:45 2004 @@ -300,6 +300,7 @@ pango/pango-tabs.h pango/pango-types.h GTK_FILES = \ + gdk/gdk.h \ gdk/gdkcolor.h gdk/gdkcursor.h gdk/gdkdisplay.h \ gdk/gdkdisplaymanager.h gdk/gdkdnd.h gdk/gdkdrawable.h \ gdk/gdkevents.h gdk/gdkfont.h gdk/gdkgc.h gdk/gdki18n.h gdk/gdkimage.h \ @@ -311,6 +312,7 @@ gdk-pixbuf/gdk-pixbuf.h gdk-pixbuf/gdk-pixbuf-animation.h \ gdk-pixbuf/gdk-pixbuf-loader.h \ \ + gtk/gtk.h \ gtk/gtkaccelgroup.h gtk/gtkaccellabel.h gtk/gtkaccessible.h \ gtk/gtkadjustment.h gtk/gtkalignment.h gtk/gtkarrow.h \ gtk/gtkaspectframe.h gtk/gtkbbox.h gtk/gtkbin.h gtk/gtkbox.h \ @@ -343,6 +345,7 @@ gtk/gtktable.h gtk/gtktearoffmenuitem.h \ gtk/gtktextbuffer.h gtk/gtktextchild.h \ gtk/gtktextmark.h gtk/gtktexttag.h gtk/gtktexttagtable.h \ + gtk/gtktextlayout.h \ gtk/gtktextview.h gtk/gtktipsquery.h gtk/gtktogglebutton.h \ gtk/gtktoolbar.h gtk/gtktooltips.h gtk/gtktreemodel.h \ gtk/gtktreemodelsort.h gtk/gtktreeselection.h gtk/gtktreestore.h \