[patch] added SCI_SETTABDRAWMODE(SCTD_CONTROLCHAR)
"'Robin Haberkorn' via scintilla-interest" <[email protected]> Mon, 09 Feb 2026 16:31:47 +0000
| Newsgroups | gmane.comp.lib.scintilla.devel |
|---|---|
| Message-ID | <[email protected]> |
--94e96dd60321c4735c84e832041230e1170c9b25a2e2205a93be93a35f79 Content-Type: multipart/mixed; boundary=4fa9a1f0b753251a47ed7c2cc6c678de84736e182237651b6625f36cac2e --4fa9a1f0b753251a47ed7c2cc6c678de84736e182237651b6625f36cac2e Content-Type: multipart/alternative; boundary=10a75ca88942446e36dbc896e9d45c0b1bc1813201d65c0265f12efddfb5 --10a75ca88942446e36dbc896e9d45c0b1bc1813201d65c0265f12efddfb5 Content-Disposition: inline Content-Type: text/plain; charset="UTF-8" Dear hackers, here's yet another patch which adds SCI_SETTABDRAWMODE(SCTD_CONTROLCHAR). In this tab draw mode, tabs are handled like other control characters and are rendered by their chracter representation. It's again motivated by SciTECO's command line and syntax highlighting needs where ASCII 9 is an actual insertion command instead of an identation no-op. Perhaps this is potentially useful for other languages as well where tabs have special meaning beyond identation. (And yes, it would also be useful for the "Scintilla - the hex editor" use case, but that's not really doable due to the slow layout algorithm on excessively long lines.) Best regards, Robin -- You received this message because you are subscribed to the Google Groups "scintilla-interest" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/scintilla-interest/DGAKPIZK38MU.1423UEGJ7AR5V%40googlemail.com. --10a75ca88942446e36dbc896e9d45c0b1bc1813201d65c0265f12efddfb5-- --4fa9a1f0b753251a47ed7c2cc6c678de84736e182237651b6625f36cac2e Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-added-SCI_SETTABDRAWMODE-SCTD_CONTROLCHAR.patch Content-Type: text/x-patch; charset=utf-8; name=0002-added-SCI_SETTABDRAWMODE-SCTD_CONTROLCHAR.patch RnJvbSA1YzE5YTQwMDUyZTA2NzAzMGU3YjUzZjcwN2NlZmYwMmI0OTExMTE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JpbiBIYWJlcmtvcm4gPHJoYWJlcmtvcm5AZm1zYncuZGU+ CkRhdGU6IFN1biwgMiBOb3YgMjAyNSAyMzo1MDowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBhZGRlZCBTQ0lfU0VUVEFCRFJBV01PREUoU0NURF9DT05UUk9MQ0hBUikKCkFsbG93cyByZW5k ZXJpbmcgdGFicyAoQVNDSUkgOSkgd2l0aCBjaGFyYWN0ZXIgcmVwcmVzZW50YXRpb25zIGxpa2Ug YW55IG90aGVyCmNvbnRyb2wgY2hhcmFjdGVyLgotLS0KIGRvYy9TY2ludGlsbGFEb2MuaHRtbCAg ICB8IDEwICsrKysrKysrKysKIGluY2x1ZGUvU2NpbnRpbGxhLmggICAgICB8ICAxICsKIGluY2x1 ZGUvU2NpbnRpbGxhLmlmYWNlICB8ICAyICsrCiBpbmNsdWRlL1NjaW50aWxsYVR5cGVzLmggfCAg MSArCiBzcmMvRWRpdFZpZXcuY3h4ICAgICAgICAgfCAxMCArKysrKy0tLS0tCiA1IGZpbGVzIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L1NjaW50aWxsYURvYy5odG1sIGIvZG9jL1NjaW50aWxsYURvYy5odG1sCmluZGV4IGRkZDJhNWE1 Yi4uNWNhN2UyYjU0IDEwMDY0NAotLS0gYS9kb2MvU2NpbnRpbGxhRG9jLmh0bWwKKysrIGIvZG9j L1NjaW50aWxsYURvYy5odG1sCkBAIC0yODkwLDYgKzI4OTAsMTYgQEAgc3RydWN0IFNjaV9UZXh0 VG9GaW5kRnVsbCB7CiAKICAgICAgICAgICA8dGQ+QSBob3Jpem9udGFsIGxpbmUgc3RyZXRjaGlu ZyB1bnRpbCB0aGUgdGFic3RvcC48L3RkPgogICAgICAgICA8L3RyPgorCisgICAgICAgIDx0cj4K KyAgICAgICAgICA8dGggYWxpZ249ImxlZnQiPjxjb2RlPlNDVERfQ09OVFJPTENIQVI8L2NvZGU+ PC90aD4KKworICAgICAgICAgIDx0ZD4yPC90ZD4KKworICAgICAgICAgIDx0ZD5XaWxsIGJlIGRy YXduIGFzIGEgY29udHJvbCBjb2RlIGFjY29yZGluZyB0byB0aGUgY29uZmlndXJlZAorICAgICAg ICAgIDxhIGhyZWY9IiNDaGFyYWN0ZXJSZXByZXNlbnRhdGlvbnMiPmNoYXJhY3RlciByZXByZXNl bnRhdGlvbjwvYT4KKyAgICAgICAgICB3aXRob3V0IGFueSBpbmRlbnRhdGlvbi48L3RkPgorICAg ICAgICA8L3RyPgogICAgICAgPC90Ym9keT4KICAgICA8L3RhYmxlPgogCmRpZmYgLS1naXQgYS9p bmNsdWRlL1NjaW50aWxsYS5oIGIvaW5jbHVkZS9TY2ludGlsbGEuaAppbmRleCBjZTYyYzQ2MjAu LmIyZTQ5OGY2NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9TY2ludGlsbGEuaAorKysgYi9pbmNsdWRl L1NjaW50aWxsYS5oCkBAIC03OCw2ICs3OCw3IEBAIHR5cGVkZWYgc3B0cl90ICgqU2NpRm5EaXJl Y3RTdGF0dXMpKHNwdHJfdCBwdHIsIHVuc2lnbmVkIGludCBpTWVzc2FnZSwgdXB0cl90IHdQCiAj ZGVmaW5lIFNDSV9TRVRWSUVXV1MgMjAyMQogI2RlZmluZSBTQ1REX0xPTkdBUlJPVyAwCiAjZGVm aW5lIFNDVERfU1RSSUtFT1VUIDEKKyNkZWZpbmUgU0NURF9DT05UUk9MQ0hBUiAyCiAjZGVmaW5l IFNDSV9HRVRUQUJEUkFXTU9ERSAyNjk4CiAjZGVmaW5lIFNDSV9TRVRUQUJEUkFXTU9ERSAyNjk5 CiAjZGVmaW5lIFNDSV9QT1NJVElPTkZST01QT0lOVCAyMDIyCmRpZmYgLS1naXQgYS9pbmNsdWRl L1NjaW50aWxsYS5pZmFjZSBiL2luY2x1ZGUvU2NpbnRpbGxhLmlmYWNlCmluZGV4IDViYjgwZmI0 NC4uNzRmODEzMzg2IDEwMDY0NAotLS0gYS9pbmNsdWRlL1NjaW50aWxsYS5pZmFjZQorKysgYi9p bmNsdWRlL1NjaW50aWxsYS5pZmFjZQpAQCAtMTk2LDkgKzE5NiwxMSBAQCBzZXQgdm9pZCBTZXRW aWV3V1M9MjAyMShXaGl0ZVNwYWNlIHZpZXdXUywpCiBlbnUgVGFiRHJhd01vZGU9U0NURF8KIHZh bCBTQ1REX0xPTkdBUlJPVz0wCiB2YWwgU0NURF9TVFJJS0VPVVQ9MQordmFsIFNDVERfQ09OVFJP TENIQVI9MgogCiBhbGkgU0NURF9MT05HQVJST1c9TE9OR19BUlJPVwogYWxpIFNDVERfU1RSSUtF T1VUPVNUUklLRV9PVVQKK2FsaSBTQ1REX0NPTlRST0xDSEFSPUNPTlRST0xfQ0hBUgogCiAjIFJl dHJpZXZlIHRoZSBjdXJyZW50IHRhYiBkcmF3IG1vZGUuCiAjIFJldHVybnMgb25lIG9mIFNDVERf KiBjb25zdGFudHMuCmRpZmYgLS1naXQgYS9pbmNsdWRlL1NjaW50aWxsYVR5cGVzLmggYi9pbmNs dWRlL1NjaW50aWxsYVR5cGVzLmgKaW5kZXggNDExODc2Zjk3Li42ZTU5ODNhYTIgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvU2NpbnRpbGxhVHlwZXMuaAorKysgYi9pbmNsdWRlL1NjaW50aWxsYVR5cGVz LmgKQEAgLTI2LDYgKzI2LDcgQEAgZW51bSBjbGFzcyBXaGl0ZVNwYWNlIHsKIGVudW0gY2xhc3Mg VGFiRHJhd01vZGUgewogCUxvbmdBcnJvdyA9IDAsCiAJU3RyaWtlT3V0ID0gMSwKKwlDb250cm9s Q2hhciA9IDIsCiB9OwogCiBlbnVtIGNsYXNzIEVuZE9mTGluZSB7CmRpZmYgLS1naXQgYS9zcmMv RWRpdFZpZXcuY3h4IGIvc3JjL0VkaXRWaWV3LmN4eAppbmRleCAzYmYwYTFmYmIuLjBkZmMwY2M5 NyAxMDA2NDQKLS0tIGEvc3JjL0VkaXRWaWV3LmN4eAorKysgYi9zcmMvRWRpdFZpZXcuY3h4CkBA IC0zNTMsNyArMzUzLDcgQEAgdm9pZCBMYXlvdXRTZWdtZW50cyhJUG9zaXRpb25DYWNoZSAqcENh Y2hlLAogCQkJCVhZUE9TSVRJT04gcmVwcmVzZW50YXRpb25XaWR0aCA9IDAuMDsKIAkJCQkvLyBU YWIgaXMgYSBzcGVjaWFsIGNhc2Ugb2YgcmVwcmVzZW50YXRpb24sIHRha2luZyBhIHZhcmlhYmxl IGFtb3VudCBvZiBzcGFjZQogCQkJCS8vIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIGxhdGVyLgot CQkJCWlmIChsbC0+Y2hhcnNbdHMuc3RhcnRdICE9ICdcdCcpIHsKKwkJCQlpZiAobGwtPmNoYXJz W3RzLnN0YXJ0XSAhPSAnXHQnIHx8IHZzdHlsZS50YWJEcmF3TW9kZSA9PSBUYWJEcmF3TW9kZTo6 Q29udHJvbENoYXIpIHsKIAkJCQkJcmVwcmVzZW50YXRpb25XaWR0aCA9IHZzdHlsZS5jb250cm9s Q2hhcldpZHRoOwogCQkJCQlpZiAocmVwcmVzZW50YXRpb25XaWR0aCA8PSAwLjApIHsKIAkJCQkJ CWFzc2VydCh0cy5yZXByZXNlbnRhdGlvbi0+c3RyaW5nUmVwLmxlbmd0aCgpIDw9IFJlcHJlc2Vu dGF0aW9uOjptYXhMZW5ndGgpOwpAQCAtNTI2LDcgKzUyNiw3IEBAIHZvaWQgRWRpdFZpZXc6Okxh eW91dExpbmUoY29uc3QgRWRpdE1vZGVsICZtb2RlbCwgU3VyZmFjZSAqc3VyZmFjZSwgY29uc3Qg Vmlld1N0CiAJCWZvciAoY29uc3QgVGV4dFNlZ21lbnQgJnRzIDogc2VnbWVudHMpIHsKIAkJCWlm ICh2c3R5bGUuc3R5bGVzW2xsLT5zdHlsZXNbdHMuc3RhcnRdXS52aXNpYmxlICYmCiAJCQkJdHMu cmVwcmVzZW50YXRpb24gJiYKLQkJCQkobGwtPmNoYXJzW3RzLnN0YXJ0XSA9PSAnXHQnKSkgewor CQkJCWxsLT5jaGFyc1t0cy5zdGFydF0gPT0gJ1x0JyAmJiB2c3R5bGUudGFiRHJhd01vZGUgIT0g VGFiRHJhd01vZGU6OkNvbnRyb2xDaGFyKSB7CiAJCQkJLy8gU2ltcGxlIHZpc2libGUgdGFiLCBn byB0byBuZXh0IHRhYiBzdG9wCiAJCQkJY29uc3QgWFlQT1NJVElPTiBzdGFydFRhYiA9IGxsLT5w b3NpdGlvbnNbdHMuc3RhcnRdOwogCQkJCWNvbnN0IFhZUE9TSVRJT04gbmV4dFRhYiA9IE5leHRU YWJzdG9wUG9zKGxpbmUsIHN0YXJ0VGFiLCB2c3R5bGUudGFiV2lkdGgpOwpAQCAtNjE0LDcgKzYx NCw3IEBAIHZvaWQgRWRpdFZpZXc6OlVwZGF0ZUJpZGlEYXRhKGNvbnN0IEVkaXRNb2RlbCAmbW9k ZWwsIGNvbnN0IFZpZXdTdHlsZSAmdnN0eWxlLCBMCiAJCQljb25zdCBSZXByZXNlbnRhdGlvbiAq cmVwciA9IG1vZGVsLnJlcHJzLT5SZXByZXNlbnRhdGlvbkZyb21DaGFyYWN0ZXIoc3RkOjpzdHJp bmdfdmlldygmbGwtPmNoYXJzW2NoYXJzSW5MaW5lXSwgY2hhcldpZHRoKSk7CiAKIAkJCWxsLT5i aWRpRGF0YS0+d2lkdGhSZXByc1tjaGFyc0luTGluZV0gPSAwLjBmOwotCQkJaWYgKHJlcHIgJiYg bGwtPmNoYXJzW2NoYXJzSW5MaW5lXSAhPSAnXHQnKSB7CisJCQlpZiAocmVwciAmJiAobGwtPmNo YXJzW2NoYXJzSW5MaW5lXSAhPSAnXHQnIHx8IHZzdHlsZS50YWJEcmF3TW9kZSA9PSBUYWJEcmF3 TW9kZTo6Q29udHJvbENoYXIpKSB7CiAJCQkJbGwtPmJpZGlEYXRhLT53aWR0aFJlcHJzW2NoYXJz SW5MaW5lXSA9IGxsLT5wb3NpdGlvbnNbY2hhcnNJbkxpbmUgKyBjaGFyV2lkdGhdIC0gbGwtPnBv c2l0aW9uc1tjaGFyc0luTGluZV07CiAJCQl9CiAJCQlpZiAoY2hhcldpZHRoID4gMSkgewpAQCAt MTY5MCw3ICsxNjkwLDcgQEAgdm9pZCBEcmF3QmFja2dyb3VuZChTdXJmYWNlICpzdXJmYWNlLCBj b25zdCBFZGl0TW9kZWwgJm1vZGVsLCBjb25zdCBWaWV3U3R5bGUgJnYKIAkJCUNvbG91clJHQkEg dGV4dEJhY2sgPSBUZXh0QmFja2dyb3VuZChtb2RlbCwgdnNEcmF3LCBsbCwgYmFja2dyb3VuZCwg aW5TZWxlY3Rpb24sCiAJCQkJaW5Ib3RzcG90LCBsbC0+c3R5bGVzW2ldLCBpKTsKIAkJCWlmICh0 cy5yZXByZXNlbnRhdGlvbikgewotCQkJCWlmIChsbC0+Y2hhcnNbaV0gPT0gJ1x0JykgeworCQkJ CWlmIChsbC0+Y2hhcnNbaV0gPT0gJ1x0JyAmJiB2c0RyYXcudGFiRHJhd01vZGUgIT0gVGFiRHJh d01vZGU6OkNvbnRyb2xDaGFyKSB7CiAJCQkJCS8vIFRhYiBkaXNwbGF5CiAJCQkJCWlmIChkcmF3 V2hpdGVzcGFjZUJhY2tncm91bmQgJiYgdnNEcmF3LldoaXRlU3BhY2VWaXNpYmxlKGluSW5kZW50 YXRpb24pKSB7CiAJCQkJCQl0ZXh0QmFjayA9IHZzRHJhdy5FbGVtZW50Q29sb3VyRm9yY2VkKEVs ZW1lbnQ6OldoaXRlU3BhY2VCYWNrKS5PcGFxdWUoKTsKQEAgLTIxOTcsNyArMjE5Nyw3IEBAIHZv aWQgRWRpdFZpZXc6OkRyYXdGb3JlZ3JvdW5kKFN1cmZhY2UgKnN1cmZhY2UsIGNvbnN0IEVkaXRN b2RlbCAmbW9kZWwsIGNvbnN0IFZpCiAJCQl9CiAJCQlDb2xvdXJSR0JBIHRleHRCYWNrID0gVGV4 dEJhY2tncm91bmQobW9kZWwsIHZzRHJhdywgbGwsIGJhY2tncm91bmQsIGluU2VsZWN0aW9uLCBp bkhvdHNwb3QsIHN0eWxlTWFpbiwgaSk7CiAJCQlpZiAodHMucmVwcmVzZW50YXRpb24pIHsKLQkJ CQlpZiAobGwtPmNoYXJzW2ldID09ICdcdCcpIHsKKwkJCQlpZiAobGwtPmNoYXJzW2ldID09ICdc dCcgJiYgdnNEcmF3LnRhYkRyYXdNb2RlICE9IFRhYkRyYXdNb2RlOjpDb250cm9sQ2hhcikgewog CQkJCQkvLyBUYWIgZGlzcGxheQogCQkJCQlpZiAocGhhc2VzRHJhdyA9PSBQaGFzZXNEcmF3OjpP bmUpIHsKIAkJCQkJCWlmIChkcmF3V2hpdGVzcGFjZUJhY2tncm91bmQgJiYgdnNEcmF3LldoaXRl U3BhY2VWaXNpYmxlKGluSW5kZW50YXRpb24pKQotLSAKMi41Mi4wCgo= --4fa9a1f0b753251a47ed7c2cc6c678de84736e182237651b6625f36cac2e-- --94e96dd60321c4735c84e832041230e1170c9b25a2e2205a93be93a35f79 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEB/6AD3js1eGB4raKarMDYY4q6voFAmmKC/QACgkQarMDYY4q 6vo2MQf/U+jZvYmjyAmWoc//yOf+xCMczV7tKKwhZ+CFr8tUoRVo46gvKmTFSXGf SQZGE16mHyBDZi0vh90ZPR4FTWL84XBf4Z4/esInZZSu6z+D/tsNTJcDXRMTn5xq lERQcQGDgQKJmfkdHX0oO1RDyOSu/tNdSBZ054UG2X1/Hxk3duZ+Z58Nna+GjiOo BDx+38HRwhlWpL3Orzqc175gsWfqKyPecYRApNoVimtIAJ5fCfOuKX6W/iiI6x/v mhNMIKyqApdwRbr0hgnlaxLwKVu/yRByTrwaFzkzTsZldT18v7WjmOPHdk1GcBQ+ GQ/FIhGLjiWfr19wCZtMF8f8WQX7ug== =sE4R -----END PGP SIGNATURE----- --94e96dd60321c4735c84e832041230e1170c9b25a2e2205a93be93a35f79--