Content-Type: text/plain; charset="us-ascii"; format="flowed"
Attaching the ChangeLog entry as a file this time, my luck with xemacs -> GNUMail pasting has run out. The part about NSMouseInRect() <-> NSPointInRect() is mainly a suggestion, but seems a clearer way to do things to me. <MyChangeLog> <NSGeometry.h.patch>
Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="MyChangeLog" Content-Disposition: attachment; filename="MyChangeLog" MjAwMi0xMS0wMyAgTHluZG9uIFRyZW1ibGF5ICA8aHVtYXNlY3RAc2hhdy5jYT4KCglUaGVz ZSBjaGFuZ2VzIGhhdmUgbWFkZSB0aGUgaW50ZXJmYWNlIGEgc21hbGwgYml0IG1vcmUgcmVz cG9uc2l2ZQoJdW5kZXIgaGVhdnkgZ2VvbWV0cnkgbG9hZHM6CgkoTlNNYWtlUG9pbnQpLCAo TlNNYWtlU2l6ZSksIChOU01ha2VSZWN0KTogUmVkdWNlZCBhbW91bnQgb2YgY29kZQoJYnkg bW92aW5nIGluaXRpYWxpemF0aW9ucyBzdHJhaWdodCBpbnRvIGRlY2xhcmF0aW9uLgoJUG9z c2libHkgaGVscHMgZ2NjIGluIG9wdGltaXphdGlvbnMuCgkoTlNJc0VtcHR5UmVjdCk6IFdp dGhvdXQgbG9zcyBvZiByZWFkYWJpbGl0eS9tYW5hZ2VhYmlsaXR5LCBhdm9pZAoJcmVmZXJl bmNlcyB0byBOU1dpZHRoL05TSGVpZ2h0IGV2ZW4gdGhvdWdodCB0aGV5IGFyZSBpbmxpbmVk LgoJKE5TT2Zmc2V0UmVjdCksIChOU0luc2V0UmVjdCk6IEF2b2lkIGNvcHlpbmcgZW50aXJl IE5TUmVjdCBzdHJ1Y3R1cmUKCXdoZW4gbm90IG5lZWRpbmcgdG8sIGNsZWFuZWQgdXAuCgko TlNVbmlvblJlY3QpOiBPbmx5IGNhbGwgbWF4aW11bSBvZiAyIE5TSXNFbXB0eVJlY3QoKSwg aW5zdGVhZCBvZgoJYSBwb3NzaWJsZSBmb3VyIGNhbGxzIG9uIGZhaWx1cmUgcHJldmlvdXNs eS4KCShOU1BvaW50SW5SZWN0KTogSW1wbGVtZW50cyBwb2ludCBpbiByZWN0IHRlc3Rpbmcg ZnJvbSBOU01vdXNlSW5SZWN0LgoJKE5TTW91c2VJblJlY3QpOiBDYWxscyBOU1BvaW50SW5S ZWN0IGlmIGZsaXBwZWQ9WUVTLiBTZWVtcyBtb3JlCglsb2dpY2FsIHRoaXMgd2F5LCBhbmQg Y2FsbGluZyBOU1BvaW50SW5SZWN0KCkgb25seSB3aWxsIG5vdCBoYXZlIHRvCgl0ZXN0IGZv ciBmbGlwcGVkLgo=
Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="NSGeometry.h.patch" Content-Disposition: attachment; filename="NSGeometry.h.patch" ZGlmZiAtdSAtcjEuMTggTlNHZW9tZXRyeS5oCi0tLSBiYXNlL0hlYWRlcnMvZ251c3RlcC9i YXNlL05TR2VvbWV0cnkuaAkyMSBTZXAgMjAwMSAxNjoxMzoxMSAtMDAwMAkxLjE4CisrKyBi YXNlL0hlYWRlcnMvZ251c3RlcC9iYXNlL05TR2VvbWV0cnkuaAk3IE5vdiAyMDAyIDAyOjEy OjE5IC0wMDAwCkBAIC0xMTAsMTEgKzExMCwxMSBAQAogR1NfR0VPTV9TQ09QRSBOU1BvaW50 CiBOU01ha2VQb2ludChmbG9hdCB4LCBmbG9hdCB5KQogewotICBOU1BvaW50IHBvaW50Owot Ci0gIHBvaW50LnggPSB4OwotICBwb2ludC55ID0geTsKKyNpZiAwCisgIE5TUG9pbnQgcG9p bnQgPSB7eCwgeX07CiAgIHJldHVybiBwb2ludDsKKyNlbmRpZgorICByZXR1cm4gKE5TUG9p bnQpe3gsIHl9OwogfQogCiAvKiBSZXR1cm5zIGFuIE5TU2l6ZSBoYXZpbmcgd2lkdGggV0lE VEggYW5kIGhlaWdodCBIRUlHSFQuICovCkBAIC0xMjQsMTEgKzEyNCwxMSBAQAogR1NfR0VP TV9TQ09QRSBOU1NpemUKIE5TTWFrZVNpemUoZmxvYXQgdywgZmxvYXQgaCkKIHsKLSAgTlNT aXplIHNpemU7Ci0KLSAgc2l6ZS53aWR0aCA9IHc7Ci0gIHNpemUuaGVpZ2h0ID0gaDsKKyNp ZiAwCisgIE5TU2l6ZSBzaXplID0ge3csIGh9OwogICByZXR1cm4gc2l6ZTsKKyNlbmRpZgor ICByZXR1cm4gKE5TU2l6ZSl7dywgaH07CiB9CiAKIC8qIFJldHVybnMgYW4gTlNSZWN0IGhh dmluZyBwb2ludCBvZiBvcmlnaW4gKFgsIFkpIGFuZCBzaXplIHtXLCBIfS4gKi8KQEAgLTEz OCwxMyArMTM4LDExIEBACiBHU19HRU9NX1NDT1BFIE5TUmVjdAogTlNNYWtlUmVjdChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB3LCBmbG9hdCBoKQogewotICBOU1JlY3QgcmVjdDsKLQot ICByZWN0Lm9yaWdpbi54ID0geDsKLSAgcmVjdC5vcmlnaW4ueSA9IHk7Ci0gIHJlY3Quc2l6 ZS53aWR0aCA9IHc7Ci0gIHJlY3Quc2l6ZS5oZWlnaHQgPSBoOworI2lmIDAKKyAgTlNSZWN0 IHJlY3QgPSB7e3gsIHl9LCB7dywgaH19OwogICByZXR1cm4gcmVjdDsKKyNlbmRpZgorICBy ZXR1cm4gKE5TUmVjdCl7e3gsIHl9LCB7dywgaH19OwogfQogCiAvKiogR2V0IGEgUmVjdGFu Z2xlJ3MgQ29vcmRpbmF0ZXMuLi4gKiovCkBAIC0yMzcsNyArMjM1LDcgQEAKIEdTX0dFT01f U0NPUEUgQk9PTAogTlNJc0VtcHR5UmVjdChOU1JlY3QgYVJlY3QpCiB7Ci0gIHJldHVybiAo KE5TV2lkdGgoYVJlY3QpID4gMCkgJiYgKE5TSGVpZ2h0KGFSZWN0KSA+IDApKSA/IE5PIDog WUVTOworICByZXR1cm4gKChhUmVjdC5zaXplLndpZHRoID4gMCkgJiYgKGFSZWN0LnNpemUu aGVpZ2h0ID4gMCkpID8gTk8gOiBZRVM7CiB9CiAKIC8qKiBNb2RpZnkgYSBDb3B5IG9mIGEg UmVjdGFuZ2xlLi4uICoqLwpAQCAtMjUwLDExICsyNDgsMTEgQEAKIEdTX0dFT01fU0NPUEUg TlNSZWN0CiBOU09mZnNldFJlY3QoTlNSZWN0IGFSZWN0LCBmbG9hdCBkeCwgZmxvYXQgZHkp CiB7Ci0gIE5TUmVjdCByZWN0ID0gYVJlY3Q7Ci0KLSAgcmVjdC5vcmlnaW4ueCArPSBkeDsK LSAgcmVjdC5vcmlnaW4ueSArPSBkeTsKKyNpZiAwCisgIE5TUmVjdCByZWN0ID0ge3thUmVj dC5vcmlnaW4ueCArIGR4LCBhUmVjdC5vcmlnaW4ueSArIGR5fSwgYVJlY3Quc2l6ZX07CiAg IHJldHVybiByZWN0OworI2VuZGlmCisgIHJldHVybiAoTlNSZWN0KXt7YVJlY3Qub3JpZ2lu LnggKyBkeCwgYVJlY3Qub3JpZ2luLnkgKyBkeX0sIGFSZWN0LnNpemV9OwogfQogCiAvKiBS ZXR1cm5zIHRoZSByZWN0YW5nbGUgb2J0YWluZWQgYnkgbW92aW5nIGVhY2ggb2YgQVJFQ1Qn cwpAQCAtMjY2LDEyICsyNjQsMTkgQEAKIEdTX0dFT01fU0NPUEUgTlNSZWN0CiBOU0luc2V0 UmVjdChOU1JlY3QgYVJlY3QsIGZsb2F0IGRYLCBmbG9hdCBkWSkKIHsKLSAgTlNSZWN0IHJl Y3Q7Ci0KLSAgcmVjdCA9IE5TT2Zmc2V0UmVjdChhUmVjdCwgZFgsIGRZKTsKLSAgcmVjdC5z aXplLndpZHRoIC09ICgyICogZFgpOwotICByZWN0LnNpemUuaGVpZ2h0IC09ICgyICogZFkp OworI2lmIDAKKyAgTlNSZWN0IHJlY3QgPSB7e2FSZWN0Lm9yaWdpbi54ICsgZFgsCisJCQkJ ICBhUmVjdC5vcmlnaW4ueSArIGRZfSwKKwkJCQkge2FSZWN0LnNpemUud2lkdGggLSAyKmRY LAorCQkJCSAgYVJlY3Quc2l6ZS5oZWlnaHQgLSAyKmRZfX07CisKKyAgLy9yZWN0ID0gTlNP ZmZzZXRSZWN0KGFSZWN0LCBkWCwgZFkpOworICAvL3JlY3Quc2l6ZS53aWR0aCAtPSAoMiAq IGRYKTsKKyAgLy9yZWN0LnNpemUuaGVpZ2h0IC09ICgyICogZFkpOwogICByZXR1cm4gcmVj dDsKKyNlbmRpZgorICByZXR1cm4gKE5TUmVjdCl7e2FSZWN0Lm9yaWdpbi54ICsgZFgsIGFS ZWN0Lm9yaWdpbi55ICsgZFl9LAorCSAge2FSZWN0LnNpemUud2lkdGggLSAyKmRYLCBhUmVj dC5zaXplLmhlaWdodCAtIDIqZFl9fTsKIH0KIAogLyogRGl2aWRlcyBBUkVDVCBpbnRvIHR3 byByZWN0YW5nbGVzIChuYW1lbHkgU0xJQ0UgYW5kIFJFTUFJTkRFUikgYnkKQEAgLTMwMywx MiArMzA4LDE2IEBACiBOU1VuaW9uUmVjdChOU1JlY3QgYVJlY3QsIE5TUmVjdCBiUmVjdCkK IHsKICAgTlNSZWN0IHJlY3Q7CisgIEJPT0wgZW1wdHlbMl0gPSB7TlNJc0VtcHR5UmVjdChh UmVjdCksIE5TSXNFbXB0eVJlY3QoYlJlY3QpfTsKIAotICBpZiAoTlNJc0VtcHR5UmVjdChh UmVjdCkgJiYgTlNJc0VtcHR5UmVjdChiUmVjdCkpCi0gICAgcmV0dXJuIE5TTWFrZVJlY3Qo MCwwLDAsMCk7Ci0gIGVsc2UgaWYgKE5TSXNFbXB0eVJlY3QoYVJlY3QpKQorICAvL2lmIChO U0lzRW1wdHlSZWN0KGFSZWN0KSAmJiBOU0lzRW1wdHlSZWN0KGJSZWN0KSkKKyAgaWYgKGVt cHR5WzBdICYmIGVtcHR5WzFdKQorCXJldHVybiBOU01ha2VSZWN0KDAsMCwwLDApOworICAv L2Vsc2UgaWYgKE5TSXNFbXB0eVJlY3QoYVJlY3QpKQorICBlbHNlIGlmIChlbXB0eVswXSkK ICAgICByZXR1cm4gYlJlY3Q7Ci0gIGVsc2UgaWYgKE5TSXNFbXB0eVJlY3QoYlJlY3QpKQor ICAvL2Vsc2UgaWYgKE5TSXNFbXB0eVJlY3QoYlJlY3QpKQorICBlbHNlIGlmIChlbXB0eVsx XSkKICAgICByZXR1cm4gYVJlY3Q7CiAKICAgcmVjdCA9IE5TTWFrZVJlY3QoTUlOKE5TTWlu WChhUmVjdCksIE5TTWluWChiUmVjdCkpLApAQCAtMzM2LDcgKzM0NSw3IEBACiAgIGlmIChO U01heFgoYVJlY3QpIDw9IE5TTWluWChiUmVjdCkgfHwgTlNNYXhYKGJSZWN0KSA8PSBOU01p blgoYVJlY3QpCiAgICAgfHwgTlNNYXhZKGFSZWN0KSA8PSBOU01pblkoYlJlY3QpIHx8IE5T TWF4WShiUmVjdCkgPD0gTlNNaW5ZKGFSZWN0KSkgCiAgICAgewotICAgICAgcmV0dXJuIE5T TWFrZVJlY3QoMCwgMCwgMCwgMCk7CisJICByZXR1cm4gTlNNYWtlUmVjdCgwLDAsMCwwKTsv L05TWmVyb1JlY3Q7Ly9OU01ha2VSZWN0KDAsIDAsIDAsIDApOwogICAgIH0KICAgZWxzZQog ICAgIHsKQEAgLTQwNiwzMSArNDE1LDMxIEBACiAKIC8qIFJldHVybnMgJ1lFUycgaWZmIEFQ T0lOVCBpcyBpbnNpZGUgQVJFQ1QuICovIAogR1NfR0VPTV9TQ09QRSBCT09MCitOU1BvaW50 SW5SZWN0KE5TUG9pbnQgYVBvaW50LCBOU1JlY3QgYVJlY3QpIEdTX0dFT01fQVRUUjsKKwor R1NfR0VPTV9TQ09QRSBCT09MCitOU1BvaW50SW5SZWN0KE5TUG9pbnQgYVBvaW50LCBOU1Jl Y3QgYVJlY3QpCit7CisgIHJldHVybiAoKGFQb2ludC54ID49IE5TTWluWChhUmVjdCkpCisg ICAgICAgICAgJiYgKGFQb2ludC55ID49IE5TTWluWShhUmVjdCkpCisJCSAgJiYgKGFQb2lu dC54IDwgTlNNYXhYKGFSZWN0KSkKKwkJICAmJiAoYVBvaW50LnkgPCBOU01heFkoYVJlY3Qp KSkgPyBZRVMgOiBOTzsKK30KKworLyogSnVzdCBsaWtlICdOU1BvaW50SW5SZWN0KGFQb2lu dCwgYVJlY3QpJyBidXQgc3VwcG9ydHMgZmxpcHBlZCBZIGF4aXMgY29vcmRpbmF0ZXMuICov CitHU19HRU9NX1NDT1BFIEJPT0wKIE5TTW91c2VJblJlY3QoTlNQb2ludCBhUG9pbnQsIE5T UmVjdCBhUmVjdCwgQk9PTCBmbGlwcGVkKSBHU19HRU9NX0FUVFI7CiAKIEdTX0dFT01fU0NP UEUgQk9PTAogTlNNb3VzZUluUmVjdChOU1BvaW50IGFQb2ludCwgTlNSZWN0IGFSZWN0LCBC T09MIGZsaXBwZWQpCiB7CiAgIGlmIChmbGlwcGVkKQotICAgIHJldHVybiAoKGFQb2ludC54 ID49IE5TTWluWChhUmVjdCkpCi0gICAgICAgICAgICAmJiAoYVBvaW50LnkgPj0gTlNNaW5Z KGFSZWN0KSkKLSAgICAgICAgICAgICYmIChhUG9pbnQueCA8IE5TTWF4WChhUmVjdCkpCi0g ICAgICAgICAgICAmJiAoYVBvaW50LnkgPCBOU01heFkoYVJlY3QpKSkgPyBZRVMgOiBOTzsK KyAgICByZXR1cm4gTlNQb2ludEluUmVjdChhUG9pbnQsIGFSZWN0KTsKICAgZWxzZQogICAg IHJldHVybiAoKGFQb2ludC54ID49IE5TTWluWChhUmVjdCkpCiAgICAgICAgICAgICAmJiAo YVBvaW50LnkgPiBOU01pblkoYVJlY3QpKQogICAgICAgICAgICAgJiYgKGFQb2ludC54IDwg TlNNYXhYKGFSZWN0KSkKICAgICAgICAgICAgICYmIChhUG9pbnQueSA8PSBOU01heFkoYVJl Y3QpKSkgPyBZRVMgOiBOTzsKLX0KLQotLyogSnVzdCBsaWtlICdOU01vdXNlSW5SZWN0KGFQ b2ludCwgYVJlY3QsIFlFUyknLiAqLwotR1NfR0VPTV9TQ09QRSBCT09MCi1OU1BvaW50SW5S ZWN0KE5TUG9pbnQgYVBvaW50LCBOU1JlY3QgYVJlY3QpIEdTX0dFT01fQVRUUjsKLQotR1Nf R0VPTV9TQ09QRSBCT09MCi1OU1BvaW50SW5SZWN0KE5TUG9pbnQgYVBvaW50LCBOU1JlY3Qg YVJlY3QpCi17Ci0gIHJldHVybiBOU01vdXNlSW5SZWN0KGFQb2ludCwgYVJlY3QsIFlFUyk7 CiB9CiAKIC8qIFJldHVybnMgJ1lFUycgaWZmIEFSRUNUIHRvdGFsbHkgZW5jbG9zZXMgQlJF Q1QuICBOT1RFOiBGb3IK
