Can't reach/changes first symbol.
This is more complex bug I see... If you navigate inside the string and type any letter, new letter replaces letter on cursor's right side instead of left side.
BTW - as far as I remember you said you changed 'replace' by 'insert' mode? Did you mean that if cursor is inside the string and new character is written, then it should insert a character into the string? Now it works like werid replace
I'm getting lost in growing code. It becomes too much 'patched' than well-designed and clear. I see, that we have very simmilar problems that I had EDI 1 almost done. Then I realized, that knowing problems and the way to solve them I have to rewrite code. And then EDI code became more understandable. I'm worried we will have to rewrite the code at the end. But let first make it working.
Problem with cursor position and good place for new char was one of my problems with EDI. I have no time now to look at the EDI code to find a solution, but there was a little different style of inserting new characters.
EDIT
Just an idea - I probably know, what's the problem. Having a little time I just writ here instad of changing source.
When we write new character it have to be added
beyond current lenght of the text. That's why cursor++ is before text[cursor]=...
We should have conditional check, wheter cursor is at the end - then it should work at now. When it's inside text there should be no cursor++. I hope I'll change the source this way after around 2 h. If you'll have time to do so before, you could do. I got to go now