Thank you very much for the tip with redefining the struct. That comes in very handy. Maybe you could overload str_cursor with a function that takes an additional var argument and sets the cursor to that position in a future version?
Yes, inkey and inchar switches off all other key functions - that is mentioned in the manual. Only after inkey/inchar ended you can again use the normal key events and variables.
I was aware of this. My point was that the state of the keys is even unavailable one frame after inkey has terminated. Maybe that is a good addendum for the manual.