[PATCH 1/5] builtin: Reduce use of trivial strlen
Eric Blake via M4-patches <[email protected]> Wed, 2 Apr 2025 17:28:36 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <[email protected]> |
V2hlbiB0aGUgbGVuZ3RoIGlzIGFscmVhZHkga25vd24gYW5kIGxpa2VseSB0byBiZSBzaG9ydCwg YXZvaWRpbmcgdGhlCmZ1bmN0aW9uIGNhbGwgdG8gc3RybGVuIGNhbiBiZSBhIHNsaWdodCBvcHRp bWl6YXRpb24uICBUd28gb2J2aW91cwpwbGFjZXM6IHdoZW4gbnRvYSgpIGJ1aWxkcyBhIG51bWJl ciBhbmQgYWxyZWFkeSBrbm93cyB3aGVyZSB0aGUgXDAgaXMsCmFuZCB3aGVuIGR1bXBpbmcgYXJn dW1lbnRzIHdoZW4gdGhlIHNlcGFyYXRvciBpcyBhbHdheXMgYSBzaW5nbGUgYnl0ZS4KCiogc3Jj L2J1aWx0aW46YyAoZHVtcF9hcmdzKTogQ2hhbmdlIHR5cGUgb2Ygc2VwLgoobTRfc2hpZnQsIG00 X2VycnByaW50LCBtNF9tNHdyYXAsIGV4cGFuZF91c2VyX21hY3JvKTogQWRqdXN0IGFsbApjYWxs ZXJzLgoobnRvYSk6IEFkZCBvcHRpb25hbCBlbmQgcGFyYW1ldGVyLgooc2hpcG91dF9pbnQsIG00 X2V2YWwsIG00X21ha2V0ZW1wKTogQWRqdXN0IGFsbCBjYWxsZXJzLgoqIHNyYy9kZWJ1Zy5jICh0 cmFjZV9mb3JtYXQpOiBMaWtld2lzZS4KKiBzcmMvb3V0cHV0LmMgKHNoaXBvdXRfdGV4dCk6IExp a2V3aXNlLgoqIHNyYy9tNC5oIChudG9hKTogQWRqdXN0IHByb3RvdHlwZS4KLS0tCiBzcmMvYnVp bHRpbi5jIHwgMzQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL2RlYnVn LmMgICB8ICAyICstCiBzcmMvbTQuaCAgICAgIHwgIDIgKy0KIHNyYy9vdXRwdXQuYyAgfCAgMiAr LQogNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYnVpbHRpbi5jIGIvc3JjL2J1aWx0aW4uYwppbmRleCBlZmQ1MWQ5ZS4u MzQ0N2RjMzMgMTAwNjQ0Ci0tLSBhL3NyYy9idWlsdGluLmMKKysrIGIvc3JjL2J1aWx0aW4uYwpA QCAtNDQ3LDcgKzQ0Nyw3IEBAIG51bWVyaWNfYXJnICh0b2tlbl9kYXRhICptYWNybywgY29uc3Qg Y2hhciAqYXJnLCBpbnQgKnZhbHVlcCkKIHN0YXRpYyBjaGFyIGNvbnN0IGRpZ2l0c1tdID0gIjAx MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CgogY29uc3QgY2hhciAqCi1udG9h IChpbnQzMl90IHZhbHVlLCBpbnQgcmFkaXgpCitudG9hIChpbnQzMl90IHZhbHVlLCBpbnQgcmFk aXgsIGNvbnN0IGNoYXIgKiplbmQpCiB7CiAgIGJvb2wgbmVnYXRpdmU7CiAgIHVpbnQzMl90IHV2 YWx1ZTsKQEAgLTQ1NSw2ICs0NTUsOCBAQCBudG9hIChpbnQzMl90IHZhbHVlLCBpbnQgcmFkaXgp CiAgIGNoYXIgKnMgPSAmc3RyW3NpemVvZiBzdHJdOwoKICAgKi0tcyA9ICdcMCc7CisgIGlmIChl bmQpCisgICAgKmVuZCA9IHM7CgogICBpZiAodmFsdWUgPCAwKQogICAgIHsKQEAgLTQ4OCw5ICs0 OTAsMTAgQEAgc3RhdGljIHZvaWQKIHNoaXBvdXRfaW50IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBp bnQgdmFsKQogewogICBjb25zdCBjaGFyICpzOworICBjb25zdCBjaGFyICplOwoKLSAgcyA9IG50 b2EgKChpbnQzMl90KSB2YWwsIDEwKTsKLSAgb2JzdGFja19ncm93IChvYnMsIHMsIHN0cmxlbiAo cykpOworICBzID0gbnRvYSAoKGludDMyX3QpIHZhbCwgMTAsICZlKTsKKyAgb2JzdGFja19ncm93 IChvYnMsIHMsIGUgLSBzKTsKIH0KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC01MDAsMTUgKzUwMywxNCBA QCBzaGlwb3V0X2ludCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IHZhbCkKCiBzdGF0aWMgdm9p ZAogZHVtcF9hcmdzIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAq KmFyZ3YsCi0gICAgICAgICAgIGNvbnN0IGNoYXIgKnNlcCwgYm9vbCBxdW90ZWQpCisgICAgICAg ICAgIGNoYXIgc2VwLCBib29sIHF1b3RlZCkKIHsKICAgaW50IGk7Ci0gIHNpemVfdCBsZW4gPSBz dHJsZW4gKHNlcCk7CgogICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQogICAgIHsKICAgICAg IGlmIChpID4gMSkKLSAgICAgICAgb2JzdGFja19ncm93IChvYnMsIHNlcCwgbGVuKTsKKyAgICAg ICAgb2JzdGFja18xZ3JvdyAob2JzLCBzZXApOwogICAgICAgaWYgKHF1b3RlZCkKICAgICAgICAg b2JzdGFja19ncm93IChvYnMsIGxxdW90ZS5zdHJpbmcsIGxxdW90ZS5sZW5ndGgpOwogICAgICAg b2JzdGFja19ncm93IChvYnMsIFRPS0VOX0RBVEFfVEVYVCAoYXJndltpXSksCkBAIC0xMDg5LDYg KzEwOTEsNyBAQCBtNF9ldmFsIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5f ZGF0YSAqKmFyZ3YpCiAgIGludCByYWRpeCA9IDEwOwogICBpbnQgbWluID0gMTsKICAgY29uc3Qg Y2hhciAqczsKKyAgY29uc3QgY2hhciAqZTsKCiAgIGlmIChiYWRfYXJnYyAoYXJndlswXSwgYXJn YywgMiwgNCkpCiAgICAgcmV0dXJuOwpAQCAtMTEzNSwxNyArMTEzOCwxNyBAQCBtNF9ldmFsIChz dHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgICBy ZXR1cm47CiAgICAgfQoKLSAgcyA9IG50b2EgKHZhbHVlLCByYWRpeCk7CisgIHMgPSBudG9hICh2 YWx1ZSwgcmFkaXgsICZlKTsKCiAgIGlmICgqcyA9PSAnLScpCiAgICAgewogICAgICAgb2JzdGFj a18xZ3JvdyAob2JzLCAnLScpOwogICAgICAgcysrOwogICAgIH0KLSAgZm9yIChtaW4gLT0gc3Ry bGVuIChzKTsgLS1taW4gPj0gMDspCisgIGZvciAobWluIC09IGUgLSBzOyAtLW1pbiA+PSAwOykK ICAgICBvYnN0YWNrXzFncm93IChvYnMsICcwJyk7CgotICBvYnN0YWNrX2dyb3cgKG9icywgcywg c3RybGVuIChzKSk7CisgIG9ic3RhY2tfZ3JvdyAob2JzLCBzLCBlIC0gcyk7CiB9Cgogc3RhdGlj IHZvaWQKQEAgLTEyOTAsNyArMTI5Myw3IEBAIG00X3NoaWZ0IChzdHJ1Y3Qgb2JzdGFjayAqb2Jz LCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiB7CiAgIGlmIChiYWRfYXJnYyAoYXJndlsw XSwgYXJnYywgMiwgLTEpKQogICAgIHJldHVybjsKLSAgZHVtcF9hcmdzIChvYnMsIGFyZ2MgLSAx LCBhcmd2ICsgMSwgIiwiLCB0cnVlKTsKKyAgZHVtcF9hcmdzIChvYnMsIGFyZ2MgLSAxLCBhcmd2 ICsgMSwgJywnLCB0cnVlKTsKIH0KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgpAQCAtMTQ2NCwxNCAr MTQ2NywxNSBAQCBtNF9tYWtldGVtcCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRv a2VuX2RhdGEgKiphcmd2KQogICAgICAgaW50IGxlbiA9IHN0cmxlbiAoc3RyKTsKICAgICAgIGlu dCBpOwogICAgICAgaW50IGxlbjI7CisgICAgICBjb25zdCBjaGFyICplOwoKICAgICAgIE00RVJS T1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygicmVjb21tZW5kIHVzaW5nIG1rc3RlbXAgaW5zdGVh ZCIpKSk7CiAgICAgICBmb3IgKGkgPSBsZW47IGkgPiAxOyBpLS0pCiAgICAgICAgIGlmIChzdHJb aSAtIDFdICE9ICdYJykKICAgICAgICAgICBicmVhazsKICAgICAgIG9ic3RhY2tfZ3JvdyAob2Jz LCBzdHIsIGkpOwotICAgICAgc3RyID0gbnRvYSAoKGludDMyX3QpIGdldHBpZCAoKSwgMTApOwot ICAgICAgbGVuMiA9IHN0cmxlbiAoc3RyKTsKKyAgICAgIHN0ciA9IG50b2EgKChpbnQzMl90KSBn ZXRwaWQgKCksIDEwLCAmZSk7CisgICAgICBsZW4yID0gZSAtIHN0cjsKICAgICAgIGlmIChsZW4y ID4gbGVuIC0gaSkKICAgICAgICAgb2JzdGFja19ncm93MCAob2JzLCBzdHIgKyBsZW4yIC0gKGxl biAtIGkpLCBsZW4gLSBpKTsKICAgICAgIGVsc2UKQEAgLTE1MDIsNyArMTUwNiw3IEBAIG00X2Vy cnByaW50IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3Yp CiB7CiAgIGlmIChiYWRfYXJnYyAoYXJndlswXSwgYXJnYywgMiwgLTEpKQogICAgIHJldHVybjsK LSAgZHVtcF9hcmdzIChvYnMsIGFyZ2MsIGFyZ3YsICIgIiwgZmFsc2UpOworICBkdW1wX2FyZ3Mg KG9icywgYXJnYywgYXJndiwgJyAnLCBmYWxzZSk7CiAgIG9ic3RhY2tfMWdyb3cgKG9icywgJ1ww Jyk7CiAgIGRlYnVnX2ZsdXNoX2ZpbGVzICgpOwogICB4ZnByaW50ZiAoc3RkZXJyLCAiJXMiLCAo Y2hhciAqKSBvYnN0YWNrX2ZpbmlzaCAob2JzKSk7CkBAIC0xNTg3LDcgKzE1OTEsNyBAQCBtNF9t NHdyYXAgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikK ICAgaWYgKG5vX2dudV9leHRlbnNpb25zKQogICAgIG9ic3RhY2tfZ3JvdyAob2JzLCBBUkcgKDEp LCBzdHJsZW4gKEFSRyAoMSkpKTsKICAgZWxzZQotICAgIGR1bXBfYXJncyAob2JzLCBhcmdjLCBh cmd2LCAiICIsIGZhbHNlKTsKKyAgICBkdW1wX2FyZ3MgKG9icywgYXJnYywgYXJndiwgJyAnLCBm YWxzZSk7CiAgIG9ic3RhY2tfMWdyb3cgKG9icywgJ1wwJyk7CiAgIHB1c2hfd3JhcHVwICgoY2hh ciAqKSBvYnN0YWNrX2ZpbmlzaCAob2JzKSk7CiB9CkBAIC0yMjYyLDcgKzIyNjYsNyBAQCBleHBh bmRfdXNlcl9tYWNybyAoc3RydWN0IG9ic3RhY2sgKm9icywgc3ltYm9sICpzeW0sCgogICAgICAg ICBjYXNlICcqJzogLyogYWxsIGFyZ3VtZW50cyAqLwogICAgICAgICBjYXNlICdAJzogLyogLi4u IHNhbWUsIGJ1dCBxdW90ZWQgKi8KLSAgICAgICAgICBkdW1wX2FyZ3MgKG9icywgYXJnYywgYXJn diwgIiwiLCAqdGV4dCA9PSAnQCcpOworICAgICAgICAgIGR1bXBfYXJncyAob2JzLCBhcmdjLCBh cmd2LCAnLCcsICp0ZXh0ID09ICdAJyk7CiAgICAgICAgICAgdGV4dCsrOwogICAgICAgICAgIGJy ZWFrOwoKZGlmZiAtLWdpdCBhL3NyYy9kZWJ1Zy5jIGIvc3JjL2RlYnVnLmMKaW5kZXggYTQwMTc2 NjAuLjg3NmIxMWY1IDEwMDY0NAotLS0gYS9zcmMvZGVidWcuYworKysgYi9zcmMvZGVidWcuYwpA QCAtMjkwLDcgKzI5MCw3IEBAIHRyYWNlX2Zvcm1hdCAoY29uc3QgY2hhciAqZm10LCAuLi4pCgog ICAgICAgICBjYXNlICdkJzoKICAgICAgICAgICBkID0gdmFfYXJnIChhcmdzLCBpbnQpOwotICAg ICAgICAgIHMgPSBudG9hIChkLCAxMCk7CisgICAgICAgICAgcyA9IG50b2EgKGQsIDEwLCBOVUxM KTsKICAgICAgICAgICBicmVhazsKCiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9zcmMv bTQuaCBiL3NyYy9tNC5oCmluZGV4IGMxZmI4MDZiLi44NThjYjBkZSAxMDA2NDQKLS0tIGEvc3Jj L200LmgKKysrIGIvc3JjL200LmgKQEAgLTQ0MCw3ICs0NDAsNyBAQCBleHRlcm4gdm9pZCBtNF9w bGFjZWhvbGRlciAoc3RydWN0IG9ic3RhY2sgKiwgaW50LCB0b2tlbl9kYXRhICoqKQogICBBVFRS SUJVVEVfQ09MRDsKIGV4dGVybiB2b2lkIGluaXRfcGF0dGVybl9idWZmZXIgKHN0cnVjdCByZV9w YXR0ZXJuX2J1ZmZlciAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHJlX3JlZ2lzdGVycyAqKTsKLWV4dGVybiBjb25zdCBjaGFyICpudG9hIChpbnQzMl90LCBpbnQp OworZXh0ZXJuIGNvbnN0IGNoYXIgKm50b2EgKGludDMyX3QsIGludCwgY29uc3QgY2hhciAqKik7 CgogZXh0ZXJuIGNvbnN0IGJ1aWx0aW4gKmZpbmRfYnVpbHRpbl9ieV9hZGRyIChidWlsdGluX2Z1 bmMgKik7CiBleHRlcm4gY29uc3QgYnVpbHRpbiAqZmluZF9idWlsdGluX2J5X25hbWUgKGNvbnN0 IGNoYXIgKik7CmRpZmYgLS1naXQgYS9zcmMvb3V0cHV0LmMgYi9zcmMvb3V0cHV0LmMKaW5kZXgg ODRmMTUxM2UuLmY0MDI1M2MxIDEwMDY0NAotLS0gYS9zcmMvb3V0cHV0LmMKKysrIGIvc3JjL291 dHB1dC5jCkBAIC02NzAsNyArNjcwLDcgQEAgc2hpcG91dF90ZXh0IChzdHJ1Y3Qgb2JzdGFjayAq b2JzLCBjb25zdCBjaGFyICp0ZXh0LCBpbnQgbGVuZ3RoLCBpbnQgbGluZSkKICAgICAgICAgICAg ICAgT1VUUFVUX0NIQVJBQ1RFUiAoJ24nKTsKICAgICAgICAgICAgICAgT1VUUFVUX0NIQVJBQ1RF UiAoJ2UnKTsKICAgICAgICAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoJyAnKTsKLSAgICAgICAg ICAgICAgZm9yIChjdXJzb3IgPSBudG9hIChsaW5lLCAxMCk7ICpjdXJzb3I7IGN1cnNvcisrKQor ICAgICAgICAgICAgICBmb3IgKGN1cnNvciA9IG50b2EgKGxpbmUsIDEwLCBOVUxMKTsgKmN1cnNv cjsgY3Vyc29yKyspCiAgICAgICAgICAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoKmN1cnNvcik7 CiAgICAgICAgICAgICAgIGlmIChvdXRwdXRfY3VycmVudF9saW5lIDwgMSAmJiBjdXJyZW50X2Zp bGVbMF0gIT0gJ1wwJykKICAgICAgICAgICAgICAgICB7Ci0tIAoyLjQ4LjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNNC1wYXRjaGVzIG1haWxpbmcg bGlzdApNNC1wYXRjaGVzQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlz dGluZm8vbTQtcGF0Y2hlcwo=