ftx1_set_rptr_offs() converted the requested offset into the EX menu's
step count with a truncating integer division, so any offset that was
not an exact multiple of the step was silently programmed as a smaller
one, with nothing returned to tell the caller it had been changed.
Round to the nearest step instead.
Also reject a negative offset up front. The offset is a magnitude --
direction comes from set_rptr_shift -- and truncation towards zero
meant a small negative value was accepted as "no offset" rather than
rejected, while a larger one failed later in the menu range check.
Verified on an FTX-1 (Optima) on 144 MHz, with #2110 applied so the
step is the correct 50 kHz:
set_rptr_offs 625000 -> 650000 (exactly half a step, rounds up)
set_rptr_offs 630000 -> 650000
set_rptr_offs 620000 -> 600000
set_rptr_offs 624999 -> 600000
set_rptr_offs 600000 -> 600000 (exact, unchanged)
set_rptr_offs -600000 -> -RIG_EINVAL, menu value left untouched
The truncation is present independently of #2110 -- that PR only makes
it easier to hit by correcting the 144/430 MHz step to 50 kHz.
(cherry picked from commit 335820ad0a)