From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 06 05:55:39 2014 Received: (at submit) by debbugs.gnu.org; 6 Apr 2014 09:55:39 +0000 Received: from localhost ([127.0.0.1]:37434 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WWjnd-0006r1-SW for submit@debbugs.gnu.org; Sun, 06 Apr 2014 05:55:39 -0400 Received: from eggs.gnu.org ([208.118.235.92]:57431) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WWjnY-0006qr-IY for submit@debbugs.gnu.org; Sun, 06 Apr 2014 05:55:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WWjnR-0007GE-5R for submit@debbugs.gnu.org; Sun, 06 Apr 2014 05:55:32 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_50, RCVD_IN_BL_SPAMCOP_NET autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:58756) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWjnQ-0007G9-Ts for submit@debbugs.gnu.org; Sun, 06 Apr 2014 05:55:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59134) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWjnK-0008Ls-4I for bug-grep@gnu.org; Sun, 06 Apr 2014 05:55:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WWjnD-00079b-Gn for bug-grep@gnu.org; Sun, 06 Apr 2014 05:55:18 -0400 Received: from pbsg500.nifty.com ([202.248.238.70]:18069) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWjnC-00079D-KM for bug-grep@gnu.org; Sun, 06 Apr 2014 05:55:11 -0400 Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg500.nifty.com with ESMTP id s369t2SM026176 for ; Sun, 6 Apr 2014 18:55:03 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Sun, 06 Apr 2014 18:55:03 +0900 From: Norihiro Tanaka To: bug-grep@gnu.org Subject: [PATCH] grep: speed-up for exact matching with begline and endline constraints Message-Id: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_531AAC47000000000212_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) --------_531AAC47000000000212_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit dfamust turns on the flag when a state exactly matches the proposed one. However, when the state has begline and/or endline constraints, turns off it. This patch enables to match a state exactly, even if the state has begline and/or endline constraints. If a exact string has one of their constrations, the string adding eolbyte to a head and/or foot is pushed to kwsincr(). In addition, if it has begline constration, start searching from just before the position of the text. Norihiro --------_531AAC47000000000212_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA2NDJkNmZlZDQzMTBiM2U0ZWU5NTY5NDczYjAzZTEwZGJlZTBlNTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMKCmRmYW11c3QgdHVybnMgb24gdGhlIGZsYWcgd2hlbiBhIHN0YXRlIGV4YWN0 bHkgbWF0Y2hlcyB0aGUgcHJvcG9zZWQgb25lLgpIb3dldmVyLCB3aGVuIHRoZSBzdGF0ZSBoYXMg YmVnbGluZSBhbmQvb3IgZW5kbGluZSBjb25zdHJhaW50cywgdHVybnMKb2ZmIGl0LgoKVGhpcyBw YXRjaCBlbmFibGVzIHRvIG1hdGNoIGEgc3RhdGUgZXhhY3RseSwgZXZlbiBpZiB0aGUgc3RhdGUg aGFzCmJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMuICBJZiBhIGV4YWN0IHN0cmlu ZyBoYXMgb25lIG9mIHRoZWlyCmNvbnN0cmF0aW9ucywgdGhlIHN0cmluZyBhZGRpbmcgZW9sYnl0 ZSB0byBhIGhlYWQgYW5kL29yIGZvb3QgaXMgcHVzaGVkCnRvIGt3c2luY3IoKS4gIEluIGFkZGl0 aW9uLCBpZiBpdCBoYXMgYmVnbGluZSBjb25zdHJhdGlvbiwgc3RhcnQKc2VhcmNoaW5nIGZyb20g anVzdCBiZWZvcmUgdGhlIHBvc2l0aW9uIG9mIHRoZSB0ZXh0LgoKKiBzcmMvZGZhLmMgKHZhcmlh YmxlIG11c3QpOiBOZXcgbWVtYmVycyBgYmVnbGluZScgYW5kIGBlbmRsaW5lJy4KKGRmYW11c3Qp OiBDb25zaWRlcmF0aW9uIG9mIGJlZ2xpbmUgYW5kIGVuZGxpbmUgY29uc3RyYXRpb25zLgoqIHNy Yy9kZmEuaCAoc3RydWN0IGRmYW11c3QpOiBOZXcgbWVtYmVycyBgYmVnbGluZScgYW5kIGBlbmRs aW5lJy4KKiBzcmMvZGZhc2VhcmNoLmMgKGt3c211c3RzKTogSWYgYSBleGFjdCBzdHJpbmcgaGFz IGJlZ2xpbmUgY29uc3RyYXRpb24sCnN0YXJ0IHNlYXJjaGluZyBmcm9tIGp1c3QgYmVmb3JlIHRo ZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KKEVHZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCiogc3Jj L2t3c2VhcmNoLmMgKEZleGVjdXRlKTogU2FtZSBhcyBhYm92ZS4KLS0tCiBzcmMvZGZhLmMgICAg ICAgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvZGZh LmggICAgICAgfCAgMiArKwogc3JjL2RmYXNlYXJjaC5jIHwgMjkgKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KIHNyYy9rd3NlYXJjaC5jICB8IDMyICsrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCBlZjVjOGE5Li5j NGEzMTk0IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zOTAyLDYg KzM5MDIsOCBAQCB0eXBlZGVmIHN0cnVjdAogICBjaGFyICpsZWZ0OwogICBjaGFyICpyaWdodDsK ICAgY2hhciAqaXM7CisgIGludCBiZWdsaW5lOworICBpbnQgZW5kbGluZTsKIH0gbXVzdDsKIAog c3RhdGljIHZvaWQKQEAgLTM5MjAsNiArMzkyMiw4IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQp CiAgIHNpemVfdCByaTsKICAgc2l6ZV90IGk7CiAgIGludCBleGFjdDsKKyAgaW50IGJlZ2xpbmU7 CisgIGludCBlbmRsaW5lOwogICB0b2tlbiB0OwogICBzdGF0aWMgbXVzdCBtdXN0MDsKICAgc3Ry dWN0IGRmYW11c3QgKmRtOwpAQCAtMzkyNyw2ICszOTMxLDggQEAgZGZhbXVzdCAoc3RydWN0IGRm YSAqZCkKIAogICByZXN1bHQgPSBlbXB0eV9zdHJpbmc7CiAgIGV4YWN0ID0gMDsKKyAgYmVnbGlu ZSA9IDA7CisgIGVuZGxpbmUgPSAwOwogICBNQUxMT0MgKG11c3RzLCBkLT50aW5kZXggKyAxKTsK ICAgbXAgPSBtdXN0czsKICAgZm9yIChpID0gMDsgaSA8PSBkLT50aW5kZXg7ICsraSkKQEAgLTM5 MzksNiArMzk0NSw4IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICBtcFtpXS5pcyA9 IHhtYWxsb2MgKDIpOwogICAgICAgbXBbaV0ubGVmdFswXSA9IG1wW2ldLnJpZ2h0WzBdID0gbXBb aV0uaXNbMF0gPSAnXDAnOwogICAgICAgbXBbaV0uaW5bMF0gPSBOVUxMOworICAgICAgbXBbaV0u YmVnbGluZSA9IDA7CisgICAgICBtcFtpXS5lbmRsaW5lID0gMDsKICAgICB9CiAjaWZkZWYgREVC VUcKICAgZnByaW50ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIpOwpAQCAtMzk1MywxMiArMzk2MSwx OCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgIHsKICAgICAgIHN3aXRjaCAodCA9IGQt PnRva2Vuc1tyaV0pCiAgICAgICAgIHsKKyAgICAgICAgY2FzZSBCRUdMSU5FOgorICAgICAgICAg IHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWdsaW5lID0gMTsKKyAgICAgICAgICBi cmVhazsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOwor ICAgICAgICAgIG1wLT5lbmRsaW5lID0gMTsKKyAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz ZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVOOgogICAgICAgICAgIGFzc2VydCAoISJuZWl0 aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBlYXIgaGVyZSIpOwogICAgICAgICBjYXNlIEVN UFRZOgotICAgICAgICBjYXNlIEJFR0xJTkU6Ci0gICAgICAgIGNhc2UgRU5ETElORToKICAgICAg ICAgY2FzZSBCRUdXT1JEOgogICAgICAgICBjYXNlIEVORFdPUkQ6CiAgICAgICAgIGNhc2UgTElN V09SRDoKQEAgLTM5ODUsNiArMzk5OSwxMCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAg ICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZS4gIFVubGlrZWx5LCBidXQgLi4uICAqLwogICAg ICAgICAgICAgaWYgKCFTVFJFUSAobG1wLT5pcywgcm1wLT5pcykpCiAgICAgICAgICAgICAgIGxt cC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAgaWYgKGxtcC0+YmVnbGluZSkKKyAgICAgICAg ICAgICAgbG1wLT5iZWdsaW5lID0gcm1wLT5iZWdsaW5lOworICAgICAgICAgICAgaWYgKGxtcC0+ ZW5kbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5lbmRsaW5lID0gcm1wLT5lbmRsaW5lOwogICAg ICAgICAgICAgLyogTGVmdCBzaWRlLS1lYXN5ICovCiAgICAgICAgICAgICBpID0gMDsKICAgICAg ICAgICAgIHdoaWxlIChsbXAtPmxlZnRbaV0gIT0gJ1wwJyAmJiBsbXAtPmxlZnRbaV0gPT0gcm1w LT5sZWZ0W2ldKQpAQCAtNDAyMSw3ICs0MDM5LDExIEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQp CiAgICAgICAgICAgICBpZiAoc3RybGVuIChtdXN0c1swXS5pbltpXSkgPiBzdHJsZW4gKHJlc3Vs dCkpCiAgICAgICAgICAgICAgIHJlc3VsdCA9IG11c3RzWzBdLmluW2ldOwogICAgICAgICAgIGlm IChTVFJFUSAocmVzdWx0LCBtdXN0c1swXS5pcykpCi0gICAgICAgICAgICBleGFjdCA9IDE7Cisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgIGV4YWN0ID0gMTsKKyAgICAgICAgICAgICAgYmVn bGluZSA9IG11c3RzWzBdLmJlZ2xpbmU7CisgICAgICAgICAgICAgIGVuZGxpbmUgPSBtdXN0c1sw XS5lbmRsaW5lOworICAgICAgICAgICAgfQogICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAg Y2FzZSBDQVQ6CiAgICAgICAgICAgYXNzZXJ0ICgmbXVzdHNbMl0gPD0gbXApOwpAQCAtNDA2Miwx NCArNDA4NCwyMCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYgKGxt cC0+cmlnaHQgPT0gTlVMTCkKICAgICAgICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAg LyogR3VhcmFudGVlZCB0byBiZSAqLwotICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1ww JyAmJiBybXAtPmlzWzBdICE9ICdcMCcpCisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0g J1wwJyB8fCBsbXAtPmJlZ2xpbmUpCisgICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0g J1wwJyB8fCBybXAtPmVuZGxpbmUpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg bG1wLT5pcyA9IGljYXRhbGxvYyAobG1wLT5pcywgcm1wLT5pcyk7CiAgICAgICAgICAgICAgICAg aWYgKGxtcC0+aXMgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAg ICAgICAgICAgICBsbXAtPmVuZGxpbmUgPSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAg ICAgICAgICBsbXAtPmJlZ2xpbmUgPSAwOworICAgICAgICAgICAgICAgIGxtcC0+ZW5kbGluZSA9 IDA7CisgICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIGRlZmF1bHQ6CkBAIC00MTE2LDYgKzQxNDQsOCBAQCBkb25lOgogICAgIHsKICAgICAgIE1B TExPQyAoZG0sIDEpOwogICAgICAgZG0tPmV4YWN0ID0gZXhhY3Q7CisgICAgICBkbS0+YmVnbGlu ZSA9IGJlZ2xpbmU7CisgICAgICBkbS0+ZW5kbGluZSA9IGVuZGxpbmU7CiAgICAgICBkbS0+bXVz dCA9IHhtZW1kdXAgKHJlc3VsdCwgc3RybGVuIChyZXN1bHQpICsgMSk7CiAgICAgICBkbS0+bmV4 dCA9IGQtPm11c3RzOwogICAgICAgZC0+bXVzdHMgPSBkbTsKZGlmZiAtLWdpdCBhL3NyYy9kZmEu aCBiL3NyYy9kZmEuaAppbmRleCAyNGZiY2JlLi43YWExYjlhIDEwMDY0NAotLS0gYS9zcmMvZGZh LmgKKysrIGIvc3JjL2RmYS5oCkBAIC0yNiw2ICsyNiw4IEBACiBzdHJ1Y3QgZGZhbXVzdAogewog ICBpbnQgZXhhY3Q7CisgIGludCBiZWdsaW5lOworICBpbnQgZW5kbGluZTsKICAgY2hhciAqbXVz dDsKICAgc3RydWN0IGRmYW11c3QgKm5leHQ7CiB9OwpkaWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJj aC5jIGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IGNhMDA1MDUuLmYwYWI0YTggMTAwNjQ0Ci0tLSBh L3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTUxLDYgKzUxLDggQEAg c3RhdGljIHNpemVfdCBwY291bnQ7CiAgICBjYWxsIHRoZSByZWdleHAgbWF0Y2hlciBhdCBhbGwu ICovCiBzdGF0aWMgc2l6ZV90IGt3c2V0X2V4YWN0X21hdGNoZXM7CiAKK3N0YXRpYyBpbnQgYmVn bGluZTsKKwogdm9pZAogZGZhZXJyb3IgKGNoYXIgY29uc3QgKm1lc2cpCiB7CkBAIC05MiwxNiAr OTQsMzEgQEAga3dzbXVzdHMgKHZvaWQpCiAgICAgewogICAgICAgY2hhciBjb25zdCAqZXJyOwog ICAgICAga3dzaW5pdCAoJmt3c2V0KTsKKyAgICAgIGJlZ2xpbmUgPSAwOwogICAgICAgLyogRmly c3QsIHdlIGNvbXBpbGUgaW4gdGhlIHN1YnN0cmluZ3Mga25vd24gdG8gYmUgZXhhY3QKICAgICAg ICAgIG1hdGNoZXMuICBUaGUga3dzZXQgbWF0Y2hlciB3aWxsIHJldHVybiB0aGUgaW5kZXgKICAg ICAgICAgIG9mIHRoZSBtYXRjaGluZyBzdHJpbmcgdGhhdCBpdCBjaG9vc2VzLiAqLwogICAgICAg Zm9yICg7IGRtOyBkbSA9IGRtLT5uZXh0KQogICAgICAgICB7CisgICAgICAgICAgY2hhciAqbXVz dCwgKm1wOworICAgICAgICAgIHNpemVfdCBvbGRfbGVuLCBuZXdfbGVuOwogICAgICAgICAgIGlm ICghZG0tPmV4YWN0KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgKytrd3NldF9l eGFjdF9tYXRjaGVzOwotICAgICAgICAgIGlmICgoZXJyID0ga3dzaW5jciAoa3dzZXQsIGRtLT5t dXN0LCBzdHJsZW4gKGRtLT5tdXN0KSkpICE9IE5VTEwpCisgICAgICAgICAgb2xkX2xlbiA9IHN0 cmxlbiAoZG0tPm11c3QpOworICAgICAgICAgIG5ld19sZW4gPSBvbGRfbGVuICsgZG0tPmJlZ2xp bmUgKyBkbS0+ZW5kbGluZTsKKyAgICAgICAgICBtdXN0ID0gbXAgPSB4bWFsbG9jIChuZXdfbGVu KTsKKyAgICAgICAgICBpZiAoZG0tPmJlZ2xpbmUpCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgIChtcCsrKVswXSA9IGVvbGJ5dGU7CisgICAgICAgICAgICAgIGJlZ2xpbmUgPSAxOworICAg ICAgICAgICAgfQorICAgICAgICAgIG1lbWNweSAobXAsIGRtLT5tdXN0LCBvbGRfbGVuKTsKKyAg ICAgICAgICBpZiAoZG0tPmVuZGxpbmUpCisgICAgICAgICAgICBtcFtvbGRfbGVuXSA9IGVvbGJ5 dGU7CisgICAgICAgICAgaWYgKChlcnIgPSBrd3NpbmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbikp ICE9IE5VTEwpCiAgICAgICAgICAgICBlcnJvciAoRVhJVF9UUk9VQkxFLCAwLCAiJXMiLCBlcnIp OworICAgICAgICAgIGZyZWUgKG11c3QpOwogICAgICAgICB9CiAgICAgICAvKiBOb3csIHdlIGNv bXBpbGUgdGhlIHN1YnN0cmluZ3MgdGhhdCB3aWxsIHJlcXVpcmUKICAgICAgICAgIHRoZSB1c2Ug b2YgdGhlIHJlZ2V4cCBtYXRjaGVyLiAgKi8KQEAgLTIyMyw3ICsyNDAsOCBAQCBFR2V4ZWN1dGUg KGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAg ICAgICBpZiAoa3dzZXQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8qIEZpbmQgYSBw b3NzaWJsZSBtYXRjaCB1c2luZyB0aGUgS1dzZXQgbWF0Y2hlci4gKi8KLSAgICAgICAgICAgICAg c2l6ZV90IG9mZnNldCA9IGt3c2V4ZWMgKGt3c2V0LCBiZWcsIGJ1ZmxpbSAtIGJlZywgJmt3c20p OworICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZyAtIGJl Z2xpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZsaW0gLSBi ZWcgKyBiZWdsaW5lLCAma3dzbSk7CiAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPT0gKHNpemVf dCkgLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsdXJlOwogICAgICAgICAgICAgICBiZWcg Kz0gb2Zmc2V0OwpAQCAtMjM5LDExICsyNTcsMTIgQEAgRUdleGVjdXRlIChjaGFyIGNvbnN0ICpi dWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgIGNoYXIg Y29uc3QgKmRmYV9zdGFydCA9IGJlZzsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBr d3NldF9leGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg IGlmIChNQl9DVVJfTUFYID09IDEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsK ICAgICAgICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8IGJlZykKICAgICAgICAgICAgICAgICAg ICAgbWJfc3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAx Ci0gICAgICAgICAgICAgICAgICAgICAgfHwgIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRj aCwgYnVmbGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20u c2l6ZVswXSkpCisgICAgICAgICAgICAgICAgICBpZiAoIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0 LCBtYXRjaCwgYnVmbGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3 c20uc2l6ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7 CiAgICAgICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hlZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlk ZGxlIG9mIGEgbXVsdGlieXRlCiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuICBQZXJm b3JtIHRoZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlCmRpZmYgLS1naXQgYS9zcmMva3dz ZWFyY2guYyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IGRkMDE1MTguLjFlNDcxZDAgMTAwNjQ0Ci0t LSBhL3NyYy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5jCkBAIC02NSw4ICs2NSwyMCBA QCBGY29tcGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAjZW5kaWYKICAg ICAgICAgfQogCi0gICAgICBpZiAoKGVyciA9IGt3c2luY3IgKGt3c2V0LCBiZWcsIGVuZCAtIGJl ZykpICE9IE5VTEwpCi0gICAgICAgIGVycm9yIChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVycik7 CisgICAgICBpZiAobWF0Y2hfbGluZXMpCisgICAgICAgIHsKKyAgICAgICAgICBjaGFyICpuZXdf YmVnID0geG1hbGxvYyAoZW5kIC0gYmVnICsgMik7CisgICAgICAgICAgbmV3X2JlZ1swXSA9IG5l d19iZWdbZW5kIC0gYmVnICsgMV0gPSBlb2xieXRlOworICAgICAgICAgIG1lbWNweSAoJm5ld19i ZWdbMV0sIGJlZywgZW5kIC0gYmVnKTsKKyAgICAgICAgICBpZiAoKGVyciA9IGt3c2luY3IgKGt3 c2V0LCBuZXdfYmVnLCBlbmQgLSBiZWcgKyAyKSkgIT0gTlVMTCkKKyAgICAgICAgICAgIGVycm9y IChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVycik7CisgICAgICAgICAgZnJlZSAobmV3X2JlZyk7 CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIGlmICgoZXJyID0g a3dzaW5jciAoa3dzZXQsIGJlZywgZW5kIC0gYmVnKSkgIT0gTlVMTCkKKyAgICAgICAgICAgIGVy cm9yIChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVycik7CisgICAgICAgIH0KICAgICAgIGJlZyA9 IGxpbTsKICAgICB9CiAgIHdoaWxlIChiZWcgPCBwYXQgKyBwc2l6ZSk7CkBAIC0xMTksMTEgKzEz MSwxMSBAQCBGZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICpt YXRjaF9zaXplLAogCiAgIGZvciAobWJfc3RhcnQgPSBiZWcgPSBzdGFydF9wdHIgPyBzdGFydF9w dHIgOiBidWY7IGJlZyA8PSBidWYgKyBzaXplOyBiZWcrKykKICAgICB7Ci0gICAgICBzaXplX3Qg b2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmICsgc2l6ZSAtIGJlZywgJmt3c21hdGNo KTsKKyAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gbWF0Y2hfbGlu ZXMsIGJ1ZiArIHNpemUgLSBiZWcgKyBtYXRjaF9saW5lcywgJmt3c21hdGNoKTsKICAgICAgIGlm IChvZmZzZXQgPT0gKHNpemVfdCkgLTEpCiAgICAgICAgIGdvdG8gZmFpbHVyZTsKLSAgICAgIGxl biA9IGt3c21hdGNoLnNpemVbMF07Ci0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEKKyAgICAgIGxl biA9IGt3c21hdGNoLnNpemVbMF0gLSBtYXRjaF9saW5lczsKKyAgICAgIGlmIChNQl9DVVJfTUFY ID4gMSAmJiAhbWF0Y2hfbGluZXMKICAgICAgICAgICAmJiBpc19tYl9taWRkbGUgKCZtYl9zdGFy dCwgYmVnICsgb2Zmc2V0LCBidWYgKyBzaXplLCBsZW4pKQogICAgICAgICB7CiAgICAgICAgICAg LyogVGhlIG1hdGNoIHdhcyBhIHBhcnQgb2YgbXVsdGlieXRlIGNoYXJhY3RlciwgYWR2YW5jZSBh dCBsZWFzdApAQCAtMTQwLDE0ICsxNTIsOCBAQCBGZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBz aXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgaWYgKHN0YXJ0X3B0ciAmJiAh bWF0Y2hfd29yZHMpCiAgICAgICAgIGdvdG8gc3VjY2Vzc19pbl9iZWdfYW5kX2xlbjsKICAgICAg IGlmIChtYXRjaF9saW5lcykKLSAgICAgICAgewotICAgICAgICAgIGlmIChiZWcgPiBidWYgJiYg YmVnWy0xXSAhPSBlb2wpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICBpZiAoYmVn ICsgbGVuIDwgYnVmICsgc2l6ZSAmJiBiZWdbbGVuXSAhPSBlb2wpCi0gICAgICAgICAgICBjb250 aW51ZTsKLSAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgaWYg KG1hdGNoX3dvcmRzKQorICAgICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CisgICAg ICBpZiAobWF0Y2hfd29yZHMpCiAgICAgICAgIGZvciAodHJ5ID0gYmVnOyA7ICkKICAgICAgICAg ICB7CiAgICAgICAgICAgICBpZiAodHJ5ID4gYnVmICYmIFdDSEFSKHRvX3VjaGFyICh0cnlbLTFd KSkpCi0tIAoxLjkuMQoK --------_531AAC47000000000212_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 09:31:06 2014 Received: (at 17204) by debbugs.gnu.org; 8 Apr 2014 13:31:07 +0000 Received: from localhost ([127.0.0.1]:40420 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXW7E-0008Me-Tt for submit@debbugs.gnu.org; Tue, 08 Apr 2014 09:31:05 -0400 Received: from pbsg501.nifty.com ([202.248.238.71]:37565) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXW78-0008MH-EF for 17204@debbugs.gnu.org; Tue, 08 Apr 2014 09:30:59 -0400 Received: from [10.120.1.58] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s38DUht1005188 for <17204@debbugs.gnu.org>; Tue, 8 Apr 2014 22:30:44 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Tue, 08 Apr 2014 22:30:45 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> References: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> Message-Id: <20140408223031.10DE.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5343F9680000000010D2_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I rebased this patch. I also changed some variables into `bool'. From 4384e1b291a483e490ebbc8b1db086754c6ea2d0 Mon Sep 17 00:00:00 2001 From: Norihiro Tanaka Date: Mon, 31 Mar 2014 21:51:48 +0900 Subject: [PATCH] grep: speed-up for exact matching with begline and endline constraints. [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 2.7 RCVD_IN_PSBL RBL: Received via a relay in PSBL [202.248.238.71 listed in psbl.surriel.com] 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.3 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I rebased this patch. I also changed some variables into `bool'. From 4384e1b291a483e490ebbc8b1db086754c6ea2d0 Mon Sep 17 00:00:00 2001 From: Norihiro Tanaka Date: Mon, 31 Mar 2014 21:51:48 +0900 Subject: [PATCH] grep: speed-up for exact matching with begline and endline constraints. [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 2.7 RCVD_IN_PSBL RBL: Received via a relay in PSBL [202.248.238.71 listed in psbl.surriel.com] 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.3 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I rebased this patch. I also changed some variables into `bool'. --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA0Mzg0ZTFiMjkxYTQ4M2U0OTBlYmJjOGIxZGIwODY3NTRjNmVhMmQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2Rm YS5oICAgICAgIHwgIDIgKysKIHNyYy9kZmFzZWFyY2guYyB8IDI5ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCiBzcmMva3dzZWFyY2guYyAgfCAyNyArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDc2ZjdlNzkuLjc5Nzgz OWUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQwMjksNiArNDAy OSw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIGNoYXIgKmxlZnQ7CiAgIGNoYXIgKnJpZ2h0OwogICBj aGFyICppczsKKyAgYm9vbCBiZWdsaW5lOworICBib29sIGVuZGxpbmU7CiB9IG11c3Q7CiAKIHN0 YXRpYyB2b2lkCkBAIC00MDQ3LDYgKzQwNDksOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQog ICBzaXplX3Qgcmk7CiAgIHNpemVfdCBpOwogICBib29sIGV4YWN0OworICBib29sIGJlZ2xpbmU7 CisgIGJvb2wgZW5kbGluZTsKICAgdG9rZW4gdDsKICAgc3RhdGljIG11c3QgbXVzdDA7CiAgIHN0 cnVjdCBkZmFtdXN0ICpkbTsKQEAgLTQwNTQsNiArNDA1OCw4IEBAIGRmYW11c3QgKHN0cnVjdCBk ZmEgKmQpCiAKICAgcmVzdWx0ID0gZW1wdHlfc3RyaW5nOwogICBleGFjdCA9IGZhbHNlOworICBi ZWdsaW5lID0gZmFsc2U7CisgIGVuZGxpbmUgPSBmYWxzZTsKICAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CiAgIG1wID0gbXVzdHM7CiAgIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4 OyArK2kpCkBAIC00MDY2LDYgKzQwNzIsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAg ICAgbXBbaV0uaXMgPSB4bWFsbG9jICgyKTsKICAgICAgIG1wW2ldLmxlZnRbMF0gPSBtcFtpXS5y aWdodFswXSA9IG1wW2ldLmlzWzBdID0gJ1wwJzsKICAgICAgIG1wW2ldLmluWzBdID0gTlVMTDsK KyAgICAgIG1wW2ldLmJlZ2xpbmUgPSBmYWxzZTsKKyAgICAgIG1wW2ldLmVuZGxpbmUgPSBmYWxz ZTsKICAgICB9CiAjaWZkZWYgREVCVUcKICAgZnByaW50ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIp OwpAQCAtNDA4MCwxMiArNDA4OCwxOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgIHsK ICAgICAgIHN3aXRjaCAodCA9IGQtPnRva2Vuc1tyaV0pCiAgICAgICAgIHsKKyAgICAgICAgY2Fz ZSBCRUdMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWds aW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAg ICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5lbmRsaW5lID0gdHJ1ZTsKKyAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVO OgogICAgICAgICAgIGFzc2VydCAoISJuZWl0aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBl YXIgaGVyZSIpOwogICAgICAgICBjYXNlIEVNUFRZOgotICAgICAgICBjYXNlIEJFR0xJTkU6Ci0g ICAgICAgIGNhc2UgRU5ETElORToKICAgICAgICAgY2FzZSBCRUdXT1JEOgogICAgICAgICBjYXNl IEVORFdPUkQ6CiAgICAgICAgIGNhc2UgTElNV09SRDoKQEAgLTQxMTIsNiArNDEyNiwxMCBAQCBk ZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZS4g IFVubGlrZWx5LCBidXQgLi4uICAqLwogICAgICAgICAgICAgaWYgKCFTVFJFUSAobG1wLT5pcywg cm1wLT5pcykpCiAgICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAg aWYgKGxtcC0+YmVnbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5iZWdsaW5lID0gcm1wLT5iZWds aW5lOworICAgICAgICAgICAgaWYgKGxtcC0+ZW5kbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5l bmRsaW5lID0gcm1wLT5lbmRsaW5lOwogICAgICAgICAgICAgLyogTGVmdCBzaWRlLS1lYXN5ICov CiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIHdoaWxlIChsbXAtPmxlZnRbaV0gIT0g J1wwJyAmJiBsbXAtPmxlZnRbaV0gPT0gcm1wLT5sZWZ0W2ldKQpAQCAtNDE0OCw3ICs0MTY2LDEx IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICBpZiAoc3RybGVuIChtdXN0 c1swXS5pbltpXSkgPiBzdHJsZW4gKHJlc3VsdCkpCiAgICAgICAgICAgICAgIHJlc3VsdCA9IG11 c3RzWzBdLmluW2ldOwogICAgICAgICAgIGlmIChTVFJFUSAocmVzdWx0LCBtdXN0c1swXS5pcykp Ci0gICAgICAgICAgICBleGFjdCA9IHRydWU7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGV4YWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9IG11c3RzWzBdLmJlZ2xpbmU7 CisgICAgICAgICAgICAgIGVuZGxpbmUgPSBtdXN0c1swXS5lbmRsaW5lOworICAgICAgICAgICAg fQogICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgY2FzZSBDQVQ6CiAgICAgICAgICAgYXNz ZXJ0ICgmbXVzdHNbMl0gPD0gbXApOwpAQCAtNDE4OSwxNCArNDIxMSwyMCBAQCBkZmFtdXN0IChz dHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYgKGxtcC0+cmlnaHQgPT0gTlVMTCkKICAgICAg ICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZSAqLwot ICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1wwJyAmJiBybXAtPmlzWzBdICE9ICdcMCcp CisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0gJ1wwJyB8fCBsbXAtPmJlZ2xpbmUpCisg ICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0gJ1wwJyB8fCBybXAtPmVuZGxpbmUpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRhbGxvYyAobG1w LT5pcywgcm1wLT5pcyk7CiAgICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMgPT0gTlVMTCkKICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUg PSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBsbXAtPmJlZ2xpbmUgPSBm YWxzZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg ICAgfQogICAgICAgICAgIH0KICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAg LTQyNDMsNiArNDI3MSw4IEBAIGRvbmU6CiAgICAgewogICAgICAgTUFMTE9DIChkbSwgMSk7CiAg ICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKKyAgICAgIGRtLT5iZWdsaW5lID0gYmVnbGluZTsKKyAg ICAgIGRtLT5lbmRsaW5lID0gZW5kbGluZTsKICAgICAgIGRtLT5tdXN0ID0geG1lbWR1cCAocmVz dWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0gZC0+bXVzdHM7CiAg ICAgICBkLT5tdXN0cyA9IGRtOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmlu ZGV4IGRiMjlhNjIuLjM4MjllNmEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZh LmgKQEAgLTI2LDYgKzI2LDggQEAKIHN0cnVjdCBkZmFtdXN0CiB7CiAgIGludCBleGFjdDsKKyAg aW50IGJlZ2xpbmU7CisgIGludCBlbmRsaW5lOwogICBjaGFyICptdXN0OwogICBzdHJ1Y3QgZGZh bXVzdCAqbmV4dDsKIH07CmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2Vh cmNoLmMKaW5kZXggMmFlMGE0YS4uMWFjY2Y0NSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5j CisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgc2l6ZV90IHBj b3VudDsKICAgIGNhbGwgdGhlIHJlZ2V4cCBtYXRjaGVyIGF0IGFsbC4gKi8KIHN0YXRpYyBzaXpl X3Qga3dzZXRfZXhhY3RfbWF0Y2hlczsKIAorc3RhdGljIGludCBiZWdsaW5lOworCiB2b2lkCiBk ZmFlcnJvciAoY2hhciBjb25zdCAqbWVzZykKIHsKQEAgLTg1LDE1ICs4NywzMCBAQCBrd3NtdXN0 cyAodm9pZCkKICAgaWYgKGRtKQogICAgIHsKICAgICAgIGt3c2luaXQgKCZrd3NldCk7CisgICAg ICBiZWdsaW5lID0gMDsKICAgICAgIC8qIEZpcnN0LCB3ZSBjb21waWxlIGluIHRoZSBzdWJzdHJp bmdzIGtub3duIHRvIGJlIGV4YWN0CiAgICAgICAgICBtYXRjaGVzLiAgVGhlIGt3c2V0IG1hdGNo ZXIgd2lsbCByZXR1cm4gdGhlIGluZGV4CiAgICAgICAgICBvZiB0aGUgbWF0Y2hpbmcgc3RyaW5n IHRoYXQgaXQgY2hvb3Nlcy4gKi8KICAgICAgIGZvciAoOyBkbTsgZG0gPSBkbS0+bmV4dCkKICAg ICAgICAgeworICAgICAgICAgIGNoYXIgKm11c3QsICptcDsKKyAgICAgICAgICBzaXplX3Qgb2xk X2xlbiwgbmV3X2xlbjsKICAgICAgICAgICBpZiAoIWRtLT5leGFjdCkKICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICsra3dzZXRfZXhhY3RfbWF0Y2hlczsKLSAgICAgICAgICBrd3Np bmNyIChrd3NldCwgZG0tPm11c3QsIHN0cmxlbiAoZG0tPm11c3QpKTsKKyAgICAgICAgICBvbGRf bGVuID0gc3RybGVuIChkbS0+bXVzdCk7CisgICAgICAgICAgbmV3X2xlbiA9IG9sZF9sZW4gKyBk bS0+YmVnbGluZSArIGRtLT5lbmRsaW5lOworICAgICAgICAgIG11c3QgPSBtcCA9IHhtYWxsb2Mg KG5ld19sZW4pOworICAgICAgICAgIGlmIChkbS0+YmVnbGluZSkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgKG1wKyspWzBdID0gZW9sYnl0ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9 IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgbWVtY3B5IChtcCwgZG0tPm11c3QsIG9sZF9s ZW4pOworICAgICAgICAgIGlmIChkbS0+ZW5kbGluZSkKKyAgICAgICAgICAgIG1wW29sZF9sZW5d ID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3NpbmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbik7Cisg ICAgICAgICAgZnJlZSAobXVzdCk7CiAgICAgICAgIH0KICAgICAgIC8qIE5vdywgd2UgY29tcGls ZSB0aGUgc3Vic3RyaW5ncyB0aGF0IHdpbGwgcmVxdWlyZQogICAgICAgICAgdGhlIHVzZSBvZiB0 aGUgcmVnZXhwIG1hdGNoZXIuICAqLwpAQCAtMjEzLDcgKzIzMCw4IEBAIEVHZXhlY3V0ZSAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAg IGlmIChrd3NldCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3Np YmxlIG1hdGNoIHVzaW5nIHRoZSBLV3NldCBtYXRjaGVyLiAqLwotICAgICAgICAgICAgICBzaXpl X3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmbGltIC0gYmVnLCAma3dzbSk7Cisg ICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGlu ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyAr IGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAt MSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIGJlZyArPSBv ZmZzZXQ7CkBAIC0yMjYsMTEgKzI0NCwxMiBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwg c2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9l eGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChN Ql9DVVJfTUFYID09IDEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAg ICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8IGJlZykKICAgICAgICAgICAgICAgICAgICAgbWJf c3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxCi0gICAg ICAgICAgICAgICAgICAgICAgfHwgIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVm bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVsw XSkpCisgICAgICAgICAgICAgICAgICBpZiAoIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRj aCwgYnVmbGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6 ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hlZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlkZGxlIG9m IGEgbXVsdGlieXRlCiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuICBQZXJmb3JtIHRo ZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2gu YyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IGRmOTQ5NTEuLmM2NzZjMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5jCkBAIC02NCw3ICs2NCwxNiBAQCBGY29t cGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAjZW5kaWYKICAgICAgICAg fQogCi0gICAgICBrd3NpbmNyIChrd3NldCwgYmVnLCBlbmQgLSBiZWcpOworICAgICAgaWYgKG1h dGNoX2xpbmVzKQorICAgICAgICB7CisgICAgICAgICAgY2hhciAqbmV3X2JlZyA9IHhtYWxsb2Mg KGVuZCAtIGJlZyArIDIpOworICAgICAgICAgIG5ld19iZWdbMF0gPSBuZXdfYmVnW2VuZCAtIGJl ZyArIDFdID0gZW9sYnl0ZTsKKyAgICAgICAgICBtZW1jcHkgKCZuZXdfYmVnWzFdLCBiZWcsIGVu ZCAtIGJlZyk7CisgICAgICAgICAga3dzaW5jciAoa3dzZXQsIG5ld19iZWcsIGVuZCAtIGJlZyAr IDIpOworICAgICAgICAgIGZyZWUgKG5ld19iZWcpOworICAgICAgICB9CisgICAgICBlbHNlCisg ICAgICAgIGt3c2luY3IgKGt3c2V0LCBiZWcsIGVuZCAtIGJlZyk7CiAgICAgICBiZWcgPSBsaW07 CiAgICAgfQogICB3aGlsZSAoYmVnIDwgcGF0ICsgcHNpemUpOwpAQCAtMTE2LDExICsxMjUsMTEg QEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hf c2l6ZSwKIAogICBmb3IgKG1iX3N0YXJ0ID0gYmVnID0gc3RhcnRfcHRyID8gc3RhcnRfcHRyIDog YnVmOyBiZWcgPD0gYnVmICsgc2l6ZTsgYmVnKyspCiAgICAgewotICAgICAgc2l6ZV90IG9mZnNl dCA9IGt3c2V4ZWMgKGt3c2V0LCBiZWcsIGJ1ZiArIHNpemUgLSBiZWcsICZrd3NtYXRjaCk7Cisg ICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZyAtIG1hdGNoX2xpbmVzLCBi dWYgKyBzaXplIC0gYmVnICsgbWF0Y2hfbGluZXMsICZrd3NtYXRjaCk7CiAgICAgICBpZiAob2Zm c2V0ID09IChzaXplX3QpIC0xKQogICAgICAgICBnb3RvIGZhaWx1cmU7Ci0gICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdOwotICAgICAgaWYgKE1CX0NVUl9NQVggPiAxCisgICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdIC0gbWF0Y2hfbGluZXM7CisgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEg JiYgIW1hdGNoX2xpbmVzCiAgICAgICAgICAgJiYgaXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIGJl ZyArIG9mZnNldCwgYnVmICsgc2l6ZSwgbGVuKSkKICAgICAgICAgewogICAgICAgICAgIC8qIFRo ZSBtYXRjaCB3YXMgYSBwYXJ0IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIGFkdmFuY2UgYXQgbGVh c3QKQEAgLTEzNywxNCArMTQ2LDggQEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90 IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgIGlmIChzdGFydF9wdHIgJiYgIW1hdGNo X3dvcmRzKQogICAgICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CiAgICAgICBpZiAo bWF0Y2hfbGluZXMpCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYmVnID4gYnVmICYmIGJlZ1st MV0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKGJlZyArIGxl biA8IGJ1ZiArIHNpemUgJiYgYmVnW2xlbl0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICBlbHNlIGlmIChtYXRj aF93b3JkcykKKyAgICAgICAgZ290byBzdWNjZXNzX2luX2JlZ19hbmRfbGVuOworICAgICAgaWYg KG1hdGNoX3dvcmRzKQogICAgICAgICBmb3IgKHRyeSA9IGJlZzsgOyApCiAgICAgICAgICAgewog ICAgICAgICAgICAgaWYgKHRyeSA+IGJ1ZiAmJiBXQ0hBUih0b191Y2hhciAodHJ5Wy0xXSkpKQot LSAKMS45LjEKCg== --------_5343F9680000000010D2_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 09:58:48 2014 Received: (at 17204) by debbugs.gnu.org; 9 Apr 2014 13:58:48 +0000 Received: from localhost ([127.0.0.1]:39135 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXt1b-0002r2-2f for submit@debbugs.gnu.org; Wed, 09 Apr 2014 09:58:47 -0400 Received: from pbsg501.nifty.com ([202.248.238.71]:58117) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXt1W-0002qw-E0 for 17204@debbugs.gnu.org; Wed, 09 Apr 2014 09:58:44 -0400 Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s39DwXq1015637 for <17204@debbugs.gnu.org>; Wed, 9 Apr 2014 22:58:34 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Wed, 09 Apr 2014 22:58:35 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> References: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> Message-Id: <20140409225833.786F.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5343F9680000000010D2_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I rebased this patch. I also changed some variables into `bool'. From 4384e1b291a483e490ebbc8b1db086754c6ea2d0 Mon Sep 17 00:00:00 2001 From: Norihiro Tanaka Date: Mon, 31 Mar 2014 21:51:48 +0900 Subject: [PATCH] grep: speed-up for exact matching with begline and endline constraints. [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 2.7 RCVD_IN_PSBL RBL: Received via a relay in PSBL [202.248.238.71 listed in psbl.surriel.com] 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.3 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 3.7 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I rebased this patch. I also changed some variables into `bool'. From 4384e1b291a483e490ebbc8b1db086754c6ea2d0 Mon Sep 17 00:00:00 2001 From: Norihiro Tanaka Date: Mon, 31 Mar 2014 21:51:48 +0900 Subject: [PATCH] grep: speed-up for exact matching with begline and endline constraints. [...] Content analysis details: (3.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 2.7 RCVD_IN_PSBL RBL: Received via a relay in PSBL [202.248.238.71 listed in psbl.surriel.com] 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.3 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I rebased this patch. I also changed some variables into `bool'. --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA0Mzg0ZTFiMjkxYTQ4M2U0OTBlYmJjOGIxZGIwODY3NTRjNmVhMmQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2Rm YS5oICAgICAgIHwgIDIgKysKIHNyYy9kZmFzZWFyY2guYyB8IDI5ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCiBzcmMva3dzZWFyY2guYyAgfCAyNyArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDc2ZjdlNzkuLjc5Nzgz OWUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQwMjksNiArNDAy OSw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIGNoYXIgKmxlZnQ7CiAgIGNoYXIgKnJpZ2h0OwogICBj aGFyICppczsKKyAgYm9vbCBiZWdsaW5lOworICBib29sIGVuZGxpbmU7CiB9IG11c3Q7CiAKIHN0 YXRpYyB2b2lkCkBAIC00MDQ3LDYgKzQwNDksOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQog ICBzaXplX3Qgcmk7CiAgIHNpemVfdCBpOwogICBib29sIGV4YWN0OworICBib29sIGJlZ2xpbmU7 CisgIGJvb2wgZW5kbGluZTsKICAgdG9rZW4gdDsKICAgc3RhdGljIG11c3QgbXVzdDA7CiAgIHN0 cnVjdCBkZmFtdXN0ICpkbTsKQEAgLTQwNTQsNiArNDA1OCw4IEBAIGRmYW11c3QgKHN0cnVjdCBk ZmEgKmQpCiAKICAgcmVzdWx0ID0gZW1wdHlfc3RyaW5nOwogICBleGFjdCA9IGZhbHNlOworICBi ZWdsaW5lID0gZmFsc2U7CisgIGVuZGxpbmUgPSBmYWxzZTsKICAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CiAgIG1wID0gbXVzdHM7CiAgIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4 OyArK2kpCkBAIC00MDY2LDYgKzQwNzIsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAg ICAgbXBbaV0uaXMgPSB4bWFsbG9jICgyKTsKICAgICAgIG1wW2ldLmxlZnRbMF0gPSBtcFtpXS5y aWdodFswXSA9IG1wW2ldLmlzWzBdID0gJ1wwJzsKICAgICAgIG1wW2ldLmluWzBdID0gTlVMTDsK KyAgICAgIG1wW2ldLmJlZ2xpbmUgPSBmYWxzZTsKKyAgICAgIG1wW2ldLmVuZGxpbmUgPSBmYWxz ZTsKICAgICB9CiAjaWZkZWYgREVCVUcKICAgZnByaW50ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIp OwpAQCAtNDA4MCwxMiArNDA4OCwxOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgIHsK ICAgICAgIHN3aXRjaCAodCA9IGQtPnRva2Vuc1tyaV0pCiAgICAgICAgIHsKKyAgICAgICAgY2Fz ZSBCRUdMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWds aW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAg ICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5lbmRsaW5lID0gdHJ1ZTsKKyAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVO OgogICAgICAgICAgIGFzc2VydCAoISJuZWl0aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBl YXIgaGVyZSIpOwogICAgICAgICBjYXNlIEVNUFRZOgotICAgICAgICBjYXNlIEJFR0xJTkU6Ci0g ICAgICAgIGNhc2UgRU5ETElORToKICAgICAgICAgY2FzZSBCRUdXT1JEOgogICAgICAgICBjYXNl IEVORFdPUkQ6CiAgICAgICAgIGNhc2UgTElNV09SRDoKQEAgLTQxMTIsNiArNDEyNiwxMCBAQCBk ZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZS4g IFVubGlrZWx5LCBidXQgLi4uICAqLwogICAgICAgICAgICAgaWYgKCFTVFJFUSAobG1wLT5pcywg cm1wLT5pcykpCiAgICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAg aWYgKGxtcC0+YmVnbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5iZWdsaW5lID0gcm1wLT5iZWds aW5lOworICAgICAgICAgICAgaWYgKGxtcC0+ZW5kbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5l bmRsaW5lID0gcm1wLT5lbmRsaW5lOwogICAgICAgICAgICAgLyogTGVmdCBzaWRlLS1lYXN5ICov CiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIHdoaWxlIChsbXAtPmxlZnRbaV0gIT0g J1wwJyAmJiBsbXAtPmxlZnRbaV0gPT0gcm1wLT5sZWZ0W2ldKQpAQCAtNDE0OCw3ICs0MTY2LDEx IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICBpZiAoc3RybGVuIChtdXN0 c1swXS5pbltpXSkgPiBzdHJsZW4gKHJlc3VsdCkpCiAgICAgICAgICAgICAgIHJlc3VsdCA9IG11 c3RzWzBdLmluW2ldOwogICAgICAgICAgIGlmIChTVFJFUSAocmVzdWx0LCBtdXN0c1swXS5pcykp Ci0gICAgICAgICAgICBleGFjdCA9IHRydWU7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGV4YWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9IG11c3RzWzBdLmJlZ2xpbmU7 CisgICAgICAgICAgICAgIGVuZGxpbmUgPSBtdXN0c1swXS5lbmRsaW5lOworICAgICAgICAgICAg fQogICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgY2FzZSBDQVQ6CiAgICAgICAgICAgYXNz ZXJ0ICgmbXVzdHNbMl0gPD0gbXApOwpAQCAtNDE4OSwxNCArNDIxMSwyMCBAQCBkZmFtdXN0IChz dHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYgKGxtcC0+cmlnaHQgPT0gTlVMTCkKICAgICAg ICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZSAqLwot ICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1wwJyAmJiBybXAtPmlzWzBdICE9ICdcMCcp CisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0gJ1wwJyB8fCBsbXAtPmJlZ2xpbmUpCisg ICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0gJ1wwJyB8fCBybXAtPmVuZGxpbmUpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRhbGxvYyAobG1w LT5pcywgcm1wLT5pcyk7CiAgICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMgPT0gTlVMTCkKICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUg PSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBsbXAtPmJlZ2xpbmUgPSBm YWxzZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg ICAgfQogICAgICAgICAgIH0KICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAg LTQyNDMsNiArNDI3MSw4IEBAIGRvbmU6CiAgICAgewogICAgICAgTUFMTE9DIChkbSwgMSk7CiAg ICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKKyAgICAgIGRtLT5iZWdsaW5lID0gYmVnbGluZTsKKyAg ICAgIGRtLT5lbmRsaW5lID0gZW5kbGluZTsKICAgICAgIGRtLT5tdXN0ID0geG1lbWR1cCAocmVz dWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0gZC0+bXVzdHM7CiAg ICAgICBkLT5tdXN0cyA9IGRtOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmlu ZGV4IGRiMjlhNjIuLjM4MjllNmEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZh LmgKQEAgLTI2LDYgKzI2LDggQEAKIHN0cnVjdCBkZmFtdXN0CiB7CiAgIGludCBleGFjdDsKKyAg aW50IGJlZ2xpbmU7CisgIGludCBlbmRsaW5lOwogICBjaGFyICptdXN0OwogICBzdHJ1Y3QgZGZh bXVzdCAqbmV4dDsKIH07CmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2Vh cmNoLmMKaW5kZXggMmFlMGE0YS4uMWFjY2Y0NSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5j CisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgc2l6ZV90IHBj b3VudDsKICAgIGNhbGwgdGhlIHJlZ2V4cCBtYXRjaGVyIGF0IGFsbC4gKi8KIHN0YXRpYyBzaXpl X3Qga3dzZXRfZXhhY3RfbWF0Y2hlczsKIAorc3RhdGljIGludCBiZWdsaW5lOworCiB2b2lkCiBk ZmFlcnJvciAoY2hhciBjb25zdCAqbWVzZykKIHsKQEAgLTg1LDE1ICs4NywzMCBAQCBrd3NtdXN0 cyAodm9pZCkKICAgaWYgKGRtKQogICAgIHsKICAgICAgIGt3c2luaXQgKCZrd3NldCk7CisgICAg ICBiZWdsaW5lID0gMDsKICAgICAgIC8qIEZpcnN0LCB3ZSBjb21waWxlIGluIHRoZSBzdWJzdHJp bmdzIGtub3duIHRvIGJlIGV4YWN0CiAgICAgICAgICBtYXRjaGVzLiAgVGhlIGt3c2V0IG1hdGNo ZXIgd2lsbCByZXR1cm4gdGhlIGluZGV4CiAgICAgICAgICBvZiB0aGUgbWF0Y2hpbmcgc3RyaW5n IHRoYXQgaXQgY2hvb3Nlcy4gKi8KICAgICAgIGZvciAoOyBkbTsgZG0gPSBkbS0+bmV4dCkKICAg ICAgICAgeworICAgICAgICAgIGNoYXIgKm11c3QsICptcDsKKyAgICAgICAgICBzaXplX3Qgb2xk X2xlbiwgbmV3X2xlbjsKICAgICAgICAgICBpZiAoIWRtLT5leGFjdCkKICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICsra3dzZXRfZXhhY3RfbWF0Y2hlczsKLSAgICAgICAgICBrd3Np bmNyIChrd3NldCwgZG0tPm11c3QsIHN0cmxlbiAoZG0tPm11c3QpKTsKKyAgICAgICAgICBvbGRf bGVuID0gc3RybGVuIChkbS0+bXVzdCk7CisgICAgICAgICAgbmV3X2xlbiA9IG9sZF9sZW4gKyBk bS0+YmVnbGluZSArIGRtLT5lbmRsaW5lOworICAgICAgICAgIG11c3QgPSBtcCA9IHhtYWxsb2Mg KG5ld19sZW4pOworICAgICAgICAgIGlmIChkbS0+YmVnbGluZSkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgKG1wKyspWzBdID0gZW9sYnl0ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9 IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgbWVtY3B5IChtcCwgZG0tPm11c3QsIG9sZF9s ZW4pOworICAgICAgICAgIGlmIChkbS0+ZW5kbGluZSkKKyAgICAgICAgICAgIG1wW29sZF9sZW5d ID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3NpbmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbik7Cisg ICAgICAgICAgZnJlZSAobXVzdCk7CiAgICAgICAgIH0KICAgICAgIC8qIE5vdywgd2UgY29tcGls ZSB0aGUgc3Vic3RyaW5ncyB0aGF0IHdpbGwgcmVxdWlyZQogICAgICAgICAgdGhlIHVzZSBvZiB0 aGUgcmVnZXhwIG1hdGNoZXIuICAqLwpAQCAtMjEzLDcgKzIzMCw4IEBAIEVHZXhlY3V0ZSAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAg IGlmIChrd3NldCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3Np YmxlIG1hdGNoIHVzaW5nIHRoZSBLV3NldCBtYXRjaGVyLiAqLwotICAgICAgICAgICAgICBzaXpl X3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmbGltIC0gYmVnLCAma3dzbSk7Cisg ICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGlu ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyAr IGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAt MSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIGJlZyArPSBv ZmZzZXQ7CkBAIC0yMjYsMTEgKzI0NCwxMiBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwg c2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9l eGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChN Ql9DVVJfTUFYID09IDEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAg ICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8IGJlZykKICAgICAgICAgICAgICAgICAgICAgbWJf c3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxCi0gICAg ICAgICAgICAgICAgICAgICAgfHwgIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVm bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVsw XSkpCisgICAgICAgICAgICAgICAgICBpZiAoIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRj aCwgYnVmbGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6 ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hlZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlkZGxlIG9m IGEgbXVsdGlieXRlCiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuICBQZXJmb3JtIHRo ZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2gu YyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IGRmOTQ5NTEuLmM2NzZjMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5jCkBAIC02NCw3ICs2NCwxNiBAQCBGY29t cGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAjZW5kaWYKICAgICAgICAg fQogCi0gICAgICBrd3NpbmNyIChrd3NldCwgYmVnLCBlbmQgLSBiZWcpOworICAgICAgaWYgKG1h dGNoX2xpbmVzKQorICAgICAgICB7CisgICAgICAgICAgY2hhciAqbmV3X2JlZyA9IHhtYWxsb2Mg KGVuZCAtIGJlZyArIDIpOworICAgICAgICAgIG5ld19iZWdbMF0gPSBuZXdfYmVnW2VuZCAtIGJl ZyArIDFdID0gZW9sYnl0ZTsKKyAgICAgICAgICBtZW1jcHkgKCZuZXdfYmVnWzFdLCBiZWcsIGVu ZCAtIGJlZyk7CisgICAgICAgICAga3dzaW5jciAoa3dzZXQsIG5ld19iZWcsIGVuZCAtIGJlZyAr IDIpOworICAgICAgICAgIGZyZWUgKG5ld19iZWcpOworICAgICAgICB9CisgICAgICBlbHNlCisg ICAgICAgIGt3c2luY3IgKGt3c2V0LCBiZWcsIGVuZCAtIGJlZyk7CiAgICAgICBiZWcgPSBsaW07 CiAgICAgfQogICB3aGlsZSAoYmVnIDwgcGF0ICsgcHNpemUpOwpAQCAtMTE2LDExICsxMjUsMTEg QEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hf c2l6ZSwKIAogICBmb3IgKG1iX3N0YXJ0ID0gYmVnID0gc3RhcnRfcHRyID8gc3RhcnRfcHRyIDog YnVmOyBiZWcgPD0gYnVmICsgc2l6ZTsgYmVnKyspCiAgICAgewotICAgICAgc2l6ZV90IG9mZnNl dCA9IGt3c2V4ZWMgKGt3c2V0LCBiZWcsIGJ1ZiArIHNpemUgLSBiZWcsICZrd3NtYXRjaCk7Cisg ICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZyAtIG1hdGNoX2xpbmVzLCBi dWYgKyBzaXplIC0gYmVnICsgbWF0Y2hfbGluZXMsICZrd3NtYXRjaCk7CiAgICAgICBpZiAob2Zm c2V0ID09IChzaXplX3QpIC0xKQogICAgICAgICBnb3RvIGZhaWx1cmU7Ci0gICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdOwotICAgICAgaWYgKE1CX0NVUl9NQVggPiAxCisgICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdIC0gbWF0Y2hfbGluZXM7CisgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEg JiYgIW1hdGNoX2xpbmVzCiAgICAgICAgICAgJiYgaXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIGJl ZyArIG9mZnNldCwgYnVmICsgc2l6ZSwgbGVuKSkKICAgICAgICAgewogICAgICAgICAgIC8qIFRo ZSBtYXRjaCB3YXMgYSBwYXJ0IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIGFkdmFuY2UgYXQgbGVh c3QKQEAgLTEzNywxNCArMTQ2LDggQEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90 IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgIGlmIChzdGFydF9wdHIgJiYgIW1hdGNo X3dvcmRzKQogICAgICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CiAgICAgICBpZiAo bWF0Y2hfbGluZXMpCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYmVnID4gYnVmICYmIGJlZ1st MV0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKGJlZyArIGxl biA8IGJ1ZiArIHNpemUgJiYgYmVnW2xlbl0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICBlbHNlIGlmIChtYXRj aF93b3JkcykKKyAgICAgICAgZ290byBzdWNjZXNzX2luX2JlZ19hbmRfbGVuOworICAgICAgaWYg KG1hdGNoX3dvcmRzKQogICAgICAgICBmb3IgKHRyeSA9IGJlZzsgOyApCiAgICAgICAgICAgewog ICAgICAgICAgICAgaWYgKHRyeSA+IGJ1ZiAmJiBXQ0hBUih0b191Y2hhciAodHJ5Wy0xXSkpKQot LSAKMS45LjEKCg== --------_5343F9680000000010D2_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 10:31:43 2014 Received: (at 17204) by debbugs.gnu.org; 9 Apr 2014 14:31:44 +0000 Received: from localhost ([127.0.0.1]:39145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXtXS-0003h1-NV for submit@debbugs.gnu.org; Wed, 09 Apr 2014 10:31:43 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:34274) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXtXO-0003gn-5c for 17204@debbugs.gnu.org; Wed, 09 Apr 2014 10:31:40 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 66C61E80023 for <17204@debbugs.gnu.org>; Wed, 9 Apr 2014 23:31:33 +0900 (JST) Received: from mail01.kcn.ne.jp ([61.86.6.180]) by imp03 with bizsmtp id nqXZ1n0023t2w9Z01qXZo9; Wed, 09 Apr 2014 23:31:33 +0900 X-OrgRCPT: 17204@debbugs.gnu.org Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail01.kcn.ne.jp (Postfix) with ESMTPA id C3FF25A8271 for <17204@debbugs.gnu.org>; Wed, 9 Apr 2014 23:31:32 +0900 (JST) Date: Wed, 09 Apr 2014 23:31:33 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> References: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> Message-Id: <20140409233133.787D.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5343F9680000000010D2_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I rebased this patch. I also changed some variables into `bool'. --------_5343F9680000000010D2_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA0Mzg0ZTFiMjkxYTQ4M2U0OTBlYmJjOGIxZGIwODY3NTRjNmVhMmQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2Rm YS5oICAgICAgIHwgIDIgKysKIHNyYy9kZmFzZWFyY2guYyB8IDI5ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCiBzcmMva3dzZWFyY2guYyAgfCAyNyArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDc2ZjdlNzkuLjc5Nzgz OWUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQwMjksNiArNDAy OSw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIGNoYXIgKmxlZnQ7CiAgIGNoYXIgKnJpZ2h0OwogICBj aGFyICppczsKKyAgYm9vbCBiZWdsaW5lOworICBib29sIGVuZGxpbmU7CiB9IG11c3Q7CiAKIHN0 YXRpYyB2b2lkCkBAIC00MDQ3LDYgKzQwNDksOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQog ICBzaXplX3Qgcmk7CiAgIHNpemVfdCBpOwogICBib29sIGV4YWN0OworICBib29sIGJlZ2xpbmU7 CisgIGJvb2wgZW5kbGluZTsKICAgdG9rZW4gdDsKICAgc3RhdGljIG11c3QgbXVzdDA7CiAgIHN0 cnVjdCBkZmFtdXN0ICpkbTsKQEAgLTQwNTQsNiArNDA1OCw4IEBAIGRmYW11c3QgKHN0cnVjdCBk ZmEgKmQpCiAKICAgcmVzdWx0ID0gZW1wdHlfc3RyaW5nOwogICBleGFjdCA9IGZhbHNlOworICBi ZWdsaW5lID0gZmFsc2U7CisgIGVuZGxpbmUgPSBmYWxzZTsKICAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CiAgIG1wID0gbXVzdHM7CiAgIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4 OyArK2kpCkBAIC00MDY2LDYgKzQwNzIsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAg ICAgbXBbaV0uaXMgPSB4bWFsbG9jICgyKTsKICAgICAgIG1wW2ldLmxlZnRbMF0gPSBtcFtpXS5y aWdodFswXSA9IG1wW2ldLmlzWzBdID0gJ1wwJzsKICAgICAgIG1wW2ldLmluWzBdID0gTlVMTDsK KyAgICAgIG1wW2ldLmJlZ2xpbmUgPSBmYWxzZTsKKyAgICAgIG1wW2ldLmVuZGxpbmUgPSBmYWxz ZTsKICAgICB9CiAjaWZkZWYgREVCVUcKICAgZnByaW50ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIp OwpAQCAtNDA4MCwxMiArNDA4OCwxOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgIHsK ICAgICAgIHN3aXRjaCAodCA9IGQtPnRva2Vuc1tyaV0pCiAgICAgICAgIHsKKyAgICAgICAgY2Fz ZSBCRUdMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWds aW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAg ICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5lbmRsaW5lID0gdHJ1ZTsKKyAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVO OgogICAgICAgICAgIGFzc2VydCAoISJuZWl0aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBl YXIgaGVyZSIpOwogICAgICAgICBjYXNlIEVNUFRZOgotICAgICAgICBjYXNlIEJFR0xJTkU6Ci0g ICAgICAgIGNhc2UgRU5ETElORToKICAgICAgICAgY2FzZSBCRUdXT1JEOgogICAgICAgICBjYXNl IEVORFdPUkQ6CiAgICAgICAgIGNhc2UgTElNV09SRDoKQEAgLTQxMTIsNiArNDEyNiwxMCBAQCBk ZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZS4g IFVubGlrZWx5LCBidXQgLi4uICAqLwogICAgICAgICAgICAgaWYgKCFTVFJFUSAobG1wLT5pcywg cm1wLT5pcykpCiAgICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAg aWYgKGxtcC0+YmVnbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5iZWdsaW5lID0gcm1wLT5iZWds aW5lOworICAgICAgICAgICAgaWYgKGxtcC0+ZW5kbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5l bmRsaW5lID0gcm1wLT5lbmRsaW5lOwogICAgICAgICAgICAgLyogTGVmdCBzaWRlLS1lYXN5ICov CiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIHdoaWxlIChsbXAtPmxlZnRbaV0gIT0g J1wwJyAmJiBsbXAtPmxlZnRbaV0gPT0gcm1wLT5sZWZ0W2ldKQpAQCAtNDE0OCw3ICs0MTY2LDEx IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICBpZiAoc3RybGVuIChtdXN0 c1swXS5pbltpXSkgPiBzdHJsZW4gKHJlc3VsdCkpCiAgICAgICAgICAgICAgIHJlc3VsdCA9IG11 c3RzWzBdLmluW2ldOwogICAgICAgICAgIGlmIChTVFJFUSAocmVzdWx0LCBtdXN0c1swXS5pcykp Ci0gICAgICAgICAgICBleGFjdCA9IHRydWU7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGV4YWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9IG11c3RzWzBdLmJlZ2xpbmU7 CisgICAgICAgICAgICAgIGVuZGxpbmUgPSBtdXN0c1swXS5lbmRsaW5lOworICAgICAgICAgICAg fQogICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgY2FzZSBDQVQ6CiAgICAgICAgICAgYXNz ZXJ0ICgmbXVzdHNbMl0gPD0gbXApOwpAQCAtNDE4OSwxNCArNDIxMSwyMCBAQCBkZmFtdXN0IChz dHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYgKGxtcC0+cmlnaHQgPT0gTlVMTCkKICAgICAg ICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZSAqLwot ICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1wwJyAmJiBybXAtPmlzWzBdICE9ICdcMCcp CisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0gJ1wwJyB8fCBsbXAtPmJlZ2xpbmUpCisg ICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0gJ1wwJyB8fCBybXAtPmVuZGxpbmUpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRhbGxvYyAobG1w LT5pcywgcm1wLT5pcyk7CiAgICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMgPT0gTlVMTCkKICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUg PSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBsbXAtPmJlZ2xpbmUgPSBm YWxzZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg ICAgfQogICAgICAgICAgIH0KICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAg LTQyNDMsNiArNDI3MSw4IEBAIGRvbmU6CiAgICAgewogICAgICAgTUFMTE9DIChkbSwgMSk7CiAg ICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKKyAgICAgIGRtLT5iZWdsaW5lID0gYmVnbGluZTsKKyAg ICAgIGRtLT5lbmRsaW5lID0gZW5kbGluZTsKICAgICAgIGRtLT5tdXN0ID0geG1lbWR1cCAocmVz dWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0gZC0+bXVzdHM7CiAg ICAgICBkLT5tdXN0cyA9IGRtOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmlu ZGV4IGRiMjlhNjIuLjM4MjllNmEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZh LmgKQEAgLTI2LDYgKzI2LDggQEAKIHN0cnVjdCBkZmFtdXN0CiB7CiAgIGludCBleGFjdDsKKyAg aW50IGJlZ2xpbmU7CisgIGludCBlbmRsaW5lOwogICBjaGFyICptdXN0OwogICBzdHJ1Y3QgZGZh bXVzdCAqbmV4dDsKIH07CmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2Vh cmNoLmMKaW5kZXggMmFlMGE0YS4uMWFjY2Y0NSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5j CisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgc2l6ZV90IHBj b3VudDsKICAgIGNhbGwgdGhlIHJlZ2V4cCBtYXRjaGVyIGF0IGFsbC4gKi8KIHN0YXRpYyBzaXpl X3Qga3dzZXRfZXhhY3RfbWF0Y2hlczsKIAorc3RhdGljIGludCBiZWdsaW5lOworCiB2b2lkCiBk ZmFlcnJvciAoY2hhciBjb25zdCAqbWVzZykKIHsKQEAgLTg1LDE1ICs4NywzMCBAQCBrd3NtdXN0 cyAodm9pZCkKICAgaWYgKGRtKQogICAgIHsKICAgICAgIGt3c2luaXQgKCZrd3NldCk7CisgICAg ICBiZWdsaW5lID0gMDsKICAgICAgIC8qIEZpcnN0LCB3ZSBjb21waWxlIGluIHRoZSBzdWJzdHJp bmdzIGtub3duIHRvIGJlIGV4YWN0CiAgICAgICAgICBtYXRjaGVzLiAgVGhlIGt3c2V0IG1hdGNo ZXIgd2lsbCByZXR1cm4gdGhlIGluZGV4CiAgICAgICAgICBvZiB0aGUgbWF0Y2hpbmcgc3RyaW5n IHRoYXQgaXQgY2hvb3Nlcy4gKi8KICAgICAgIGZvciAoOyBkbTsgZG0gPSBkbS0+bmV4dCkKICAg ICAgICAgeworICAgICAgICAgIGNoYXIgKm11c3QsICptcDsKKyAgICAgICAgICBzaXplX3Qgb2xk X2xlbiwgbmV3X2xlbjsKICAgICAgICAgICBpZiAoIWRtLT5leGFjdCkKICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICsra3dzZXRfZXhhY3RfbWF0Y2hlczsKLSAgICAgICAgICBrd3Np bmNyIChrd3NldCwgZG0tPm11c3QsIHN0cmxlbiAoZG0tPm11c3QpKTsKKyAgICAgICAgICBvbGRf bGVuID0gc3RybGVuIChkbS0+bXVzdCk7CisgICAgICAgICAgbmV3X2xlbiA9IG9sZF9sZW4gKyBk bS0+YmVnbGluZSArIGRtLT5lbmRsaW5lOworICAgICAgICAgIG11c3QgPSBtcCA9IHhtYWxsb2Mg KG5ld19sZW4pOworICAgICAgICAgIGlmIChkbS0+YmVnbGluZSkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgKG1wKyspWzBdID0gZW9sYnl0ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9 IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgbWVtY3B5IChtcCwgZG0tPm11c3QsIG9sZF9s ZW4pOworICAgICAgICAgIGlmIChkbS0+ZW5kbGluZSkKKyAgICAgICAgICAgIG1wW29sZF9sZW5d ID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3NpbmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbik7Cisg ICAgICAgICAgZnJlZSAobXVzdCk7CiAgICAgICAgIH0KICAgICAgIC8qIE5vdywgd2UgY29tcGls ZSB0aGUgc3Vic3RyaW5ncyB0aGF0IHdpbGwgcmVxdWlyZQogICAgICAgICAgdGhlIHVzZSBvZiB0 aGUgcmVnZXhwIG1hdGNoZXIuICAqLwpAQCAtMjEzLDcgKzIzMCw4IEBAIEVHZXhlY3V0ZSAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAg IGlmIChrd3NldCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3Np YmxlIG1hdGNoIHVzaW5nIHRoZSBLV3NldCBtYXRjaGVyLiAqLwotICAgICAgICAgICAgICBzaXpl X3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmbGltIC0gYmVnLCAma3dzbSk7Cisg ICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGlu ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyAr IGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAt MSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIGJlZyArPSBv ZmZzZXQ7CkBAIC0yMjYsMTEgKzI0NCwxMiBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwg c2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9l eGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChN Ql9DVVJfTUFYID09IDEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAg ICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8IGJlZykKICAgICAgICAgICAgICAgICAgICAgbWJf c3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxCi0gICAg ICAgICAgICAgICAgICAgICAgfHwgIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVm bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVsw XSkpCisgICAgICAgICAgICAgICAgICBpZiAoIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRj aCwgYnVmbGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6 ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hlZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlkZGxlIG9m IGEgbXVsdGlieXRlCiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuICBQZXJmb3JtIHRo ZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2gu YyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IGRmOTQ5NTEuLmM2NzZjMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5jCkBAIC02NCw3ICs2NCwxNiBAQCBGY29t cGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAjZW5kaWYKICAgICAgICAg fQogCi0gICAgICBrd3NpbmNyIChrd3NldCwgYmVnLCBlbmQgLSBiZWcpOworICAgICAgaWYgKG1h dGNoX2xpbmVzKQorICAgICAgICB7CisgICAgICAgICAgY2hhciAqbmV3X2JlZyA9IHhtYWxsb2Mg KGVuZCAtIGJlZyArIDIpOworICAgICAgICAgIG5ld19iZWdbMF0gPSBuZXdfYmVnW2VuZCAtIGJl ZyArIDFdID0gZW9sYnl0ZTsKKyAgICAgICAgICBtZW1jcHkgKCZuZXdfYmVnWzFdLCBiZWcsIGVu ZCAtIGJlZyk7CisgICAgICAgICAga3dzaW5jciAoa3dzZXQsIG5ld19iZWcsIGVuZCAtIGJlZyAr IDIpOworICAgICAgICAgIGZyZWUgKG5ld19iZWcpOworICAgICAgICB9CisgICAgICBlbHNlCisg ICAgICAgIGt3c2luY3IgKGt3c2V0LCBiZWcsIGVuZCAtIGJlZyk7CiAgICAgICBiZWcgPSBsaW07 CiAgICAgfQogICB3aGlsZSAoYmVnIDwgcGF0ICsgcHNpemUpOwpAQCAtMTE2LDExICsxMjUsMTEg QEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hf c2l6ZSwKIAogICBmb3IgKG1iX3N0YXJ0ID0gYmVnID0gc3RhcnRfcHRyID8gc3RhcnRfcHRyIDog YnVmOyBiZWcgPD0gYnVmICsgc2l6ZTsgYmVnKyspCiAgICAgewotICAgICAgc2l6ZV90IG9mZnNl dCA9IGt3c2V4ZWMgKGt3c2V0LCBiZWcsIGJ1ZiArIHNpemUgLSBiZWcsICZrd3NtYXRjaCk7Cisg ICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZyAtIG1hdGNoX2xpbmVzLCBi dWYgKyBzaXplIC0gYmVnICsgbWF0Y2hfbGluZXMsICZrd3NtYXRjaCk7CiAgICAgICBpZiAob2Zm c2V0ID09IChzaXplX3QpIC0xKQogICAgICAgICBnb3RvIGZhaWx1cmU7Ci0gICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdOwotICAgICAgaWYgKE1CX0NVUl9NQVggPiAxCisgICAgICBsZW4gPSBr d3NtYXRjaC5zaXplWzBdIC0gbWF0Y2hfbGluZXM7CisgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEg JiYgIW1hdGNoX2xpbmVzCiAgICAgICAgICAgJiYgaXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIGJl ZyArIG9mZnNldCwgYnVmICsgc2l6ZSwgbGVuKSkKICAgICAgICAgewogICAgICAgICAgIC8qIFRo ZSBtYXRjaCB3YXMgYSBwYXJ0IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIGFkdmFuY2UgYXQgbGVh c3QKQEAgLTEzNywxNCArMTQ2LDggQEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90 IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgIGlmIChzdGFydF9wdHIgJiYgIW1hdGNo X3dvcmRzKQogICAgICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CiAgICAgICBpZiAo bWF0Y2hfbGluZXMpCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYmVnID4gYnVmICYmIGJlZ1st MV0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKGJlZyArIGxl biA8IGJ1ZiArIHNpemUgJiYgYmVnW2xlbl0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICBlbHNlIGlmIChtYXRj aF93b3JkcykKKyAgICAgICAgZ290byBzdWNjZXNzX2luX2JlZ19hbmRfbGVuOworICAgICAgaWYg KG1hdGNoX3dvcmRzKQogICAgICAgICBmb3IgKHRyeSA9IGJlZzsgOyApCiAgICAgICAgICAgewog ICAgICAgICAgICAgaWYgKHRyeSA+IGJ1ZiAmJiBXQ0hBUih0b191Y2hhciAodHJ5Wy0xXSkpKQot LSAKMS45LjEKCg== --------_5343F9680000000010D2_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 11 20:13:07 2014 Received: (at 17204) by debbugs.gnu.org; 12 Apr 2014 00:13:07 +0000 Received: from localhost ([127.0.0.1]:45874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WYlZC-0005Z8-0v for submit@debbugs.gnu.org; Fri, 11 Apr 2014 20:13:07 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:54471) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WYlZ7-0005Yb-EQ for 17204@debbugs.gnu.org; Fri, 11 Apr 2014 20:13:03 -0400 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id E941968760 for <17204@debbugs.gnu.org>; Sat, 12 Apr 2014 09:12:58 +0900 (JST) Received: from mail07.kcn.ne.jp ([61.86.6.186]) by imp02 with bizsmtp id ooCy1n00940oyB901oCyNA; Sat, 12 Apr 2014 09:12:58 +0900 X-OrgRCPT: 17204@debbugs.gnu.org Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail07.kcn.ne.jp (Postfix) with ESMTPA id B5062D5002B for <17204@debbugs.gnu.org>; Sat, 12 Apr 2014 09:12:58 +0900 (JST) Date: Sat, 12 Apr 2014 09:13:00 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140409233133.787D.27F6AC2D@kcn.ne.jp> References: <20140406185502.BAB7.27F6AC2D@kcn.ne.jp> <20140409233133.787D.27F6AC2D@kcn.ne.jp> Message-Id: <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_53488494000000002BEF_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.4 (/) --------_53488494000000002BEF_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I rebased this patch because of confliction in src/kwsearch.c. --------_53488494000000002BEF_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSAwODZmZDU3OTcyNmY5OTU2ZTA0YjhkMDRkYjkyZWY3ODBjMGFlODUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2Rm YS5oICAgICAgIHwgIDIgKysKIHNyYy9kZmFzZWFyY2guYyB8IDI5ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCiBzcmMva3dzZWFyY2guYyAgfCAyNyArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IGEzY2ZhOGQuLjE1MDk5 YWEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQwMTgsNiArNDAx OCw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIGNoYXIgKmxlZnQ7CiAgIGNoYXIgKnJpZ2h0OwogICBj aGFyICppczsKKyAgYm9vbCBiZWdsaW5lOworICBib29sIGVuZGxpbmU7CiB9IG11c3Q7CiAKIHN0 YXRpYyB2b2lkCkBAIC00MDM2LDYgKzQwMzgsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQog ICBzaXplX3Qgcmk7CiAgIHNpemVfdCBpOwogICBib29sIGV4YWN0OworICBib29sIGJlZ2xpbmU7 CisgIGJvb2wgZW5kbGluZTsKICAgdG9rZW4gdDsKICAgc3RhdGljIG11c3QgbXVzdDA7CiAgIHN0 cnVjdCBkZmFtdXN0ICpkbTsKQEAgLTQwNDMsNiArNDA0Nyw4IEBAIGRmYW11c3QgKHN0cnVjdCBk ZmEgKmQpCiAKICAgcmVzdWx0ID0gZW1wdHlfc3RyaW5nOwogICBleGFjdCA9IGZhbHNlOworICBi ZWdsaW5lID0gZmFsc2U7CisgIGVuZGxpbmUgPSBmYWxzZTsKICAgTUFMTE9DIChtdXN0cywgZC0+ dGluZGV4ICsgMSk7CiAgIG1wID0gbXVzdHM7CiAgIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4 OyArK2kpCkBAIC00MDU1LDYgKzQwNjEsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAg ICAgbXBbaV0uaXMgPSB4bWFsbG9jICgyKTsKICAgICAgIG1wW2ldLmxlZnRbMF0gPSBtcFtpXS5y aWdodFswXSA9IG1wW2ldLmlzWzBdID0gJ1wwJzsKICAgICAgIG1wW2ldLmluWzBdID0gTlVMTDsK KyAgICAgIG1wW2ldLmJlZ2xpbmUgPSBmYWxzZTsKKyAgICAgIG1wW2ldLmVuZGxpbmUgPSBmYWxz ZTsKICAgICB9CiAjaWZkZWYgREVCVUcKICAgZnByaW50ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIp OwpAQCAtNDA2OSwxMiArNDA3NywxOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgIHsK ICAgICAgIHN3aXRjaCAodCA9IGQtPnRva2Vuc1tyaV0pCiAgICAgICAgIHsKKyAgICAgICAgY2Fz ZSBCRUdMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWds aW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAg ICAgICAgIHJlc2V0bXVzdCAobXApOworICAgICAgICAgIG1wLT5lbmRsaW5lID0gdHJ1ZTsKKyAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVO OgogICAgICAgICAgIGFzc2VydCAoISJuZWl0aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBl YXIgaGVyZSIpOwogICAgICAgICBjYXNlIEVNUFRZOgotICAgICAgICBjYXNlIEJFR0xJTkU6Ci0g ICAgICAgIGNhc2UgRU5ETElORToKICAgICAgICAgY2FzZSBCRUdXT1JEOgogICAgICAgICBjYXNl IEVORFdPUkQ6CiAgICAgICAgIGNhc2UgTElNV09SRDoKQEAgLTQxMDEsNiArNDExNSwxMCBAQCBk ZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZS4g IFVubGlrZWx5LCBidXQgLi4uICAqLwogICAgICAgICAgICAgaWYgKCFTVFJFUSAobG1wLT5pcywg cm1wLT5pcykpCiAgICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAg aWYgKGxtcC0+YmVnbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5iZWdsaW5lID0gcm1wLT5iZWds aW5lOworICAgICAgICAgICAgaWYgKGxtcC0+ZW5kbGluZSkKKyAgICAgICAgICAgICAgbG1wLT5l bmRsaW5lID0gcm1wLT5lbmRsaW5lOwogICAgICAgICAgICAgLyogTGVmdCBzaWRlLS1lYXN5ICov CiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIHdoaWxlIChsbXAtPmxlZnRbaV0gIT0g J1wwJyAmJiBsbXAtPmxlZnRbaV0gPT0gcm1wLT5sZWZ0W2ldKQpAQCAtNDEzNyw3ICs0MTU1LDEx IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICBpZiAoc3RybGVuIChtdXN0 c1swXS5pbltpXSkgPiBzdHJsZW4gKHJlc3VsdCkpCiAgICAgICAgICAgICAgIHJlc3VsdCA9IG11 c3RzWzBdLmluW2ldOwogICAgICAgICAgIGlmIChTVFJFUSAocmVzdWx0LCBtdXN0c1swXS5pcykp Ci0gICAgICAgICAgICBleGFjdCA9IHRydWU7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IGV4YWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9IG11c3RzWzBdLmJlZ2xpbmU7 CisgICAgICAgICAgICAgIGVuZGxpbmUgPSBtdXN0c1swXS5lbmRsaW5lOworICAgICAgICAgICAg fQogICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgY2FzZSBDQVQ6CiAgICAgICAgICAgYXNz ZXJ0ICgmbXVzdHNbMl0gPD0gbXApOwpAQCAtNDE3OCwxNCArNDIwMCwyMCBAQCBkZmFtdXN0IChz dHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYgKGxtcC0+cmlnaHQgPT0gTlVMTCkKICAgICAg ICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgLyogR3VhcmFudGVlZCB0byBiZSAqLwot ICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1wwJyAmJiBybXAtPmlzWzBdICE9ICdcMCcp CisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0gJ1wwJyB8fCBsbXAtPmJlZ2xpbmUpCisg ICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0gJ1wwJyB8fCBybXAtPmVuZGxpbmUpKQog ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRhbGxvYyAobG1w LT5pcywgcm1wLT5pcyk7CiAgICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMgPT0gTlVMTCkKICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUg PSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBsbXAtPmJlZ2xpbmUgPSBm YWxzZTsKKyAgICAgICAgICAgICAgICBsbXAtPmVuZGxpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg ICAgfQogICAgICAgICAgIH0KICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAg LTQyMzIsNiArNDI2MCw4IEBAIGRvbmU6CiAgICAgewogICAgICAgTUFMTE9DIChkbSwgMSk7CiAg ICAgICBkbS0+ZXhhY3QgPSBleGFjdDsKKyAgICAgIGRtLT5iZWdsaW5lID0gYmVnbGluZTsKKyAg ICAgIGRtLT5lbmRsaW5lID0gZW5kbGluZTsKICAgICAgIGRtLT5tdXN0ID0geG1lbWR1cCAocmVz dWx0LCBzdHJsZW4gKHJlc3VsdCkgKyAxKTsKICAgICAgIGRtLT5uZXh0ID0gZC0+bXVzdHM7CiAg ICAgICBkLT5tdXN0cyA9IGRtOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmlu ZGV4IGRiMjlhNjIuLjM4MjllNmEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZh LmgKQEAgLTI2LDYgKzI2LDggQEAKIHN0cnVjdCBkZmFtdXN0CiB7CiAgIGludCBleGFjdDsKKyAg aW50IGJlZ2xpbmU7CisgIGludCBlbmRsaW5lOwogICBjaGFyICptdXN0OwogICBzdHJ1Y3QgZGZh bXVzdCAqbmV4dDsKIH07CmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2Vh cmNoLmMKaW5kZXggMTI2NmM4MC4uMzRjNDUwNSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5j CisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgc2l6ZV90IHBj b3VudDsKICAgIGNhbGwgdGhlIHJlZ2V4cCBtYXRjaGVyIGF0IGFsbC4gKi8KIHN0YXRpYyBzaXpl X3Qga3dzZXRfZXhhY3RfbWF0Y2hlczsKIAorc3RhdGljIGludCBiZWdsaW5lOworCiB2b2lkCiBk ZmFlcnJvciAoY2hhciBjb25zdCAqbWVzZykKIHsKQEAgLTg1LDE1ICs4NywzMCBAQCBrd3NtdXN0 cyAodm9pZCkKICAgaWYgKGRtKQogICAgIHsKICAgICAgIGt3c2luaXQgKCZrd3NldCk7CisgICAg ICBiZWdsaW5lID0gMDsKICAgICAgIC8qIEZpcnN0LCB3ZSBjb21waWxlIGluIHRoZSBzdWJzdHJp bmdzIGtub3duIHRvIGJlIGV4YWN0CiAgICAgICAgICBtYXRjaGVzLiAgVGhlIGt3c2V0IG1hdGNo ZXIgd2lsbCByZXR1cm4gdGhlIGluZGV4CiAgICAgICAgICBvZiB0aGUgbWF0Y2hpbmcgc3RyaW5n IHRoYXQgaXQgY2hvb3Nlcy4gKi8KICAgICAgIGZvciAoOyBkbTsgZG0gPSBkbS0+bmV4dCkKICAg ICAgICAgeworICAgICAgICAgIGNoYXIgKm11c3QsICptcDsKKyAgICAgICAgICBzaXplX3Qgb2xk X2xlbiwgbmV3X2xlbjsKICAgICAgICAgICBpZiAoIWRtLT5leGFjdCkKICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICsra3dzZXRfZXhhY3RfbWF0Y2hlczsKLSAgICAgICAgICBrd3Np bmNyIChrd3NldCwgZG0tPm11c3QsIHN0cmxlbiAoZG0tPm11c3QpKTsKKyAgICAgICAgICBvbGRf bGVuID0gc3RybGVuIChkbS0+bXVzdCk7CisgICAgICAgICAgbmV3X2xlbiA9IG9sZF9sZW4gKyBk bS0+YmVnbGluZSArIGRtLT5lbmRsaW5lOworICAgICAgICAgIG11c3QgPSBtcCA9IHhtYWxsb2Mg KG5ld19sZW4pOworICAgICAgICAgIGlmIChkbS0+YmVnbGluZSkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgKG1wKyspWzBdID0gZW9sYnl0ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9 IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgbWVtY3B5IChtcCwgZG0tPm11c3QsIG9sZF9s ZW4pOworICAgICAgICAgIGlmIChkbS0+ZW5kbGluZSkKKyAgICAgICAgICAgIG1wW29sZF9sZW5d ID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3NpbmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbik7Cisg ICAgICAgICAgZnJlZSAobXVzdCk7CiAgICAgICAgIH0KICAgICAgIC8qIE5vdywgd2UgY29tcGls ZSB0aGUgc3Vic3RyaW5ncyB0aGF0IHdpbGwgcmVxdWlyZQogICAgICAgICAgdGhlIHVzZSBvZiB0 aGUgcmVnZXhwIG1hdGNoZXIuICAqLwpAQCAtMjEyLDcgKzIyOSw4IEBAIEVHZXhlY3V0ZSAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAg IGlmIChrd3NldCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3Np YmxlIG1hdGNoIHVzaW5nIHRoZSBLV3NldCBtYXRjaGVyLiAqLwotICAgICAgICAgICAgICBzaXpl X3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmbGltIC0gYmVnLCAma3dzbSk7Cisg ICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGlu ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyAr IGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAt MSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIGJlZyArPSBv ZmZzZXQ7CkBAIC0yMjUsMTEgKzI0MywxMiBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwg c2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9l eGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChN Ql9DVVJfTUFYID09IDEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAg ICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8IGJlZykKICAgICAgICAgICAgICAgICAgICAgbWJf c3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxCi0gICAg ICAgICAgICAgICAgICAgICAgfHwgIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVm bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVsw XSkpCisgICAgICAgICAgICAgICAgICBpZiAoIWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRj aCwgYnVmbGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6 ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hlZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlkZGxlIG9m IGEgbXVsdGlieXRlCiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuICBQZXJmb3JtIHRo ZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2gu YyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IDVmM2YyMzMuLmVkOTBhMzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3NlYXJjaC5jCkBAIC01Nyw3ICs1NywxNiBAQCBGY29t cGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAgICAgICAgICAgdG90YWwg PSAwOwogICAgICAgICB9CiAKLSAgICAgIGt3c2luY3IgKGt3c2V0LCBwLCBsZW4pOworICAgICAg aWYgKG1hdGNoX2xpbmVzKQorICAgICAgICB7CisgICAgICAgICAgY2hhciAqYnVmID0geG1hbGxv YyAobGVuICsgMik7CisgICAgICAgICAgbWVtY3B5ICgmYnVmWzFdLCBwLCBsZW4pOworICAgICAg ICAgIGJ1ZlswXSA9IGJ1ZltsZW4gKyAxXSA9IGVvbGJ5dGU7CisgICAgICAgICAga3dzaW5jciAo a3dzZXQsIGJ1ZiwgbGVuICsgMik7CisgICAgICAgICAgZnJlZSAoYnVmKTsKKyAgICAgICAgfQor ICAgICAgZWxzZQorICAgICAgICBrd3NpbmNyIChrd3NldCwgcCwgbGVuKTsKICAgICAgIHAgPSBz ZXA7CiAgICAgfQogICB3aGlsZSAocCk7CkBAIC0xMDksMTEgKzExOCwxMSBAQCBGZXhlY3V0ZSAo Y2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogCiAgIGZv ciAobWJfc3RhcnQgPSBiZWcgPSBzdGFydF9wdHIgPyBzdGFydF9wdHIgOiBidWY7IGJlZyA8PSBi dWYgKyBzaXplOyBiZWcrKykKICAgICB7Ci0gICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAo a3dzZXQsIGJlZywgYnVmICsgc2l6ZSAtIGJlZywgJmt3c21hdGNoKTsKKyAgICAgIHNpemVfdCBv ZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gbWF0Y2hfbGluZXMsIGJ1ZiArIHNpemUgLSBi ZWcgKyBtYXRjaF9saW5lcywgJmt3c21hdGNoKTsKICAgICAgIGlmIChvZmZzZXQgPT0gKHNpemVf dCkgLTEpCiAgICAgICAgIGdvdG8gZmFpbHVyZTsKLSAgICAgIGxlbiA9IGt3c21hdGNoLnNpemVb MF07Ci0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEKKyAgICAgIGxlbiA9IGt3c21hdGNoLnNpemVb MF0gLSBtYXRjaF9saW5lczsKKyAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiAhbWF0Y2hfbGlu ZXMKICAgICAgICAgICAmJiBpc19tYl9taWRkbGUgKCZtYl9zdGFydCwgYmVnICsgb2Zmc2V0LCBi dWYgKyBzaXplLCBsZW4pKQogICAgICAgICB7CiAgICAgICAgICAgLyogVGhlIG1hdGNoIHdhcyBh IHBhcnQgb2YgbXVsdGlieXRlIGNoYXJhY3RlciwgYWR2YW5jZSBhdCBsZWFzdApAQCAtMTMwLDE0 ICsxMzksOCBAQCBGZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90 ICptYXRjaF9zaXplLAogICAgICAgaWYgKHN0YXJ0X3B0ciAmJiAhbWF0Y2hfd29yZHMpCiAgICAg ICAgIGdvdG8gc3VjY2Vzc19pbl9iZWdfYW5kX2xlbjsKICAgICAgIGlmIChtYXRjaF9saW5lcykK LSAgICAgICAgewotICAgICAgICAgIGlmIChiZWcgPiBidWYgJiYgYmVnWy0xXSAhPSBlb2wpCi0g ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICBpZiAoYmVnICsgbGVuIDwgYnVmICsgc2l6 ZSAmJiBiZWdbbGVuXSAhPSBlb2wpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICBn b3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKG1hdGNoX3dvcmRzKQorICAg ICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CisgICAgICBpZiAobWF0Y2hfd29yZHMp CiAgICAgICAgIGZvciAodHJ5ID0gYmVnOyA7ICkKICAgICAgICAgICB7CiAgICAgICAgICAgICBp ZiAodHJ5ID4gYnVmICYmIFdDSEFSKHRvX3VjaGFyICh0cnlbLTFdKSkpCi0tIAoxLjkuMgoK --------_53488494000000002BEF_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 18 11:02:40 2014 Received: (at 17204) by debbugs.gnu.org; 18 Apr 2014 15:02:40 +0000 Received: from localhost ([127.0.0.1]:52041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbAJL-0002gI-E3 for submit@debbugs.gnu.org; Fri, 18 Apr 2014 11:02:40 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:55214) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WbAJH-0002g7-5d for 17204@debbugs.gnu.org; Fri, 18 Apr 2014 11:02:37 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id C77F567931 for <17204@debbugs.gnu.org>; Sat, 19 Apr 2014 00:02:32 +0900 (JST) Received: from mail05.kcn.ne.jp ([61.86.6.184]) by imp03 with bizsmtp id rT2Y1n00J3yDdWd01T2Y34; Sat, 19 Apr 2014 00:02:32 +0900 X-OrgRCPT: 17204@debbugs.gnu.org Received: from [10.120.1.61] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail05.kcn.ne.jp (Postfix) with ESMTPA id 584327D00B3 for <17204@debbugs.gnu.org>; Sat, 19 Apr 2014 00:02:32 +0900 (JST) Date: Sat, 19 Apr 2014 00:02:33 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> References: <20140409233133.787D.27F6AC2D@kcn.ne.jp> <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> Message-Id: <20140419000232.7012.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_53513E27000000007008_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --------_53513E27000000007008_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I rebased this patch because of confliction. --------_53513E27000000007008_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSAxMDk2MGEyOTQwZmY0OWViNWE3NTg0ZTlkYTlmZmUzNDJlMzRkOTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHNy Yy9kZmEuaCAgICAgICB8ICAyICsrCiBzcmMvZGZhc2VhcmNoLmMgfCAyOSArKysrKysrKysrKysr KysrKysrKysrKystLS0tLQogc3JjL2t3c2VhcmNoLmMgIHwgMjggKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggZWVjYTI1Ny4u ZTViY2RiNiAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMzgyNyw2 ICszODI3LDggQEAgdHlwZWRlZiBzdHJ1Y3QKICAgY2hhciAqbGVmdDsKICAgY2hhciAqcmlnaHQ7 CiAgIGNoYXIgKmlzOworICBib29sIGJlZ2xpbmU7CisgIGJvb2wgZW5kbGluZTsKIH0gbXVzdDsK IAogc3RhdGljIHZvaWQKQEAgLTM4NDYsNiArMzg0OCw4IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEg KmQpCiAgIHNpemVfdCByaTsKICAgc2l6ZV90IGk7CiAgIGJvb2wgZXhhY3QgPSBmYWxzZTsKKyAg Ym9vbCBiZWdsaW5lID0gZmFsc2U7CisgIGJvb2wgZW5kbGluZSA9IGZhbHNlOwogICBzdHJ1Y3Qg ZGZhbXVzdCAqZG07CiAKICAgZm9yIChpID0gMDsgaSA8PSBkLT50aW5kZXg7ICsraSkKQEAgLTM4 NTQsNiArMzg1OCw4IEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICBtcFtpXS5sZWZ0 ID0geHphbGxvYyAoMik7CiAgICAgICBtcFtpXS5yaWdodCA9IHh6YWxsb2MgKDIpOwogICAgICAg bXBbaV0uaXMgPSB4emFsbG9jICgyKTsKKyAgICAgIG1wW2ldLmJlZ2xpbmUgPSBmYWxzZTsKKyAg ICAgIG1wW2ldLmVuZGxpbmUgPSBmYWxzZTsKICAgICB9CiAjaWZkZWYgREVCVUcKICAgZnByaW50 ZiAoc3RkZXJyLCAiZGZhbXVzdDpcbiIpOwpAQCAtMzg2OSw2ICszODc1LDE0IEBAIGRmYW11c3Qg KHN0cnVjdCBkZmEgKmQpCiAgICAgICB0b2tlbiB0ID0gZC0+dG9rZW5zW3JpXTsKICAgICAgIHN3 aXRjaCAodCkKICAgICAgICAgeworICAgICAgICBjYXNlIEJFR0xJTkU6CisgICAgICAgICAgcmVz ZXRtdXN0IChtcCk7CisgICAgICAgICAgbXAtPmJlZ2xpbmUgPSB0cnVlOworICAgICAgICAgIGJy ZWFrOworICAgICAgICBjYXNlIEVORExJTkU6CisgICAgICAgICAgcmVzZXRtdXN0IChtcCk7Cisg ICAgICAgICAgbXAtPmVuZGxpbmUgPSB0cnVlOworICAgICAgICAgIGJyZWFrOwogICAgICAgICBj YXNlIExQQVJFTjoKICAgICAgICAgY2FzZSBSUEFSRU46CiAgICAgICAgICAgYXNzZXJ0ICghIm5l aXRoZXIgTFBBUkVOIG5vciBSUEFSRU4gbWF5IGFwcGVhciBoZXJlIik7CkBAIC0zODc5LDggKzM4 OTMsNiBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgIC0tbXA7CiAgICAgICAg ICAgLyogRmFsbCB0aHJvdWdoLiAgKi8KICAgICAgICAgY2FzZSBFTVBUWToKLSAgICAgICAgY2Fz ZSBCRUdMSU5FOgotICAgICAgICBjYXNlIEVORExJTkU6CiAgICAgICAgIGNhc2UgQkVHV09SRDoK ICAgICAgICAgY2FzZSBFTkRXT1JEOgogICAgICAgICBjYXNlIExJTVdPUkQ6CkBAIC0zOTA0LDYg KzM5MTYsMTAgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgICAgIC8qIEd1YXJh bnRlZWQgdG8gYmUuICBVbmxpa2VseSwgYnV0IC4uLiAgKi8KICAgICAgICAgICAgIGlmICghU1RS RVEgKGxtcC0+aXMsIHJtcC0+aXMpKQogICAgICAgICAgICAgICBsbXAtPmlzWzBdID0gJ1wwJzsK KyAgICAgICAgICAgIGlmIChsbXAtPmJlZ2xpbmUpCisgICAgICAgICAgICAgIGxtcC0+YmVnbGlu ZSA9IHJtcC0+YmVnbGluZTsKKyAgICAgICAgICAgIGlmIChsbXAtPmVuZGxpbmUpCisgICAgICAg ICAgICAgIGxtcC0+ZW5kbGluZSA9IHJtcC0+ZW5kbGluZTsKICAgICAgICAgICAgIC8qIExlZnQg c2lkZS0tZWFzeSAqLwogICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgICB3aGlsZSAobG1w LT5sZWZ0W2ldICE9ICdcMCcgJiYgbG1wLT5sZWZ0W2ldID09IHJtcC0+bGVmdFtpXSkKQEAgLTM5 NDAsNyArMzk1NiwxMSBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgaWYg KHN0cmxlbiAobXVzdHNbMF0uaW5baV0pID4gc3RybGVuIChyZXN1bHQpKQogICAgICAgICAgICAg ICByZXN1bHQgPSBtdXN0c1swXS5pbltpXTsKICAgICAgICAgICBpZiAoU1RSRVEgKHJlc3VsdCwg bXVzdHNbMF0uaXMpKQotICAgICAgICAgICAgZXhhY3QgPSB0cnVlOworICAgICAgICAgICAgewor ICAgICAgICAgICAgICBleGFjdCA9IHRydWU7CisgICAgICAgICAgICAgIGJlZ2xpbmUgPSBtdXN0 c1swXS5iZWdsaW5lOworICAgICAgICAgICAgICBlbmRsaW5lID0gbXVzdHNbMF0uZW5kbGluZTsK KyAgICAgICAgICAgIH0KICAgICAgICAgICBnb3RvIGRvbmU7CiAKICAgICAgICAgY2FzZSBDQVQ6 CkBAIC0zOTczLDEwICszOTkzLDIwIEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAg ICAgICAgIGxtcC0+cmlnaHRbMF0gPSAnXDAnOwogICAgICAgICAgICAgbG1wLT5yaWdodCA9IGlj YXRhbGxvYyAobG1wLT5yaWdodCwgcm1wLT5yaWdodCk7CiAgICAgICAgICAgICAvKiBHdWFyYW50 ZWVkIHRvIGJlICovCi0gICAgICAgICAgICBpZiAobG1wLT5pc1swXSAhPSAnXDAnICYmIHJtcC0+ aXNbMF0gIT0gJ1wwJykKLSAgICAgICAgICAgICAgbG1wLT5pcyA9IGljYXRhbGxvYyAobG1wLT5p cywgcm1wLT5pcyk7CisgICAgICAgICAgICBpZiAoKGxtcC0+aXNbMF0gIT0gJ1wwJyB8fCBsbXAt PmJlZ2xpbmUpCisgICAgICAgICAgICAgICAgJiYgKHJtcC0+aXNbMF0gIT0gJ1wwJyB8fCBybXAt PmVuZGxpbmUpKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbG1wLT5pcyA9IGlj YXRhbGxvYyAobG1wLT5pcywgcm1wLT5pcyk7CisgICAgICAgICAgICAgICAgaWYgKGxtcC0+aXMp CisgICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICAgICAgbG1wLT5lbmRs aW5lID0gcm1wLT5lbmRsaW5lOworICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7CisgICAgICAgICAgICAgICAgbG1wLT5iZWdsaW5l ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbG1wLT5lbmRsaW5lID0gZmFsc2U7CisgICAgICAg ICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgICAgYnJlYWs7CiAKQEAgLTQwMzEsNiArNDA2 MSw4IEBAIGRvbmU6CiAgICAgewogICAgICAgZG0gPSB4bWFsbG9jIChzaXplb2YgKmRtKTsKICAg ICAgIGRtLT5leGFjdCA9IGV4YWN0OworICAgICAgZG0tPmJlZ2xpbmUgPSBiZWdsaW5lOworICAg ICAgZG0tPmVuZGxpbmUgPSBlbmRsaW5lOwogICAgICAgZG0tPm11c3QgPSB4c3RyZHVwIChyZXN1 bHQpOwogICAgICAgZG0tPm5leHQgPSBkLT5tdXN0czsKICAgICAgIGQtPm11c3RzID0gZG07CmRp ZmYgLS1naXQgYS9zcmMvZGZhLmggYi9zcmMvZGZhLmgKaW5kZXggZGIyOWE2Mi4uMzgyOWU2YSAx MDA2NDQKLS0tIGEvc3JjL2RmYS5oCisrKyBiL3NyYy9kZmEuaApAQCAtMjYsNiArMjYsOCBAQAog c3RydWN0IGRmYW11c3QKIHsKICAgaW50IGV4YWN0OworICBpbnQgYmVnbGluZTsKKyAgaW50IGVu ZGxpbmU7CiAgIGNoYXIgKm11c3Q7CiAgIHN0cnVjdCBkZmFtdXN0ICpuZXh0OwogfTsKZGlmZiAt LWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFzZWFyY2guYwppbmRleCAxMjY2YzgwLi4z NGM0NTA1IDEwMDY0NAotLS0gYS9zcmMvZGZhc2VhcmNoLmMKKysrIGIvc3JjL2RmYXNlYXJjaC5j CkBAIC01MSw2ICs1MSw4IEBAIHN0YXRpYyBzaXplX3QgcGNvdW50OwogICAgY2FsbCB0aGUgcmVn ZXhwIG1hdGNoZXIgYXQgYWxsLiAqLwogc3RhdGljIHNpemVfdCBrd3NldF9leGFjdF9tYXRjaGVz OwogCitzdGF0aWMgaW50IGJlZ2xpbmU7CisKIHZvaWQKIGRmYWVycm9yIChjaGFyIGNvbnN0ICpt ZXNnKQogewpAQCAtODUsMTUgKzg3LDMwIEBAIGt3c211c3RzICh2b2lkKQogICBpZiAoZG0pCiAg ICAgewogICAgICAga3dzaW5pdCAoJmt3c2V0KTsKKyAgICAgIGJlZ2xpbmUgPSAwOwogICAgICAg LyogRmlyc3QsIHdlIGNvbXBpbGUgaW4gdGhlIHN1YnN0cmluZ3Mga25vd24gdG8gYmUgZXhhY3QK ICAgICAgICAgIG1hdGNoZXMuICBUaGUga3dzZXQgbWF0Y2hlciB3aWxsIHJldHVybiB0aGUgaW5k ZXgKICAgICAgICAgIG9mIHRoZSBtYXRjaGluZyBzdHJpbmcgdGhhdCBpdCBjaG9vc2VzLiAqLwog ICAgICAgZm9yICg7IGRtOyBkbSA9IGRtLT5uZXh0KQogICAgICAgICB7CisgICAgICAgICAgY2hh ciAqbXVzdCwgKm1wOworICAgICAgICAgIHNpemVfdCBvbGRfbGVuLCBuZXdfbGVuOwogICAgICAg ICAgIGlmICghZG0tPmV4YWN0KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgKytr d3NldF9leGFjdF9tYXRjaGVzOwotICAgICAgICAgIGt3c2luY3IgKGt3c2V0LCBkbS0+bXVzdCwg c3RybGVuIChkbS0+bXVzdCkpOworICAgICAgICAgIG9sZF9sZW4gPSBzdHJsZW4gKGRtLT5tdXN0 KTsKKyAgICAgICAgICBuZXdfbGVuID0gb2xkX2xlbiArIGRtLT5iZWdsaW5lICsgZG0tPmVuZGxp bmU7CisgICAgICAgICAgbXVzdCA9IG1wID0geG1hbGxvYyAobmV3X2xlbik7CisgICAgICAgICAg aWYgKGRtLT5iZWdsaW5lKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAobXArKylbMF0g PSBlb2xieXRlOworICAgICAgICAgICAgICBiZWdsaW5lID0gMTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICBtZW1jcHkgKG1wLCBkbS0+bXVzdCwgb2xkX2xlbik7CisgICAgICAgICAgaWYgKGRt LT5lbmRsaW5lKQorICAgICAgICAgICAgbXBbb2xkX2xlbl0gPSBlb2xieXRlOworICAgICAgICAg IGt3c2luY3IgKGt3c2V0LCBtdXN0LCBuZXdfbGVuKTsKKyAgICAgICAgICBmcmVlIChtdXN0KTsK ICAgICAgICAgfQogICAgICAgLyogTm93LCB3ZSBjb21waWxlIHRoZSBzdWJzdHJpbmdzIHRoYXQg d2lsbCByZXF1aXJlCiAgICAgICAgICB0aGUgdXNlIG9mIHRoZSByZWdleHAgbWF0Y2hlci4gICov CkBAIC0yMTIsNyArMjI5LDggQEAgRUdleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBz aXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgaWYgKGt3c2V0KQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICAvKiBGaW5kIGEgcG9zc2libGUgbWF0Y2ggdXNpbmcgdGhlIEtX c2V0IG1hdGNoZXIuICovCi0gICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChr d3NldCwgYmVnLCBidWZsaW0gLSBiZWcsICZrd3NtKTsKKyAgICAgICAgICAgICAgc2l6ZV90IG9m ZnNldCA9IGt3c2V4ZWMgKGt3c2V0LCBiZWcgLSBiZWdsaW5lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVmbGltIC0gYmVnICsgYmVnbGluZSwgJmt3c20pOwogICAg ICAgICAgICAgICBpZiAob2Zmc2V0ID09IChzaXplX3QpIC0xKQogICAgICAgICAgICAgICAgIGdv dG8gZmFpbHVyZTsKICAgICAgICAgICAgICAgYmVnICs9IG9mZnNldDsKQEAgLTIyNSwxMSArMjQz LDEyIEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICpt YXRjaF9zaXplLAogICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAg ICAgICAgICAgICBpZiAoa3dzbS5pbmRleCA8IGt3c2V0X2V4YWN0X21hdGNoZXMpCiAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWYgKE1CX0NVUl9NQVggPT0gMSkKKyAgICAg ICAgICAgICAgICAgICAgZ290byBzdWNjZXNzOwogICAgICAgICAgICAgICAgICAgaWYgKG1iX3N0 YXJ0IDwgYmVnKQogICAgICAgICAgICAgICAgICAgICBtYl9zdGFydCA9IGJlZzsKLSAgICAgICAg ICAgICAgICAgIGlmIChNQl9DVVJfTUFYID09IDEKLSAgICAgICAgICAgICAgICAgICAgICB8fCAh aXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIG1hdGNoLCBidWZsaW0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga3dzbS5zaXplWzBdKSkKKyAgICAgICAgICAgICAgICAg IGlmICghaXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIG1hdGNoLCBidWZsaW0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dzbS5zaXplWzBdIC0gYmVnbGluZSkpCiAgICAg ICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAgICAgICAgICAgICAgIC8qIFRoZSBt YXRjaGVkIGxpbmUgc3RhcnRzIGluIHRoZSBtaWRkbGUgb2YgYSBtdWx0aWJ5dGUKICAgICAgICAg ICAgICAgICAgICAgIGNoYXJhY3Rlci4gIFBlcmZvcm0gdGhlIERGQSBzZWFyY2ggc3RhcnRpbmcg ZnJvbSB0aGUKZGlmZiAtLWdpdCBhL3NyYy9rd3NlYXJjaC5jIGIvc3JjL2t3c2VhcmNoLmMKaW5k ZXggNWYzZjIzMy4uOTkwNGJmZSAxMDA2NDQKLS0tIGEvc3JjL2t3c2VhcmNoLmMKKysrIGIvc3Jj L2t3c2VhcmNoLmMKQEAgLTU3LDcgKzU3LDE2IEBAIEZjb21waWxlIChjaGFyIGNvbnN0ICpwYXR0 ZXJuLCBzaXplX3Qgc2l6ZSkKICAgICAgICAgICB0b3RhbCA9IDA7CiAgICAgICAgIH0KIAotICAg ICAga3dzaW5jciAoa3dzZXQsIHAsIGxlbik7CisgICAgICBpZiAobWF0Y2hfbGluZXMpCisgICAg ICAgIHsKKyAgICAgICAgICBjaGFyICpidWYgPSB4bWFsbG9jIChsZW4gKyAyKTsKKyAgICAgICAg ICBtZW1jcHkgKCZidWZbMV0sIHAsIGxlbik7CisgICAgICAgICAgYnVmWzBdID0gYnVmW2xlbiAr IDFdID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3NpbmNyIChrd3NldCwgYnVmLCBsZW4gKyAyKTsK KyAgICAgICAgICBmcmVlIChidWYpOworICAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIGt3 c2luY3IgKGt3c2V0LCBwLCBsZW4pOwogICAgICAgcCA9IHNlcDsKICAgICB9CiAgIHdoaWxlIChw KTsKQEAgLTEwOSwxMSArMTE4LDEyIEBAIEZleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVf dCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAKICAgZm9yIChtYl9zdGFydCA9IGJlZyA9IHN0 YXJ0X3B0ciA/IHN0YXJ0X3B0ciA6IGJ1ZjsgYmVnIDw9IGJ1ZiArIHNpemU7IGJlZysrKQogICAg IHsKLSAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnLCBidWYgKyBzaXpl IC0gYmVnLCAma3dzbWF0Y2gpOworICAgICAgc2l6ZV90IG9mZnNldCA9IGt3c2V4ZWMgKGt3c2V0 LCBiZWcgLSBtYXRjaF9saW5lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYg KyBzaXplIC0gYmVnICsgbWF0Y2hfbGluZXMsICZrd3NtYXRjaCk7CiAgICAgICBpZiAob2Zmc2V0 ID09IChzaXplX3QpIC0xKQogICAgICAgICBnb3RvIGZhaWx1cmU7Ci0gICAgICBsZW4gPSBrd3Nt YXRjaC5zaXplWzBdOwotICAgICAgaWYgKE1CX0NVUl9NQVggPiAxCisgICAgICBsZW4gPSBrd3Nt YXRjaC5zaXplWzBdIC0gbWF0Y2hfbGluZXM7CisgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYg IW1hdGNoX2xpbmVzCiAgICAgICAgICAgJiYgaXNfbWJfbWlkZGxlICgmbWJfc3RhcnQsIGJlZyAr IG9mZnNldCwgYnVmICsgc2l6ZSwgbGVuKSkKICAgICAgICAgewogICAgICAgICAgIC8qIFRoZSBt YXRjaCB3YXMgYSBwYXJ0IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIsIGFkdmFuY2UgYXQgbGVhc3QK QEAgLTEzMCwxNCArMTQwLDggQEAgRmV4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNp emUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgIGlmIChzdGFydF9wdHIgJiYgIW1hdGNoX3dv cmRzKQogICAgICAgICBnb3RvIHN1Y2Nlc3NfaW5fYmVnX2FuZF9sZW47CiAgICAgICBpZiAobWF0 Y2hfbGluZXMpCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYmVnID4gYnVmICYmIGJlZ1stMV0g IT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgaWYgKGJlZyArIGxlbiA8 IGJ1ZiArIHNpemUgJiYgYmVnW2xlbl0gIT0gZW9sKQotICAgICAgICAgICAgY29udGludWU7Ci0g ICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICBlbHNlIGlmIChtYXRjaF93 b3JkcykKKyAgICAgICAgZ290byBzdWNjZXNzX2luX2JlZ19hbmRfbGVuOworICAgICAgaWYgKG1h dGNoX3dvcmRzKQogICAgICAgICBmb3IgKHRyeSA9IGJlZzsgOyApCiAgICAgICAgICAgewogICAg ICAgICAgICAgaWYgKHRyeSA+IGJ1ZiAmJiBXQ0hBUih0b191Y2hhciAodHJ5Wy0xXSkpKQotLSAK MS45LjIKCg== --------_53513E27000000007008_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 19 20:57:33 2014 Received: (at 17204) by debbugs.gnu.org; 20 Apr 2014 00:57:33 +0000 Received: from localhost ([127.0.0.1]:52895 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wbg4a-0002AV-5Z for submit@debbugs.gnu.org; Sat, 19 Apr 2014 20:57:32 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:44510) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wbg4V-0002AH-HY for 17204@debbugs.gnu.org; Sat, 19 Apr 2014 20:57:30 -0400 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 1FC7EB000B for <17204@debbugs.gnu.org>; Sun, 20 Apr 2014 09:57:25 +0900 (JST) Received: from mail06.kcn.ne.jp ([61.86.6.185]) by imp02 with bizsmtp id s0xR1n0023zXHqt010xRiC; Sun, 20 Apr 2014 09:57:25 +0900 X-OrgRCPT: 17204@debbugs.gnu.org Received: from [10.120.1.58] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail06.kcn.ne.jp (Postfix) with ESMTPA id EA5771BF0092 for <17204@debbugs.gnu.org>; Sun, 20 Apr 2014 09:57:24 +0900 (JST) Date: Sun, 20 Apr 2014 09:57:26 +0900 From: Norihiro Tanaka To: 17204@debbugs.gnu.org Subject: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints In-Reply-To: <20140419000232.7012.27F6AC2D@kcn.ne.jp> References: <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> <20140419000232.7012.27F6AC2D@kcn.ne.jp> Message-Id: <20140420095710.8FEB.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_53531B11000000008FDF_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17204 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --------_53531B11000000008FDF_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Norihiro Tanaka wrote: > I rebased this patch because of confliction. I fixed the degration in rebase. --------_53531B11000000008FDF_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSBjMTQxZWYzNzExZjQ4ZDdhZTFiZWQ0MmE4MzhiMDE5NWMzYTZjZWNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMxIE1hciAyMDE0IDIxOjUxOjQ4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQtdXAgZm9yIGV4YWN0IG1hdGNoaW5nIHdpdGggYmVnbGluZSBhbmQgZW5kbGluZQog Y29uc3RyYWludHMuCgpkZmFtdXN0IHR1cm5zIG9uIHRoZSBmbGFnIHdoZW4gYSBzdGF0ZSBleGFj dGx5IG1hdGNoZXMgdGhlIHByb3Bvc2VkIG9uZS4KSG93ZXZlciwgd2hlbiB0aGUgc3RhdGUgaGFz IGJlZ2xpbmUgYW5kL29yIGVuZGxpbmUgY29uc3RyYWludHMsIHR1cm5zCm9mZiBpdC4KClRoaXMg cGF0Y2ggZW5hYmxlcyB0byBtYXRjaCBhIHN0YXRlIGV4YWN0bHksIGV2ZW4gaWYgdGhlIHN0YXRl IGhhcwpiZWdsaW5lIGFuZC9vciBlbmRsaW5lIGNvbnN0cmFpbnRzLiAgSWYgYSBleGFjdCBzdHJp bmcgaGFzIG9uZSBvZiB0aGVpcgpjb25zdHJhdGlvbnMsIHRoZSBzdHJpbmcgYWRkaW5nIGVvbGJ5 dGUgdG8gYSBoZWFkIGFuZC9vciBmb290IGlzIHB1c2hlZAp0byBrd3NpbmNyKCkuICBJbiBhZGRp dGlvbiwgaWYgaXQgaGFzIGJlZ2xpbmUgY29uc3RyYXRpb24sIHN0YXJ0CnNlYXJjaGluZyBmcm9t IGp1c3QgYmVmb3JlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dC4KCiogc3JjL2RmYS5jICh2YXJp YWJsZSBtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5kbGluZScuCihkZmFtdXN0 KTogQ29uc2lkZXJhdGlvbiBvZiBiZWdsaW5lIGFuZCBlbmRsaW5lIGNvbnN0cmF0aW9ucy4KKiBz cmMvZGZhLmggKHN0cnVjdCBkZmFtdXN0KTogTmV3IG1lbWJlcnMgYGJlZ2xpbmUnIGFuZCBgZW5k bGluZScuCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IElmIGEgZXhhY3Qgc3RyaW5nIGhh cyBiZWdsaW5lIGNvbnN0cmF0aW9uLApzdGFydCBzZWFyY2hpbmcgZnJvbSBqdXN0IGJlZm9yZSB0 aGUgcG9zaXRpb24gb2YgdGhlIHRleHQuCihFR2V4ZWN1dGUpOiBTYW1lIGFzIGFib3ZlLgoqIHNy Yy9rd3NlYXJjaC5jIChGZXhlY3V0ZSk6IFNhbWUgYXMgYWJvdmUuCi0tLQogc3JjL2RmYS5jICAg ICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMv ZGZhLmggICAgICAgfCAgMiArKwogc3JjL2RmYXNlYXJjaC5jIHwgMjkgKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0KIHNyYy9rd3NlYXJjaC5jICB8IDI4ICsrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDkwY2Y0YTkuLmY2 NDEyYWUgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM4MjcsNiAr MzgyNyw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIGNoYXIgKmxlZnQ7CiAgIGNoYXIgKnJpZ2h0Owog ICBjaGFyICppczsKKyAgYm9vbCBiZWdsaW5lOworICBib29sIGVuZGxpbmU7CiB9IG11c3Q7CiAK IHN0YXRpYyB2b2lkCkBAIC0zODQ2LDYgKzM4NDgsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpk KQogICBzaXplX3Qgcmk7CiAgIHNpemVfdCBpOwogICBib29sIGV4YWN0ID0gZmFsc2U7CisgIGJv b2wgYmVnbGluZSA9IGZhbHNlOworICBib29sIGVuZGxpbmUgPSBmYWxzZTsKICAgc3RydWN0IGRm YW11c3QgKmRtOwogCiAgIGZvciAoaSA9IDA7IGkgPD0gZC0+dGluZGV4OyArK2kpCkBAIC0zODU0 LDYgKzM4NTgsOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgbXBbaV0ubGVmdCA9 IHh6YWxsb2MgKDIpOwogICAgICAgbXBbaV0ucmlnaHQgPSB4emFsbG9jICgyKTsKICAgICAgIG1w W2ldLmlzID0geHphbGxvYyAoMik7CisgICAgICBtcFtpXS5iZWdsaW5lID0gZmFsc2U7CisgICAg ICBtcFtpXS5lbmRsaW5lID0gZmFsc2U7CiAgICAgfQogI2lmZGVmIERFQlVHCiAgIGZwcmludGYg KHN0ZGVyciwgImRmYW11c3Q6XG4iKTsKQEAgLTM4NjksNiArMzg3NSwxNCBAQCBkZmFtdXN0IChz dHJ1Y3QgZGZhICpkKQogICAgICAgdG9rZW4gdCA9IGQtPnRva2Vuc1tyaV07CiAgICAgICBzd2l0 Y2ggKHQpCiAgICAgICAgIHsKKyAgICAgICAgY2FzZSBCRUdMSU5FOgorICAgICAgICAgIHJlc2V0 bXVzdCAobXApOworICAgICAgICAgIG1wLT5iZWdsaW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVh azsKKyAgICAgICAgY2FzZSBFTkRMSU5FOgorICAgICAgICAgIHJlc2V0bXVzdCAobXApOworICAg ICAgICAgIG1wLT5lbmRsaW5lID0gdHJ1ZTsKKyAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz ZSBMUEFSRU46CiAgICAgICAgIGNhc2UgUlBBUkVOOgogICAgICAgICAgIGFzc2VydCAoISJuZWl0 aGVyIExQQVJFTiBub3IgUlBBUkVOIG1heSBhcHBlYXIgaGVyZSIpOwpAQCAtMzg3OSw4ICszODkz LDYgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgICAtLW1wOwogICAgICAgICAg IC8qIEZhbGwgdGhyb3VnaC4gICovCiAgICAgICAgIGNhc2UgRU1QVFk6Ci0gICAgICAgIGNhc2Ug QkVHTElORToKLSAgICAgICAgY2FzZSBFTkRMSU5FOgogICAgICAgICBjYXNlIEJFR1dPUkQ6CiAg ICAgICAgIGNhc2UgRU5EV09SRDoKICAgICAgICAgY2FzZSBMSU1XT1JEOgpAQCAtMzkwNCw2ICsz OTE2LDEwIEBAIGRmYW11c3QgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAgICAgICAvKiBHdWFyYW50 ZWVkIHRvIGJlLiAgVW5saWtlbHksIGJ1dCAuLi4gICovCiAgICAgICAgICAgICBpZiAoIVNUUkVR IChsbXAtPmlzLCBybXAtPmlzKSkKICAgICAgICAgICAgICAgbG1wLT5pc1swXSA9ICdcMCc7Cisg ICAgICAgICAgICBpZiAobG1wLT5iZWdsaW5lKQorICAgICAgICAgICAgICBsbXAtPmJlZ2xpbmUg PSBybXAtPmJlZ2xpbmU7CisgICAgICAgICAgICBpZiAobG1wLT5lbmRsaW5lKQorICAgICAgICAg ICAgICBsbXAtPmVuZGxpbmUgPSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAvKiBMZWZ0IHNp ZGUtLWVhc3kgKi8KICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgd2hpbGUgKGxtcC0+ bGVmdFtpXSAhPSAnXDAnICYmIGxtcC0+bGVmdFtpXSA9PSBybXAtPmxlZnRbaV0pCkBAIC0zOTQw LDcgKzM5NTYsMTEgQEAgZGZhbXVzdCAoc3RydWN0IGRmYSAqZCkKICAgICAgICAgICAgIGlmIChz dHJsZW4gKG11c3RzWzBdLmluW2ldKSA+IHN0cmxlbiAocmVzdWx0KSkKICAgICAgICAgICAgICAg cmVzdWx0ID0gbXVzdHNbMF0uaW5baV07CiAgICAgICAgICAgaWYgKFNUUkVRIChyZXN1bHQsIG11 c3RzWzBdLmlzKSkKLSAgICAgICAgICAgIGV4YWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgZXhhY3QgPSB0cnVlOworICAgICAgICAgICAgICBiZWdsaW5lID0gbXVzdHNb MF0uYmVnbGluZTsKKyAgICAgICAgICAgICAgZW5kbGluZSA9IG11c3RzWzBdLmVuZGxpbmU7Cisg ICAgICAgICAgICB9CiAgICAgICAgICAgZ290byBkb25lOwogCiAgICAgICAgIGNhc2UgQ0FUOgpA QCAtMzk3MywxMCArMzk5MywxOCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAg ICAgICBsbXAtPnJpZ2h0WzBdID0gJ1wwJzsKICAgICAgICAgICAgIGxtcC0+cmlnaHQgPSBpY2F0 YWxsb2MgKGxtcC0+cmlnaHQsIHJtcC0+cmlnaHQpOwogICAgICAgICAgICAgLyogR3VhcmFudGVl ZCB0byBiZSAqLwotICAgICAgICAgICAgaWYgKGxtcC0+aXNbMF0gIT0gJ1wwJyAmJiBybXAtPmlz WzBdICE9ICdcMCcpCi0gICAgICAgICAgICAgIGxtcC0+aXMgPSBpY2F0YWxsb2MgKGxtcC0+aXMs IHJtcC0+aXMpOworICAgICAgICAgICAgaWYgKChsbXAtPmlzWzBdICE9ICdcMCcgfHwgbG1wLT5i ZWdsaW5lKQorICAgICAgICAgICAgICAgICYmIChybXAtPmlzWzBdICE9ICdcMCcgfHwgcm1wLT5l bmRsaW5lKSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxtcC0+aXMgPSBpY2F0 YWxsb2MgKGxtcC0+aXMsIHJtcC0+aXMpOworICAgICAgICAgICAgICAgIGxtcC0+ZW5kbGluZSA9 IHJtcC0+ZW5kbGluZTsKKyAgICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICBsbXAtPmlzWzBdID0gJ1wwJzsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIGxtcC0+aXNbMF0gPSAnXDAnOworICAgICAgICAgICAgICAgIGxtcC0+YmVnbGluZSA9IGZh bHNlOworICAgICAgICAgICAgICAgIGxtcC0+ZW5kbGluZSA9IGZhbHNlOworICAgICAgICAgICAg ICB9CiAgICAgICAgICAgfQogICAgICAgICAgIGJyZWFrOwogCkBAIC00MDMxLDYgKzQwNTksOCBA QCBkb25lOgogICAgIHsKICAgICAgIGRtID0geG1hbGxvYyAoc2l6ZW9mICpkbSk7CiAgICAgICBk bS0+ZXhhY3QgPSBleGFjdDsKKyAgICAgIGRtLT5iZWdsaW5lID0gYmVnbGluZTsKKyAgICAgIGRt LT5lbmRsaW5lID0gZW5kbGluZTsKICAgICAgIGRtLT5tdXN0ID0geHN0cmR1cCAocmVzdWx0KTsK ICAgICAgIGRtLT5uZXh0ID0gZC0+bXVzdHM7CiAgICAgICBkLT5tdXN0cyA9IGRtOwpkaWZmIC0t Z2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmluZGV4IGRiMjlhNjIuLjM4MjllNmEgMTAwNjQ0 Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZhLmgKQEAgLTI2LDYgKzI2LDggQEAKIHN0cnVj dCBkZmFtdXN0CiB7CiAgIGludCBleGFjdDsKKyAgaW50IGJlZ2xpbmU7CisgIGludCBlbmRsaW5l OwogICBjaGFyICptdXN0OwogICBzdHJ1Y3QgZGZhbXVzdCAqbmV4dDsKIH07CmRpZmYgLS1naXQg YS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2VhcmNoLmMKaW5kZXggMTI2NmM4MC4uMzRjNDUw NSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5jCisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAt NTEsNiArNTEsOCBAQCBzdGF0aWMgc2l6ZV90IHBjb3VudDsKICAgIGNhbGwgdGhlIHJlZ2V4cCBt YXRjaGVyIGF0IGFsbC4gKi8KIHN0YXRpYyBzaXplX3Qga3dzZXRfZXhhY3RfbWF0Y2hlczsKIAor c3RhdGljIGludCBiZWdsaW5lOworCiB2b2lkCiBkZmFlcnJvciAoY2hhciBjb25zdCAqbWVzZykK IHsKQEAgLTg1LDE1ICs4NywzMCBAQCBrd3NtdXN0cyAodm9pZCkKICAgaWYgKGRtKQogICAgIHsK ICAgICAgIGt3c2luaXQgKCZrd3NldCk7CisgICAgICBiZWdsaW5lID0gMDsKICAgICAgIC8qIEZp cnN0LCB3ZSBjb21waWxlIGluIHRoZSBzdWJzdHJpbmdzIGtub3duIHRvIGJlIGV4YWN0CiAgICAg ICAgICBtYXRjaGVzLiAgVGhlIGt3c2V0IG1hdGNoZXIgd2lsbCByZXR1cm4gdGhlIGluZGV4CiAg ICAgICAgICBvZiB0aGUgbWF0Y2hpbmcgc3RyaW5nIHRoYXQgaXQgY2hvb3Nlcy4gKi8KICAgICAg IGZvciAoOyBkbTsgZG0gPSBkbS0+bmV4dCkKICAgICAgICAgeworICAgICAgICAgIGNoYXIgKm11 c3QsICptcDsKKyAgICAgICAgICBzaXplX3Qgb2xkX2xlbiwgbmV3X2xlbjsKICAgICAgICAgICBp ZiAoIWRtLT5leGFjdCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICsra3dzZXRf ZXhhY3RfbWF0Y2hlczsKLSAgICAgICAgICBrd3NpbmNyIChrd3NldCwgZG0tPm11c3QsIHN0cmxl biAoZG0tPm11c3QpKTsKKyAgICAgICAgICBvbGRfbGVuID0gc3RybGVuIChkbS0+bXVzdCk7Cisg ICAgICAgICAgbmV3X2xlbiA9IG9sZF9sZW4gKyBkbS0+YmVnbGluZSArIGRtLT5lbmRsaW5lOwor ICAgICAgICAgIG11c3QgPSBtcCA9IHhtYWxsb2MgKG5ld19sZW4pOworICAgICAgICAgIGlmIChk bS0+YmVnbGluZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgKG1wKyspWzBdID0gZW9s Ynl0ZTsKKyAgICAgICAgICAgICAgYmVnbGluZSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAg ICAgbWVtY3B5IChtcCwgZG0tPm11c3QsIG9sZF9sZW4pOworICAgICAgICAgIGlmIChkbS0+ZW5k bGluZSkKKyAgICAgICAgICAgIG1wW29sZF9sZW5dID0gZW9sYnl0ZTsKKyAgICAgICAgICBrd3Np bmNyIChrd3NldCwgbXVzdCwgbmV3X2xlbik7CisgICAgICAgICAgZnJlZSAobXVzdCk7CiAgICAg ICAgIH0KICAgICAgIC8qIE5vdywgd2UgY29tcGlsZSB0aGUgc3Vic3RyaW5ncyB0aGF0IHdpbGwg cmVxdWlyZQogICAgICAgICAgdGhlIHVzZSBvZiB0aGUgcmVnZXhwIG1hdGNoZXIuICAqLwpAQCAt MjEyLDcgKzIyOSw4IEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwg c2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAgIGlmIChrd3NldCkKICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3NpYmxlIG1hdGNoIHVzaW5nIHRoZSBLV3NldCBt YXRjaGVyLiAqLwotICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQs IGJlZywgYnVmbGltIC0gYmVnLCAma3dzbSk7CisgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQg PSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyArIGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAg ICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZh aWx1cmU7CiAgICAgICAgICAgICAgIGJlZyArPSBvZmZzZXQ7CkBAIC0yMjUsMTEgKzI0MywxMiBA QCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hf c2l6ZSwKICAgICAgICAgICAgICAgYmVnID0gYmVnID8gYmVnICsgMSA6IGJ1ZjsKICAgICAgICAg ICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9tYXRjaGVzKQogICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChNQl9DVVJfTUFYID09IDEpCisgICAgICAgICAg ICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAgICAgICAgICAgICAgIGlmIChtYl9zdGFydCA8 IGJlZykKICAgICAgICAgICAgICAgICAgICAgbWJfc3RhcnQgPSBiZWc7Ci0gICAgICAgICAgICAg ICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxCi0gICAgICAgICAgICAgICAgICAgICAgfHwgIWlzX21i X21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVmbGltLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVswXSkpCisgICAgICAgICAgICAgICAgICBpZiAo IWlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBtYXRjaCwgYnVmbGltLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGt3c20uc2l6ZVswXSAtIGJlZ2xpbmUpKQogICAgICAgICAg ICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAgICAgICAgICAgICAgICAvKiBUaGUgbWF0Y2hl ZCBsaW5lIHN0YXJ0cyBpbiB0aGUgbWlkZGxlIG9mIGEgbXVsdGlieXRlCiAgICAgICAgICAgICAg ICAgICAgICBjaGFyYWN0ZXIuICBQZXJmb3JtIHRoZSBERkEgc2VhcmNoIHN0YXJ0aW5nIGZyb20g dGhlCmRpZmYgLS1naXQgYS9zcmMva3dzZWFyY2guYyBiL3NyYy9rd3NlYXJjaC5jCmluZGV4IDVm M2YyMzMuLjk5MDRiZmUgMTAwNjQ0Ci0tLSBhL3NyYy9rd3NlYXJjaC5jCisrKyBiL3NyYy9rd3Nl YXJjaC5jCkBAIC01Nyw3ICs1NywxNiBAQCBGY29tcGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwg c2l6ZV90IHNpemUpCiAgICAgICAgICAgdG90YWwgPSAwOwogICAgICAgICB9CiAKLSAgICAgIGt3 c2luY3IgKGt3c2V0LCBwLCBsZW4pOworICAgICAgaWYgKG1hdGNoX2xpbmVzKQorICAgICAgICB7 CisgICAgICAgICAgY2hhciAqYnVmID0geG1hbGxvYyAobGVuICsgMik7CisgICAgICAgICAgbWVt Y3B5ICgmYnVmWzFdLCBwLCBsZW4pOworICAgICAgICAgIGJ1ZlswXSA9IGJ1ZltsZW4gKyAxXSA9 IGVvbGJ5dGU7CisgICAgICAgICAga3dzaW5jciAoa3dzZXQsIGJ1ZiwgbGVuICsgMik7CisgICAg ICAgICAgZnJlZSAoYnVmKTsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICBrd3NpbmNy IChrd3NldCwgcCwgbGVuKTsKICAgICAgIHAgPSBzZXA7CiAgICAgfQogICB3aGlsZSAocCk7CkBA IC0xMDksMTEgKzExOCwxMiBAQCBGZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6 ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogCiAgIGZvciAobWJfc3RhcnQgPSBiZWcgPSBzdGFydF9w dHIgPyBzdGFydF9wdHIgOiBidWY7IGJlZyA8PSBidWYgKyBzaXplOyBiZWcrKykKICAgICB7Ci0g ICAgICBzaXplX3Qgb2Zmc2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZywgYnVmICsgc2l6ZSAtIGJl ZywgJmt3c21hdGNoKTsKKyAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVn IC0gbWF0Y2hfbGluZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmICsgc2l6 ZSAtIGJlZyArIG1hdGNoX2xpbmVzLCAma3dzbWF0Y2gpOwogICAgICAgaWYgKG9mZnNldCA9PSAo c2l6ZV90KSAtMSkKICAgICAgICAgZ290byBmYWlsdXJlOwotICAgICAgbGVuID0ga3dzbWF0Y2gu c2l6ZVswXTsKLSAgICAgIGlmIChNQl9DVVJfTUFYID4gMQorICAgICAgbGVuID0ga3dzbWF0Y2gu c2l6ZVswXSAtIG1hdGNoX2xpbmVzOworICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmICFtYXRj aF9saW5lcwogICAgICAgICAgICYmIGlzX21iX21pZGRsZSAoJm1iX3N0YXJ0LCBiZWcgKyBvZmZz ZXQsIGJ1ZiArIHNpemUsIGxlbikpCiAgICAgICAgIHsKICAgICAgICAgICAvKiBUaGUgbWF0Y2gg d2FzIGEgcGFydCBvZiBtdWx0aWJ5dGUgY2hhcmFjdGVyLCBhZHZhbmNlIGF0IGxlYXN0CkBAIC0x MzAsMTQgKzE0MCw4IEBAIEZleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBz aXplX3QgKm1hdGNoX3NpemUsCiAgICAgICBpZiAoc3RhcnRfcHRyICYmICFtYXRjaF93b3JkcykK ICAgICAgICAgZ290byBzdWNjZXNzX2luX2JlZ19hbmRfbGVuOwogICAgICAgaWYgKG1hdGNoX2xp bmVzKQotICAgICAgICB7Ci0gICAgICAgICAgaWYgKGJlZyA+IGJ1ZiAmJiBiZWdbLTFdICE9IGVv bCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIGlmIChiZWcgKyBsZW4gPCBidWYg KyBzaXplICYmIGJlZ1tsZW5dICE9IGVvbCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg ICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgZWxzZSBpZiAobWF0Y2hfd29yZHMp CisgICAgICAgIGdvdG8gc3VjY2Vzc19pbl9iZWdfYW5kX2xlbjsKKyAgICAgIGlmIChtYXRjaF93 b3JkcykKICAgICAgICAgZm9yICh0cnkgPSBiZWc7IDsgKQogICAgICAgICAgIHsKICAgICAgICAg ICAgIGlmICh0cnkgPiBidWYgJiYgV0NIQVIodG9fdWNoYXIgKHRyeVstMV0pKSkKLS0gCjEuOS4y Cgo= --------_53531B11000000008FDF_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 21 10:58:55 2014 Received: (at 17204-done) by debbugs.gnu.org; 21 Apr 2014 14:58:55 +0000 Received: from localhost ([127.0.0.1]:54244 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WcFgM-0006fB-AT for submit@debbugs.gnu.org; Mon, 21 Apr 2014 10:58:54 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:59231) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WcFgH-0006ey-9w for 17204-done@debbugs.gnu.org; Mon, 21 Apr 2014 10:58:50 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 704B039E8011; Mon, 21 Apr 2014 07:58:48 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lE-L3DUzt5xz; Mon, 21 Apr 2014 07:58:43 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 9C6C339E8012; Mon, 21 Apr 2014 07:58:43 -0700 (PDT) Message-ID: <53553223.5040005@cs.ucla.edu> Date: Mon, 21 Apr 2014 07:58:43 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17204-done@debbugs.gnu.org Subject: Re: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints References: <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> <20140419000232.7012.27F6AC2D@kcn.ne.jp> <20140420095710.8FEB.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140420095710.8FEB.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------090609080600050104030902" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17204-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) This is a multi-part message in MIME format. --------------090609080600050104030902 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks, I looked at that, got derailed by finding and fixing a bug with NUL bytes that turned out to be a pre-existing bug, and finally installed it just now, with a slightly-reworded commit message. I also installed the attached minor-improvement patch as well (some of it cleans up preexisting code in the neighborhood). --------------090609080600050104030902 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-minor-improvements-to-previous-patch.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-dfa-minor-improvements-to-previous-patch.patch" RnJvbSA0YWYxOGRjYWNlMzg3OWFjMGIyMDllMGEwMGJhYmNlNDUzNzM1NjhlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDIxIEFwciAyMDE0IDA3OjI3OjE0IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gZGZhOiBtaW5vciBpbXByb3ZlbWVudHMgdG8gcHJldmlvdXMgcGF0Y2gKCiogc3JjL2Rm YS5jIChkZmFtdXN0KTogVXNlICY9LCBub3QgaWYtdGhlbi4KKiBzcmMvZGZhLmggKHN0cnVj dCBkZmFtdXN0KToKKiBzcmMvZGZhc2VhcmNoLmMgKGJlZ2xpbmUsIGh3c211c3RzKTogVXNl IGJvb2wgZm9yIGJvb2xlYW4uCiogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6Ciogc3Jj L2t3c2VhcmNoLmMgKEZjb21waWxlKTogUHJlZmVyIGRlY2xzIGFmdGVyIHN0YXRlbWVudHMu Ciogc3JjL2RmYXNlYXJjaC5jIChrd3NtdXN0cyk6IEF2b2lkIGNvbmRpdGlvbmFsIGJyYW5j aC4KKiBzcmMva3dzZWFyY2guYyAoRmNvbXBpbGUpOiBVbmlmeSB0aGUgdHdvIGNhbGxzIHRv IGt3c2luY3IuCi0tLQogc3JjL2RmYS5jICAgICAgIHwgIDYgKystLS0tCiBzcmMvZGZhLmgg ICAgICAgfCAgNyArKysrLS0tCiBzcmMvZGZhc2VhcmNoLmMgfCAyMCArKysrKysrKy0tLS0t LS0tLS0tLQogc3JjL2t3c2VhcmNoLmMgIHwgMTcgKysrKysrKysrKy0tLS0tLS0KIDQgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDBhNmYwNjEuLjY1ZmMwM2QgMTAw NjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM5MTYsMTAgKzM5MTYs OCBAQCBkZmFtdXN0IChzdHJ1Y3QgZGZhICpkKQogICAgICAgICAgICAgLyogR3VhcmFudGVl ZCB0byBiZS4gIFVubGlrZWx5LCBidXQgLi4uICAqLwogICAgICAgICAgICAgaWYgKCFTVFJF USAobG1wLT5pcywgcm1wLT5pcykpCiAgICAgICAgICAgICAgIGxtcC0+aXNbMF0gPSAnXDAn OwotICAgICAgICAgICAgaWYgKGxtcC0+YmVnbGluZSkKLSAgICAgICAgICAgICAgbG1wLT5i ZWdsaW5lID0gcm1wLT5iZWdsaW5lOwotICAgICAgICAgICAgaWYgKGxtcC0+ZW5kbGluZSkK LSAgICAgICAgICAgICAgbG1wLT5lbmRsaW5lID0gcm1wLT5lbmRsaW5lOworICAgICAgICAg ICAgbG1wLT5iZWdsaW5lICY9IHJtcC0+YmVnbGluZTsKKyAgICAgICAgICAgIGxtcC0+ZW5k bGluZSAmPSBybXAtPmVuZGxpbmU7CiAgICAgICAgICAgICAvKiBMZWZ0IHNpZGUtLWVhc3kg Ki8KICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICAgd2hpbGUgKGxtcC0+bGVmdFtp XSAhPSAnXDAnICYmIGxtcC0+bGVmdFtpXSA9PSBybXAtPmxlZnRbaV0pCmRpZmYgLS1naXQg YS9zcmMvZGZhLmggYi9zcmMvZGZhLmgKaW5kZXggMzgyOWU2YS4uNjBhZmYxMSAxMDA2NDQK LS0tIGEvc3JjL2RmYS5oCisrKyBiL3NyYy9kZmEuaApAQCAtMTksMTUgKzE5LDE2IEBACiAv KiBXcml0dGVuIEp1bmUsIDE5ODggYnkgTWlrZSBIYWVydGVsICovCiAKICNpbmNsdWRlIDxy ZWdleC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KICNpbmNsdWRlIDxzdGRkZWYuaD4KIAog LyogRWxlbWVudCBvZiBhIGxpc3Qgb2Ygc3RyaW5ncywgYXQgbGVhc3Qgb25lIG9mIHdoaWNo IGlzIGtub3duIHRvCiAgICBhcHBlYXIgaW4gYW55IFIuRS4gbWF0Y2hpbmcgdGhlIERGQS4g Ki8KIHN0cnVjdCBkZmFtdXN0CiB7Ci0gIGludCBleGFjdDsKLSAgaW50IGJlZ2xpbmU7Ci0g IGludCBlbmRsaW5lOworICBib29sIGV4YWN0OworICBib29sIGJlZ2xpbmU7CisgIGJvb2wg ZW5kbGluZTsKICAgY2hhciAqbXVzdDsKICAgc3RydWN0IGRmYW11c3QgKm5leHQ7CiB9Owpk aWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJjaC5jIGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IDM0 YzQ1MDUuLmRjNzYzOTcgMTAwNjQ0Ci0tLSBhL3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMv ZGZhc2VhcmNoLmMKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHNpemVfdCBwY291bnQ7CiAg ICBjYWxsIHRoZSByZWdleHAgbWF0Y2hlciBhdCBhbGwuICovCiBzdGF0aWMgc2l6ZV90IGt3 c2V0X2V4YWN0X21hdGNoZXM7CiAKLXN0YXRpYyBpbnQgYmVnbGluZTsKK3N0YXRpYyBib29s IGJlZ2xpbmU7CiAKIHZvaWQKIGRmYWVycm9yIChjaGFyIGNvbnN0ICptZXNnKQpAQCAtODcs MjUgKzg3LDIxIEBAIGt3c211c3RzICh2b2lkKQogICBpZiAoZG0pCiAgICAgewogICAgICAg a3dzaW5pdCAoJmt3c2V0KTsKLSAgICAgIGJlZ2xpbmUgPSAwOwogICAgICAgLyogRmlyc3Qs IHdlIGNvbXBpbGUgaW4gdGhlIHN1YnN0cmluZ3Mga25vd24gdG8gYmUgZXhhY3QKICAgICAg ICAgIG1hdGNoZXMuICBUaGUga3dzZXQgbWF0Y2hlciB3aWxsIHJldHVybiB0aGUgaW5kZXgK ICAgICAgICAgIG9mIHRoZSBtYXRjaGluZyBzdHJpbmcgdGhhdCBpdCBjaG9vc2VzLiAqLwog ICAgICAgZm9yICg7IGRtOyBkbSA9IGRtLT5uZXh0KQogICAgICAgICB7Ci0gICAgICAgICAg Y2hhciAqbXVzdCwgKm1wOwotICAgICAgICAgIHNpemVfdCBvbGRfbGVuLCBuZXdfbGVuOwog ICAgICAgICAgIGlmICghZG0tPmV4YWN0KQogICAgICAgICAgICAgY29udGludWU7CiAgICAg ICAgICAgKytrd3NldF9leGFjdF9tYXRjaGVzOwotICAgICAgICAgIG9sZF9sZW4gPSBzdHJs ZW4gKGRtLT5tdXN0KTsKLSAgICAgICAgICBuZXdfbGVuID0gb2xkX2xlbiArIGRtLT5iZWds aW5lICsgZG0tPmVuZGxpbmU7Ci0gICAgICAgICAgbXVzdCA9IG1wID0geG1hbGxvYyAobmV3 X2xlbik7Ci0gICAgICAgICAgaWYgKGRtLT5iZWdsaW5lKQotICAgICAgICAgICAgewotICAg ICAgICAgICAgICAobXArKylbMF0gPSBlb2xieXRlOwotICAgICAgICAgICAgICBiZWdsaW5l ID0gMTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICBzaXplX3Qgb2xkX2xlbiA9IHN0cmxl biAoZG0tPm11c3QpOworICAgICAgICAgIHNpemVfdCBuZXdfbGVuID0gb2xkX2xlbiArIGRt LT5iZWdsaW5lICsgZG0tPmVuZGxpbmU7CisgICAgICAgICAgY2hhciAqbXVzdCA9IHhtYWxs b2MgKG5ld19sZW4pOworICAgICAgICAgIGNoYXIgKm1wID0gbXVzdDsKKyAgICAgICAgICAq bXAgPSBlb2xieXRlOworICAgICAgICAgIG1wICs9IGRtLT5iZWdsaW5lOworICAgICAgICAg IGJlZ2xpbmUgfD0gZG0tPmJlZ2xpbmU7CiAgICAgICAgICAgbWVtY3B5IChtcCwgZG0tPm11 c3QsIG9sZF9sZW4pOwogICAgICAgICAgIGlmIChkbS0+ZW5kbGluZSkKICAgICAgICAgICAg IG1wW29sZF9sZW5dID0gZW9sYnl0ZTsKZGlmZiAtLWdpdCBhL3NyYy9rd3NlYXJjaC5jIGIv c3JjL2t3c2VhcmNoLmMKaW5kZXggOTkwNGJmZS4uN2M2NGM4NiAxMDA2NDQKLS0tIGEvc3Jj L2t3c2VhcmNoLmMKKysrIGIvc3JjL2t3c2VhcmNoLmMKQEAgLTU3LDE2ICs1NywxOSBAQCBG Y29tcGlsZSAoY2hhciBjb25zdCAqcGF0dGVybiwgc2l6ZV90IHNpemUpCiAgICAgICAgICAg dG90YWwgPSAwOwogICAgICAgICB9CiAKKyAgICAgIGNoYXIgKmJ1ZiA9IE5VTEw7CiAgICAg ICBpZiAobWF0Y2hfbGluZXMpCiAgICAgICAgIHsKLSAgICAgICAgICBjaGFyICpidWYgPSB4 bWFsbG9jIChsZW4gKyAyKTsKLSAgICAgICAgICBtZW1jcHkgKCZidWZbMV0sIHAsIGxlbik7 Ci0gICAgICAgICAgYnVmWzBdID0gYnVmW2xlbiArIDFdID0gZW9sYnl0ZTsKLSAgICAgICAg ICBrd3NpbmNyIChrd3NldCwgYnVmLCBsZW4gKyAyKTsKLSAgICAgICAgICBmcmVlIChidWYp OworICAgICAgICAgIGJ1ZiA9IHhtYWxsb2MgKGxlbiArIDIpOworICAgICAgICAgIGJ1Zlsw XSA9IGVvbGJ5dGU7CisgICAgICAgICAgbWVtY3B5IChidWYgKyAxLCBwLCBsZW4pOworICAg ICAgICAgIGJ1ZltsZW4gKyAxXSA9IGVvbGJ5dGU7CisgICAgICAgICAgcCA9IGJ1ZjsKKyAg ICAgICAgICBsZW4gKz0gMjsKICAgICAgICAgfQotICAgICAgZWxzZQotICAgICAgICBrd3Np bmNyIChrd3NldCwgcCwgbGVuKTsKKyAgICAgIGt3c2luY3IgKGt3c2V0LCBwLCBsZW4pOwor ICAgICAgZnJlZSAoYnVmKTsKKwogICAgICAgcCA9IHNlcDsKICAgICB9CiAgIHdoaWxlIChw KTsKLS0gCjEuOS4wCgo= --------------090609080600050104030902-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 21 14:43:30 2014 Received: (at 17204) by debbugs.gnu.org; 21 Apr 2014 18:43:30 +0000 Received: from localhost ([127.0.0.1]:54381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WcJBi-0006fA-89 for submit@debbugs.gnu.org; Mon, 21 Apr 2014 14:43:30 -0400 Received: from mail-yh0-f52.google.com ([209.85.213.52]:54526) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WcJBg-0006ex-9u; Mon, 21 Apr 2014 14:43:29 -0400 Received: by mail-yh0-f52.google.com with SMTP id 29so1927107yhl.11 for ; Mon, 21 Apr 2014 11:43:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=ZMDahSgclLSIP2/WunDst+rpn/QECz7WWERPpWZZRNM=; b=DYjYaIHRDs9NsKug131rUpRPqk+FNOMzvhSDhwwURb4zLPb6F8K2xvxuHyDBmR50kl Yf9QzsULWM2I0dUha7j8XcP1AnTu51GI5bMN4iKzSQDuoWGOJgynXMLkVSX+HvzoOP0X 3UHkmVV2k4lBd0DfGKXw+olRa29KWMdZKtWsxO7S17U6GtDIzVMHfGMoQVZC2d7z8SWn wo/GDHyfPERdVd/O3XlZoyvICZX63XD0G9CuUKYugT0XpJFrTV+3mgHvidxWB1qbdiHA MsMWswvz1C7Jd7hD0pw133YTEj74WQj9JkVUzNXjapGMsOocPfFiSbCQuCHiHUVvO4N1 Z+oA== X-Received: by 10.236.30.230 with SMTP id k66mr55085630yha.57.1398105807479; Mon, 21 Apr 2014 11:43:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.149.193 with HTTP; Mon, 21 Apr 2014 11:43:07 -0700 (PDT) In-Reply-To: <53553223.5040005@cs.ucla.edu> References: <20140412091259.2BFB.27F6AC2D@kcn.ne.jp> <20140419000232.7012.27F6AC2D@kcn.ne.jp> <20140420095710.8FEB.27F6AC2D@kcn.ne.jp> <53553223.5040005@cs.ucla.edu> From: Jim Meyering Date: Mon, 21 Apr 2014 11:43:07 -0700 X-Google-Sender-Auth: Ng1sHvxUI1ZX6p_AfDdTwp5hdTM Message-ID: Subject: Re: bug#17204: [PATCH] grep: speed-up for exact matching with begline and endline constraints To: 17204@debbugs.gnu.org, Paul Eggert , Norihiro Tanaka Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17204 Cc: 17204-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Mon, Apr 21, 2014 at 7:58 AM, Paul Eggert wrote: > Thanks, I looked at that, got derailed by finding and fixing a bug with NUL > bytes that turned out to be a pre-existing bug, and finally installed it > just now, with a slightly-reworded commit message. I also installed the > attached minor-improvement patch as well (some of it cleans up preexisting > code in the neighborhood). Thanks yet again, to both of you for all the work. From unknown Tue Jun 24 20:56:31 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 20 May 2014 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator