caret position restoration is optional depending on command being given