SCI_LINESCROLL can take separate column and row offsets to scroll by. When the column offset is negative, it instead treats it as an giant unsigned value. Eventually it ends up treating it as a (large, negative) signed value again and scrolls to the first column.
The attached patch fixes the bug, and expands the existing LineScroll unit tests to cover this case. (MQ formatted, though of course using plain patch should work too.)
Committed as [5c2f72].
Related
Commit: [5c2f72]