www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/02/15/17:50:23

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 <peter DOT clifton AT clifton-electronics DOT co DOT uk>
To: geda-user AT delorie DOT com
Date: Sun, 15 Feb 2015 22:48:14 +0000
Organization: Clifton Electronics
X-Mailer: Evolution 3.12.7-0ubuntu1
Mime-Version: 1.0
Sender: "Peter C.J. Clifton" <pcjc2 AT hermes DOT cam DOT ac DOT uk>
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 <peter DOT clifton AT clifton-electronics DOT co DOT uk>

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--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019