<p>I suspect that the terminology is taken from the original Windows edit control Scintilla originally emulated.</p>
<p>And that was probably designed well before multi-byte characters, hence the code page crap that is still in Scintilla.</p>
<p>It may seem unusual in this age of Unicode, but the world didn't suddenly wake up Unicode, it evolved to it, with many false steps along the way, each leaving its legacy scars on applications like Scintilla.</p>
<p>And even Unicode isn't perfect, even if you stored each code point in the same number of bytes (ie no UTF-8 or UTF-16 encoding) there are still combinations of two code points that map to only one glyph (eg c̦ which is two code points and if you copy it to Geany you can delete forward and it will remove the <code>c</code>, but not the cedilla and vice versa if you backspace and it takes two forward cursor movements to forward over it).</p>
<p>Geany always uses UTF-8 encoding in the buffer, so it only meets the weird world of other encodings at load or save time.  But that does mean variable length code points and issues like the above that make screen positions and positions in the buffer hard to relate.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/issues/1952#issuecomment-421689056">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ38AGKATWJZnr8IYYba69qlipZo0ks5ubc-igaJpZM4Wp66o">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABDrJzwNcgxGy3cmK1hc3u3KKM0SggzJks5ubc-igaJpZM4Wp66o.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany","title":"geany/geany","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"PERSON","message":"@elextr in #1952: I suspect that the terminology is taken from the original Windows edit control Scintilla originally emulated. \r\n\r\nAnd that was probably designed well before multi-byte characters, hence the code page crap that is still in Scintilla.  \r\n\r\nIt may seem unusual in this age of Unicode, but the world didn't suddenly wake up Unicode, it evolved to it, with many false steps along the way, each leaving its legacy scars on applications like Scintilla.  \r\n\r\nAnd even Unicode isn't perfect, even if you stored each code point in the same number of bytes (ie no UTF-8 or UTF-16 encoding) there are still combinations of two code points that map to only one glyph (eg c̦ which is two code points and if you copy it to Geany you can delete forward and it will remove the `c`, but not the cedilla and vice versa if you backspace and it takes two forward cursor movements to forward over it).\r\n\r\nGeany always uses UTF-8 encoding in the buffer, so it only meets the weird world of other encodings at load or save time.  But that does mean variable length code points and issues like the above that make screen positions and positions in the buffer hard to relate."}],"action":{"name":"View Issue","url":"https://github.com/geany/geany/issues/1952#issuecomment-421689056"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/issues/1952#issuecomment-421689056",
"url": "https://github.com/geany/geany/issues/1952#issuecomment-421689056",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [geany/geany] Smaller horizontal auto-scroll jump when typing (#1952)",
"sections": [
{
"text": "",
"activityTitle": "**elextr**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@elextr",
"facts": [

]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"geany/geany\",\n\"issueId\": 1952,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close issue",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueClose\",\n\"repositoryFullName\": \"geany/geany\",\n\"issueId\": 1952\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/geany/geany/issues/1952#issuecomment-421689056"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 380087976\n}"
}
],
"themeColor": "26292E"
}
]</script>