From koffice-devel Sun May 06 14:46:56 2001 From: Daniel Naber Date: Sun, 06 May 2001 14:46:56 +0000 To: koffice-devel Subject: Patch: thesaurus using wordnet X-MARC-Message: https://marc.info/?l=koffice-devel&m=98916067423702 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--------------Boundary-00=_825XEA7K7APIO46RO5H5" --------------Boundary-00=_825XEA7K7APIO46RO5H5 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, here's a very unfinished patch that adds a thesaurus to KWord. Several=20 things need to be decided before this can go in. Also I cannot do this al= l=20 alone, but I need quite some help. Anyway, I think it's such a nice=20 feature that people will surely support me :-) You need Wordnet to use this: http://www.cogsci.princeton.edu/~wn/ (it's ~13 MB big!) Issues: 1. Wordnet 1.6 has a bug that makes it crash often. It is very easy to fi= x=20 (see their release notes), but it is in the release and a new release is=20 not in sight. Working around the bug is possible but not nice (involves=20 parsing text output). 2. AFAIK wordnet is not part of any Linux distibution. The license looks=20 very liberal too me (someone please check it), so this might change once=20 KWord can use it? 3. I don't know anything about configure, so the patch works on my system= ,=20 but probably not on other people's configurations. 4. Integration into KWord doesn't work, because I don't know such simple=20 things like "get the word the cursor is over" - well, I never worked with= =20 KWord before... 5. Several fixme's in the code. Especially the current results are=20 incomplete because I didn't manage to iterate over a "char **" list=20 without crashes. I need help with this (i.e. a fix, I already tried=20 everything I can think of). Also the patch needs a cleanup. 6. Currently only English is supported and you cannot just "translate"=20 Wordnet. However, there are data files for other languages, but with othe= r=20 licenses. 7. Maybe this should not be part of KWord but part of kdelibs, similar to= =20 KSpell? It could even be used as a stand alone app. Please post comments and improvements. I won't get much further without=20 help. Regards Daniel --=20 Daniel Naber, Paul-Gerhardt-Str. 2, 33332 Guetersloh, Germany Tel. 05241-59371, Mobil 0170-4819674 --------------Boundary-00=_825XEA7K7APIO46RO5H5 Content-Type: text/x-c; charset="iso-8859-1"; name="wordnet.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wordnet.diff" SW5kZXg6IGt3dmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rb2ZmaWNlL2t3 b3JkL2t3dmlldy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ1CmRpZmYgLXUgLXIxLjQ1IGt3 dmlldy5oCi0tLSBrd3ZpZXcuaAkyMDAxLzA1LzAzIDE5OjQ0OjAzCTEuNDUKKysrIGt3dmlldy5o CTIwMDEvMDUvMDYgMTQ6MTI6MjUKQEAgLTE3Niw2ICsxNzYsNyBAQAogICAgIHZvaWQgZm9ybWF0 UGFnZSgpOwogICAgIHZvaWQgZm9ybWF0RnJhbWVTZXQoKTsKIAorICAgIHZvaWQgZXh0cmFXb3Jk SW5mbygpOwogICAgIHZvaWQgZXh0cmFTcGVsbGluZygpOwogICAgIHZvaWQgZXh0cmFBdXRvRm9y bWF0KCk7CiAgICAgdm9pZCBleHRyYVN0eWxpc3QoKTsKQEAgLTM1Myw2ICszNTQsNyBAQAogICAg IEtBY3Rpb24gKmFjdGlvblRhYmxlVW5ncm91cDsKICAgICBLQWN0aW9uICphY3Rpb25UYWJsZURl bGV0ZTsKIAorICAgIEtBY3Rpb24gKmFjdGlvbkV4dHJhV29yZEluZm87CiAgICAgS0FjdGlvbiAq YWN0aW9uRXh0cmFTcGVsbENoZWNrOwogICAgIEtBY3Rpb24gKmFjdGlvbkV4dHJhQ3JlYXRlVGVt cGxhdGU7CiAKSW5kZXg6IGt3dmlldy5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9rZGUv a29mZmljZS9rd29yZC9rd3ZpZXcuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTU1CmRpZmYg LXUgLXIxLjE1NSBrd3ZpZXcuY2MKLS0tIGt3dmlldy5jYwkyMDAxLzA1LzA0IDExOjQyOjAyCTEu MTU1CisrKyBrd3ZpZXcuY2MJMjAwMS8wNS8wNiAxNDoxMjo1NApAQCAtNTgsNiArNTgsNyBAQAog I2luY2x1ZGUgImt3Y29tbWFuZC5oIgogI2luY2x1ZGUgImZvbnRkaWEuaCIKICNpbmNsdWRlICJj b3VudGVyLmgiCisjaW5jbHVkZSAid29yZGluZm8uaCIKIAogCiAjaW5jbHVkZSA8a29NYWluV2lu ZG93Lmg+CkBAIC0yNTcsNiArMjU4LDkgQEAKICAgICBLU3RkQWN0aW9uOjpmaW5kKCB0aGlzLCBT TE9UKCBlZGl0RmluZCgpICksIGFjdGlvbkNvbGxlY3Rpb24oKSwgImVkaXRfZmluZCIgKTsKICAg ICBLU3RkQWN0aW9uOjpyZXBsYWNlKCB0aGlzLCBTTE9UKCBlZGl0UmVwbGFjZSgpICksIGFjdGlv bkNvbGxlY3Rpb24oKSwgImVkaXRfcmVwbGFjZSIgKTsKICAgICBhY3Rpb25FZGl0U2VsZWN0QWxs ID0gS1N0ZEFjdGlvbjo6c2VsZWN0QWxsKCB0aGlzLCBTTE9UKCBlZGl0U2VsZWN0QWxsKCkgKSwg YWN0aW9uQ29sbGVjdGlvbigpLCAiZWRpdF9zZWxlY3RhbGwiICk7CisgICAgKHZvaWQpIG5ldyBL QWN0aW9uKCBpMThuKCAiUmVwbGFjZSBieSByZWxhdGVkIHdvcmQuLi4iICksIDAsCisgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKCBleHRyYVdvcmRJbmZvKCkgKSwgCisgICAgICAg ICAgICAgICAgICAgICAgICBhY3Rpb25Db2xsZWN0aW9uKCksICJleHRyYV93b3JkaW5mbyIgKTsK ICAgICBhY3Rpb25FeHRyYVNwZWxsQ2hlY2sgPSBLU3RkQWN0aW9uOjpzcGVsbGluZyggdGhpcywg U0xPVCggZXh0cmFTcGVsbGluZygpICksIGFjdGlvbkNvbGxlY3Rpb24oKSwgImV4dHJhX3NwZWxs Y2hlY2siICk7CiAKIApAQCAtMTYyMSw4ICsxNjI1LDE4IEBACiB9CiAKIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KK3Zv aWQgS1dWaWV3OjpleHRyYVdvcmRJbmZvKCkKK3sJCisgICAgUVN0cmluZyB0ZXJtID0gImhvdXNl IjsgICAgICAgICAgLy8gZml4bWUhIHVzZSB0aGUgd29yZCB1bmRlciB0aGUgY3Vyc29yCisgICAg S1dXb3JkSW5mbyAqd2kgPSBuZXcgS1dXb3JkSW5mbygwTCwgIndvcmRpbmZvIiwgdGVybSwgaTE4 bigiUmVwbGFjZSAnJTEnIikuYXJnKHRlcm0pKTsKKyAgICB3aS0+c2hvdygpOworfQorCisvKj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSovCiB2b2lkIEtXVmlldzo6ZXh0cmFTcGVsbGluZygpCiB7CisKKwogICAgIGlmIChrc3Bl bGwpIHJldHVybjsgLy8gQWxyZWFkeSBpbiBwcm9ncmVzcwogICAgIG1fc3BlbGxDdXJyRnJhbWVT ZXROdW0gPSAtMTsKICAgICBrc3BlbGwgPSBuZXcgS1NwZWxsKCB0aGlzLCBpMThuKCAiU3BlbGwg Q2hlY2tpbmciICksIHRoaXMsIFNMT1QoIHNwZWxsQ2hlY2tlclJlYWR5KCkgKSwgZG9jLT5nZXRL U3BlbGxDb25maWcoKSApOwpJbmRleDogTWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2hvbWUva2RlL2tvZmZpY2Uva3dvcmQvTWFrZWZpbGUuYW0sdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMTIzCmRpZmYgLXUgLXIxLjEyMyBNYWtlZmlsZS5hbQotLS0gTWFrZWZpbGUuYW0JMjAwMS8w NS8wNCAxNTo1Njo0NgkxLjEyMworKysgTWFrZWZpbGUuYW0JMjAwMS8wNS8wNiAxNDoxMzo1MQpA QCAtMSw3ICsxLDcgQEAKIAogS0RFX0NYWEZMQUdTID0gJChVU0VfUlRUSSkKIElOQ0xVREVTID0g JChLT0ZGSUNFX0lOQ0xVREVTKSAtSSQodG9wX3NyY2RpcikvbGliL2tmb3JtdWxhMiBcCi0JLUkk KHRvcF9zcmNkaXIpL3F0M3N0dWZmICQoYWxsX2luY2x1ZGVzKQorCS1JJCh0b3Bfc3JjZGlyKS9x dDNzdHVmZiAkKGFsbF9pbmNsdWRlcykgLUkvdXNyL2xvY2FsL3dvcmRuZXQxLjYvaW5jbHVkZQog CiAjIyBUaGUgcGFydAoga2RlX21vZHVsZV9MVExJQlJBUklFUyA9IGxpYmt3b3JkcGFydC5sYSAK QEAgLTE2LDEwICsxNiwxMSBAQAogICAgICAgICAgICAgICAgIGNvbnRlbnRzLmNjIGNvdW50ZXIu Y2Mgc3R5bGlzdC5jYyBcCiAgICAgICAgICAgICAgICAgYm9yZGVyLmNjIHJlc2l6ZWhhbmRsZXMu Y2Mga3djb21tYW5kLmNjIFwKIAkJYXV0b2Zvcm1hdC5jYyBhdXRvZm9ybWF0ZGlhLmNjIGZvbnRk aWEuY2MgXAotCQl2YXJpYWJsZS5jYyB2YXJpYWJsZWRsZ3MuY2Mgc2VyaWFsbGV0dGVyLmNjCisJ CXZhcmlhYmxlLmNjIHZhcmlhYmxlZGxncy5jYyBzZXJpYWxsZXR0ZXIuY2MgXAorCQl3b3JkaW5m by5jYwogCiBsaWJrd29yZHBhcnRfbGFfTERGTEFHUyA9ICQoYWxsX2xpYnJhcmllcykgJChLREVf UExVR0lOKQotbGlia3dvcmRwYXJ0X2xhX0xJQkFERCA9IC4uL2xpYi9rb2ZmaWNldWkvbGlia29m ZmljZXVpLmxhIC4uL2xpYi9rZm9ybXVsYTIvbGlia2Zvcm11bGEyLmxhIC4uL3F0M3N0dWZmL2xp YnF0M3N0dWZmLmxhIC1sa3NwZWxsCitsaWJrd29yZHBhcnRfbGFfTElCQUREID0gLi4vbGliL2tv ZmZpY2V1aS9saWJrb2ZmaWNldWkubGEgLi4vbGliL2tmb3JtdWxhMi9saWJrZm9ybXVsYTIubGEg Li4vcXQzc3R1ZmYvbGlicXQzc3R1ZmYubGEgLWxrc3BlbGwgLWx3bgogbGlia3dvcmRwYXJ0X2xh X01FVEFTT1VSQ0VTID0gQVVUTwogCiAjIyBUaGUga2RlaW5pdCBsb2FkYWJsZSBtb2R1bGUK --------------Boundary-00=_825XEA7K7APIO46RO5H5 Content-Type: text/x-c; charset="iso-8859-1"; name="wordinfo.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wordinfo.h" LyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAgIENvcHlyaWdodCAoQykg MjAwMSBEYW5pZWwgTmFiZXIgPGRhbmllbC5uYWJlckB0LW9ubGluZS5kZT4KCiAgIFRoaXMgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs aWMKICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyCiAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogICBM aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAogICBCb3N0b24sIE1BIDAyMTEx LTEzMDcsIFVTQS4KKi8KCiNpZm5kZWYga3dvcmRpbmZvX2gKI2RlZmluZSBrd29yZGluZm9faAoK I2luY2x1ZGUgPHFsYXlvdXQuaD4KCiNpbmNsdWRlIDxrZGlhbG9nYmFzZS5oPgojaW5jbHVkZSA8 a2NvbWJvYm94Lmg+CiNpbmNsdWRlIDxxbGlzdGJveC5oPgoKI2luY2x1ZGUgImRlZnMuaCIKCi8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCi8qIENsYXNzOiBLV1dvcmRJbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpjbGFzcyBLV1dvcmRJbmZvIDogcHVi bGljIEtEaWFsb2dCYXNlCnsKICAgIFFfT0JKRUNUCgpwdWJsaWM6CiAgICBLV1dvcmRJbmZvKCBR V2lkZ2V0ICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsIFFTdHJpbmcgdGVybSwgUVN0cmluZyBj YXB0aW9uICk7Cgpwcm90ZWN0ZWQgc2xvdHM6CiAgICB2aXJ0dWFsIHZvaWQgc2xvdFVzZXIxQ2xp Y2tlZCgpOwogICAgdmlydHVhbCB2b2lkIHNsb3RVc2VyMkNsaWNrZWQoKTsKICAgIHZpcnR1YWwg dm9pZCBzbG90RmluZFRlcm0oaW50IGluZGV4KTsKICAgIHZpcnR1YWwgdm9pZCBzbG90RmluZFRl cm0oY29uc3QgUVN0cmluZyAmdGVybSk7Cgpwcm90ZWN0ZWQ6CiAgICBRVkJveCAqbGF5b3V0Owog ICAgS0hpc3RvcnlDb21ibyAqZWRpdDsKICAgIFFMaXN0Qm94ICpsaXN0Ym94Owp9OwoKI2VuZGlm Cg== --------------Boundary-00=_825XEA7K7APIO46RO5H5 Content-Type: text/x-c; charset="iso-8859-1"; name="wordinfo.cc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wordinfo.cc" LyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CiAgIENvcHlyaWdodCAoQykg MjAwMSBEYW5pZWwgTmFiZXIgPGRhbmllbC5uYWJlckB0LW9ubGluZS5kZT4KCiAgIFRoaXMgbGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs aWMKICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyCiAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogICBM aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAogICBCb3N0b24sIE1BIDAyMTEx LTEzMDcsIFVTQS4KKi8KCi8qClRPRE8gKDIwMDEtMDUtMDYsIGRuYWJlcik6Cgotd29yZG5ldCBs aWNlbnNlIG9rYXk/Ci1maXggYWxsIHRoZSAiZml4bWUicywgZXNwZWNpYWxseSB0aGUgaXRlcmF0 aW9uCi13b3JkbmV0IDEuNiBrbm93biBidWcgLT4gY3Jhc2ggKGUuZy4gd2l0aCAidGFibGUiKQot Y29uZmlndXJlIGNoZWNrCi1yZXR1cm4gdmFsdWU/CgoqLwojaW5jbHVkZSAid29yZGluZm8ubW9j IgoKLy8gZml4bWU6IHJlbW92ZSB1c2VsZXNzIGluY2x1ZGVzCiNpbmNsdWRlIDxxd2lkZ2V0Lmg+ CiNpbmNsdWRlIDxxbGF5b3V0Lmg+CiNpbmNsdWRlIDxxbGFiZWwuaD4KI2luY2x1ZGUgPHFzdHJp bmcuaD4KI2luY2x1ZGUgPHFsaXN0Ym94Lmg+CiNpbmNsdWRlIDxxdmJveC5oPgoKI2luY2x1ZGUg PGthcHAuaD4KI2luY2x1ZGUgPGttZXNzYWdlYm94Lmg+CiNpbmNsdWRlIDxrbG9jYWxlLmg+CiNp bmNsdWRlIDxrZGVidWcuaD4KI2luY2x1ZGUgPGtjb21ib2JveC5oPgoKI2luY2x1ZGUgPHN0ZGxp Yi5oPgoKLy8gZ2V0IGFjY2VzcyB0byB0aGUgd29yZG5ldCBDIEFQSToKZXh0ZXJuICJDIiB7CiNp bmNsdWRlIDx3bi5oPgp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBDbGFzczogS1dXb3JkSW5mbyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ki8KS1dXb3JkSW5mbzo6S1dXb3JkSW5mbyggUVdpZGdldCogcGFyZW50LCBjb25zdCBj aGFyKiBuYW1lLCBRU3RyaW5nIHRlcm0sIFFTdHJpbmcgY2FwdGlvbiApCiAgICA6IEtEaWFsb2dC YXNlKCBwYXJlbnQsIG5hbWUsIGZhbHNlLCBjYXB0aW9uLCBVc2VyMXxVc2VyMnxDYW5jZWwsIFVz ZXIyLCBmYWxzZSwKICAgIGkxOG4oIlJlcGxhY2UiKSwgaTE4bigiR28iKSkKewogICAgaWYoIHdu aW5pdCgpICkgewoJICAgIEtNZXNzYWdlQm94OjplcnJvcigwTCwgaTE4bigid25pbml0KCkgZmFp bGVkLiBDaGVjayBpZiB3b3JkbmV0IDEuNiBpcyBpbnN0YWxsZWQgYW5kIGlmICRXTkhPTUUgaXMg c2V0LiIpKTsKCSAgICByZXR1cm47CiAgICB9CQoKICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHVz ZXIxQ2xpY2tlZCgpKSwgdGhpcywgU0xPVChzbG90VXNlcjFDbGlja2VkKCkpKTsKICAgIGNvbm5l Y3QodGhpcywgU0lHTkFMKHVzZXIyQ2xpY2tlZCgpKSwgdGhpcywgU0xPVChzbG90VXNlcjJDbGlj a2VkKCkpKTsKCiAgICBsYXlvdXQgPSBtYWtlVkJveE1haW5XaWRnZXQoKTsKICAgIC8vIGZpeG1l OiBzZWxlY3Rpbmcgb25lIGl0ZW0gZnJvbSB0aGUgaGlzdG9yeSBzaG91bGQgaW1tZWRpYXRlbHkg Z28gdGhlcmUKICAgIGVkaXQgPSBuZXcgS0hpc3RvcnlDb21ibyhsYXlvdXQpOwogICAgS0NvbXBs ZXRpb24gKmNvbXAgPSBlZGl0LT5jb21wbGV0aW9uT2JqZWN0KCk7CiAgICBjb25uZWN0KGVkaXQs IFNJR05BTChyZXR1cm5QcmVzc2VkKGNvbnN0IFFTdHJpbmcmKSksIGNvbXAsIFNMT1QoYWRkSXRl bShjb25zdCBRU3RyaW5nJikpKTsKICAgIGNvbm5lY3QoZWRpdCwgU0lHTkFMKHJldHVyblByZXNz ZWQoY29uc3QgUVN0cmluZyYpKSwgdGhpcywgU0xPVChzbG90RmluZFRlcm0oY29uc3QgUVN0cmlu ZyYpKSk7CiAgICBlZGl0LT5pbnNlcnRJdGVtKHRlcm0sIDApOwoKICAgIGxpc3Rib3ggPSBuZXcg UUxpc3RCb3gobGF5b3V0KTsKICAgIGNvbm5lY3QobGlzdGJveCwgU0lHTkFMKHNlbGVjdGVkKGlu dCkpLCB0aGlzLCBTTE9UKHNsb3RGaW5kVGVybShpbnQpKSk7CiAgICBzbG90RmluZFRlcm0odGVy bSk7CiAgICAKICAgIHNldEluaXRpYWxTaXplKFFTaXplKDMwMCwgNDAwKSk7Cn0KCi8qPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSovCnZvaWQgS1dXb3JkSW5mbzo6c2xvdEZpbmRUZXJtKGludCBpbmRleCkKewogICAgUVN0cmlu ZyB0ZXJtID0gbGlzdGJveC0+dGV4dChpbmRleCkuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICBrZERl YnVnKCkgPDwgIktXV29yZEluZm86OnNsb3RGaW5kVGVybSgiIDw8IGluZGV4IDw8ICIpIC0tICIg PDwgdGVybSA8PCBlbmRsOwogICAgZWRpdC0+aW5zZXJ0SXRlbSh0ZXJtLCAwKTsKICAgIGVkaXQt PnNldEN1cnJlbnRJdGVtKDApOwogICAgc2xvdEZpbmRUZXJtKHRlcm0pOwp9CgovKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q Lwp2b2lkIEtXV29yZEluZm86OnNsb3RGaW5kVGVybShjb25zdCBRU3RyaW5nICZ0ZXJtKQp7CiAg ICAvKiAKICAgIEZyb20gdGhlIHdvcmRuZXQgZG9jIChjYW4gYmUgZGVsZXRlZCBvbmNlIHdlIGdl dCB0aGlzIHJpZ2h0KToKCiAgICBTaW5jZSB0aGUgU3luc2V0IHN0cnVjdHVyZSBpcyB1c2VkIHRv IHJlcHJlc2VudCB0aGUgc3luc2V0cyBmb3IgYm90aAogICAgd29yZCBzZW5zZXMgYW5kIHBvaW50 ZXJzLCB0aGUgcHRybGlzdCBhbmQgbmV4dHNzIGZpZWxkcyBoYXZlIGRpZmZlcmVudAogICAgbWVh bmluZ3MgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHN0cnVjdHVyZSBpcyBhIHdvcmQgc2Vuc2Ug b3IgcG9pbnRlci4KICAgIFRoaXMgY2FuIG1ha2UgbmF2aWdhdGlvbiB0aHJvdWdoIHRoZSBsaXN0 cyByZXR1cm5lZCBieSBmaW5kdGhlaW5mb19kcygpCiAgICBjb25mdXNpbmcuCgogICAgIE5hdmln YXRpb24gdGhyb3VnaCB0aGUgcmV0dXJuZWQgbGlzdCBpbnZvbHZlcyB0aGUgZm9sbG93aW5nOgoK ICAgIEZvbGxvd2luZyB0aGUgbmV4dHNzIGNoYWluIGZyb20gdGhlIHN5bnNldCByZXR1cm5lZCBt b3ZlcyB0aHJvdWdoIHRoZQogICAgdmFyaW91cyBzZW5zZXMgb2Ygc2VhcmNoc3RyIC4gTlVMTCAg aW5kaWNhdGVzIHRoYXQgZW5kIG9mIHRoZSBjaGFpbiBvZgogICAgc2Vuc2VzLgoKICAgIEZvbGxv d2luZyB0aGUgcHRybGlzdCBjaGFpbiBmcm9tIGEgU3luc2V0IHN0cnVjdHVyZSByZXByZXNlbnRp bmcgYSBzZW5zZQogICAgdHJhY2VzIHRoZSBoaWVyYXJjaHkgb2YgdGhlIHNlYXJjaCByZXN1bHRz IGZvciB0aGF0IHNlbnNlLiBTdWJzZXF1ZW50CiAgICBsaW5rcyBpbiB0aGUgcHRybGlzdCBjaGFp biBpbmRpY2F0ZSB0aGUgbmV4dCBsZXZlbCAodXAgb3IgZG93biwgZGVwZW5kaW5nCiAgICBvbiB0 aGUgc2VhcmNoKSBpbiB0aGUgaGllcmFyY2h5LiBOVUxMICBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0 aGUgY2hhaW4gb2YKICAgIHNlYXJjaCByZXN1bHQgc3luc2V0cy4KCiAgICBJZiBhIHN5bnNldCBw b2ludGVkIHRvIGJ5IHB0cmxpc3QgaGFzIGEgdmFsdWUgaW4gdGhlIG5leHRzcyBmaWVsZCwgaXQK ICAgIHJlcHJlc2VudHMgYW5vdGhlciBwb2ludGVyIG9mIHRoZSBzYW1lIHR5cGUgYXQgdGhhdCBs ZXZlbCBpbiB0aGUKICAgIGhpZXJhcmNoeS4gRm9yIGV4YW1wbGUsIHNvbWUgbm91biBzeW5zZXRz IGhhdmUgdHdvIGh5cGVybnltcy4gRm9sbG93aW5nCiAgICB0aGlzIG5leHRzcyBwb2ludGVyLCBh bmQgdGhlbiB0aGUgcHRybGlzdCBjaGFpbiBmcm9tIHRoZSBTeW5zZXQgc3RydWN0dXJlCiAgICBw b2ludGVkIHRvLCB0cmFjZXMgYW5vdGhlciwgcGFyYWxsZWwsIGhpZXJhcmNoeSwgdW50aWwgdGhl IGVuZCBpcwogICAgaW5kaWNhdGVkIGJ5IE5VTEwgIG9uIHRoYXQgcHRybGlzdCBjaGFpbi4gU28s IGEgc3luc2V0IHJlcHJlc2VudGluZyBhCiAgICBwb2ludGVyICh2ZXJzdXMgYSBzZW5zZSBvZiBz ZWFyY2hzdHIgKSBoYXZpbmcgYSBub24tTlVMTCB2YWx1ZSBpbiBuZXh0c3MKICAgIGhhcyBhbm90 aGVyIGNoYWluIG9mIHNlYXJjaCByZXN1bHRzIGxpbmtlZCB0aHJvdWdoIHRoZSBwdHJsaXN0IGNo YWluIG9mCiAgICB0aGUgc3luc2V0IHBvaW50ZWQgdG8gYnkgbmV4dHNzIC4KCiAgICBJZiBzZWFy Y2hzdHIgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBiYXNlIGZvcm0gaW4gV29yZE5ldCAoYXMgaW4g dGhlIG5vdW4KICAgIGF4ZXMgLCB3aGljaCBoYXMgYmFzZSBmb3JtcyBheGUgYW5kIGF4aXMgKSwg c3luc2V0cyByZXByZXNlbnRpbmcgdGhlCiAgICBzZWFyY2ggcmVzdWx0cyBmb3IgZWFjaCBiYXNl IGZvcm0gYXJlIGxpbmtlZCB0aHJvdWdoIHRoZSBuZXh0Zm9ybSBwb2ludGVyCiAgICBvZiB0aGUg U3luc2V0IHN0cnVjdHVyZS4gKi8gCgogICAgbGlzdGJveC0+Y2xlYXIoKTsKICAgIFFTdHJpbmcg cmVzdWx0ID0gIiI7IAogICAgaW50IGNvdW50ID0gMTsKICAgIC8vIGZpeG1lOiBzaG93IHdhaXRp bmcgbW91c2UgcG9pbnRlcgogICAgZm9yIChpbnQgcG9zID0gMTsgcG9zIDw9IE5VTVBBUlRTOyBw b3MrKykgewoJU3luc2V0UHRyIHB0ciA9IGZpbmR0aGVpbmZvX2RzKHRlcm0ubGF0aW4xKCksIHBv cywgMiwgQUxMU0VOU0VTKTsgIC8vIDI9c3lub255bXMKCVFTdHJpbmcgdHlwZTsKCXN3aXRjaChw b3MpIHsKCSAgICBjYXNlIDE6IHR5cGUgPSBpMThuKCJub3VuIik7IGJyZWFrOwoJICAgIGNhc2Ug MjogdHlwZSA9IGkxOG4oInZlcmIiKTsgYnJlYWs7CgkgICAgY2FzZSAzOiB0eXBlID0gaTE4bigi YWRqZWN0aXZlIik7IGJyZWFrOwoJICAgIGNhc2UgNDogdHlwZSA9IGkxOG4oImFkdmVyYiIpOyBi cmVhazsKCSAgICBkZWZhdWx0OiB0eXBlID0gaTE4bigidW5rbm93biB0eXBlIik7IGJyZWFrOwoJ fQoJd2hpbGUoIHB0ciApIHsKCSAgICBjaGFyICoqZXJnID0gcHRyLT53b3JkczsKCSAgICAvLyBm aXhtZTogaXRlcmF0ZSBvdmVyIHRoZSByZXN1bHRzCgkgICAgbGlzdGJveC0+aW5zZXJ0SXRlbShp MThuKCJNZWFuaW5nICUxOiAlMiAoJTMpIikuYXJnKGNvdW50KS5hcmcoUVN0cmluZygqZXJnKSku YXJnKHR5cGUpKTsKCgkgICAgU3luc2V0UHRyIHN1Yl9yZXMgPSBwdHItPnB0cmxpc3Q7CgkgICAg aWYoIHN1Yl9yZXMgKSB7CgkgICAgICAgIGNoYXIgKiplcmdfcmVzID0gc3ViX3Jlcy0+d29yZHM7 CgkgICAgICAgIC8vIGZpeG1lOiBpdGVyYXRlIG92ZXIgdGhlIHJlc3VsdHMKCQkvLyBmaXhtZTog cmVwbGFjZSAnXycKCSAgICAgICAgbGlzdGJveC0+aW5zZXJ0SXRlbSgiICAgIiArIFFTdHJpbmco KmVyZ19yZXMpKTsKCSAgICB9CgkgICAgY291bnQrKzsKCSAgICBwdHIgPSBwdHItPm5leHRzczsK CX0KICAgIH0KICAgIC8vIGZpeG1lOiBzaG93ICJubyBtYXRjaGVzIiBpZiBub3RoaW5nIGlzIGZv dW5kCn0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovCnZvaWQgS1dXb3JkSW5mbzo6c2xvdFVzZXIxQ2xpY2tlZCgpCnsK ICAgIC8vICJSZXBsYWNlIgogICAga2REZWJ1ZygpIDw8ICJLV1dvcmRJbmZvOjp1c2VyMUNsaWNr ZWQiIDw8IGVuZGw7CiAgICBLRGlhbG9nQmFzZTo6c2xvdE9rKCk7ICAgICAvLyBmaXhtZTogaG93 IHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgaXRlbT8KfQoKLyo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8Kdm9pZCBLV1dvcmRJ bmZvOjpzbG90VXNlcjJDbGlja2VkKCkKewogICAgLy8gIkdvIgogICAga2REZWJ1ZygpIDw8ICJL V1dvcmRJbmZvOjp1c2VyMkNsaWNrZWQiIDw8IGVuZGw7CiAgICBpZiggbGlzdGJveC0+Y3VycmVu dEl0ZW0oKSAhPSAtMSApIHsKICAgICAgICBzbG90RmluZFRlcm0obGlzdGJveC0+Y3VycmVudEl0 ZW0oKSk7CiAgICB9IGVsc2UgewogICAgICAgIHNsb3RGaW5kVGVybShlZGl0LT5jdXJyZW50VGV4 dCgpKTsKICAgIH0KfQo= --------------Boundary-00=_825XEA7K7APIO46RO5H5-- _______________________________________________ Koffice-devel mailing list Koffice-devel@master.kde.org http://master.kde.org/mailman/listinfo/koffice-devel