[ruby-dev:39415] Re: Removing constant-able macros inside of the loop.
From:
"Masahiro Kanai (CanI)" <cani.m.61st@...>
Date:
2009-10-01 15:53:34 UTC
List:
ruby-dev #39415
金井です。 2009年9月30日1:04 Masahiro Kanai (CanI) <cani.m.61st@gmail.com>: > 設定を確認して、再添付しました。 申し訳ありません。 先日、送付したパッチですが、再びfoldされていることを確認しました。 こちらのメーラーの送信済メールの項目では、foldされていなかったため、 油断していました。 あれから、様々な方法を試しましたが、どうもうまく送信できないようなので、 patchの文字列をbase64エンコードした文字列と、 パッチを載せた外部サイトのURLを送ります。 よろしくお願いいたします。 http://www.friendpaste.com/4x9n0ORQbUxewOQsvnRUcj Ci0tLSBhcnJheS5jCShyZXZpc2lvbiAyNTA1MikKKysrIGFycmF5LmMJKHdvcmtpbmcgY2 9weSkKQEAgLTI3MDgsOCArMjcwOCw4IEBACiBzdGF0aWMgVkFMVUUKIHJiX2FyeV90aW1l cyhWQUxVRSBhcnksIFZBTFVFIHRpbWVzKQogewotICAgIFZBTFVFIGFyeTIsIHRtcDsKLS AgICBsb25nIGksIGxlbjsKKyAgICBWQUxVRSBhcnkyLCB0bXAsICpwdHIsICpwdHIyOwor ICAgIGxvbmcgaSwgdCwgbGVuOwoKICAgICB0bXAgPSByYl9jaGVja19zdHJpbmdfdHlwZS h0aW1lcyk7CiAgICAgaWYgKCFOSUxfUCh0bXApKSB7CkBAIC0yNzMyLDggKzI3MzIsMTEg QEAKICAgICBhcnkyID0gYXJ5X25ldyhyYl9vYmpfY2xhc3MoYXJ5KSwgbGVuKTsKICAgIC BBUllfU0VUX0xFTihhcnkyLCBsZW4pOwoKLSAgICBmb3IgKGk9MDsgaTxsZW47IGkrPVJB UlJBWV9MRU4oYXJ5KSkgewotCU1FTUNQWShSQVJSQVlfUFRSKGFyeTIpK2ksIFJBUlJBWV 9QVFIoYXJ5KSwgVkFMVUUsIFJBUlJBWV9MRU4oYXJ5KSk7CisgICAgcHRyID0gUkFSUkFZ X1BUUihhcnkpOworICAgIHB0cjIgPSBSQVJSQVlfUFRSKGFyeTIpOworICAgIHQgPSBSQV JSQVlfTEVOKGFyeSk7CisgICAgZm9yIChpPTA7IGk8bGVuOyBpKz10KSB7CisJTUVNQ1BZ KHB0cjIraSwgcHRyLCBWQUxVRSwgdCk7CiAgICAgfQogICBvdXQ6CiAgICAgT0JKX0lORk VDVChhcnkyLCBhcnkpOwpAQCAtMzQ5MSwxNCArMzQ5NCwxNiBAQAogc3RhdGljIFZBTFVF CiByYl9hcnlfc2h1ZmZsZV9iYW5nKFZBTFVFIGFyeSkKIHsKKyAgICBWQUxVRSAqcHRyOw ogICAgIGxvbmcgaSA9IFJBUlJBWV9MRU4oYXJ5KTsKCiAgICAgcmJfYXJ5X21vZGlmeShh cnkpOworICAgIHB0ciA9IFJBUlJBWV9QVFIoYXJ5KTsKICAgICB3aGlsZSAoaSkgewogCW xvbmcgaiA9IChsb25nKShyYl9nZW5yYW5kX3JlYWwoKSppKTsKLQlWQUxVRSB0bXAgPSBS QVJSQVlfUFRSKGFyeSlbLS1pXTsKLQlSQVJSQVlfUFRSKGFyeSlbaV0gPSBSQVJSQVlfUF RSKGFyeSlbal07Ci0JUkFSUkFZX1BUUihhcnkpW2pdID0gdG1wOworCVZBTFVFIHRtcCA9 IHB0clstLWldOworCXB0cltpXSA9IHB0cltqXTsKKwlwdHJbal0gPSB0bXA7CiAgICAgfQ ogICAgIHJldHVybiBhcnk7CiB9CkBAIC0zNTc2LDYgKzM1ODEsNyBAQAogCXJldHVybiBy Yl9hcnlfbmV3MygzLCBwdHJbaV0sIHB0cltqXSwgcHRyW2tdKTsKICAgICB9CiAgICAgaW YgKChzaXplX3QpbiA8IHNpemVvZihpZHgpL3NpemVvZihpZHhbMF0pKSB7CisJVkFMVUUg KnB0cl9yZXN1bHQ7CiAJbG9uZyBzb3J0ZWRbc2l6ZW9mKGlkeCkvc2l6ZW9mKGlkeFswXS ldOwogCXNvcnRlZFswXSA9IGlkeFswXSA9IChsb25nKShyYl9nZW5yYW5kX3JlYWwoKSps ZW4pOwogCWZvciAoaT0xOyBpPG47IGkrKykgewpAQCAtMzU4OCwxOCArMzU5NCwyMSBAQA ogCSAgICBzb3J0ZWRbal0gPSBpZHhbaV0gPSBrOwogCX0KIAlyZXN1bHQgPSByYl9hcnlf bmV3MihuKTsKKwlwdHJfcmVzdWx0ID0gUkFSUkFZX1BUUihyZXN1bHQpOwogCWZvciAoaT 0wOyBpPG47IGkrKykgewotCSAgICBSQVJSQVlfUFRSKHJlc3VsdClbaV0gPSBSQVJSQVlf UFRSKGFyeSlbaWR4W2ldXTsKKwkgICAgcHRyX3Jlc3VsdFtpXSA9IHB0cltpZHhbaV1dOw ogCX0KICAgICB9CiAgICAgZWxzZSB7CisJVkFMVUUgKnB0cl9yZXN1bHQ7CiAJcmVzdWx0 ID0gcmJfYXJ5X25ldzQobGVuLCBwdHIpOworCXB0cl9yZXN1bHQgPSBSQVJSQVlfUFRSKH Jlc3VsdCk7CiAJUkJfR0NfR1VBUkQoYXJ5KTsKIAlmb3IgKGk9MDsgaTxuOyBpKyspIHsK IAkgICAgaiA9IChsb25nKShyYl9nZW5yYW5kX3JlYWwoKSoobGVuLWkpKSArIGk7Ci0JIC AgIG52ID0gUkFSUkFZX1BUUihyZXN1bHQpW2pdOwotCSAgICBSQVJSQVlfUFRSKHJlc3Vs dClbal0gPSBSQVJSQVlfUFRSKHJlc3VsdClbaV07Ci0JICAgIFJBUlJBWV9QVFIocmVzdW x0KVtpXSA9IG52OworCSAgICBudiA9IHB0cl9yZXN1bHRbal07CisJICAgIHB0cl9yZXN1 bHRbal0gPSBwdHJfcmVzdWx0W2ldOworCSAgICBwdHJfcmVzdWx0W2ldID0gbnY7CiAJfQ ogICAgIH0KICAgICBBUllfU0VUX0xFTihyZXN1bHQsIG4pOwotLS0gc3RyaW5nLmMJKHJl dmlzaW9uIDI1MDUyKQorKysgc3RyaW5nLmMJKHdvcmtpbmcgY29weSkKQEAgLTExNTksNi ArMTE1OSw3IEBACiB7CiAgICAgVkFMVUUgc3RyMjsKICAgICBsb25nIG4sIGxlbjsKKyAg ICBjaGFyICpwdHIyOwoKICAgICBsZW4gPSBOVU0yTE9ORyh0aW1lcyk7CiAgICAgaWYgKG xlbiA8IDApIHsKQEAgLTExNjksMTYgKzExNzAsMTcgQEAKICAgICB9CgogICAgIHN0cjIg PSByYl9zdHJfbmV3NShzdHIsIDAsIGxlbiAqPSBSU1RSSU5HX0xFTihzdHIpKTsKKyAgIC BwdHIyID0gUlNUUklOR19QVFIoc3RyMik7CiAgICAgaWYgKGxlbikgewogICAgICAgICBu ID0gUlNUUklOR19MRU4oc3RyKTsKLSAgICAgICAgbWVtY3B5KFJTVFJJTkdfUFRSKHN0cj IpLCBSU1RSSU5HX1BUUihzdHIpLCBuKTsKKyAgICAgICAgbWVtY3B5KHB0cjIsIFJTVFJJ TkdfUFRSKHN0ciksIG4pOwogICAgICAgICB3aGlsZSAobiA8PSBsZW4vMikgewotICAgIC AgICAgICAgbWVtY3B5KFJTVFJJTkdfUFRSKHN0cjIpICsgbiwgUlNUUklOR19QVFIoc3Ry MiksIG4pOworICAgICAgICAgICAgbWVtY3B5KHB0cjIgKyBuLCBwdHIyLCBuKTsKICAgIC AgICAgICAgIG4gKj0gMjsKICAgICAgICAgfQotICAgICAgICBtZW1jcHkoUlNUUklOR19Q VFIoc3RyMikgKyBuLCBSU1RSSU5HX1BUUihzdHIyKSwgbGVuLW4pOworICAgICAgICBtZW 1jcHkocHRyMiArIG4sIHB0cjIsIGxlbi1uKTsKICAgICB9Ci0gICAgUlNUUklOR19QVFIo c3RyMilbUlNUUklOR19MRU4oc3RyMildID0gJ1wwJzsKKyAgICBwdHIyW1JTVFJJTkdfTE VOKHN0cjIpXSA9ICdcMCc7CiAgICAgT0JKX0lORkVDVChzdHIyLCBzdHIpOwogICAgIHJi X2VuY19jcl9zdHJfY29weV9mb3Jfc3Vic3RyKHN0cjIsIHN0cik7CgpAQCAtNTcwMSw2IC s1NzAzLDcgQEAKICAgICB9CiAgICAgZWxzZSBpZiAoc3BsaXRfdHlwZSA9PSBzdHJpbmcp IHsKIAljaGFyICpwdHIgPSBSU1RSSU5HX1BUUihzdHIpOworCWNoYXIgKnRlbXAgPSBwdH I7CiAJY2hhciAqZXB0ciA9IFJTVFJJTkdfRU5EKHN0cik7CiAJY2hhciAqc3B0ciA9IFJT VFJJTkdfUFRSKHNwYXQpOwogCWxvbmcgc2xlbiA9IFJTVFJJTkdfTEVOKHNwYXQpOwpAQC AtNTcyMCwxMyArNTcyMywxNSBAQAogCQlwdHIgPSB0OwogCQljb250aW51ZTsKIAkgICAg fQotCSAgICByYl9hcnlfcHVzaChyZXN1bHQsIHJiX3N0cl9zdWJzZXEoc3RyLCBwdHIgLS BSU1RSSU5HX1BUUihzdHIpLCBlbmQpKTsKKwkgICAgcmJfYXJ5X3B1c2gocmVzdWx0LCBy Yl9zdHJfc3Vic2VxKHN0ciwgcHRyIC0gdGVtcCwgZW5kKSk7CiAJICAgIHB0ciArPSBlbm QgKyBzbGVuOwogCSAgICBpZiAoIU5JTF9QKGxpbWl0KSAmJiBsaW0gPD0gKytpKSBicmVh azsKIAl9Ci0JYmVnID0gcHRyIC0gUlNUUklOR19QVFIoc3RyKTsKKwliZWcgPSBwdHIgLS B0ZW1wOwogICAgIH0KICAgICBlbHNlIHsKKwljaGFyICpwdHIgPSBSU1RSSU5HX1BUUihz dHIpOworCWxvbmcgbGVuID0gUlNUUklOR19MRU4oc3RyKTsKIAlsb25nIHN0YXJ0ID0gYm VnOwogCWxvbmcgaWR4OwogCWludCBsYXN0X251bGwgPSAwOwpAQCAtNTczNSwyMiArNTc0 MCwyMiBAQAogCXdoaWxlICgoZW5kID0gcmJfcmVnX3NlYXJjaChzcGF0LCBzdHIsIHN0YX J0LCAwKSkgPj0gMCkgewogCSAgICByZWdzID0gUk1BVENIX1JFR1MocmJfYmFja3JlZl9n ZXQoKSk7CiAJICAgIGlmIChzdGFydCA9PSBlbmQgJiYgQkVHKDApID09IEVORCgwKSkgew otCQlpZiAoIVJTVFJJTkdfUFRSKHN0cikpIHsKKwkJaWYgKCFwdHIpIHsKIAkJICAgIHJi X2FyeV9wdXNoKHJlc3VsdCwgcmJfc3RyX25ldygiIiwgMCkpOwogCQkgICAgYnJlYWs7Ci AJCX0KIAkJZWxzZSBpZiAobGFzdF9udWxsID09IDEpIHsKIAkJICAgIHJiX2FyeV9wdXNo KHJlc3VsdCwgcmJfc3RyX3N1YnNlcShzdHIsIGJlZywKLQkJCQkJCSAgICAgIHJiX2VuY1 9mYXN0X21iY2xlbihSU1RSSU5HX1BUUihzdHIpK2JlZywKLQkJCQkJCQkJCSBSU1RSSU5H X0VORChzdHIpLAorCQkJCQkJICAgICAgcmJfZW5jX2Zhc3RfbWJjbGVuKHB0citiZWcsCi sJCQkJCQkJCQkgcHRyK2xlbiwKIAkJCQkJCQkJCSBlbmMpKSk7CiAJCSAgICBiZWcgPSBz dGFydDsKIAkJfQogCQllbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFJTVFJJTk dfUFRSKHN0cikrc3RhcnQgPT0gUlNUUklOR19FTkQoc3RyKSkKKyAgICAgICAgICAgICAg ICAgICAgaWYgKHB0citzdGFydCA9PSBwdHIrbGVuKQogICAgICAgICAgICAgICAgICAgIC AgICAgc3RhcnQrKzsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg ICAgICAgICAgICAgc3RhcnQgKz0gcmJfZW5jX2Zhc3RfbWJjbGVuKFJTVFJJTkdfUFRSKH N0cikrc3RhcnQsUlNUUklOR19FTkQoc3RyKSxlbmMpOworICAgICAgICAgICAgICAgICAg ICAgICAgc3RhcnQgKz0gcmJfZW5jX2Zhc3RfbWJjbGVuKHB0citzdGFydCxwdHIrbGVuLG VuYyk7CiAJCSAgICBsYXN0X251bGwgPSAxOwogCQkgICAgY29udGludWU7CiAJCX0KLS0t IHN0cnVjdC5jCShyZXZpc2lvbiAyNTA1MikKKysrIHN0cnVjdC5jCSh3b3JraW5nIGNvcH kpCkBAIC05OCwxNCArOTgsMTcgQEAKIFZBTFVFCiByYl9zdHJ1Y3RfZ2V0bWVtYmVyKFZB TFVFIG9iaiwgSUQgaWQpCiB7Ci0gICAgVkFMVUUgbWVtYmVycywgc2xvdDsKLSAgICBsb2 5nIGk7CisgICAgVkFMVUUgbWVtYmVycywgc2xvdCwgKnB0ciwgKnB0cl9tZW1iZXJzOwor ICAgIGxvbmcgaSwgbGVuOwoKKyAgICBwdHIgPSBSU1RSVUNUX1BUUihvYmopOwogICAgIG 1lbWJlcnMgPSByYl9zdHJ1Y3RfbWVtYmVycyhvYmopOworICAgIHB0cl9tZW1iZXJzID0g UkFSUkFZX1BUUihtZW1iZXJzKTsKICAgICBzbG90ID0gSUQyU1lNKGlkKTsKLSAgICBmb3 IgKGk9MDsgaTxSQVJSQVlfTEVOKG1lbWJlcnMpOyBpKyspIHsKLQlpZiAoUkFSUkFZX1BU UihtZW1iZXJzKVtpXSA9PSBzbG90KSB7Ci0JICAgIHJldHVybiBSU1RSVUNUX1BUUihvYm opW2ldOworICAgIGxlbiA9IFJBUlJBWV9MRU4obWVtYmVycyk7CisgICAgZm9yIChpPTA7 IGk8bGVuOyBpKyspIHsKKwlpZiAocHRyX21lbWJlcnNbaV0gPT0gc2xvdCkgeworCSAgIC ByZXR1cm4gcHRyW2ldOwogCX0KICAgICB9CiAgICAgcmJfbmFtZV9lcnJvcihpZCwgIiVz IGlzIG5vdCBzdHJ1Y3QgbWVtYmVyIiwgcmJfaWQybmFtZShpZCkpOwpAQCAtMTU2LDE1IC sxNTksMTggQEAKIHN0YXRpYyBWQUxVRQogcmJfc3RydWN0X3NldChWQUxVRSBvYmosIFZB TFVFIHZhbCkKIHsKLSAgICBWQUxVRSBtZW1iZXJzLCBzbG90OwotICAgIGxvbmcgaTsKKy AgICBWQUxVRSBtZW1iZXJzLCBzbG90LCAqcHRyLCAqcHRyX21lbWJlcnM7CisgICAgbG9u ZyBpLCBsZW47CgogICAgIG1lbWJlcnMgPSByYl9zdHJ1Y3RfbWVtYmVycyhvYmopOworIC AgIHB0cl9tZW1iZXJzID0gUkFSUkFZX1BUUihtZW1iZXJzKTsKKyAgICBsZW4gPSBSQVJS QVlfTEVOKG1lbWJlcnMpOwogICAgIHJiX3N0cnVjdF9tb2RpZnkob2JqKTsKLSAgICBmb3 IgKGk9MDsgaTxSQVJSQVlfTEVOKG1lbWJlcnMpOyBpKyspIHsKLQlzbG90ID0gUkFSUkFZ X1BUUihtZW1iZXJzKVtpXTsKKyAgICBwdHIgPSBSU1RSVUNUX1BUUihvYmopOworICAgIG ZvciAoaT0wOyBpPGxlbjsgaSsrKSB7CisJc2xvdCA9IHB0cl9tZW1iZXJzW2ldOwogCWlm IChyYl9pZF9hdHRyc2V0KFNZTTJJRChzbG90KSkgPT0gcmJfZnJhbWVfdGhpc19mdW5jKC kpIHsKLQkgICAgcmV0dXJuIFJTVFJVQ1RfUFRSKG9iailbaV0gPSB2YWw7CisJICAgIHJl dHVybiBwdHJbaV0gPSB2YWw7CiAJfQogICAgIH0KICAgICByYl9uYW1lX2Vycm9yKHJiX2 ZyYW1lX3RoaXNfZnVuYygpLCAiYCVzJyBpcyBub3QgYSBzdHJ1Y3QgbWVtYmVyIiwKQEAg LTE3NSw5ICsxODEsOSBAQAogc3RhdGljIFZBTFVFCiBtYWtlX3N0cnVjdChWQUxVRSBuYW 1lLCBWQUxVRSBtZW1iZXJzLCBWQUxVRSBrbGFzcykKIHsKLSAgICBWQUxVRSBuc3RyOwor ICAgIFZBTFVFIG5zdHIsICpwdHJfbWVtYmVyczsKICAgICBJRCBpZDsKLSAgICBsb25nIG k7CisgICAgbG9uZyBpLCBsZW47CgogICAgIE9CSl9GUkVFWkUobWVtYmVycyk7CiAgICAg aWYgKE5JTF9QKG5hbWUpKSB7CkBAIC0yMDQsOCArMjEwLDEwIEBACiAgICAgcmJfZGVmaW 5lX3NpbmdsZXRvbl9tZXRob2QobnN0ciwgIm5ldyIsIHJiX2NsYXNzX25ld19pbnN0YW5j ZSwgLTEpOwogICAgIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0aG9kKG5zdHIsICJbXSIsIH JiX2NsYXNzX25ld19pbnN0YW5jZSwgLTEpOwogICAgIHJiX2RlZmluZV9zaW5nbGV0b25f bWV0aG9kKG5zdHIsICJtZW1iZXJzIiwgcmJfc3RydWN0X3NfbWVtYmVyc19tLCAwKTsKLS AgICBmb3IgKGk9MDsgaTwgUkFSUkFZX0xFTihtZW1iZXJzKTsgaSsrKSB7Ci0JSUQgaWQg PSBTWU0ySUQoUkFSUkFZX1BUUihtZW1iZXJzKVtpXSk7CisgICAgcHRyX21lbWJlcnMgPS BSQVJSQVlfUFRSKG1lbWJlcnMpOworICAgIGxlbiA9IFJBUlJBWV9MRU4obWVtYmVycyk7 CisgICAgZm9yIChpPTA7IGk8IGxlbjsgaSsrKSB7CisJSUQgaWQgPSBTWU0ySUQocHRyX2 1lbWJlcnNbaV0pOwogCWlmIChyYl9pc19sb2NhbF9pZChpZCkgfHwgcmJfaXNfY29uc3Rf aWQoaWQpKSB7CiAJICAgIGlmIChpIDwgTl9SRUZfRlVOQykgewogCQlyYl9kZWZpbmVfbW V0aG9kX2lkKG5zdHIsIGlkLCByZWZfZnVuY1tpXSwgMCk7CkBAIC00OTgsNyArNTA2LDgg QEAKIHsKICAgICBWQUxVRSBjbmFtZSA9IHJiX2NsYXNzX25hbWUocmJfb2JqX2NsYXNzKH MpKTsKICAgICBWQUxVRSBtZW1iZXJzLCBzdHIgPSByYl9zdHJfbmV3MigiIzxzdHJ1Y3Qg Iik7Ci0gICAgbG9uZyBpOworICAgIFZBTFVFICpwdHIsICpwdHJfbWVtYmVyczsKKyAgIC Bsb25nIGksIGxlbjsKICAgICBjaGFyIGZpcnN0ID0gUlNUUklOR19QVFIoY25hbWUpWzBd OwoKICAgICBpZiAocmVjdXIgfHwgZmlyc3QgIT0gJyMnKSB7CkBAIC01MDksNyArNTE4LD EwIEBACiAgICAgfQoKICAgICBtZW1iZXJzID0gcmJfc3RydWN0X21lbWJlcnMocyk7Ci0g ICAgZm9yIChpPTA7IGk8UlNUUlVDVF9MRU4ocyk7IGkrKykgeworICAgIHB0cl9tZW1iZX JzID0gUkFSUkFZX1BUUihtZW1iZXJzKTsKKyAgICBwdHIgPSBSU1RSVUNUX1BUUihzKTsK KyAgICBsZW4gPSBSU1RSVUNUX0xFTihzKTsKKyAgICBmb3IgKGk9MDsgaTxsZW47IGkrKy kgewogCVZBTFVFIHNsb3Q7CiAJSUQgaWQ7CgpAQCAtNTE5LDcgKzUzMSw3IEBACiAJZWxz ZSBpZiAoZmlyc3QgIT0gJyMnKSB7CiAJICAgIHJiX3N0cl9jYXQyKHN0ciwgIiAiKTsKIA l9Ci0Jc2xvdCA9IFJBUlJBWV9QVFIobWVtYmVycylbaV07CisJc2xvdCA9IHB0cl9tZW1i ZXJzW2ldOwogCWlkID0gU1lNMklEKHNsb3QpOwogCWlmIChyYl9pc19sb2NhbF9pZChpZC kgfHwgcmJfaXNfY29uc3RfaWQoaWQpKSB7CiAJICAgIHJiX3N0cl9hcHBlbmQoc3RyLCBy Yl9pZDJzdHIoaWQpKTsKQEAgLTUyOCw3ICs1NDAsNyBAQAogCSAgICByYl9zdHJfYXBwZW 5kKHN0ciwgcmJfaW5zcGVjdChzbG90KSk7CiAJfQogCXJiX3N0cl9jYXQyKHN0ciwgIj0i KTsKLQlyYl9zdHJfYXBwZW5kKHN0ciwgcmJfaW5zcGVjdChSU1RSVUNUX1BUUihzKVtpXS kpOworCXJiX3N0cl9hcHBlbmQoc3RyLCByYl9pbnNwZWN0KHB0cltpXSkpOwogICAgIH0K ICAgICByYl9zdHJfY2F0MihzdHIsICI+Iik7CiAgICAgT0JKX0lORkVDVChzdHIsIHMpOw pAQCAtNTg4LDE0ICs2MDAsMTYgQEAKIHN0YXRpYyBWQUxVRQogcmJfc3RydWN0X2FyZWZf aWQoVkFMVUUgcywgSUQgaWQpCiB7Ci0gICAgVkFMVUUgbWVtYmVyczsKKyAgICBWQUxVRS AqcHRyLCBtZW1iZXJzLCAqcHRyX21lbWJlcnM7CiAgICAgbG9uZyBpLCBsZW47CgorICAg IHB0ciA9IFJTVFJVQ1RfUFRSKHMpOwogICAgIG1lbWJlcnMgPSByYl9zdHJ1Y3RfbWVtYm VycyhzKTsKKyAgICBwdHJfbWVtYmVycyA9IFJBUlJBWV9QVFIobWVtYmVycyk7CiAgICAg bGVuID0gUkFSUkFZX0xFTihtZW1iZXJzKTsKICAgICBmb3IgKGk9MDsgaTxsZW47IGkrKy kgewotCWlmIChTWU0ySUQoUkFSUkFZX1BUUihtZW1iZXJzKVtpXSkgPT0gaWQpIHsKLQkg ICAgcmV0dXJuIFJTVFJVQ1RfUFRSKHMpW2ldOworCWlmIChTWU0ySUQocHRyX21lbWJlcn NbaV0pID09IGlkKSB7CisJICAgIHJldHVybiBwdHJbaV07CiAJfQogICAgIH0KICAgICBy Yl9uYW1lX2Vycm9yKGlkLCAibm8gbWVtYmVyICclcycgaW4gc3RydWN0IiwgcmJfaWQybm FtZShpZCkpOwpAQCAtNjQ0LDE5ICs2NTgsMjEgQEAKIHN0YXRpYyBWQUxVRQogcmJfc3Ry dWN0X2FzZXRfaWQoVkFMVUUgcywgSUQgaWQsIFZBTFVFIHZhbCkKIHsKLSAgICBWQUxVRS BtZW1iZXJzOworICAgIFZBTFVFIG1lbWJlcnMsICpwdHIsICpwdHJfbWVtYmVyczsKICAg ICBsb25nIGksIGxlbjsKCiAgICAgbWVtYmVycyA9IHJiX3N0cnVjdF9tZW1iZXJzKHMpOw otICAgIHJiX3N0cnVjdF9tb2RpZnkocyk7CiAgICAgbGVuID0gUkFSUkFZX0xFTihtZW1i ZXJzKTsKLSAgICBpZiAoUlNUUlVDVF9MRU4ocykgIT0gUkFSUkFZX0xFTihtZW1iZXJzKS kgeworICAgIHJiX3N0cnVjdF9tb2RpZnkocyk7CisgICAgaWYgKFJTVFJVQ1RfTEVOKHMp ICE9IGxlbikgewogCXJiX3JhaXNlKHJiX2VUeXBlRXJyb3IsICJzdHJ1Y3Qgc2l6ZSBkaW ZmZXJzICglbGQgcmVxdWlyZWQgJWxkIGdpdmVuKSIsCi0JCSBSQVJSQVlfTEVOKG1lbWJl cnMpLCBSU1RSVUNUX0xFTihzKSk7CisJCSBsZW4sIFJTVFJVQ1RfTEVOKHMpKTsKICAgIC B9CisgICAgcHRyID0gUlNUUlVDVF9QVFIocyk7CisgICAgcHRyX21lbWJlcnMgPSBSQVJS QVlfUFRSKG1lbWJlcnMpOwogICAgIGZvciAoaT0wOyBpPGxlbjsgaSsrKSB7Ci0JaWYgKF NZTTJJRChSQVJSQVlfUFRSKG1lbWJlcnMpW2ldKSA9PSBpZCkgewotCSAgICBSU1RSVUNU X1BUUihzKVtpXSA9IHZhbDsKKwlpZiAoU1lNMklEKHB0cl9tZW1iZXJzW2ldKSA9PSBpZC kgeworCSAgICBwdHJbaV0gPSB2YWw7CiAJICAgIHJldHVybiB2YWw7CiAJfQogICAgIH0K QEAgLTc3MSwxMSArNzg3LDE1IEBACiBzdGF0aWMgVkFMVUUKIHJlY3Vyc2l2ZV9lcXVhbC hWQUxVRSBzLCBWQUxVRSBzMiwgaW50IHJlY3VyKQogewotICAgIGxvbmcgaTsKKyAgICBW QUxVRSAqcHRyLCAqcHRyMjsKKyAgICBsb25nIGksIGxlbjsKCiAgICAgaWYgKHJlY3VyKS ByZXR1cm4gUXRydWU7IC8qIFN1YnRsZSEgKi8KLSAgICBmb3IgKGk9MDsgaTxSU1RSVUNU X0xFTihzKTsgaSsrKSB7Ci0JaWYgKCFyYl9lcXVhbChSU1RSVUNUX1BUUihzKVtpXSwgUl NUUlVDVF9QVFIoczIpW2ldKSkgcmV0dXJuIFFmYWxzZTsKKyAgICBwdHIgPSBSU1RSVUNU X1BUUihzKTsKKyAgICBwdHIyID0gUlNUUlVDVF9QVFIoczIpOworICAgIGxlbiA9IFJTVF JVQ1RfTEVOKHMpOworICAgIGZvciAoaT0wOyBpPGxlbjsgaSsrKSB7CisJaWYgKCFyYl9l cXVhbChwdHJbaV0sIHB0cjJbaV0pKSByZXR1cm4gUWZhbHNlOwogICAgIH0KICAgICByZX R1cm4gUXRydWU7CiB9CkBAIC04MTMsMTQgKzgzMywxNiBAQAogc3RhdGljIFZBTFVFCiBy ZWN1cnNpdmVfaGFzaChWQUxVRSBzLCBWQUxVRSBkdW1teSwgaW50IHJlY3VyKQogewotIC AgIGxvbmcgaTsKKyAgICBsb25nIGksIGxlbjsKICAgICBzdF9pbmRleF90IGg7Ci0gICAg VkFMVUUgbjsKKyAgICBWQUxVRSBuLCAqcHRyOwoKICAgICBoID0gcmJfaGFzaF9zdGFydC hyYl9oYXNoKHJiX29ial9jbGFzcyhzKSkpOwogICAgIGlmICghcmVjdXIpIHsKLQlmb3Ig KGkgPSAwOyBpIDwgUlNUUlVDVF9MRU4ocyk7IGkrKykgewotCSAgICBuID0gcmJfaGFzaC hSU1RSVUNUX1BUUihzKVtpXSk7CisJcHRyID0gUlNUUlVDVF9QVFIocyk7CisJbGVuID0g UlNUUlVDVF9MRU4ocyk7CisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisJICAgIG 4gPSByYl9oYXNoKHB0cltpXSk7CiAJICAgIGggPSByYl9oYXNoX3VpbnQoaCwgTlVNMkxP TkcobikpOwogCX0KICAgICB9CkBAIC04NDQsMTEgKzg2NiwxNSBAQAogc3RhdGljIFZBTF VFCiByZWN1cnNpdmVfZXFsKFZBTFVFIHMsIFZBTFVFIHMyLCBpbnQgcmVjdXIpCiB7Ci0g ICAgbG9uZyBpOworICAgIFZBTFVFICpwdHIsICpwdHIyOworICAgIGxvbmcgaSwgbGVuOw oKICAgICBpZiAocmVjdXIpIHJldHVybiBRdHJ1ZTsgLyogU3VidGxlISAqLwotICAgIGZv ciAoaT0wOyBpPFJTVFJVQ1RfTEVOKHMpOyBpKyspIHsKLQlpZiAoIXJiX2VxbChSU1RSVU NUX1BUUihzKVtpXSwgUlNUUlVDVF9QVFIoczIpW2ldKSkgcmV0dXJuIFFmYWxzZTsKKyAg ICBwdHIgPSBSU1RSVUNUX1BUUihzKTsKKyAgICBwdHIyID0gUlNUUlVDVF9QVFIoczIpOw orICAgIGxlbiA9IFJTVFJVQ1RfTEVOKHMpOworICAgIGZvciAoaT0wOyBpPGxlbjsgaSsr KSB7CisJaWYgKCFyYl9lcWwocHRyW2ldLCBwdHIyW2ldKSkgcmV0dXJuIFFmYWxzZTsKIC AgICB9CiAgICAgcmV0dXJuIFF0cnVlOwogfQo= -- Masahiro Kanai (CanI) http://d.hatena.ne.jp/CanI/