Re: Standalone info viewer parses some index entries incorrectly

ThomB <[email protected]> Sun, 12 Jul 2026 19:34:24 +0000
Newsgroups gmane.comp.tex.texinfo.bugs
Message-ID <aBMG58YNU9do1hdTMkG3djtWAzTf7G7DABFKOcsxrDskpcp56dlDCPIHeH_cvTPbamQrjXvB2m1JzxAp7KQULi_6im_Jh6W7S_LUd1x-oMU=@pm.me>
--b1=_YAy63XhQ2BsrGpCX6AMr7ESWQSIRwvhzM1v9TOhSk
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

There's another bug that relates to this.

Using texi2any_internals.info again as the example, the proper index node i=
s
fine and works as expected but in a virtual index this same kind of entry i=
s
parsed incorrectly:

    info texi2any_internals -n Index

vs.

    info texi2any_internals --index-search xml_accent --all

It happens because when the virtual index is being created, the DEL charact=
ers
have already been stripped from the node name, which is printed as-is, so t=
here
isn't a quote character there for `scan_reference_label()` to stop scanning=
 at.

This is at info/indices.c:903.

Two diffs again--one makes `format_reference()` at that location enclose no=
de
names that have at least one colon in them in DEL characters. In order to u=
se
INFO_QUOTE_STR I moved it and INFO_QUOTE (seemed sensible to keep them toge=
ther) from
info/scan.c to info/scan.h.

The other diff updates the test I wrote previously to work with the now quo=
ted
index entry.


--b1=_YAy63XhQ2BsrGpCX6AMr7ESWQSIRwvhzM1v9TOhSk
Content-Type: text/x-patch; name=test_index_label.diff
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=test_index_label.diff

ZGlmZiAtLWdpdCBhL2luZm8vdC9xdW90ZWQtaW5kZXgtdGFyZ2V0LnNoIGIvaW5mby90L3F1b3Rl
ZC1pbmRleC10YXJnZXQuc2gKaW5kZXggYTM2NGNjZTM1Ny4uMjVmY2YzMTAxYyAxMDA3NTUKLS0t
IGEvaW5mby90L3F1b3RlZC1pbmRleC10YXJnZXQuc2gKKysrIGIvaW5mby90L3F1b3RlZC1pbmRl
eC10YXJnZXQuc2gKQEAgLTIzLDcgKzIzLDcgQEAgJGdpbmZvIC0tZmlsZSBxdW90aW5nIC0taW5k
ZXgtc2VhcmNoICJDb2xvbjo6aW4sIG5hbWUiIC0tYWxsID4kZ2luZm9fb3V0cHV0CiAjIFRlc3Qg
dGhhdCB0aGUgZm91bmQgaW5kZXggZW50cnkgaGFzIHRoZSBjb3JyZWN0IG5vZGUgbmFtZS4gQW4g
aW5kZXggZW50cnkKICMgc3BsaXQgaW4gdGhlIHdyb25nIHBsYWNlIHNob3VsZCBub3QgbWF0Y2gg
dGhpcyBSRSwgcmF0aGVyIGJlIHNoYXBlZCBzb21ldGhpbmcKICMgbGlrZSAiKiBDb2xvbjo6aW4s
IG5hbWU6IF4/Q29sb246OiAgICAgIGluLiAgICAgKGxpbmUgMCkiCi1ncmVwICdcKiBDb2xvbjo6
aW4sIG5hbWU6W1s6Ymxhbms6XV1cezEsXH1Db2xvbjo6aW4sIG5hbWUnICRnaW5mb19vdXRwdXQK
K2dyZXAgJ1wqIENvbG9uOjppbiwgbmFtZTpbWzpibGFuazpdXVx7MSxcfVtbOmNudHJsOl1dQ29s
b246OmluLCBuYW1lW1s6Y250cmw6XV0nICRnaW5mb19vdXRwdXQKIAogcmV0dmFsPSQ/CiAK

--b1=_YAy63XhQ2BsrGpCX6AMr7ESWQSIRwvhzM1v9TOhSk
Content-Type: text/x-patch; name=fix_virtual_index_nodename.diff
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=fix_virtual_index_nodename.diff

ZGlmZiAtLWdpdCBhL2luZm8vaW5kaWNlcy5jIGIvaW5mby9pbmRpY2VzLmMKaW5kZXggOTVhODA2
MzZkOS4uMzk0MTQ4MWIwNCAxMDA2NDQKLS0tIGEvaW5mby9pbmRpY2VzLmMKKysrIGIvaW5mby9p
bmRpY2VzLmMKQEAgLTkwMCw3ICs5MDAsMTEgQEAgZm9ybWF0X3JlZmVyZW5jZSAoUkVGRVJFTkNF
ICpyZWYsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdGV4dF9idWZmZXIgKmJ1ZikKIAog
ICBpZiAocmVmLT5maWxlbmFtZSAmJiBzdHJjbXAgKHJlZi0+ZmlsZW5hbWUsIGZpbGVuYW1lKSkK
ICAgICBuICs9IHRleHRfYnVmZmVyX3ByaW50ZiAoYnVmLCAiKCVzKSIsIHJlZi0+ZmlsZW5hbWUp
OwotICBuICs9IHRleHRfYnVmZmVyX3ByaW50ZiAoYnVmLCAiJXMuICIsIHJlZi0+bm9kZW5hbWUp
OworCisgIGlmIChzdHJjaHIocmVmLT5ub2RlbmFtZSwgJzonKSkKKyAgICBuICs9IHRleHRfYnVm
ZmVyX3ByaW50ZiAoYnVmLCBJTkZPX1FVT1RFX1NUUiAiJXMiIElORk9fUVVPVEVfU1RSICIuICIs
IHJlZi0+bm9kZW5hbWUpOworICBlbHNlCisgICAgbiArPSB0ZXh0X2J1ZmZlcl9wcmludGYgKGJ1
ZiwgIiVzLiAiLCByZWYtPm5vZGVuYW1lKTsKIAogICBpZiAobiA8IExJTkVDT0wpCiAgICAgbiAr
PSB0ZXh0X2J1ZmZlcl9maWxsIChidWYsICcgJywgTElORUNPTCAtIG4pOwpkaWZmIC0tZ2l0IGEv
aW5mby9zY2FuLmMgYi9pbmZvL3NjYW4uYwppbmRleCA2MTIxZjk5MmRkLi5hYTMwNWFmMjBhIDEw
MDY0NAotLS0gYS9pbmZvL3NjYW4uYworKysgYi9pbmZvL3NjYW4uYwpAQCAtMTI3LDkgKzEyNyw2
IEBAIGluZm9fcGFyc2Vfbm9kZSAoY2hhciAqc3RyaW5nKQogICAgIH0KIH0KIAotI2RlZmluZSBJ
TkZPX1FVT1RFICdcMTc3JwotI2RlZmluZSBJTkZPX1FVT1RFX1NUUiAiXDE3NyIKLQogLyogU2V0
ICpPVVRQVVQgdG8gYSBjb3B5IG9mIHRoZSBzdHJpbmcgc3RhcnRpbmcgYXQgU1RBUlQgYW5kIGZp
bmlzaGluZyBhdAogICAgYSBjaGFyYWN0ZXIgaW4gVEVSTUlOQVRPUiwgdW5sZXNzIFNUQVJUWzBd
ID09IElORk9fUVVPVEUsIGluIHdoaWNoIGNhc2UKICAgIGNvcHkgc3RyaW5nIGZyb20gU1RBUlQr
MSB1bnRpbCB0aGUgbmV4dCBvY2N1cmVuY2Ugb2YgSU5GT19RVU9URS4gIElmCmRpZmYgLS1naXQg
YS9pbmZvL3NjYW4uaCBiL2luZm8vc2Nhbi5oCmluZGV4IDhlOWFmYzE3MzAuLjI3ZmNiMjU3YjQg
MTAwNjQ0Ci0tLSBhL2luZm8vc2Nhbi5oCisrKyBiL2luZm8vc2Nhbi5oCkBAIC0yMyw2ICsyMyw5
IEBACiAjaW5jbHVkZSAibm9kZXMuaCIKICNpbmNsdWRlICJ3aW5kb3cuaCIKIAorI2RlZmluZSBJ
TkZPX1FVT1RFICdcMTc3JworI2RlZmluZSBJTkZPX1FVT1RFX1NUUiAiXDE3NyIKKwogLyogVmFy
aWFibGUgd2hpY2ggaG9sZHMgdGhlIG1vc3QgcmVjZW50IGZpbGVuYW1lIHBhcnNlZCBhcyBhIHJl
c3VsdCBvZgogICAgY2FsbGluZyBpbmZvX3BhcnNlX3h4eCAoKS4gKi8KIGV4dGVybiBjaGFyICpp
bmZvX3BhcnNlZF9maWxlbmFtZTsK

--b1=_YAy63XhQ2BsrGpCX6AMr7ESWQSIRwvhzM1v9TOhSk--