X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Message-ID: <1424040494.18156.1.camel@clifton-electronics.co.uk> Subject: [geda-user] PCB users - Call for testing of polygon fixes From: Peter Clifton To: geda-user AT delorie DOT com Date: Sun, 15 Feb 2015 22:48:14 +0000 Organization: Clifton Electronics Content-Type: multipart/mixed; boundary="=-rCe6F4V55toTFtFXmlby" X-Mailer: Evolution 3.12.7-0ubuntu1 Mime-Version: 1.0 Sender: "Peter C.J. Clifton" Reply-To: geda-user AT delorie DOT com --=-rCe6F4V55toTFtFXmlby Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi everyone, I'd appreciate anyone using PCB who wants to help out, apply the attached patches to a git HEAD install of PCB, and test to polygons are behaving themselves in any designs you have available. There are several fixes here, and whilst I believe they are good (and I've tested them lots myself), I would like to get additional data before I push anything. There are a few debug prints left in the code, so if you see anything printed on the console, such as: "UNINITIALISED directin in SubJ_Rule" (Typo is in the patch too!) Please let me know, and ideally (if you can), send me a test-case. There are a few more little fixes we could make (there are rounding errors in line clearance polygons, and distorted geometry in thermals and some other areas), but lets get these tested and upstream first. I'm very interested to know if they fix any design you stashed away where there were polygon bugs, and if they for any reason break some existing design that worked OK. Kind regards, -- Peter Clifton Clifton Electronics --=-rCe6F4V55toTFtFXmlby Content-Disposition: attachment; filename="0001-Partial-fix-for-broken-polygon-contour-generation.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Partial-fix-for-broken-polygon-contour-generation.patch"; charset="UTF-8" RnJvbSAwYTkyNzU5NmNhNjQ5NmQ0NzZlZGI1NDkxZGQ2YjNiYmU5ZjY1OGRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBDbGlmdG9uIDxwZXRlckBjbGlmdG9uLWVsZWN0cm9u aWNzLmNvLnVrPgpEYXRlOiBTdW4sIDE1IEZlYiAyMDE1IDIyOjMzOjIyICswMDAwClN1YmplY3Q6 IFtQQVRDSCAxLzRdIFBhcnRpYWwgZml4IGZvciBicm9rZW4gcG9seWdvbiBjb250b3VyIGdlbmVy YXRpb24KClRoZSBmaXggaW4gY29tbWl0IDI5MjU4ZDc3NzMxYzNhMzRiMzMzNWYzYjM2NTdmYjU0 OWQ0NDljNzEgZm9yIHByb2JsZW1zCndpdGggc2luZ2xlIHBvaW50IHRvdWNoaW5nIEEgYW5kIEIg cG9seWdvbnMgd2FzIGluY29ycmVjdCBhbmQgY2FuIGxlYWQKdG8gYnJva2VuIG91dHB1dC4KClRo aXMgY2FuIGJlIHNlZW4gaW4gdGhlIGZvbGxvd2luZyB0ZXN0LWNhc2UgZnJvbSBEYXZlIE1jR3Vp cmU6CgogIEVsZW1lbnRbIiIgIiIgIiIgInVua25vd24iIDEzMjUuMDBtaWwgMTA3MC4wMG1pbCAt MTc1LjAwbWlsIC0xMDUuMDBtaWwgMCAxMDAgIiJdCiAgKAogICAgUGFkWy04NS4wMG1pbCAtMzku MDBtaWwgLTc5LjAwbWlsIC0zOS4wMG1pbCAzNC4wMG1pbCAzMC4wMG1pbCA0MC4wMG1pbCAiMiIg IjIiICJzcXVhcmUiXQogICkKCiAgTGF5ZXIoMSAiY29tcG9uZW50IikKICAoCiAgICBMaW5lWzEy NDUuMDBtaWwgMTAzMC4wMG1pbCAxMTk1LjAwbWlsIDEwMzAuMDBtaWwgMTIuMDBtaWwgMjAuMDBt aWwgImNsZWFybGluZSJdCiAgICBQb2x5Z29uKCJjbGVhcnBvbHkiKQogICAgKAogICAgICBbNS4w MG1pbCA1LjAwbWlsXSBbNDE5NS4wMG1pbCA1LjAwbWlsXSBbNDE5NS4wMG1pbCAyNjk1LjAwbWls XSBbNS4wMG1pbCAyNjk1LjAwbWlsXQogICAgKQogICkKClRoZSBwcm9ibGVtIG9jY3VycyBpbiB0 aGUgQ29sbGVjdCgpIHJvdXRpbmUuIEluIHRoZSBhYm92ZSBleGFtcGxlLCB0aGUgZmlyc3QKcG9p bnQgdGVzdGVkIG9uIHRoZSAnQScgcG9seWdvbiBpcyBub3QgcGFydCBvZiB0aGUgb3V0cHV0IGNv bnRvdXIsIGJ1dCBJUyBhCnZlcnRleCB3aGVyZSB0aGUgQSBhbmQgQiB0b3VjaC4gQXMgYSByZXN1 bHQsIHRoZSAoYnVnZ3kpIGNvZGUgdGhlbiBmbGlwcwpkaXJlY3RseSB0byB0aGUgJ0InIHBveWxn b24gd2l0aG91dCBjaGVja2luZyB0aGF0IGl0IGJlbG9uZ3MgaW4gdGhlIG91dHB1dApjb250b3Vy LCByZXN1bHRpbmcgaW4gaW5jb3JyZWN0IHZlcnRpY2VzIGJlaW5nIGluc2VydGVkIGludG8gdGhl IG91dHB1dC4KCldoYXQgd2Ugc2hvdWxkIGRvIChhdCBsZWFzdCBhIHN1ZmZpY2llbnQgZml4KSBp cyB3YWxrICgiQ29sbGVjdCIpIHRoZSBpbnRlcnNlY3RlZAonQicgcG9seWdvbiBjb250b3VycyBl eHBsaWNpdGx5LiBUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRoYXQgY2hhbmdlLgotLS0KIHNyYy9w b2x5Z29uMS5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wb2x5Z29uMS5jIGIvc3JjL3BvbHlnb24xLmMK aW5kZXggNTY2NTk2ZC4uZWZjYTFiNyAxMDA2NDQKLS0tIGEvc3JjL3BvbHlnb24xLmMKKysrIGIv c3JjL3BvbHlnb24xLmMKQEAgLTE0NDgsNyArMTQ0OCw3IEBAIEluc2VydEhvbGVzIChqbXBfYnVm ICogZSwgUE9MWUFSRUEgKiBkZXN0LCBQTElORSAqKiBzcmMpCiAKIHR5cGVkZWYgZW51bQogewot ICBGT1JXLCBCQUNLVworICBVTklOSVRJQUxJU0VELCBGT1JXLCBCQUNLVwogfSBESVJFQ1RJT047 CiAKIC8qIFN0YXJ0IFJ1bGUgKi8KQEAgLTE0OTcsMTQgKzE0OTcsMTYgQEAgWG9yU19SdWxlIChW Tk9ERSAqIGN1ciwgRElSRUNUSU9OICogaW5pdGRpcikKIHN0YXRpYyBpbnQKIElzZWN0Sl9SdWxl IChjaGFyIHAsIFZOT0RFICogdiwgRElSRUNUSU9OICogY2RpcikKIHsKLSAgYXNzZXJ0ICgqY2Rp ciA9PSBGT1JXKTsKKy8vICBhc3NlcnQgKCpjZGlyID09IEZPUlcpOworICAqY2RpciA9IEZPUlc7 CiAgIHJldHVybiAodi0+RmxhZ3Muc3RhdHVzID09IElOU0lERSB8fCB2LT5GbGFncy5zdGF0dXMg PT0gU0hBUkVEKTsKIH0KIAogc3RhdGljIGludAogVW5pdGVKX1J1bGUgKGNoYXIgcCwgVk5PREUg KiB2LCBESVJFQ1RJT04gKiBjZGlyKQogewotICBhc3NlcnQgKCpjZGlyID09IEZPUlcpOworLy8g IGFzc2VydCAoKmNkaXIgPT0gRk9SVyk7CisgICpjZGlyID0gRk9SVzsKICAgcmV0dXJuICh2LT5G bGFncy5zdGF0dXMgPT0gT1VUU0lERSB8fCB2LT5GbGFncy5zdGF0dXMgPT0gU0hBUkVEKTsKIH0K IApAQCAtMTUyMSw2ICsxNTIzLDkgQEAgWG9ySl9SdWxlIChjaGFyIHAsIFZOT0RFICogdiwgRElS RUNUSU9OICogY2RpcikKICAgICAgICpjZGlyID0gRk9SVzsKICAgICAgIHJldHVybiBUUlVFOwog ICAgIH0KKyAgLy8gWFhYOiBGSVhNRTogTk8gY2RpciBzZXQgZm9yIHRoaXMgY2FzZSwgZS5nLiBw b3NzaWJsZSBubyBpbml0aWFsaXNhdGlvbgorICBpZiAoKmNkaXIgPT0gVU5JTklUSUFMSVNFRCkK KyAgICBwcmludGYgKCJVTklOSVRJQUxJU0VEIGRpcmVjdGluIGluIFhvckpfUnVsZVxuIik7CiAg IHJldHVybiBGQUxTRTsKIH0KIApAQCAtMTU0NSw2ICsxNTUwLDE1IEBAIFN1YkpfUnVsZSAoY2hh ciBwLCBWTk9ERSAqIHYsIERJUkVDVElPTiAqIGNkaXIpCiAJKmNkaXIgPSBCQUNLVzsKICAgICAg IHJldHVybiBUUlVFOwogICAgIH0KKyAgLy8gWFhYOiBGSVhNRTogTk8gY2RpciBzZXQgZm9yIHRo aXMgY2FzZSwgZS5nLiBwb3NzaWJsZSBubyBpbml0aWFsaXNhdGlvbgorICBpZiAoKmNkaXIgPT0g VU5JTklUSUFMSVNFRCkKKyAgICB7CisgICAgICBwcmludGYgKCJVTklOSVRJQUxJU0VEIGRpcmVj dGluIGluIFN1YkpfUnVsZVxuIik7CisgICAgICBpZiAocCA9PSAnQScpCisJKmNkaXIgPSBGT1JX OworICAgICAgZWxzZQorCSpjZGlyID0gQkFDS1c7CisgICAgfQogICByZXR1cm4gRkFMU0U7CiB9 CiAKQEAgLTE2ODMsMjAgKzE2OTcsMjcgQEAgQ29sbGVjdDEgKGptcF9idWYgKiBlLCBWTk9ERSAq IGN1ciwgRElSRUNUSU9OIGRpciwgUE9MWUFSRUEgKiogY29udG91cnMsCiB9CiAKIHN0YXRpYyB2 b2lkCi1Db2xsZWN0IChqbXBfYnVmICogZSwgUExJTkUgKiBhLCBQT0xZQVJFQSAqKiBjb250b3Vy cywgUExJTkUgKiogaG9sZXMsCitDb2xsZWN0IChjaGFyIHBvbHksIGptcF9idWYgKiBlLCBQTElO RSAqIGEsIFBPTFlBUkVBICoqIGNvbnRvdXJzLCBQTElORSAqKiBob2xlcywKIAkgU19SdWxlIHNf cnVsZSwgSl9SdWxlIGpfcnVsZSkKIHsKLSAgVk5PREUgKmN1ciwgKm90aGVyOwotICBESVJFQ1RJ T04gZGlyOworICBWTk9ERSAqY3VyOworICBESVJFQ1RJT04gZGlyID0gVU5JTklUSUFMSVNFRDsK IAotICBjdXIgPSAmYS0+aGVhZDsKKyAgY3VyID0gKCZhLT5oZWFkKTsKKy8vICBjdXIgPSAoJmEt PmhlYWQpLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0OyAvKiBCcmVha3MgY2lyY19zZWdf dGVzdDkucGNiICovCiAgIGRvCiAgICAgewotICAgICAgaWYgKHNfcnVsZSAoY3VyLCAmZGlyKSAm JiBjdXItPkZsYWdzLm1hcmsgPT0gMCkKKyNpZiAwCisgICAgICAvLyBUaGUgZm9sbG93aW5nIG1h eSBiZSBhIG5pY2Ugc3BlZWR1cCwgYnV0IG5vdCBzdXJlIGlmIGl0IGlzIGNvcnJlY3QuCisgICAg ICAvLyBJbiBwYXJ0aWN1bGFyLCBjb25zaWRlciB0aGUgY2FzZSB3aGVuIHdlIGNvbGxlY3QgYSAn QicgcG9seWdvbiBjb250b3VyLgorICAgICAgLy8gQ291bGQgc29tZSBvZiB0aGF0IGNvdW50b3Vy IG1heSBhbHJlYWR5IGhhdmUgYmVlbiBjb2xsZWN0ZWQsIGFuZCB0aGVyZQorICAgICAgLy8gc3Rp bGwgYmUgYSBwaWVjZSB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBhZnRlcj8gKENhbiB3ZSByZWFjaCBp dCB0aG91Z2g/PykKKyAgICAgIGlmIChjdXItPkZsYWdzLm1hcmsgIT0gMCkKKyAgICAgICAgYnJl YWs7CisjZW5kaWYKKworICAgICAgaWYgKGpfcnVsZSAocG9seSwgY3VyLCAmZGlyKSAmJiBjdXIt PkZsYWdzLm1hcmsgPT0gMCkKIAlDb2xsZWN0MSAoZSwgY3VyLCBkaXIsIGNvbnRvdXJzLCBob2xl cywgal9ydWxlKTsKLSAgICAgIG90aGVyID0gY3VyOwotICAgICAgaWYgKChvdGhlci0+Y3ZjX3By ZXYgJiYganVtcCAoJm90aGVyLCAmZGlyLCBqX3J1bGUpKSkKLQlDb2xsZWN0MSAoZSwgb3RoZXIs IGRpciwgY29udG91cnMsIGhvbGVzLCBqX3J1bGUpOwogICAgIH0KICAgd2hpbGUgKChjdXIgPSBj dXItPm5leHQpICE9ICZhLT5oZWFkKTsKIH0JCQkJLyogQ29sbGVjdCAqLwpAQCAtMTcxNCwxNiAr MTczNSwxNiBAQCBjbnRyX0NvbGxlY3QgKGptcF9idWYgKiBlLCBQTElORSAqKiBBLCBQT0xZQVJF QSAqKiBjb250b3VycywgUExJTkUgKiogaG9sZXMsCiAgICAgICBzd2l0Y2ggKGFjdGlvbikKIAl7 CiAJY2FzZSBQQk9fVU5JVEU6Ci0JICBDb2xsZWN0IChlLCAqQSwgY29udG91cnMsIGhvbGVzLCBV bml0ZVNfUnVsZSwgVW5pdGVKX1J1bGUpOworCSAgQ29sbGVjdCAoJ0EnLCBlLCAqQSwgY29udG91 cnMsIGhvbGVzLCBVbml0ZVNfUnVsZSwgVW5pdGVKX1J1bGUpOwogCSAgYnJlYWs7CiAJY2FzZSBQ Qk9fSVNFQ1Q6Ci0JICBDb2xsZWN0IChlLCAqQSwgY29udG91cnMsIGhvbGVzLCBJc2VjdFNfUnVs ZSwgSXNlY3RKX1J1bGUpOworCSAgQ29sbGVjdCAoJ0EnLCBlLCAqQSwgY29udG91cnMsIGhvbGVz LCBJc2VjdFNfUnVsZSwgSXNlY3RKX1J1bGUpOwogCSAgYnJlYWs7CiAJY2FzZSBQQk9fWE9SOgot CSAgQ29sbGVjdCAoZSwgKkEsIGNvbnRvdXJzLCBob2xlcywgWG9yU19SdWxlLCBYb3JKX1J1bGUp OworCSAgQ29sbGVjdCAoJ0EnLCBlLCAqQSwgY29udG91cnMsIGhvbGVzLCBYb3JTX1J1bGUsIFhv ckpfUnVsZSk7CiAJICBicmVhazsKIAljYXNlIFBCT19TVUI6Ci0JICBDb2xsZWN0IChlLCAqQSwg Y29udG91cnMsIGhvbGVzLCBTdWJTX1J1bGUsIFN1YkpfUnVsZSk7CisJICBDb2xsZWN0ICgnQScs IGUsICpBLCBjb250b3VycywgaG9sZXMsIFN1YlNfUnVsZSwgU3ViSl9SdWxlKTsKIAkgIGJyZWFr OwogCX07CiAgICAgfQpAQCAtMTc4Niw5ICsxODA3LDMzIEBAIE1fQl9BUkVBX0NvbGxlY3QgKGpt cF9idWYgKiBlLCBQT0xZQVJFQSAqIGJmc3QsIFBPTFlBUkVBICoqIGNvbnRvdXJzLAogCXsKIAkg IG5leHQgPSAmKCgqY3VyKS0+bmV4dCk7CiAJICBpZiAoKCpjdXIpLT5GbGFncy5zdGF0dXMgPT0g SVNFQ1RFRCkKLQkgICAgY29udGludWU7Ci0KLQkgIGlmICgoKmN1ciktPkZsYWdzLnN0YXR1cyA9 PSBJTlNJREUpCisJICAgIHsKKwkgICAgICAvKiBDaGVjayBmb3IgbWlzc2VkIGludGVyc2VjdCBj b250b3VycyBoZXJlLiBUaGVzZSBjYW4gY29tZSBmcm9tCisJICAgICAgICogY2FzZXMgd2hlcmUg Y29udG91cnMgb2YgQSBhbmQgQiB0b3VjaCBhdCBhIHNpbmdsZS12ZXJ0ZXgsIHNvCisJICAgICAg ICogYXJlIGxhYmVsZWQgSVNFQ1RFRCBmb3IgcHJvY2Vzc2luZywgeWV0IG91ciBKVU1QIHJ1bGVz IGZvciBhCisJICAgICAgICogcGFydGljdWxhciBvcGVyYXRpb24gZG9lcyBub3QgZGVlbSB0byBq dW1wIGJldHdlZW4gQSAmIEIKKwkgICAgICAgKiBjb250b3VycyBhdCB0aGUgc2hhcmVkIHZlcnRl eC4KKwkgICAgICAgKgorCSAgICAgICAqIE5COiBUaGVyZSBDb3VsZCBiZSBncmllZiBpZiB0aGUg SlVNUCBydWxlIGlzIGluY29uc2lzdGVudCBpbgorCSAgICAgICAqICAgICBpdHMgaW50ZXJwcmV0 YXRpb24gZnJvbSBlYWNoIHNpZGUgb2YgdGhlIHZlcnRleC4KKwkgICAgICAgKi8KKwkgICAgc3dp dGNoIChhY3Rpb24pCisJICAgICAgeworCSAgICAgIGNhc2UgUEJPX1VOSVRFOgorCQlDb2xsZWN0 ICgnQicsIGUsICpjdXIsIGNvbnRvdXJzLCBob2xlcywgVW5pdGVTX1J1bGUsIFVuaXRlSl9SdWxl KTsKKwkJYnJlYWs7CisJICAgICAgY2FzZSBQQk9fSVNFQ1Q6CisJCUNvbGxlY3QgKCdCJywgZSwg KmN1ciwgY29udG91cnMsIGhvbGVzLCBJc2VjdFNfUnVsZSwgSXNlY3RKX1J1bGUpOworCQlicmVh azsKKwkgICAgICBjYXNlIFBCT19YT1I6CisJCUNvbGxlY3QgKCdCJywgZSwgKmN1ciwgY29udG91 cnMsIGhvbGVzLCBYb3JTX1J1bGUsIFhvckpfUnVsZSk7CisJCWJyZWFrOworCSAgICAgIGNhc2Ug UEJPX1NVQjoKKwkJQ29sbGVjdCAoJ0InLCBlLCAqY3VyLCBjb250b3VycywgaG9sZXMsIFN1YlNf UnVsZSwgU3ViSl9SdWxlKTsKKwkJYnJlYWs7CisJICAgICAgfQorCSAgICB9CisJICBlbHNlIGlm ICgoKmN1ciktPkZsYWdzLnN0YXR1cyA9PSBJTlNJREUpCiAJICAgIHN3aXRjaCAoYWN0aW9uKQog CSAgICAgIHsKIAkgICAgICBjYXNlIFBCT19YT1I6Ci0tIAoyLjEuMAoK --=-rCe6F4V55toTFtFXmlby Content-Disposition: attachment; filename*0=0002-polygon.c-For-some-reason-the-range-computation-in-f.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-polygon.c-For-some-reason-the-range-computation-in-f.patch"; charset="UTF-8" RnJvbSBjMTk3OTk3ZTliZGM1YTI3N2UzMzRlMTFjNTQzOTE2MDBjOGI4YzQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBDbGlmdG9uIDxwZXRlckBjbGlmdG9uLWVsZWN0cm9u aWNzLmNvLnVrPgpEYXRlOiBTdW4sIDE1IEZlYiAyMDE1IDIyOjMzOjI3ICswMDAwClN1YmplY3Q6 IFtQQVRDSCAyLzRdIHBvbHlnb24uYzogRm9yIHNvbWUgcmVhc29uLCB0aGUgcmFuZ2UgY29tcHV0 YXRpb24gaW4KIGZyYWNfY2lyY2xlIGFwcGVhcnMgdG8gYmUgd3JvbmcKCi0tLQogc3JjL3BvbHln b24uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvcG9seWdvbi5jIGIvc3JjL3BvbHlnb24uYwppbmRleCA3 NWUxYjllLi40MGIxNWMzIDEwMDY0NAotLS0gYS9zcmMvcG9seWdvbi5jCisrKyBiL3NyYy9wb2x5 Z29uLmMKQEAgLTQwNCw4ICs0MDQsOCBAQCBmcmFjX2NpcmNsZSAoUExJTkUgKiBjLCBDb29yZCBY LCBDb29yZCBZLCBWZWN0b3IgdiwgaW50IGZyYWN0aW9uKQogICBlMSA9ICh2WzBdIC0gWCkgKiBQ T0xZX0NJUkNfUkFESVVTX0FESjsKICAgZTIgPSAodlsxXSAtIFkpICogUE9MWV9DSVJDX1JBRElV U19BREo7CiAKLSAgLyogTkI6IHRoZSBjYWxsZXIgYWRkcyB0aGUgbGFzdCB2ZXJ0ZXgsIGhlbmNl IHRoZSAtMSAqLwotICByYW5nZSA9IFBPTFlfQ0lSQ19TRUdTIC8gZnJhY3Rpb24gLSAxOworICAv KiBYWFggKi8gLyogTkI6IHRoZSBjYWxsZXIgYWRkcyB0aGUgbGFzdCB2ZXJ0ZXgsIGhlbmNlIHRo ZSAtMSAqLworICByYW5nZSA9IFBPTFlfQ0lSQ19TRUdTIC8gZnJhY3Rpb247CiAgIGZvciAoaSA9 IDA7IGkgPCByYW5nZTsgaSsrKQogICAgIHsKICAgICAgIC8qIHJvdGF0ZSB0aGUgdmVjdG9yICov Ci0tIAoyLjEuMAoK --=-rCe6F4V55toTFtFXmlby Content-Disposition: attachment; filename="0003-Fix-poly-contours.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0003-Fix-poly-contours.patch"; charset="UTF-8" RnJvbSBiZTYzOGU4Y2UxNmM0ZGMzNGRjYWFhMTgxZjJhZDE0ZDQ5ZmRkMzFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBDbGlmdG9uIDxwZXRlckBjbGlmdG9uLWVsZWN0cm9u aWNzLmNvLnVrPgpEYXRlOiBTdW4sIDE1IEZlYiAyMDE1IDIyOjMzOjMzICswMDAwClN1YmplY3Q6 IFtQQVRDSCAzLzRdIEZpeCBwb2x5IGNvbnRvdXJzICg/KQoKWFhYOiBUaGVybWFscyBhcmUgbm90 IGZpeGVkIHVwIGFmdGVyIGZyYWNfY2lyY2xlKCkgY2hhbmdlcwogVjI6IExlYXZlIGFsbCBidXQg TGluZVBvbHkgdXNpbmcgdGhlIG9sZCBmcmFjX2NpcmNsZSgpLCBuZXcgZnJhY19jaXJjbGUyKCkg Zml4ZXMgTGluZVBvbHkKICAgICAoYWxzbyB1c2UgZnJhY19jaXJjbGUyKCkgaW4gQ2lyY2xlUG9s eSB0byBhdm9pZCBhZGRpbmcgYSByZXBlYXQgdmVydGV4KQotLS0KIHNyYy9wb2x5Z29uLmMgfCA2 NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9wb2x5Z29uLmMgYi9zcmMvcG9seWdvbi5jCmluZGV4IDQwYjE1YzMu Ljg5NjdlZmIgMTAwNjQ0Ci0tLSBhL3NyYy9wb2x5Z29uLmMKKysrIGIvc3JjL3BvbHlnb24uYwpA QCAtNDE4LDYgKzQxOCwzNyBAQCBmcmFjX2NpcmNsZSAoUExJTkUgKiBjLCBDb29yZCBYLCBDb29y ZCBZLCBWZWN0b3IgdiwgaW50IGZyYWN0aW9uKQogICAgIH0KIH0KIAorLyogYWRkIHZlcnRpY2ll cyBpbiBhIGZyYWN0aW9uYWwtY2lyY2xlIHN0YXJ0aW5nIGZyb20gdgorICogY2VudGVyZWQgYXQg WCwgWSBhbmQgZ29pbmcgY291bnRlci1jbG9ja3dpc2UKKyAqIGRvZXMgbm90IGluY2x1ZGUgdGhl IGZpcnN0IHBvaW50CisgKiBsYXN0IGFyZ3VtZW50IGlzIDEgZm9yIGEgZnVsbCBjaXJjbGUKKyAq IDIgZm9yIGEgaGFsZiBjaXJjbGUKKyAqIG9yIDQgZm9yIGEgcXVhcnRlciBjaXJjbGUKKyAqLwor c3RhdGljIHZvaWQKK2ZyYWNfY2lyY2xlMiAoUExJTkUgKiBjLCBDb29yZCBYLCBDb29yZCBZLCBW ZWN0b3IgdiwgaW50IGZyYWN0aW9uKQoreworICBkb3VibGUgZTEsIGUyLCB0MTsKKyAgaW50IGks IHJhbmdlOworCisgIC8qIG1vdmUgdmVjdG9yIHRvIG9yaWdpbiAqLworICBlMSA9ICh2WzBdIC0g WCkgKiBQT0xZX0NJUkNfUkFESVVTX0FESjsKKyAgZTIgPSAodlsxXSAtIFkpICogUE9MWV9DSVJD X1JBRElVU19BREo7CisKKyAgLyogWFhYICovIC8qIE5COiB0aGUgY2FsbGVyIGFkZHMgdGhlIGxh c3QgdmVydGV4LCBoZW5jZSB0aGUgLTEgKi8KKyAgcmFuZ2UgPSBQT0xZX0NJUkNfU0VHUyAvIGZy YWN0aW9uOworICBmb3IgKGkgPSAwOyBpIDwgcmFuZ2U7IGkrKykKKyAgICB7CisgICAgICAvKiBy b3RhdGUgdGhlIHZlY3RvciAqLworICAgICAgdDEgPSByb3RhdGVfY2lyY2xlX3NlZ1swXSAqIGUx ICsgcm90YXRlX2NpcmNsZV9zZWdbMV0gKiBlMjsKKyAgICAgIGUyID0gcm90YXRlX2NpcmNsZV9z ZWdbMl0gKiBlMSArIHJvdGF0ZV9jaXJjbGVfc2VnWzNdICogZTI7CisgICAgICBlMSA9IHQxOwor ICAgICAgdlswXSA9IFggKyBST1VORCAoZTEpOworICAgICAgdlsxXSA9IFkgKyBST1VORCAoZTIp OworICAgICAgcG9seV9JbmNsVmVydGV4IChjLT5oZWFkLnByZXYsIHBvbHlfQ3JlYXRlTm9kZSAo dikpOworICAgIH0KK30KKwogLyogY3JlYXRlIGEgY2lyY2xlIGFwcHJveGltYXRpb24gZnJvbSBs aW5lcyAqLwogUE9MWUFSRUEgKgogQ2lyY2xlUG9seSAoQ29vcmQgeCwgQ29vcmQgeSwgQ29vcmQg cmFkaXVzKQpAQCAtNDMxLDcgKzQ2Miw3IEBAIENpcmNsZVBvbHkgKENvb3JkIHgsIENvb3JkIHks IENvb3JkIHJhZGl1cykKICAgdlsxXSA9IHk7CiAgIGlmICgoY29udG91ciA9IHBvbHlfTmV3Q29u dG91ciAodikpID09IE5VTEwpCiAgICAgcmV0dXJuIE5VTEw7Ci0gIGZyYWNfY2lyY2xlIChjb250 b3VyLCB4LCB5LCB2LCAxKTsKKyAgZnJhY19jaXJjbGUyIChjb250b3VyLCB4LCB5LCB2LCAxKTsK ICAgY29udG91ci0+aXNfcm91bmQgPSBUUlVFOwogICBjb250b3VyLT5jeCA9IHg7CiAgIGNvbnRv dXItPmN5ID0geTsKQEAgLTYwOSwyOCArNjQwLDQxIEBAIExpbmVQb2x5IChMaW5lVHlwZSAqIEws IENvb3JkIHRoaWNrKQogICAgICAgbC0+UG9pbnQyLlggKz0gZHk7CiAgICAgICBsLT5Qb2ludDIu WSAtPSBkeDsKICAgICB9Ci0gIHZbMF0gPSBsLT5Qb2ludDEuWCAtIGR4OwotICB2WzFdID0gbC0+ UG9pbnQxLlkgLSBkeTsKKworICB2WzBdID0gbC0+UG9pbnQyLlggLSBkeDsKKyAgdlsxXSA9IGwt PlBvaW50Mi5ZIC0gZHk7CiAgIGlmICgoY29udG91ciA9IHBvbHlfTmV3Q29udG91ciAodikpID09 IE5VTEwpCiAgICAgcmV0dXJuIDA7CisKICAgdlswXSA9IGwtPlBvaW50Mi5YIC0gZHg7CiAgIHZb MV0gPSBsLT5Qb2ludDIuWSAtIGR5OworCiAgIGlmIChURVNUX0ZMQUcgKFNRVUFSRUZMQUcsbCkp Ci0gICAgcG9seV9JbmNsVmVydGV4IChjb250b3VyLT5oZWFkLnByZXYsIHBvbHlfQ3JlYXRlTm9k ZSAodikpOworICAgIHsKKyAgICAgIHZbMF0gPSBsLT5Qb2ludDIuWCArIGR4OworICAgICAgdlsx XSA9IGwtPlBvaW50Mi5ZICsgZHk7CisgICAgICBwb2x5X0luY2xWZXJ0ZXggKGNvbnRvdXItPmhl YWQucHJldiwgcG9seV9DcmVhdGVOb2RlICh2KSk7CisgICAgfQogICBlbHNlCi0gICAgZnJhY19j aXJjbGUgKGNvbnRvdXIsIGwtPlBvaW50Mi5YLCBsLT5Qb2ludDIuWSwgdiwgMik7Ci0gIHZbMF0g PSBsLT5Qb2ludDIuWCArIGR4OwotICB2WzFdID0gbC0+UG9pbnQyLlkgKyBkeTsKLSAgcG9seV9J bmNsVmVydGV4IChjb250b3VyLT5oZWFkLnByZXYsIHBvbHlfQ3JlYXRlTm9kZSAodikpOworICAg IGZyYWNfY2lyY2xlMiAoY29udG91ciwgbC0+UG9pbnQyLlgsIGwtPlBvaW50Mi5ZLCB2LCAyKTsK KwogICB2WzBdID0gbC0+UG9pbnQxLlggKyBkeDsKICAgdlsxXSA9IGwtPlBvaW50MS5ZICsgZHk7 CisgIHBvbHlfSW5jbFZlcnRleCAoY29udG91ci0+aGVhZC5wcmV2LCBwb2x5X0NyZWF0ZU5vZGUg KHYpKTsKKwogICBpZiAoVEVTVF9GTEFHIChTUVVBUkVGTEFHLGwpKQotICAgIHBvbHlfSW5jbFZl cnRleCAoY29udG91ci0+aGVhZC5wcmV2LCBwb2x5X0NyZWF0ZU5vZGUgKHYpKTsKKyAgICB7Cisg ICAgICB2WzBdID0gbC0+UG9pbnQxLlggLSBkeDsKKyAgICAgIHZbMV0gPSBsLT5Qb2ludDEuWSAt IGR5OworICAgICAgcG9seV9JbmNsVmVydGV4IChjb250b3VyLT5oZWFkLnByZXYsIHBvbHlfQ3Jl YXRlTm9kZSAodikpOworICAgIH0KICAgZWxzZQotICAgIGZyYWNfY2lyY2xlIChjb250b3VyLCBs LT5Qb2ludDEuWCwgbC0+UG9pbnQxLlksIHYsIDIpOworICAgIGZyYWNfY2lyY2xlMiAoY29udG91 ciwgbC0+UG9pbnQxLlgsIGwtPlBvaW50MS5ZLCB2LCAyKTsKKwogICAvKiBub3cgd2UgaGF2ZSB0 aGUgbGluZSBjb250b3VyICovCiAgIGlmICghKG5wID0gQ29udG91clRvUG9seSAoY29udG91cikp KQogICAgIHJldHVybiBOVUxMOworCiAgIHJldHVybiBucDsKIH0KIAotLSAKMi4xLjAKCg== --=-rCe6F4V55toTFtFXmlby Content-Disposition: attachment; filename="0004-Fix-bug-in-polygon-contour-generation.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0004-Fix-bug-in-polygon-contour-generation.patch"; charset="UTF-8" RnJvbSBkZWZlNmNlYWQzOTZmZjBhMGMwOTBhODAzMjVjOWViNjkyM2I3NDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBDbGlmdG9uIDxwZXRlckBjbGlmdG9uLWVsZWN0cm9u aWNzLmNvLnVrPgpEYXRlOiBTdW4sIDE1IEZlYiAyMDE1IDIyOjM0OjM0ICswMDAwClN1YmplY3Q6 IFtQQVRDSCA0LzRdIEZpeCBidWcgaW4gcG9seWdvbiBjb250b3VyIGdlbmVyYXRpb24KCkluY29y cmVjdCBjb250b3VycyB3ZXJlIGVtaXR0ZWQgaW4gc29tZSBjYXNlcyB3aGVuIHNuYXAtcm91bmRp bmcgb2YgdmVydGljZXMgdG8KdGhlIGludGVnZXIgZ3JpZCBjYXVzZSBjb2luY2lkZW50IHNoYXJl ZCB2ZXJ0aWNlcyBmcm9tIHRoZSBzYW1lIHBvbHlnb24gdG8gbWVldAphdCBhIGNyb3NzLWNvbm5l Y3RlZCB2ZXJ0ZXguCgpUaGUgZ2VvbWV0cnkgcmVxdWlyZWQgdG8gY3JlYXRlIHRoaXMgc2l0dWF0 aW9uIGlzIHRyaWNreSwgYnV0IGNvdWxkIGJlIHByb3Zva2VkCmluIGNlcnRhaW4gY29uZGl0aW9u cyBieSBleGFjdGx5IHRvdWNoaW5nIGxpbmUgY2xlYXJhbmNlIHBvbHlnb25zLiAoRHVlIHRvCnN1 YnRsZSByb3VuZGluZyBlcnJvcnMgaW4gdGhlIGNsZWFyYW5jZSBwb2x5Z29ucyBkb24ndCBhbHdh eXMgbWVldCBleGFjdGx5KS4KCkRpc3RpbGxpbmcgYSBzaW1wbGVyIHRlc3QgY2FzZSwgdGhlIGZv bGxvd2luZyBwb2x5Z29ucyAob24gbGF5ZXIgQSBhbmQgQikKc2hvdWxkIGJlIHVuaXRlZCB0byBy ZXByb2R1Y2UgdGhlIGJ1Zy4gKE5COiBUaGUgQSBQT0xZQVJFQSBoYXMgdHdvIGNvbnRvdXJzCndo aWNoIHRvdWNoIGF0IGEgc2luZ2xlIHBvaW50KToKCiAgTGF5ZXIoMSAiQSIpCiAgKAogICAgUG9s eWdvbigiIikKICAgICgKICAgICAgWzUxLjAwMDBtbSAxOC4wMDAwbW1dIFs1MS4wMDAwbW0gMTIu MDAwMG1tXSBbMTQwLjAwMDBtbSAxMi4wMDAwbW0gIF0gWzE0NC4wMDAwbW0gMTguMDAwMG1tXQog ICAgKQogICAgUG9seWdvbigiIikKICAgICgKICAgICAgWzUxLjAwMDBtbSA2LjAwMDBtbV0gWzE0 NC4wMDAwbW0gNi4wMDAwbW1dIFsxNDAuMDAwMG1tIDEyLjAwMDBtbV0gWzUxLjAwMDBtbSAxMS45 OTk5Nm1tXQogICAgKQogICkKICBMYXllcigyICJCIikKICAoCiAgICBQb2x5Z29uKCJjbGVhcnBv bHkiKQogICAgKAogICAgICBbMTM5LjAwMDBtbSA1LjAwMDBtbV0gWzE0NS4wMDAwbW0gNS4wMDAw bW1dIFsxNDUuMDAwMG1tIDE5LjAwMDBtbV0gWzEzOS4wMDAwbW0gMTkuMDAwMG1tXQogICAgKQog ICkKCkluIHRoaXMgY2FzZSB0aGUgdHdvIGNvbnRvdXJzIG9mIHRoZSAnQScgcG9seWdvbiBlYWNo IGhhdmUgYW4gZWRnZSB0aGF0IGlzCmhvcml6b250YWwgKG9yIHZlcnkgY2xvc2UgdG8gaG9yaXpv bnRhbCksIGFuZCBtZWV0IGF0IGEgc2luZ2xlIHBvaW50IGluc2lkZQp0aGUgJ0InIHBvbHlnb24g Y29udG91ci4gRHVlIHRvIHJvdW5kaW5nIG9udG8gdGhlIGludGVnZXIgZ3JpZCwgYm90aCBsaW5l cwppbnRlcnNlY3QgdGhlIEIgY29udG91ciBhdCB0aGUgc2FtZSBwb2ludCwgbGVhdmluZyB0d28g Y29pbmNpZGVudCBlZGdlCmZyYWdtZW50cyBiZWxvbmdpbmcgdG8gdGhlIEEgY29udG91ciBtZWV0 aW5nIGF0IHRoYXQgb25lIHZlcnRleCBvbiB0aGUgQgpjb250b3VyLgoKSW4gdGhlIGFib3ZlIGV4 YW1wbGUsIG9wZXJhdGlvbiBvcmRlcmluZyBjb25zcGlyZXMgdG8gaW5zZXJ0IHRoZSB0d28gaWRl bnRpY2FsCkEgZWRnZXMgaW50byB0aGUgQ1ZDIGxpc3QgZm9yIHRoZSBjb21tb24gaW50ZXJzZWN0 aW9uIHBvaW50IG9uIHRoZSBCIGNvbnRvdXIsCmluIGFuIGluY29ycmVjdCBvcmRlci4gKFRoZXkg YXJlIHNvcnRlZCBieSBwc2V1ZG8tYW5nbGVzLCB3aGljaCBhcmUgaWRlbnRpY2FsCmluIHRoaXMg Y2FzZSkuIFRoZSByZXZlcnNlZCBvcmRlciBvZiB0aGVzZSBwYWlyZWQgZWRnZXMgdGhlbiB1cHNl dHMgY29udG91cgpsYWJlbGluZyBpbiBub2RlX2xhYmVsKCkuCgpUaGlzIGNvbW1pdCBmaXhlcyBu b2RlX2xhYmVsKCkgdG8gbG9vayBmb3IgYW5kIHNraXAgcGFpcnMgb2YgaWRlbnRpY2FsbHkgYW5n bGVkCmVkZ2VzIGZyb20gdGhlIHNhbWUgcG9seWdvbiB3aGVuIGl0ZXJhdGluZyBhcm91bmQgdGhl IENWQyBsaXN0LiAoV2UgY2FuCmRldGVybWluZSB0aGUgSU5TSURFL09VVFNJREUgc3RhdHVzIHdo ZW4gd2UgZmluZCB0aGUgbmV4dCwgbm9uLXBhaXJlZCBlZGdlIGZyb20KdGhlIG90aGVyIHBvbHln b24pLgotLS0KIHNyYy9wb2x5Z29uMS5jIHwgMTUgKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hh bmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv cG9seWdvbjEuYyBiL3NyYy9wb2x5Z29uMS5jCmluZGV4IGVmY2ExYjcuLmIzYmM4NzkgMTAwNjQ0 Ci0tLSBhL3NyYy9wb2x5Z29uMS5jCisrKyBiL3NyYy9wb2x5Z29uMS5jCkBAIC0zOTAsMTQgKzM5 MCwyNSBAQCBub2RlX2xhYmVsIChWTk9ERSAqIHBuKQogICAgKiBjaGVjayBmb3Igc2hhcmVkIGVk Z2VzICh0aGF0IGNvdWxkIGJlIHByZXYgb3IgbmV4dCBpbiB0aGUgbGlzdCBzaW5jZSB0aGUgYW5n bGVzIGFyZSBlcXVhbCkKICAgICogYW5kIGNoZWNrIGlmIHRoaXMgZWRnZSAocG4gLT4gcG4tPm5l eHQpIGlzIGZvdW5kIGJldHdlZW4gdGhlIG90aGVyIHBvbHkncyBlbnRyeSBhbmQgZXhpdAogICAg Ki8KKwogICBpZiAocG4tPmN2Y19uZXh0LT5hbmdsZSA9PSBwbi0+Y3ZjX25leHQtPnByZXYtPmFu Z2xlKQogICAgIGwgPSBwbi0+Y3ZjX25leHQtPnByZXY7CiAgIGVsc2UKLSAgICBsID0gcG4tPmN2 Y19uZXh0LT5uZXh0OworICAgIGwgPSBwbi0+Y3ZjX25leHQ7CiAKICAgZmlyc3RfbCA9IGw7CiAg IHdoaWxlICgobC0+cG9seSA9PSB0aGlzX3BvbHkpICYmIChsICE9IGZpcnN0X2wtPnByZXYpKQot ICAgIGwgPSBsLT5uZXh0OworICAgIHsKKyAgICAgIGwgPSBsLT5uZXh0OworCisgICAgICAvKiBT a2lwIG92ZXIgaGFpcmxpbmUgcGFpcnMgb2YgZWRnZXMgZnJvbSB0aGUgb3RoZXIgcG9seWdvbiwg YXMgdGhleSBhcmUgbm90IG5lY2Vzc2FyaWx5CisgICAgICAgKiBzb3J0ZWQgaW4gdGhlIGNvcnJl Y3Qgb3JkZXIsIGFuZCB0aHVzIGNhbiBtaXNsZWFkIGFzIHRvIHdoZXRoZXIgd2UgYXJlIGluc2lk ZSBvciBvdXRzaWRlCisgICAgICAgKi8KKyAgICAgIGlmIChsLT5wb2x5ID09IGwtPm5leHQtPnBv bHkgJiYKKyAgICAgICAgICBsLT5zaWRlICE9IGwtPm5leHQtPnNpZGUgJiYgLyogPC0tIFBDSkM6 IE5vdCBzdXJlIGlmIHRoaXMgaXMgcmVxdWlyZWQsIGluY2x1ZGluZyBmb3Igc2FuaXR5ICovCisg ICAgICAgICAgbC0+YW5nbGUgPT0gbC0+bmV4dC0+YW5nbGUpCisgICAgICAgIGwgPSBsLT5uZXh0 LT5uZXh0OworICAgIH0KICAgYXNzZXJ0IChsLT5wb2x5ICE9IHRoaXNfcG9seSk7CiAKICAgYXNz ZXJ0IChsICYmIGwtPmFuZ2xlID49IDAgJiYgbC0+YW5nbGUgPD0gNC4wKTsKLS0gCjIuMS4wCgo= --=-rCe6F4V55toTFtFXmlby--