branch: externals/shift-number
commit cad82f36077569b337e29c85c13ab19770ff8e2a
Author: Campbell Barton <[email protected]>
Commit: Campbell Barton <[email protected]>

    Fix use rectangular selection for multi-width characters
---
 shift-number.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/shift-number.el b/shift-number.el
index 39fcbe7594..33ad2261c3 100644
--- a/shift-number.el
+++ b/shift-number.el
@@ -345,9 +345,16 @@ REGION-BEG & REGION-END define the region."
   (let ((shift-fn `(lambda (beg end) (save-excursion 
(shift-number--on-region-impl ,n beg end)))))
     (apply-on-rectangle
      ;; Make the values global.
-     `(lambda (beg end) (funcall ,shift-fn (+ (point) beg) (+ (point) end)))
-     (region-beginning)
-     (region-end))))
+     `(lambda (col-beg col-end)
+        (let ((beg nil)
+              (end nil))
+          (save-excursion
+            (move-to-column col-beg)
+            (setq beg (point))
+            (move-to-column col-end)
+            (setq end (point)))
+          (funcall ,shift-fn beg end)))
+     (region-beginning) (region-end))))
 
 (defun shift-number--on-context (n)
   "Manipulate numbers in the current region or line by N."

Reply via email to