GTK2 version of xfplan - diffs of first try

Richard Metzger <[email protected]> Wed, 17 Mar 2010 11:13:58 +0100 (CET)
Newsgroups gmane.comp.gnome.apps.fplan
Message-ID <19808655.1006863.1268820838661.JavaMail.fmail@mwmweb028>
SGksCgpJIHRob3VnaHQgSSB0cnkgeGZwbGFuIGEgYml0LCBqdXN0IHRvIGZpbmQgb3V0LCB0aGF0
IHRoZSAwLjggLmRlYiBzZWVtcyB0byBoYXZlIHNvbWUgcHJlcmVxcywgdGhhdCBJJ20gbWlzc2lu
ZyBvbiBVYnVudHUgOS4xMC4gU28gSSB3ZW50IGFoZWFkIGFuZCBjaGVja2VkIG91dCBmcm9tIENW
UyBqdXN0IHRvIGRpc2NvdmVyICB0aGF0IEdUSyBWMSBpcyBuZWVkZWQuCgpIYXZpbmcgZG9uZSBh
IGxpdHRsZSBiaXQgb2YgR1RLMS0+MiBjb252ZXJzaW9uIHdvcmsgYmVmb3JlLCBJIHRob3VnaHQg
SSB0cnkgaXQgYWdhaW4uCgpXaXRoIHRoZSBmb2xsb3dpbmcgRElGRnMgaXQgc2VlbXMgdG8gYnVp
bGQgYW5kIHJ1biBmaW5lLgoKS2luZCByZWdhcmRzLApSaWNoYXJkLgoKLS0tIHhmcGxhbi9NYWtl
ZmlsZSAgICAyMDA5LTEyLTI1IDAxOjU3OjMyLjAwMDAwMDAwMCArMDEwMAorKysgLi4veGZwbGFu
L01ha2VmaWxlICAgIDIwMTAtMDMtMTYgMTY6Mzg6MTAuMDAwMDAwMDAwICswMTAwCkBAIC0xMjgs
NyArMTI4LDggQEAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIERlZmluZSB3aGljaCBkaXJlY3Rv
cmllcyBjb250YWluIHRoZSBncmFwaGljcyBoZWFkZXIgZmlsZXMuIFRoZSBsaW5lcwogIyBiZWxv
dyBhcmUgZm9yIHRoZSBHbm9tZSBhbmQgbm8gZ3VpIGNhc2VzOwotR0ZYX0lOQ0xVREUgPSAkKHNo
ZWxsIGdub21lLWNvbmZpZyAtLWNmbGFncyBnbGliIGd0ayBnbm9tZSBnbm9tZXVpKQorI0dGWF9J
TkNMVURFID0gJChzaGVsbCBnbm9tZS1jb25maWcgLS1jZmxhZ3MgZ2xpYiBndGsgZ25vbWUgZ25v
bWV1aSkKK0dGWF9JTkNMVURFID0gJChzaGVsbCBwa2ctY29uZmlnIC0tY2ZsYWdzIGdsaWItMi4w
IGd0aystMi4wIGxpYmdub21lLTIuMCBsaWJnbm9tZXVpLTIuMCkKICNHRlhfSU5DTFVERSA9IC1J
L3Vzci9vcGVud2luL2luY2x1ZGUKICNHRlhfSU5DTFVERSA9IAogCkBAIC0xMzYsNyArMTM3LDcg
QEAKICMgRGVmaW5lIHdoaWNoIGdyYXBoaWNzIGxpYnJhcmllcyBhcmUgcmVxdWlyZWQgd2hlbiBs
aW5raW5nIHRoZSBleGVjdXRhYmxlLgogIyBUaGUgbGluZXMgYmVsb3cgYXJlIGZvciB0aGUgR25v
bWUsIGFuZCBubyBwcmV2aWV3ZXIgY2FzZXM7CiAjR0ZYX0xJQlMgPSAkKHNoZWxsIGdub21lLWNv
bmZpZyAtLWxpYnMgZ2xpYiBndGsgZ25vbWUgZ25vbWV1aSkKLUdGWF9MSUJTID0gLUwvdXNyL2xp
YiAtbGdub21ldWkgLWxndGsgLWxnZGsgLWxYMTEgLWxnbm9tZQorR0ZYX0xJQlMgPSAtTC91c3Iv
bGliIC1sZ25vbWV1aS0yIC1sZ3RrLXgxMS0yLjAgLWxnZGsteDExLTIuMCAtbFgxMSAtbGdub21l
LTIKICNHRlhfTElCUyA9IC1ML3Vzci9vcGVud2luL2xpYiAtbHh2aWV3IC1sb2xneCAtTC91c3Iv
WDExUjYvbGliIC1sWDExCiAjR0ZYX0xJQlMgPQogCi0tLSB4ZnBsYW4vY2FsbGJhY2tzLmMgICAg
MjAwOC0wMy0xOCAwMzo0Nzo0NC4wMDAwMDAwMDAgKzAxMDAKKysrIC4uL3hmcGxhbi9jYWxsYmFj
a3MuYyAgICAyMDEwLTAzLTE2IDE2OjU5OjMxLjAwMDAwMDAwMCArMDEwMApAQCAtNDE1LDcgKzQx
NSw3IEBACiBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKHBhcmVudCksICJDYWxjdWxh
dG9yIikgOwogZ3RrX3dpbmRvd19zZXRfdHJhbnNpZW50X2ZvcihHVEtfV0lORE9XKHBhcmVudCks
CiBHVEtfV0lORE9XKHRvcGxldmVsKSkgOwotICAgICAgY2FsY3VsYXRvciA9IGdub21lX2NhbGN1
bGF0b3JfbmV3KCkgOworICAgICAgLyogVE9ETyBjYWxjdWxhdG9yID0gZ25vbWVfY2FsY3VsYXRv
cl9uZXcoKSA7IGhhdmVuJ3QgZm91bmQgYSBjYWxjdWxhdG9yIHlldCAqLwogZ3RrX2NvbnRhaW5l
cl9hZGQoR1RLX0NPTlRBSU5FUihwYXJlbnQpLCBjYWxjdWxhdG9yKSA7CiBndGtfc2lnbmFsX2Nv
bm5lY3QoR1RLX09CSkVDVChwYXJlbnQpLCAiZGVsZXRlX2V2ZW50IiwKIEdUS19TSUdOQUxfRlVO
QyhndGtfd2lkZ2V0X2hpZGUpLCBOVUxMKSA7CihJIGFkbWl0IC0ganVzdCBjb21tZW50aW5nIG91
dCB3aGF0IGRvZXNuJ3Qgd29yayBpc24ndCB0aGUgYmVzdCBzdHlsZSwgYnV0IGl0IGlzIG9ubHkg
b25lIG9mIHR3byBwaWVjZXMsIHRoYXQgZGlkbid0IHdvcmsgb3V0IHNvIGZhcikKCi0tLSB4ZnBs
YW4vY2FudmFzLmMgICAgMjAwOC0xMS0xMCAwMToyMDozNi4wMDAwMDAwMDAgKzAxMDAKKysrIC4u
L3hmcGxhbi9jYW52YXMuYyAgICAyMDEwLTAzLTE2IDE1OjU5OjM3LjAwMDAwMDAwMCArMDEwMApA
QCAtNDMzLDcgKzQzMyw4IEBACiByZXR1cm4gOwogCiB3aW5kb3cgPSBjYW52YXMtPndpbmRvdyA7
Ci0gICAgZm9udCA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKGNhbnZhcyktPmZvbnQgOworICAgIC8q
IGZvbnQgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShjYW52YXMpLT5mb250IDsgKi8KKyAgICBmb250
ID0gZ3RrX3N0eWxlX2dldF9mb250KGd0a193aWRnZXRfZ2V0X3N0eWxlKGNhbnZhcykpOwogCiAv
KiBDaG9vc2UgYW4gaW5jcmVtZW50IHRoYXQgcHV0cyB0aGUgbGluZXMgYXQgbGVhc3QgMTUwIHBp
eGVscwogKiBhcGFydC4KCi0tLSB4ZnBsYW4vZGlhbG9nX2hlbHBlci5jICAgIDIwMDgtMDMtMjAg
MDU6MTA6MTcuMDAwMDAwMDAwICswMTAwCisrKyAuLi94ZnBsYW4vZGlhbG9nX2hlbHBlci5jICAg
IDIwMTAtMDMtMTYgMTc6MjA6MDcuMDAwMDAwMDAwICswMTAwCkBAIC00MTEsNyArNDExLDcgQEAK
IHJ2YWwgPSBzdHJ0b3VsKHZhbHVlLCAmdmFsdWUsIDEwKSA7CiBpZiggKnZhbHVlID09ICdjJyB8
fCAqdmFsdWUgPT0gJ0MnICkgewogaWYoIHcgIT0gTlVMTCAmJiAoc3R5bGUgPSBndGtfd2lkZ2V0
X2dldF9zdHlsZSh3KSkgIT0gTlVMTCAmJgotICAgICAgICAgIChmb250ID0gc3R5bGUtPmZvbnQp
ICE9IE5VTEwgKQorICAgICAgICAgIChmb250ID0gZ3RrX3N0eWxlX2dldF9mb250KHN0eWxlKSkg
IT0gTlVMTCApCiBydmFsICo9IGdka19jaGFyX3dpZHRoKGZvbnQsICduJykgOwogZWxzZQogcnZh
bCAqPSAxMCA7CkBAIC00MzcsNyArNDM3LDcgQEAKIHJ2YWwgPSBzdHJ0b3VsKHZhbHVlLCAmdmFs
dWUsIDEwKSA7CiBpZiggKnZhbHVlID09ICdsJyB8fCAqdmFsdWUgPT0gJ0wnICkgewogaWYoIHcg
IT0gTlVMTCAmJiAoc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZSh3KSkgIT0gTlVMTCAmJgot
ICAgICAgICAgIChmb250ID0gc3R5bGUtPmZvbnQpICE9IE5VTEwgKQorICAgICAgICAgIChmb250
ID0gZ3RrX3N0eWxlX2dldF9mb250KHN0eWxlKSkgIT0gTlVMTCApCiBydmFsICo9IGZvbnQtPmFz
Y2VudCArIGZvbnQtPmRlc2NlbnQgOwogZWxzZQogcnZhbCAqPSAxMCA7CkBAIC02MDEsOSArNjAx
LDkgQEAKIHN0eWxlID0gZ3RrX3N0eWxlX2NvcHkgKGd0a193aWRnZXRfZ2V0X3N0eWxlICh3aWRn
ZXQpKTsKIAogLyogUmVsZWFzZSBzdHlsZSdzIHByZXZpb3VzIGZvbnQsIGFzc2lnbiBuZXcgZm9u
dCAqLwotICAgICAgICAgIGdka19mb250X3VucmVmKHN0eWxlLT5mb250KSA7Ci0gICAgICAgICAg
c3R5bGUtPmZvbnQgPSBmb250IDsKLSAgICAgICAgICBnZGtfZm9udF9yZWYoc3R5bGUtPmZvbnQp
OworICAgICAgICAgIGdka19mb250X3VucmVmKGd0a19zdHlsZV9nZXRfZm9udChzdHlsZSkpIDsK
KyAgICAgICAgICBndGtfc3R5bGVfc2V0X2ZvbnQoc3R5bGUsIGZvbnQpIDsKKyAgICAgICAgICBn
ZGtfZm9udF9yZWYoZ3RrX3N0eWxlX2dldF9mb250KHN0eWxlKSk7CiAKIC8qIEF0dGFjaCB0aGUg
bmV3IHN0eWxlIHRvIHRoZSB3aWRnZXQgKi8KIGd0a193aWRnZXRfc2V0X3N0eWxlKHdpZGdldCwg
c3R5bGUpIDsKQEAgLTEwODYsMTAgKzEwODYsMTEgQEAKIHsKIERpYWxvZ1VJSW5mbyAqbGlzdCA9
ICpsaXN0cCA7CiBHdGtXaWRnZXQgKnRleHQgOworICAgIEd0a1RleHRCdWZmZXIgKmJ1ZmZlcjsK
IAotICAgIHRleHQgPSBndGtfdGV4dF9uZXcoTlVMTCwgTlVMTCkgOworICAgIHRleHQgPSBndGtf
dGV4dF92aWV3X25ld193aXRoX2J1ZmZlcihidWZmZXIpIDsKIAotICAgIGd0a190ZXh0X3NldF9l
ZGl0YWJsZShHVEtfVEVYVCh0ZXh0KSwgVFJVRSkgOworICAgIC8qIGd0a190ZXh0X3NldF9lZGl0
YWJsZShHVEtfVEVYVCh0ZXh0KSwgVFJVRSkgOyAqLwogCiBpZiggbGlzdC0+cDEgIT0gTlVMTCAp
CiBndGtfc2lnbmFsX2Nvbm5lY3QoIEdUS19PQkpFQ1QodGV4dCksICJhY3RpdmF0ZSIsCkBAIC0y
MTU2LDkgKzIxNTcsMTAgQEAKIAogCiAjaWZuZGVmICAgIE5PX0dOT01FCi0gICAgaWYoIHN0cmNt
cChrZXksICJzdG9jayIpID09IDAgKSB7Ci0gICAgICAgIHJldHVybiBnbm9tZV9zdG9ja19waXht
YXBfd2lkZ2V0KHBhcmVudCwgZGF0YSkgOwotICAgIH0KKyAgICAvKiBUT0RPIGlmKCBzdHJjbXAo
a2V5LCAic3RvY2siKSA9PSAwICkgeworICAgICAgICAvLyByZXR1cm4gZ25vbWVfc3RvY2tfcGl4
bWFwX3dpZGdldChwYXJlbnQsIGRhdGEpIDsKKyAgICAgICAgcmV0dXJuIGd0a19pbWFnZV9uZXdf
ZnJvbV9zdG9jayhwYXJlbnQsIGRhdGEpIDsKKyAgICB9ICovCiAKIGlmKCBzdHJjbXAoa2V5LCAi
bmFtZSIpID09IDAgKSB7CiByZXR1cm4gZ25vbWVfcGl4bWFwX25ld19mcm9tX2ZpbGUoZGF0YSkg
OwooaGVyZSBpcyBhbm90aGVyIFRPRE8gbGVmdCkKCi0tLSB4ZnBsYW4vbWFwX3dwLmMgICAgMjAw
OC0wMy0xOSAwMDo1Mjo0Mi4wMDAwMDAwMDAgKzAxMDAKKysrIC4uL3hmcGxhbi9tYXBfd3AuYyAg
ICAyMDEwLTAzLTE2IDE2OjAxOjAzLjAwMDAwMDAwMCArMDEwMApAQCAtMTI3LDEwICsxMjcsMTAg
QEAKIGdka19jb2xvcm1hcF9hbGxvY19jb2xvcihjbWFwLCAmYWlycG9ydENvbG9yLCBGQUxTRSwg
VFJVRSkgOwogCiBpZiggYWlycG9ydF9mb250ID09IE5VTEwgKQotICAgICAgYWlycG9ydF9mb250
ID0gZ2RrX2ZvbnRfcmVmKGd0a193aWRnZXRfZ2V0X3N0eWxlKGNhbnZhcyktPmZvbnQpIDsKKyAg
ICAgIGFpcnBvcnRfZm9udCA9IGdka19mb250X3JlZihndGtfc3R5bGVfZ2V0X2ZvbnQoZ3RrX3dp
ZGdldF9nZXRfc3R5bGUoY2FudmFzKSkpIDsKIAogaWYoIG5hdmFpZF9mb250ID09IE5VTEwgKQot
ICAgICAgbmF2YWlkX2ZvbnQgPSBnZGtfZm9udF9yZWYoZ3RrX3dpZGdldF9nZXRfc3R5bGUoY2Fu
dmFzKS0+Zm9udCkgOworICAgICAgbmF2YWlkX2ZvbnQgPSBnZGtfZm9udF9yZWYoZ3RrX3N0eWxl
X2dldF9mb250KGd0a193aWRnZXRfZ2V0X3N0eWxlKGNhbnZhcykpKSA7CiAKIAogbmRiX2JpdG1h
cCA9IGdka19iaXRtYXBfY3JlYXRlX2Zyb21fZGF0YSh3aW4sCgoKLS0tIHhmcGxhbi9wcmVmZXJl
bmNlcy5jICAgIDIwMDgtMDMtMjAgMDQ6MTQ6MTIuMDAwMDAwMDAwICswMTAwCisrKyAuLi94ZnBs
YW4vcHJlZmVyZW5jZXMuYyAgICAyMDEwLTAzLTE2IDE2OjEwOjUzLjAwMDAwMDAwMCArMDEwMApA
QCAtMjU4LDkgKzI1OCw5IEBACiBpZiggZm9udERpYWxvZyA9PSBOVUxMICkgewogZm9udERpYWxv
ZyA9IEdUS19GT05UX1NFTEVDVElPTl9ESUFMT0coCiBndGtfZm9udF9zZWxlY3Rpb25fZGlhbG9n
X25ldygiRm9udCBzZWxlY3QiKSkgOwotICAgICAgZ3RrX2ZvbnRfc2VsZWN0aW9uX2RpYWxvZ19z
ZXRfZmlsdGVyKAorICAgICAgLyogZ3RrX2ZvbnRfc2VsZWN0aW9uX2RpYWxvZ19zZXRfZmlsdGVy
KAogZm9udERpYWxvZywgR1RLX0ZPTlRfRklMVEVSX0JBU0UsCi0gICAgICAgIEdUS19GT05UX0FM
TCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgcmVnKSA7CisgICAgICAgIEdUS19GT05U
X0FMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgcmVnKSA7ICovCiAKIGd0a19zaWdu
YWxfY29ubmVjdCggR1RLX09CSkVDVChmb250RGlhbG9nKSwgImRlbGV0ZV9ldmVudCIsCiBHVEtf
U0lHTkFMX0ZVTkMoZ3RrX3dpZGdldF9oaWRlX29uX2RlbGV0ZSksIE5VTEwpIDsKKGFub3RoZXIg
aW5zdGFuY2Ugb2YganVzdCBjb21tZW50aW5nIHRoaW5ncyBvdXQpCgotLS0geGZwbGFuL3dpbmRv
d3MuYyAgICAyMDA4LTA1LTIxIDAxOjI4OjE5LjAwMDAwMDAwMCArMDIwMAorKysgLi4veGZwbGFu
L3dpbmRvd3MuYyAgICAyMDEwLTAzLTE2IDE1OjU2OjU3LjAwMDAwMDAwMCArMDEwMApAQCAtNDA4
LDcgKzQwOCw3IEBACiBHZGtGb250ICAgICpmb250IDsKIAogaWYoIHcgIT0gTlVMTCAmJiAoc3R5
bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZSh3KSkgIT0gTlVMTCAmJgotICAgICAgICAoZm9udCA9
IHN0eWxlLT5mb250KSAhPSBOVUxMICkKKyAgICAgICAgKGZvbnQgPSBndGtfc3R5bGVfZ2V0X2Zv
bnQoc3R5bGUpKSAhPSBOVUxMICkKIHdpZHRoICo9IGdka19jaGFyX3dpZHRoKGZvbnQsICduJykg
OwogZWxzZQogd2lkdGggKj0gMTAgOwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpHUkFUSVMgZsO8ciBhbGxlIFdFQi5ERS1OdXR6ZXI6
IERpZSBtYXhkb21lIE1vdmllLUZMQVQhCkpldHp0IGZyZWlzY2hhbHRlbiB1bnRlciBodHRwOi8v
bW92aWVmbGF0LndlYi5kZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpmcGxhbi1saXN0IG1haWxpbmcgbGlzdApmcGxhbi1saXN0QGdub21lLm9yZwpodHRw
Oi8vbWFpbC5nbm9tZS5vcmcvbWFpbG1hbi9saXN0aW5mby9mcGxhbi1saXN0Cg==